Kompresi Prompt

From Systems analysis Wiki
Jump to navigation Jump to search

Kompresi prompt (Ingg. prompt compression) — adalah sekumpulan metode dalam prompt engineering yang bertujuan untuk mempersingkat panjang teks masukan (prompt) bagi large language model (LLM) dengan tetap mempertahankan informasi kunci[1]. Seiring bertambahnya ukuran context window LLM hingga jutaan token (misalnya pada Google Gemini), muncul kemampuan untuk memproses teks yang sangat panjang, namun hal ini menimbulkan masalah baru: tingginya biaya pemanggilan, peningkatan latensi, dan penurunan kualitas penalaran akibat efek "lost in the middle"[2].

Kompresi prompt mengatasi masalah-masalah ini dengan memusatkan data yang paling esensial dalam masukan yang dipersingkat dan membuang bagian yang redundan. Hal ini mengurangi risiko melampaui batas konteks, mempercepat proses generasi, dan menurunkan biaya, sekaligus mempertahankan akurasi jawaban[3].

Metode kompresi prompt

Metode kompresi prompt dapat dibagi menjadi beberapa kelas utama.

Penghapusan token (penyaringan)

Pendekatan ini terdiri dari penghapusan token, frasa, atau kalimat yang paling tidak informatif dari teks sumber tanpa mengubah bagian yang tersisa. Tingkat kepentingan token ditentukan secara heuristis.

  • LLMLingua: Metode yang dikembangkan oleh Microsoft yang menghitung perpleksitas setiap token dan menghapus token-token yang hanya sedikit memengaruhi keterpredikasian teks. Dalam versi LongLLMLingua, pendekatan ini diadaptasi untuk dokumen panjang dengan mempertimbangkan relevansi fragmen terhadap permintaan pengguna yang spesifik[4].
  • Selective-Context: Menggunakan language model berukuran kecil untuk menilai self-information setiap token dan membuang token-token dengan tingkat informativitas terendah[5].
  • PCRL (Prompt Compression via Reinforcement Learning): Melatih agen menggunakan Reinforcement Learning untuk mengambil keputusan bagi setiap token — "pertahankan" atau "hapus" — dengan tujuan memaksimalkan metrik kualitas (misalnya ROUGE) dari jawaban akhir[6].

Kompresi abstraktif (peringkasan)

Dalam pendekatan ini, model kompresor (biasanya berukuran lebih kecil) menghasilkan ringkasan abstrak singkat dari teks sumber, yang kemudian diteruskan ke LLM utama.

  • RECOMP (Retrieval-Compression-Prompting): Untuk setiap dokumen dalam basis pengetahuan, disiapkan terlebih dahulu ringkasan singkat (summary) yang mempertimbangkan kemungkinan permintaan pengguna (query-aware summary). Hal ini memungkinkan tidak hanya kompresi, tetapi juga pra-pemrosesan informasi[7].
  • PRCA (Prompt Compression with Reinforced Context Aggregation): Menggabungkan pelatihan model summarizer dengan Reinforcement Learning agar menghasilkan ringkasan yang semaksimal mungkin meningkatkan kualitas jawaban LLM utama[8].
  • Prompt-SAW (Semantic Aware Winnowing): Sebelum peringkasan, mengekstrak graf pengetahuan (entitas dan relasi) dari teks, memilih simpul graf yang relevan, dan berdasarkan simpul-simpul tersebut menghasilkan teks yang dikompresi[9].

Kompresi ekstraktif

Metode ini mengekstrak fragmen kunci (kalimat, paragraf) dari teks sumber tanpa melakukan parafrase.

  • Reranker-LLMs: Menggunakan model reranker yang menilai tingkat kepentingan setiap paragraf atau dokumen terhadap permintaan saat ini dan memilih hanya yang paling relevan[10].
  • CompAct: Menunjukkan ekstraksi-peringkasan secara iteratif. Model secara berurutan mengambil segmen teks panjang, mengompresnya, dan memeriksa apakah informasi sudah cukup untuk menjawab. Jika belum, segmen berikutnya ditambahkan dan dikompresi kembali, sehingga mencapai tingkat kompresi yang signifikan dengan tetap mempertahankan kualitas[11].

Distilasi dan "token memori"

Kelas metode baru di mana alih-alih teks, model menerima token pengganti atau embedding yang telah dilatih khusus dan mengandung informasi yang dikompresi.

  • Gist Tokens: LLM di-fine-tune untuk "melipat" instruksi panjang ke dalam sekumpulan kecil gist token khusus (misalnya 20-30 token sebagai pengganti beberapa ribu token). Token-token ini kemudian digunakan sebagai pengganti prompt asli, memberikan kompresi hingga 26 kali lipat dengan kehilangan kualitas yang minimal[12].
  • Soft Prompt Tuning: Alih-alih prompt berbasis teks, digunakan "token virtual" (embedding) yang dapat dilatih, yang dikonfigurasi untuk menyelesaikan tugas tertentu.
  • SelfCP: Mengusulkan penggunaan LLM yang dibekukan itu sendiri sebagai kompresor. Dengan memasukkan segmen teks beserta penanda khusus, model menghasilkan representasi padat (memory tokens) yang kemudian digunakan oleh model yang sama untuk menjawab[13].

Efisiensi dan kompromi

  • Percepatan dan pengurangan biaya: Karena kompleksitas transformer tumbuh secara kuadratik ($O(n^2)$) terhadap panjang sekuens, pengurangan prompt beberapa kali lipat menghasilkan penghematan yang signifikan. Misalnya, gist tokens dengan kompresi 26 kali lipat menunjukkan penghematan FLOPs hingga 40%[12].
  • Peningkatan kualitas: Terkadang kompresi prompt bahkan dapat meningkatkan kualitas jawaban apabila teks sumber mengandung noise atau detail yang mengalihkan perhatian. Penghapusan konteks yang tidak relevan membantu model untuk lebih fokus pada aspek-aspek penting dari tugas.
  • Kompromi kualitas (faithfulness): Kompresi yang terlalu agresif dapat menyebabkan hilangnya detail penting (tanggal, nama, negasi), yang akan menurunkan kualitas jawaban. Metode abstraktif khususnya rentan terhadap risiko halusinasi. Pengendalian kelengkapan dan keakuratan (faithfulness) prompt yang dikompresi merupakan tantangan utama.

Keterkaitan dengan bidang lain

  • Retrieval-Augmented Generation (RAG): RAG dan kompresi prompt saling berkaitan erat. RAG dapat dipandang sebagai tahap kompresi eksternal: alih-alih memproses seluruh basis data, dilakukan pencarian dan seleksi dokumen yang relevan. Kompresi prompt melengkapi RAG dengan memperkecil volume dokumen yang telah dipilih sebelum dimasukkan ke LLM.
  • In-Context Learning: Contoh-contoh dalam konteks (demonstrasi) secara signifikan meningkatkan panjang prompt. Kompresi demonstrasi ini (misalnya melalui Instruction Distillation, di mana banyak contoh digantikan oleh satu instruksi singkat) merupakan area penelitian yang aktif.

Daftar Pustaka

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

Catatan

  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]