プロンプト圧縮技術の比較と最新動向

近年、大規模言語モデル(LLM)は、その高度な自然言語処理能力により、様々な分野で注目を集めています。しかし、LLMの能力を最大限に引き出すためには、詳細な指示や情報を盛り込んだ、長文のプロンプトが必要となるケースが少なくありません。この長文のプロンプトは、モデルのメモリ使用量を増やし、推論コストを高めるという課題を抱えています。
そこで、この問題を解決するために、プロンプト圧縮と呼ばれる技術が注目されています。プロンプト圧縮とは、プロンプトの長さを短縮しながら、その意味を損なわないようにする技術です。今回は、最新のサーベイ論文を参考に、プロンプト圧縮の技術的な背景、様々な手法、そして今後の展望について解説します。
はじめに
近年、大規模言語モデル(LLM)は、その高度な自然言語処理能力により、様々な分野で活用されています。しかし、LLMの性能を最大限に引き出すためには、詳細な指示や文脈情報を盛り込んだ、長文のプロンプトが必要となることが多く、これがモデルの処理負荷を増大させ、応答速度の低下やコスト増加といった問題を引き起こしていました。
この問題に対処するため、プロンプト圧縮という技術が注目されています。プロンプト圧縮とは、プロンプトの長さを短縮しながらも、その意味を損なわずに、LLMの処理効率を向上させる技術です。
プロンプト圧縮の必要性と課題
プロンプト圧縮の必要性は以下の点から考えられます。
- 処理速度の向上: 長文のプロンプトは、LLMの処理時間を大幅に増加させます。プロンプトを圧縮することで、処理速度を高速化し、リアルタイムでの応答を実現できます。
- コスト削減: プロンプトが長くなると、それだけ計算資源が必要となり、コストが上昇します。プロンプト圧縮は、コスト効率の良いLLMの利用を可能にします。
- ユーザーエクスペリエンスの向上: 応答時間が短縮され、よりスムーズな対話が可能になります。
一方で、プロンプト圧縮には以下のような課題も存在します。
- 圧縮による性能低下: プロンプトを過度に圧縮すると、生成されるテキストの質が低下する可能性があります。
- 汎化性の欠如: 特定のタスクやモデルに特化した圧縮手法が多く、汎用性の高い手法の開発が求められています。
- 評価指標の不足: プロンプト圧縮の効果を定量的に評価するための適切な指標がまだ確立されていません。
ソフトプロンプト vs. ハードプロンプト
大規模言語モデル(LLM)に指示を与えるための入力であるプロンプトは、大きく分けてハードプロンプトとソフトプロンプトの2種類に分類されます。
- ハードプロンプト:
- LLMの語彙に含まれる単語やサブワードから構成される、人間が自然言語で書いたプロンプトです。
- 例えば、「次の文章を要約してください。」や、「この文章の感情を分析してください。」といった指示が該当します。
- メリット: 人間の理解しやすい自然言語で表現されているため、解釈が容易です。
- デメリット:
- 意図を正確に伝えるために、長文になる傾向があります。
- 作成に手間がかかり、効果的なプロンプトを設計することが困難です。
- 表現の微妙な違いによって、LLMの性能が大きく変動する可能性があります。
- ソフトプロンプト:
- LLMのトークン埋め込みと同じ次元を持つ、連続的なベクトルで表現されたプロンプトです。
- 人間が直接読み取ることができない、特殊なトークンとして扱われます。
- メリット:
- 複雑な指示やニュアンスを効果的に表現できます。
- データセットに合わせて柔軟に調整可能です。
- デメリット:
- 人間による解釈が困難です。
- 大規模なデータセットを用いた学習が必要となるため、計算コストが高くなる可能性があります。

ハードプロンプト法では、情報量の少ないトークンを削除したり、簡潔に言い換えたりします。一方、ソフトプロンプト法では、テキストを少数の特別なトークン \(<c_n>\) に圧縮します。図のグリッドは注目パターンを視覚化したもので、\(y\) 軸がトークンのシーケンスを、\(x\) 軸が注目するトークンを示しています。
元のプロンプトでは、各トークンがそれ以前のすべてのトークンに注目します。ハードプロンプトの場合、削除されたトークン \(( D_i )\) には注目できません。ソフトプロンプトの場合、圧縮されたトークン \(( C_i )\) はそれ以前のすべての入力トークン \(( I_i )\) に注目しますが、後続の出力トークン \(( O_i )\) は圧縮されたトークン以前のトークンには注目できません。
プロンプト圧縮における2つのアプローチ
プロンプト圧縮とは、プロンプトの長さを短縮することで、LLMの処理効率を向上させる技術です。このプロンプト圧縮は、大きく分けて以下の2つのアプローチに分類されます。
- ハードプロンプト方式:
- 不要な情報や冗長な表現を削除することで、プロンプトを短縮します。
- フィルタリングのような役割を果たし、自然言語のトークンを使用するため、ある程度の人間による解釈が可能ですが、文法的に不自然になる可能性があります。
- ソフトプロンプト方式:
- プロンプト情報を連続的なベクトル(潜在ベクトル)に変換することで、圧縮します。
- 人間による直接的な解釈は困難ですが、よりコンパクトかつ効果的な表現が可能になります。
ハードプロンプト法
ハードプロンプト法は、元のプロンプトから不要なトークンを削除することで、プロンプトを圧縮する手法です。この際、自然言語の単語やサブワードを使用し続けるため、単語埋め込みのみを受け付けるブラックボックスAPIモデルなど、自然言語入力を前提としたLLMに特に有効です。
手法 | 説明 | メリット | デメリット |
---|---|---|---|
SelectiveContext | プロンプト中の各単語の重要度を自己情報量に基づいて評価し、冗長な部分を削除します。 | モデル非依存、追加パラメータ不要 | フィルタリング後のプロンプトを再度エンコードする必要があるため、効率化の効果が限定的。 SpaCyによる句境界検出の精度に依存。 |
LLMLingua | GPT-2などの小型言語モデルを用いて、プロンプトの各要素の重要度を評価し、冗長なトークンを削除します。 | 最大20倍の圧縮率を実現可能。ブラックボックスLLMでも使用可能。 | 小型言語モデルが必要なため、追加メモリを消費する。 |
Nano-Capsulator | 元のプロンプトを要約することで、圧縮された自然言語プロンプトを生成します。 | 意味の保存とLLMへの適合性を考慮した設計。 | 圧縮モデルが必要なため、メモリコストが高い。 圧縮プロセスに余分な推論が必要となり、計算コストが増加する。 |
LongLLMLingua | LLMLinguaよりも長い圧縮ウィンドウを用いて、文書の並べ替えと部分列の復元を行う。 | より長い文脈を考慮した圧縮が可能。 | 計算コストが増加する可能性がある。 |
AdaComp | クエリ複雑度と検索品質に基づいて、関連する文書を動的に選択する適応的圧縮手法。 | クエリに合わせた柔軟な圧縮が可能。 | 複雑な計算が必要となる場合がある。 |
LLMLingua-2 | データ蒸留を用いて圧縮されたデータセットを作成し、重要なトークンを保持するための分類器を訓練する。 | データ効率化が可能。 | データ準備に手間がかかる。 |
PCRL | 強化学習を用いてトークンを選択するモデル非依存な手法。 | モデルに依存しないため、汎用性が高い。 | 強化学習の学習が複雑。 |
TACO-RL | 強化学習を用いてトークンを選択するタスク特化型の手法。 | タスクに特化することで、高い性能が期待できる。 | タスクごとにモデルを調整する必要がある。 |
CPC | 文脈を考慮した埋め込みを用いて文の関連性をランク付けし、トークンを削減する。 | 文脈情報を活用したより精度の高い圧縮が可能。 | 埋め込み計算にコストがかかる。 |
TCRA-LLM | 埋め込みを用いて要約と意味圧縮を行う。 | 意味を保ったまま圧縮が可能。 | 埋め込みの設計が複雑。 |
ソフトプロンプト法
ソフトプロンプト法は、プロンプトを連続的なベクトル(ソフトプロンプト)に変換することで、圧縮する手法です。これにより、人間が直接読み取ることができない、コンパクトかつ効果的な表現が可能になります。
ソフトプロンプト法のアーキテクチャ
一般的なソフトプロンプト法は、以下の2つの主要なコンポーネントから構成されます。
- エンコーダ: プロンプトを圧縮して、短い連続的な特殊トークンに変換します。
- デコーダ: 圧縮されたプロンプトを処理して、対応する応答を生成します。
最近の研究では、より高い汎化性能を備え、少ない追加パラメータで圧縮を実現し、より長いプロンプトに対応できる手法が開発されています。代表的なアーキテクチャを以下に示します。
手法 | 説明 | メリット | デメリット |
---|---|---|---|
CC (Contrastive Conditioning) | デコーダのみの手法。自然言語プロンプトの出力分布を近似するように、短いソフトプロンプトを訓練する。 | 特定の属性を生成するソフトプロンプトを訓練可能。 | 各ソフトプロンプトは特定の自然言語プロンプトに対してのみ訓練されるため、汎化性能が低い。 |
GIST (Gist Tokens) | LLMの注意機構を改変。元のプロンプトの後に、新たに訓練可能なトークンを付加する。 | 汎化性能が高い。 | 最大圧縮可能プロンプト長に制限がある。 |
AutoCompressor | 再帰的な圧縮を行う。 | 長いコンテキストプロンプトを圧縮可能。 | 訓練プロセスに時間がかかる。 |
ICAE (In-context Autoencoder) | 長いコンテキストを圧縮して、QAタスクに利用する。 | 元のLLMをデコーダとして使用するため、ファインチューニングが不要。 | 訓練データセットとLLMの訓練コーパスが重複する可能性がある。 |
500xCompressor | 高い圧縮率を実現しながら、ICAEの圧縮長制限を維持する。 | 高い圧縮率を実現しつつ、元のLLMの性能を維持できる。 | |
xRAG | 凍結された埋め込みモデルをエンコーダとして使用する。 | 単一のトークンに情報を圧縮可能。 | 2つのLLMとプロジェクタをロードする必要がある。 |
UniICL | インプットプロンプトのデモストレーション部分を圧縮する。 | エンコーダとデコーダに同じLLMを使用するため、メモリ効率が良い。 |
ソフトプロンプト法のメカニズム
ソフトプロンプト法のメカニズムは、以下のように解釈できます。
- 注意機構の最適化: 入力長を削減し、計算コストを低減する。
- プロンプトチューニングとの類似性: プロンプトチューニングやプレフィックスチューニングと類似した手法であり、エンコーダによって自動的にプロンプトを生成する。
- 新しいモダリティのエンコーディング: 自然言語を新しいモダリティ(圧縮されたトークン)に変換するプロセスと見なすことができる。
- 新しい合成言語: 圧縮されたトークンを、LLMが理解できる新しい言語と見なすことができる。
下流タスクへの応用
プロンプト圧縮は、自然言語処理の様々な分野で応用されています。以下、具体的な例を交えて解説します。
タスク | 概要 | 例 | プロンプト圧縮の役割 |
---|---|---|---|
一般的なQA | 指示や文脈を圧縮し、多様な指示に従うタスクを実行する。 | GIST (Gist Tokens)、500xCompressor | 指示や文脈を簡潔化し、モデルの処理を効率化。多様な質問に対応可能にする。 |
RAG (Retrieval-Augmented Generation) | 検索で得られた文書の埋め込みを基に質問に答える。 | xRAG | 検索結果を効率的に処理し、より迅速な質問応答を実現。 |
ICL (In-context Learning) | 文脈内の例を圧縮し、関連する例を選択する。 | UniICL | 関連性の高い文脈内の例を効率的に選択し、学習の質を向上。 |
ロールプレイング | 役割に基づいた対話を行う。 | X-Prompt (eXtensible Prompt) | 役割に合わせた応答を生成するために、プロンプトを適切に調整。 |
エージェントベース | APIドキュメントを圧縮し、ツールを効率的に利用する。 | Selective Compression & Block Compression | APIドキュメントを簡潔化し、エージェントがより効率的にツールを利用できるようにする。 |
学際的なタスク | 異なる分野の知識を統合するタスク。 | Tag-LLM、CoLLEGe | 異なる分野の知識を効率的に統合し、より適切な回答を生成。 |
課題と今後の取り組み
現在の課題
現在のプロンプト圧縮手法は、いくつかの課題に直面しています。
- ファインチューニングの問題
- ソフトプロンプト法の一部ではデコーダLLMのファインチューニングは不要ですが、プロンプトチューニングやプレフィックスチューニング同様の課題が生じます。
- ベースモデルのファインチューニングによる忘却、過学習、モデルドリフトのリスクがあります。これを避けるには大規模で多様なデータセットを用いる必要があり、計算コストが高くなります。
- また、エンコーダは特定のデコーダLLMに依存するため、LLMが更新されるたびに再訓練が必要です。
- ハードプロンプト法では、プロンプトのフィルタリングにより文法的な正確性の低下や入力分布の変化による性能低下が起こる可能性があります。
- 効率化の限界
- プロンプト長の削減は可能ですが、圧縮時間やエンコーダのメモリコストの最適化は不十分です。
- 現在のソフトプロンプト法では、フルパラメータ訓練やLoRA、アダプターといったPEFT手法を利用します。これらは柔軟性に優れる一方、大規模なエンコーダは圧縮時間を延長します。
- ハードウェアの違いによる実行時間のばらつきも課題です。また、エンコーダとデコーダが同等サイズの場合、計算コストは元のプロンプトのエンコード時とほぼ同じになります。
- 出力が短いタスクでは効率化の効果が限定的で、ハードプロンプト法ではトークン削除のための追加モデルが必要になる場合があります。
- 注意機構の最適化手法との比較
- ソフトプロンプト法は注意機構の特殊な修正と見なせますが、スライディングウィンドウ型やスパース注意機構と比較されていません。
- 注意機構の最適化手法はエンコーダを不要とし、追加メモリコストも発生しません。
- また、入力トークンと生成トークンに同一の機構を適用するため、安定性とスケーラビリティに優れます。
- 両手法の計算要件が同等の場合の圧縮率を比較し、評価する必要があります。
今後の取り組み
現在の課題を解決し、プロンプト圧縮手法を強化するために、以下の取り組みが提案されています。
- エンコーダの最適化
- 現在のソフトプロンプト法では、エンコーダのサイズがデコーダとほぼ同じです。
- 大規模なエンコーダは効果的な情報圧縮が可能ですが、BERTなどの小型モデルは少ないパラメータ(LLMの10分の1以下)で同等の性能を発揮し、圧縮速度を向上させます。
- LoRAやアダプターに加え、QLORA、DoRA、MoRA、LLaMA-AdapterなどのPEFT手法もエンコーダの最適化に有用です。
- ハードプロンプトとソフトプロンプトの組み合わせ
- ハードプロンプト法は不要なトークンを削除して情報密度を高め、ソフトプロンプト法はテキストを少数の特殊トークンに変換します。
- 両者は直交的な手法であるため、組み合わせることで圧縮率の向上が期待できます。
- ただし、ハードプロンプトとソフトプロンプトの処理は並列化が難しく、全体的なエンコード効率に影響を与える可能性があります。
- マルチモーダルLLMからの洞察
- ソフトプロンプト法は、自然言語と圧縮言語間のモダリティ統合と捉えることができ、マルチモーダルLLMの知見を応用する余地があります。
- 現在は自己注意による情報圧縮に依存していますが、相互注意やクロスアテンションなど他のアーキテクチャの利用も未探求です。
- 画像埋め込みの手法(自己注意と相互注意)を応用し、圧縮モデルの改善や新たな活用方法が見つかる可能性があります。
- また、画像エンコーダが画像埋め込みを自然言語埋め込みに一致させる訓練プロセスは、プロンプト圧縮にも適用可能です。
まとめ
今回は、ハードプロンプトとソフトプロンプトの両方の観点から、これまでのプロンプト圧縮手法を包括的に概観しました。これらのモデルの技術的なアプローチに加えて、圧縮プロセスに対する異なる視点やその応用についても探求しました。さらに、既存のプロンプト圧縮手法の課題を紹介し、将来の発展方向性を確認しました。
プロンプト圧縮は、自然言語処理において非常に重要な技術であり、今後もさらなる発展が期待されます。
More Information:
- arXiv:2410.12388, Zongqian Li, Yinhong Liu, Yixuan Su, Nigel Collier, 「Prompt Compression for Large Language Models: A Survey」, https://arxiv.org/abs/2410.12388