Komprese promptu

From Systems analysis Wiki
Jump to navigation Jump to search

Komprese promptu (angl. prompt compression) — je souhrn metod v prompt inženýrství zaměřených na zkrácení délky vstupního textu (promptu) pro velké jazykové modely (LLM) při zachování klíčových informací[1]. S růstem kontextového okna LLM na miliony tokenů (například u Google Gemini) se objevila možnost zpracovávat velmi dlouhé texty, ale to přineslo nové problémy: vysoké náklady na volání, zvýšení latence a snížení kvality uvažování kvůli efektu „ztráty uprostřed"[2].

Komprese promptu tyto problémy řeší tím, že ve zkráceném vstupu soustřeďuje nejpodstatnější data a odstraňuje redundantní části. Tím snižuje riziko překročení limitu kontextu, urychluje generování a snižuje náklady, přičemž zachovává přesnost odpovědí[3].

Metody komprese promptu

Metody komprese promptu lze rozdělit do několika základních tříd.

Odstranění tokenů (filtrování)

Tento přístup spočívá v odstranění nejméně informativních tokenů, frází nebo vět ze zdrojového textu bez změny zbývajících částí. Důležitost tokenů je určována heuristicky.

  • LLMLingua: Metoda vyvinutá společností Microsoft, která vypočítává perplexitu každého tokenu a odstraňuje ty, které mají malý vliv na předvídatelnost textu. Ve verzi LongLLMLingua je tento přístup přizpůsoben pro dlouhé dokumenty s ohledem na relevanci fragmentů ve vztahu ke konkrétnímu dotazu uživatele[4].
  • Selective-Context: Využívá malý jazykový model k hodnocení self-information každého tokenu a odstraňuje tokeny s nejnižší informativností[5].
  • PCRL (Prompt Compression via Reinforcement Learning): Trénuje agenta pomocí Reinforcement Learning, aby pro každý token rozhodoval — „ponechat" nebo „odstranit" — s cílem maximalizovat metriku kvality (například ROUGE) výsledné odpovědi[6].

Abstraktivní komprese (sumarizace)

V tomto přístupu model-kompresor (obvykle menší) generuje stručné abstraktní shrnutí zdrojového textu, které je následně předáno hlavnímu LLM.

  • RECOMP (Retrieval-Compression-Prompting): Pro každý dokument ve znalostní bázi je předem vygenerován stručný přepis (summary) zohledňující možné dotazy uživatele (query-aware summary). To umožňuje nejen komprimovat, ale i předem zpracovávat informace[7].
  • PRCA (Prompt Compression with Reinforced Context Aggregation): Kombinuje trénování modelu-sumarizátoru s Reinforcement Learning, aby generoval přepisy, které maximálně zlepšují kvalitu odpovědí hlavního LLM[8].
  • Prompt-SAW (Semantic Aware Winnowing): Před sumarizací extrahuje z textu znalostní graf (entity a vztahy), vybírá relevantní uzly grafu a na jejich základě generuje komprimovaný text[9].

Extraktivní komprese

Tato metoda extrahuje klíčové fragmenty (věty, odstavce) ze zdrojového textu bez jejich přeformulování.

  • Reranker-LLMs: Využívá model-ranker (reranker), který hodnotí důležitost každého odstavce nebo dokumentu pro aktuální dotaz a vybírá pouze nejrelevantnější[10].
  • CompAct: Demonstruje iterativní extrakci-sumarizaci. Model postupně přebírá segmenty dlouhého textu, komprimuje je a ověřuje, zda je k dispozici dostatek informací pro odpověď. Pokud ne, přidá další segment a znovu komprimuje, čímž dosahuje výrazné komprese při zachování kvality[11].

Distilace a „paměťové tokeny"

Nová třída metod, kde místo textu model dostává speciálně natrénované tokeny-zástupce nebo embedding, obsahující komprimované informace.

  • Gist Tokens: Model LLM je doladěn (fine-tuning) na „sbalení" dlouhých instrukcí do malé sady speciálních gist tokenů (například 20–30 tokenů místo několika tisíc). Tyto tokeny jsou poté použity místo původního promptu, přičemž zajišťují až 26násobnou kompresi při minimální ztrátě kvality[12].
  • Soft Prompt Tuning: Místo textového promptu jsou použity trénovatelné „virtuální tokeny" (embedding), které jsou laděny pro řešení konkrétního úkolu.
  • SelfCP: Navrhuje použít samotný zmrazený LLM jako kompresor. Při podání segmentu textu se speciálními značkami model generuje husté reprezentace (memory tokens), které jsou pak jím samým použity k zodpovězení dotazu[13].

Efektivita a kompromisy

  • Zrychlení a snížení nákladů: Protože složitost transformeru roste kvadraticky ($O(n^2)$) s délkou sekvence, několikanásobné zkrácení promptu přináší výrazné úspory. Například gist tokens při 26násobné kompresi vykazují až 40% úsporu FLOPs[12].
  • Zvýšení kvality: Komprese promptu někdy může dokonce zlepšit kvalitu odpovědí, pokud zdrojový text obsahoval šum nebo rušivé detaily. Odstranění nerelevantního kontextu pomáhá modelu lépe se soustředit na důležité aspekty úkolu.
  • Kompromis kvality (faithfulness): Příliš agresivní komprese může vést ke ztrátě důležitých detailů (dat, jmen, negací), což sníží kvalitu odpovědi. Abstraktivní metody jsou zvláště náchylné k riziku halucinací. Kontrola úplnosti a přesnosti (faithfulness) komprimovaného promptu je klíčovým úkolem.

Vztah k dalším oblastem

  • Retrieval-Augmented Generation (RAG): RAG a komprese promptu spolu úzce souvisejí. RAG lze chápat jako vnější fázi komprese: místo zpracování celé databáze se provádí vyhledávání a výběr relevantních dokumentů. Komprese promptu doplňuje RAG tím, že zkracuje objem již vybraných dokumentů před jejich předáním do LLM.
  • In-Context Learning: Příklady v kontextu (demonstrace) výrazně zvyšují délku promptu. Komprese těchto demonstrací (například pomocí Instruction Distillation, kde je řada příkladů nahrazena jednou krátkou instrukcí) je aktivní oblastí výzkumu.

Literatura

  • 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.

Poznámky

  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]