提示壓縮技術:如何在不丟失重要上下文的情況下降低 LLM 成本
提示壓縮技術通過移除冗餘、無關信息,縮短提示長度,同時保留關鍵語義和指令,從而降低大語言模型的 token 消耗、成本和響應時間。本文介紹了多種壓縮方法,包括手動重寫、結構壓縮、句子級過濾、短語級壓縮、token 級過濾、抽取式壓縮、抽象式壓縮、查詢感知壓縮、粗到細壓縮和軟提示壓縮,並討論了它們在 RAG 系統、AI 代理等場景中的應用。
大型語言模型(LLM)經常接收到超出其所需的信息量。一個提示可能包含冗長的指令、檢索到的文檔、對話歷史、示例以及工具描述。這不僅增加了 token 使用量、成本和響應時間,還可能使模型難以識別重要細節。提示壓縮技術旨在縮短提示,同時保留核心含義、指令和證據,幫助模型聚焦有用信息,避免無關上下文的干擾。這在 RAG 系統、AI 代理、客户支持、文檔分析和長對話中尤為有價值。
提示壓縮並非追求最短的提示,而是在不降低迴答質量的前提下減少 token 數量。一個良好的壓縮提示應仍能使模型理解任務、遵循指令並生成準確響應。
主要的壓縮技術包括:
- 手動提示重寫:這是最簡單的技術,通過刪除重複指令、填充詞和不必要的解釋來壓縮。例如,“你應該仔細閲讀以下信息並僅根據可用上下文提供答案”可壓縮為“僅使用提供的上下文回答”。該方法適用於系統提示、可重用模板等,但需要人工操作,擴展性有限。
- 結構壓縮:將長文本改為緊湊格式,如使用項目符號、表格、鍵值對、JSON 或 YAML。例如,將客户信息從敍述性描述改為結構化字段。該方法適用於客户記錄、產品詳情等,但字段名稱需保持清晰。
- 句子級過濾:刪除與任務無關的完整句子,僅保留有助於回答問題的句子。常用於 RAG 系統、報告等,但可能移除支撐上下文。
- 短語級壓縮:刪除句子中的多餘詞語,同時保留主要含義。例如,“由於申請是在截止日期後提交的,因此無法處理”可壓縮為“申請在截止日期後提交,無法處理”。需注意避免刪除重要細節。
- Token 級過濾:移除價值較低的單個詞或 token,保留對理解任務至關重要的術語。例如,“客户擁有金牌會員資格,並在上個月聯繫了支持團隊五次”可壓縮為“客户金牌會員,上月五次支持聯繫”。該方法可能降低可讀性,需保護否定詞等關鍵詞彙。
- 抽取式壓縮:直接從原始提示中選取最重要的部分,而不重寫。適用於 RAG 系統、政策文檔等,能減少引入錯誤的風險,但可能遺漏分散的信息。
- 抽象式壓縮:將長內容改寫成較短的摘要,而非直接複製。適用於對話歷史、報告等,但摘要模型可能丟失細節或添加無關內容。
- 查詢感知壓縮:根據用户的當前問題保留相關信息,移除與具體任務無關的內容。在 RAG 系統和文檔問答中效果顯著,但依賴於對查詢的準確理解。
- 粗到細壓縮:分階段壓縮,先移除大的無關段落,再在句子、短語或 token 級別進一步壓縮。該方法控制更精細,但增加了處理步驟。
- 軟提示壓縮:將長文本轉換為少量學習向量,無需可讀文字。可大幅減小上下文,但難以調試,且可能要求模型訓練或訪問內部表示。
在 RAG 系統中,提示壓縮尤為有用:檢索到的文檔可能包含重複、過時或無關信息,壓縮可移除無關文檔、選擇關鍵段落並保留支持回答的句子,從而降低成本並保持響應聚焦。在 AI 代理中,代理會隨時間累積長提示,壓縮可總結舊工具輸出、存儲簡短狀態更新並刪除重複指令,防止上下文無限增長。但安全規則、重要決策和未解決的錯誤不應被移除。
評估提示壓縮不應僅看 token 減少量,還需關注任務準確率、信息保留率、幻覺率等指標。例如,token 減少率 = 1 - (壓縮後 token / 原始 token),壓縮因子 = 原始 token / 壓縮後 token。壓縮後的提示應保留名稱、數字、日期、指令、條件和否定詞,並在相同任務和模型上進行測試。
總之,提示壓縮技術為高效利用 LLM 提供了實用路徑,開發者可根據具體場景選擇合適的方法,在降低成本的同時保證輸出質量。