コンテンツにスキップ

トークン圧縮トライアド

3つの戦略でより多くを、より少なく——無損失、非可逆、ストリーミング。


たとえ話:スーツケースを詰める3つの方法

Section titled “たとえ話:スーツケースを詰める3つの方法”

固定サイズのスーツケース(LLMのコンテキストウィンドウ)で旅行。入りきらないほどの荷物。3つの戦略:

  1. 真空圧縮袋 — 何も捨てずに全部圧縮。服はシワになるが無傷。完全に元に戻せる。
  2. 必需品だけ持つ — 実際に着るものだけ詰める。一部のアイテムは失うが、重要なものは残る。
  3. 先送り&ローテーション — めったに使わないものは先に送る。スーツケースには日常着のローリングセットを維持。必要に応じて交換。

DuDuClawは3つの戦略すべてを提供し、それぞれ異なるシナリオに適しています。


Meta-Token圧縮はテキスト内の繰り返しパターンを見つけ、短いシンボルに置換します——zipファイルの原理に似ていますが、トークンシーケンス向けに設計されています。

アルゴリズムは入力全体をスキャンし、最も頻繁に繰り返されるサブシーケンスを特定してメタトークンに置換。反復的に適用——1パス目の出力に新たな繰り返しが含まれていれば、2パス目でさらに圧縮できます。

  • 圧縮率:トークン数を27-47%削減
  • 最適:構造化・繰り返しコンテンツ(JSON、コード、テンプレート、会話ログ)
  • 不向き:繰り返しのない多様な自然言語
  • 可逆性:100%無損失——解凍で正確なオリジナルを再現
  • 速度:高速(LLM呼び出しなし、純粋なパターンマッチング)

LLMLingua-2は異なる哲学:フォーマットではなく、あまり意味を持たないトークンを除去してコンテンツを圧縮。

軽量モデルが重要度スコアリングを実行し、各トークンが全体的な意味にどれだけ貢献するかを評価。純粋に構造的なトークン(冠詞、前置詞、フィラーワード)は低スコア。セマンティックコンテンツを持つトークン(名詞、動詞、ドメイン用語)は高スコア。

  • 圧縮率:2-5倍の削減
  • 最適:自然言語、会話履歴、冗長な説明
  • 不向き:コード、構造化データ(すべてのトークンが重要)
  • 可逆性:不可逆——情報が失われる
  • 速度:中程度(軽量モデル評価が必要)

戦略3:StreamingLLM(KV-Cache管理)

Section titled “戦略3:StreamingLLM(KV-Cache管理)”

これはテキストの圧縮ではなく、モデルの内部メモリ(KV-cache)の管理。LLMには2種類の重要な位置があるという観察に基づきます:

  1. Attention sinks:会話の最初の数トークン。コンテンツに関係なく、LLMは不釣り合いにこれらに注目。アテンションメカニズムの「アンカー」。
  2. 最近のコンテキスト:最新のトークン。即座に関連する情報を含む。

その間のすべては注目度が低く、応答品質への貢献が少ない傾向。

完全な会話(10,000トークン):
[トークン1-4] [トークン5-8000] [トークン8001-10000]
^ ^ ^
Attention 中間セクション 最近のコンテキスト
sinks (注目度低い) (高関連性)
|
v
StreamingLLM KV-cache:
[トークン1-4] + [トークン8001-10000]
^ ^
保持された 保持された
sinks 最近のウィンドウ
中間セクションをキャッシュから退去。
  • 圧縮効果:理論上無限長の会話を実現
  • 最適:コンテキストウィンドウを超える超長会話
  • 不向き:中間コンテキストが重要な会話
  • 速度:非常に高速(キャッシュ退去ポリシーのみ)

3つの戦略は相互排他的ではありません。レイヤーとして使用可能:

構造化データを含む長い会話
|
v
ステップ1:構造化部分をMeta-Token圧縮
(JSONメッセージ、コードブロック → 27-47%小さく)
|
v
ステップ2:古い会話履歴をLLMLingua-2圧縮
(数時間前の冗長なやり取り → 2-5倍小さく)
|
v
ステップ3:StreamingLLMで残りのコンテキストを管理
(sinks + 最近のウィンドウを保持、残りを退去)
|
v
結果:200Kトークンを消費するはずの会話が
50Kに快適に収まる

コンテンツタイプに基づき適切な戦略を自動選択可能:構造化データにはMeta-Token、自然言語にはLLMLingua-2、進行中の会話にはStreamingLLM。


LLMの世界では、トークン=お金。入力トークンの40%削減は、そのリクエストのAPIコストの40%削減を意味。毎日数千のリクエストで、大きな節約になります。

入力を圧縮することで、同じコンテキストウィンドウ内でより多くの情報を考慮可能。100Kのコンテキストウィンドウが圧縮適用で実質150K-200Kに。エージェントがより多くの関連コンテキストにアクセスでき、応答品質が向上。

StreamingLLMが会話長のハードシーリングを除去。これなしでは、コンテキストウィンドウを超える会話は要約か切り捨てが必要で、情報が失われます。これがあれば、一貫性を保ちながら会話を無限に継続可能。

コンポーザブルなアーキテクチャ

Section titled “コンポーザブルなアーキテクチャ”

各戦略はMCPツール経由でアクセス可能な独立モジュール。運用者とエージェントが特定のシナリオに応じて個別にまたは組み合わせて呼び出せます。


  • Session Manager:長い会話の保存前に圧縮を適用。
  • 信頼度ルーター:圧縮されたプロンプトは消費トークンが少なく、ルーティング判断に影響。
  • CostTelemetry:圧縮率とそれによるコスト削減を追跡。
  • メモリシステム:古いエピソード記憶はアーカイブ前に圧縮される可能性。

コンテキストウィンドウは有限。会話は有限ではない。圧縮トライアドはDuDuClawにこのギャップを埋める3つの補完的ツールを提供します:Meta-Tokenはすべてを保持(構造)、LLMLingua-2は重要なものを保持(セマンティクス)、StreamingLLMは今必要なものを保持(新しさ)。3つが合わさることで、ハードな制限を管理可能なトレードオフに変えます。