Prompt compression — Συμπίεση prompt

From Systems analysis wiki
Jump to navigation Jump to search

Συμπίεση prompt (αγγλ. prompt compression) — είναι το σύνολο μεθόδων στο prompt engineering, που στοχεύουν στη μείωση του μήκους του εισαγόμενου κειμένου (prompt) για μεγάλα γλωσσικά μοντέλα (LLM) διατηρώντας παράλληλα τις βασικές πληροφορίες[1]. Με την αύξηση του παραθύρου πλαισίου των LLM έως εκατομμύρια token (για παράδειγμα, στο Google Gemini) δημιουργήθηκε η δυνατότητα επεξεργασίας πολύ μεγάλων κειμένων, αλλά αυτό δημιούργησε νέα προβλήματα: υψηλό κόστος κλήσεων, αύξηση καθυστέρησης και μείωση της ποιότητας συλλογισμού λόγω του φαινομένου «απώλεια στη μέση»[2].

Η συμπίεση prompt επιλύει αυτά τα προβλήματα, συγκεντρώνοντας στη συμπιεσμένη είσοδο τα πιο ουσιαστικά δεδομένα και αποκλείοντας τα πλεονάζοντα. Αυτό μειώνει τον κίνδυνο υπέρβασης του ορίου πλαισίου, επιταχύνει τη δημιουργία και μειώνει το κόστος, διατηρώντας ταυτόχρονα την ακρίβεια των απαντήσεων[3].

Μέθοδοι συμπίεσης prompt

Οι μέθοδοι συμπίεσης prompt μπορούν να χωριστούν σε αρκετές βασικές κατηγορίες.

Αφαίρεση token (φιλτράρισμα)

Αυτή η προσέγγιση συνίσταται στην αφαίρεση των λιγότερο ενημερωτικών token, φράσεων ή προτάσεων από το αρχικό κείμενο χωρίς τροποποίηση των υπόλοιπων τμημάτων. Η σπουδαιότητα των token καθορίζεται ευρετικά.

  • LLMLingua: Μέθοδος που αναπτύχθηκε από τη Microsoft, η οποία υπολογίζει την perplexity κάθε token και αφαιρεί εκείνα που επηρεάζουν ελάχιστα την προβλεψιμότητα του κειμένου. Στην έκδοση LongLLMLingua αυτή η προσέγγιση προσαρμόζεται για μεγάλα έγγραφα, λαμβάνοντας υπόψη τη συνάφεια των τμημάτων σε σχέση με το συγκεκριμένο ερώτημα του χρήστη[4].
  • Selective-Context: Χρησιμοποιεί ένα μικρό γλωσσικό μοντέλο για την αξιολόγηση της self-information κάθε token και απορρίπτει τα token με τη χαμηλότερη πληροφορικότητα[5].
  • PCRL (Prompt Compression via Reinforcement Learning): Εκπαιδεύει έναν πράκτορα με Reinforcement Learning να λαμβάνει απόφαση για κάθε token — «διατήρηση» ή «αφαίρεση» — με στόχο τη μεγιστοποίηση της μετρικής ποιότητας (π.χ. ROUGE) της τελικής απάντησης[6].

Αφαιρετική συμπίεση (περίληψη)

Σε αυτή την προσέγγιση, ένα μοντέλο-συμπιεστής (συνήθως μικρότερου μεγέθους) δημιουργεί μια σύντομη αφαιρετική περίληψη του αρχικού κειμένου, η οποία στη συνέχεια μεταβιβάζεται στο κύριο LLM.

  • RECOMP (Retrieval-Compression-Prompting): Για κάθε έγγραφο στη βάση γνώσεων δημιουργείται εκ των προτέρων μια σύντομη ανακεφαλαίωση (summary), που λαμβάνει υπόψη τα πιθανά ερωτήματα του χρήστη (query-aware summary). Αυτό επιτρέπει όχι μόνο τη συμπίεση, αλλά και την προκαταρκτική επεξεργασία πληροφοριών[7].
  • PRCA (Prompt Compression with Reinforced Context Aggregation): Συνδυάζει την εκπαίδευση ενός μοντέλου-συνοψιστή με Reinforcement Learning, ώστε να δημιουργεί τέτοιες ανακεφαλαιώσεις που βελτιστοποιούν στο μέγιστο την ποιότητα των απαντήσεων του κύριου LLM[8].
  • Prompt-SAW (Semantic Aware Winnowing): Πριν από την περίληψη εξάγει από το κείμενο έναν γράφο γνώσης (οντότητες και σχέσεις), επιλέγει τους σχετικούς κόμβους του γράφου και με βάση αυτούς δημιουργεί συμπιεσμένο κείμενο[9].

Εξαγωγική συμπίεση

Αυτή η μέθοδος εξάγει βασικά τμήματα (προτάσεις, παραγράφους) από το αρχικό κείμενο χωρίς να τα αναδιατυπώνει.

  • Reranker-LLMs: Χρησιμοποιεί ένα μοντέλο-ταξινομητή (reranker), το οποίο αξιολογεί τη σπουδαιότητα κάθε παραγράφου ή εγγράφου για το τρέχον ερώτημα και επιλέγει μόνο τα πιο συναφή[10].
  • CompAct: Επιδεικνύει επαναληπτική εξαγωγή-περίληψη. Το μοντέλο λαμβάνει διαδοχικά τμήματα ενός μεγάλου κειμένου, τα συμπιέζει και ελέγχει αν υπάρχουν αρκετές πληροφορίες για απάντηση. Αν όχι, προσθέτει το επόμενο τμήμα και συμπιέζει ξανά, επιτυγχάνοντας σημαντική συμπίεση διατηρώντας την ποιότητα[11].

Απόσταξη και «memory tokens»

Νέα κατηγορία μεθόδων, όπου αντί για κείμενο το μοντέλο λαμβάνει ειδικά εκπαιδευμένα token-υποκατάστατα ή embeddings που περιέχουν συμπιεσμένες πληροφορίες.

  • Gist Tokens: Το μοντέλο LLM εκπαιδεύεται με fine-tuning να «διπλώνει» μεγάλες οδηγίες σε ένα μικρό σύνολο ειδικών gist token (για παράδειγμα, 20-30 token αντί για αρκετές χιλιάδες). Αυτά τα token χρησιμοποιούνται στη συνέχεια αντί για το αρχικό prompt, εξασφαλίζοντας έως 26-πλάσια συμπίεση με ελάχιστη απώλεια ποιότητας[12].
  • Soft Prompt Tuning: Αντί για κειμενικό prompt χρησιμοποιούνται εκπαιδεύσιμα «εικονικά token» (embeddings), τα οποία ρυθμίζονται για την επίλυση συγκεκριμένης εργασίας.
  • SelfCP: Προτείνει τη χρήση του ίδιου παγωμένου LLM ως συμπιεστή. Παρέχοντάς του ένα τμήμα κειμένου με ειδικές ετικέτες, το μοντέλο δημιουργεί μια πυκνή αναπαράσταση (memory tokens), η οποία στη συνέχεια χρησιμοποιείται από το ίδιο για την απάντηση[13].

Αποτελεσματικότητα και συμβιβασμοί

  • Επιτάχυνση και μείωση κόστους: Καθώς η πολυπλοκότητα του transformer αυξάνεται τετραγωνικά ($O(n^2)$) με το μήκος της ακολουθίας, η μείωση του prompt κατά αρκετές φορές αποφέρει ουσιαστική εξοικονόμηση. Για παράδειγμα, τα gist tokens με 26-πλάσια συμπίεση επιδεικνύουν έως 40% εξοικονόμηση FLOPs[12].
  • Βελτίωση ποιότητας: Μερικές φορές η συμπίεση prompt μπορεί ακόμη και να βελτιώσει την ποιότητα των απαντήσεων, εάν το αρχικό κείμενο περιείχε θόρυβο ή αποσπαστικές λεπτομέρειες. Η αφαίρεση μη συναφούς πλαισίου βοηθά το μοντέλο να εστιάσει καλύτερα στις σημαντικές πτυχές της εργασίας.
  • Συμβιβασμός ποιότητας (faithfulness): Η υπερβολικά επιθετική συμπίεση μπορεί να οδηγήσει σε απώλεια σημαντικών λεπτομερειών (ημερομηνιών, ονομάτων, αρνήσεων), υποβαθμίζοντας την ποιότητα της απάντησης. Οι αφαιρετικές μέθοδοι είναι ιδιαίτερα ευάλωτες στον κίνδυνο παραισθήσεων. Ο έλεγχος πληρότητας και ακρίβειας (faithfulness) του συμπιεσμένου prompt αποτελεί βασική πρόκληση.

Σύνδεση με άλλες κατευθύνσεις

  • Retrieval-Augmented Generation (RAG): Το RAG και η συμπίεση prompt συνδέονται στενά. Το RAG μπορεί να θεωρηθεί ως εξωτερικό στάδιο συμπίεσης: αντί να επεξεργάζεται ολόκληρη τη βάση δεδομένων, πραγματοποιείται αναζήτηση και επιλογή συναφών εγγράφων. Η συμπίεση prompt συμπληρώνει το RAG, μειώνοντας τον όγκο των ήδη επιλεγμένων εγγράφων πριν από την υποβολή τους στο LLM.
  • In-Context Learning: Τα παραδείγματα στο πλαίσιο (επιδείξεις) αυξάνουν σημαντικά το μήκος του prompt. Η συμπίεση αυτών των επιδείξεων (για παράδειγμα, με τη χρήση Instruction Distillation, όπου πολλά παραδείγματα αντικαθίστανται από μία σύντομη οδηγία) αποτελεί ενεργό τομέα έρευνας.

Βιβλιογραφία

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

Σημείωση

  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]