Prompt tömörítés

From Systems analysis Wiki
Jump to navigation Jump to search

Prompt tömörítés (angol prompt compression) — a prompt-mérnökség azon módszereinek összessége, amelyek célja a nagy nyelvi modellek (LLM) bemeneti szövegének (promptjának) hosszát csökkenteni a kulcsinformációk megőrzése mellett[1]. Ahogy az LLM-ek kontextusablaka millió tokenre bővült (például a Google Gemini esetében), lehetővé vált nagyon hosszú szövegek feldolgozása, ám ez új problémákat hozott: magas hívási költségeket, megnövekedett késleltetést és a „lost in the middle" (elveszés a közepén) jelenség miatti romló következtetési minőséget[2].

A prompt tömörítés ezeket a problémákat oldja meg azáltal, hogy a rövidített bemenetbe a leglényegesebb adatokat sűríti, a feleslegeseket pedig elveti. Ez csökkenti a kontextuskorlát túllépésének kockázatát, gyorsítja a generálást és mérsékeli a költségeket, miközben megőrzi a válaszok pontosságát[3].

A prompt tömörítés módszerei

A prompt tömörítés módszerei néhány fő osztályba sorolhatók.

Token-eltávolítás (szűrés)

Ez a megközelítés a legkevésbé informatív tokenek, kifejezések vagy mondatok eltávolításából áll az eredeti szövegből, az megmaradó részek módosítása nélkül. A tokenek fontosságát heurisztikusan határozzák meg.

  • LLMLingua: A Microsoft által kifejlesztett módszer, amely kiszámítja az egyes tokenek perplexitását, és eltávolítja azokat, amelyek kevéssé befolyásolják a szöveg előrejelzhetőségét. A LongLLMLingua verzióban ezt a megközelítést hosszú dokumentumokhoz adaptálták, figyelembe véve a szövegrészletek relevanciáját az adott felhasználói kéréshez képest[4].
  • Selective-Context: Egy kis nyelvi modellt használ az egyes tokenek self-information értékének becslésére, és elveti a legkevésbé informatív tokeneket[5].
  • PCRL (Prompt Compression via Reinforcement Learning): Megerősítéses tanulással (Reinforcement Learning) tanít egy ágenst, amely minden tokenre döntést hoz — „megtart" vagy „töröl" —, azzal a céllal, hogy maximalizálja a végső válasz minőségi mutatóját (például ROUGE)[6].

Absztraktív tömörítés (összefoglalás)

Ennél a megközelítésnél egy tömörítő modell (általában kisebb méretű) rövid, absztrakt összefoglalót készít az eredeti szövegből, amelyet aztán az elsődleges LLM-nek továbbít.

  • RECOMP (Retrieval-Compression-Prompting): A tudásbázis minden dokumentumához előre rövid összefoglaló (summary) készül, amely figyelembe veszi a lehetséges felhasználói kéréseket (query-aware summary). Ez lehetővé teszi az információk nemcsak tömörítését, hanem előzetes feldolgozását is[7].
  • PRCA (Prompt Compression with Reinforced Context Aggregation): Kombinálja az összefoglaló modell tanítását a megerősítéses tanulással, hogy olyan összefoglalókat generáljon, amelyek a lehető legnagyobb mértékben javítják az elsődleges LLM válaszainak minőségét[8].
  • Prompt-SAW (Semantic Aware Winnowing): Az összefoglalás előtt tudásgráfot (entitásokat és relációkat) nyer ki a szövegből, kiválasztja a gráf releváns csomópontjait, és ezek alapján tömörített szöveget generál[9].

Extraktív tömörítés

Ez a módszer kulcsfontosságú részleteket (mondatokat, bekezdéseket) von ki az eredeti szövegből átfogalmazás nélkül.

  • Reranker-LLMs: Egy rangsoroló modellt (reranker) használ, amely értékeli az egyes bekezdések vagy dokumentumok fontosságát az aktuális kérés szempontjából, és csak a legrelevánsabbakat választja ki[10].
  • CompAct: Iteratív extrakciós-összefoglalási folyamatot mutat be. A modell szekvenciálisan veszi a hosszú szöveg szegmenseit, tömöríti azokat, majd ellenőrzi, elegendő-e az információ a válaszhoz. Ha nem, hozzáadja a következő szegmenst, és újra tömörít, így jelentős tömörítést ér el a minőség megőrzése mellett[11].

Desztilláció és „memóriatokenek"

Módszerek egy új osztálya, ahol a modell szöveg helyett speciálisan betanított helyettesítő tokeneket vagy embeddingeket kap, amelyek tömörített információt tartalmaznak.

  • Gist Tokens: Az LLM modellt arra tanítják, hogy hosszú utasításokat egy kis számú speciális gist-token-né „göngyöljön össze" (például 20–30 token néhány ezer helyett). Ezeket a tokeneket ezután az eredeti prompt helyett használják, akár 26-szoros tömörítést biztosítva minimális minőségveszteség mellett[12].
  • Soft Prompt Tuning: Szöveges prompt helyett tanítható „virtuális tokeneket" (embeddingeket) alkalmaznak, amelyeket egy adott feladat megoldására hangolnak be.
  • SelfCP: Azt javasolja, hogy magát a befagyasztott LLM-et használják tömörítőként. A modellnek szövegszegmenseket adva speciális jelölőkkel, a modell sűrű reprezentációt (memory tokens) generál, amelyet aztán saját maga felhasználva válaszol[13].

Hatékonyság és kompromisszumok

  • Gyorsítás és költségcsökkentés: Mivel a transformer összetettsége négyzetesen ($O(n^2)$) nő a sorozat hosszával, a prompt néhányszorosára való csökkentése jelentős megtakarítást eredményez. Például a gist tokens 26-szoros tömörítésnél akár 40%-os FLOPs-megtakarítást mutat[12].
  • Minőségjavítás: Bizonyos esetekben a prompt tömörítés még javíthatja is a válaszok minőségét, ha az eredeti szöveg zajt vagy elterelő részleteket tartalmazott. A nem releváns kontextus eltávolítása segít a modellnek jobban összpontosítani a feladat fontos aspektusaira.
  • Minőségi kompromisszum (faithfulness): A túlzottan agresszív tömörítés fontos részletek (dátumok, nevek, tagadások) elvesztéséhez vezethet, ami rontja a válasz minőségét. Az absztraktív módszerek különösen hajlamosak a hallucinációk kockázatára. A tömörített prompt teljességének és pontosságának (faithfulness) ellenőrzése kulcsfontosságú feladat.

Kapcsolat más területekkel

  • Retrieval-Augmented Generation (RAG): A RAG és a prompt tömörítés szorosan összefügg. A RAG tekinthető egyfajta külső tömörítési lépésnek: az egész adatbázis feldolgozása helyett releváns dokumentumokat keresnek és válogatnak ki. A prompt tömörítés kiegészíti a RAG-ot azzal, hogy a már kiválogatott dokumentumok terjedelmét csökkenti, mielőtt azokat az LLM-be táplálják.
  • In-Context Learning: A kontextusban szereplő példák (demonstrációk) jelentősen növelik a prompt hosszát. Ezeknek a demonstrációknak a tömörítése (például Instruction Distillation segítségével, ahol sok példát egyetlen rövid utasítás vált fel) aktív kutatási terület.

Irodalom

  • Ali, M. et al. (2024). Prompt-SAW: Semantic-Aware Winnowing for Prompt Compression. arXiv:2403.00000.
  • Gao, J.; Cao, Z.; Li, W. (2024). SelfCP: Compressing Over-Limit Prompt via the Frozen Large Language Model Itself. arXiv:2405.17052.
  • Jiang, H. et al. (2023). LLMLingua: Compressing Prompts for Accelerated Inference of Large Language Models. arXiv:2310.05736.
  • Jiang, H. et al. (2023). LongLLMLingua: Accelerating and Enhancing LLMs in Long-Context Scenarios via Prompt Compression. arXiv:2310.06839.
  • Jung, H.; Kim, K. (2023). PCRL: Discrete Prompt Compression with Reinforcement Learning. arXiv:2308.08758.
  • Li, M. et al. (2023). Selective-Context: Compressing Context to Summarise and Answer Questions. arXiv:2307.00000.
  • Mu, J. et al. (2023). Learning to Compress Prompts with Gist Tokens. NeurIPS 2023.
  • Xu, F.; Shi, W.; Choi, E. (2023). RECOMP: Improving Retrieval-Augmented LMs with Compression and Selective Augmentation. arXiv:2310.04408.
  • Yang, C. et al. (2023). PRCA: Prompt Compression with Reinforced Context Aggregation. arXiv:2311.00000.
  • Yoon, J. et al. (2024). CompAct: Interactive Prompt Compression for Long-Document QA. arXiv:2402.00000.
  • Zhang, S. et al. (2024). Efficient Prompting Methods for Large Language Models: A Survey. arXiv:2404.01077.
  • Jha, S. et al. (2024). Characterizing Prompt Compression Methods for Long Context Inference. arXiv:2407.08892.

Megjegyzés

  1. Jha, S., et al. (2024). «Characterizing Prompt Compression Methods for Long Context Inference». arXiv. [1]
  2. «Efficient Prompting Methods for Large Language Models: A Survey». arXiv. [2]
  3. «Prompt Compression: A Guide With Python Examples». DataCamp. [3]
  4. Jiang, H., et al. (2023). «LLMLingua: Compressing Prompts for Accelerated Inference of Large Language Models». arXiv.
  5. Li, M. (2023). «Compressing context to summarize and answer questions». arXiv.
  6. Jung, H., & Kim, K. (2023). «Learning to Compress Prompts with Reinforcement Learning». arXiv.
  7. Xu, F., et al. (2024). «RECOMP: Improving Retrieval-Augmented LMs with Compression and Selective Augmentation». arXiv.
  8. Yang, C., et al. (2023). «PRCA: A new framework for prompt compression». arXiv.
  9. Ali, M., et al. (2024). «Prompt-SAW: A new method for prompt compression». arXiv.
  10. Pradeep, R., et al. (2023). «How to select the best passages for RAG?». arXiv.
  11. Yoon, J., et al. (2024). «CompAct: A new framework for interactive prompt compression». arXiv.
  12. 12.0 12.1 Mu, J., et al. (2023). «Learning to Compress Prompts with Gist Tokens». OpenReview. [4]
  13. Gao, C., et al. (2024). «SelfCP: Compressing Over-Limit Prompt via the Frozen Large Language Model Itself». arXiv. [5]