上海交通大学とスタンフォード大学が提案する「長大コード圧縮の決定版」:性能維持で5.6倍の超圧縮を実現

LLMが何万行にも及ぶレガシーコードに直面すると、ウィンドウサイズが大きくなるほど「近視」状態に陥り、API費用が高騰し、推論遅延が急増し、重要な依存関係が埋もれてしまうことがよくあります。

これらの課題に対処するため、上海交通大学、スタンフォード大学、および重慶大学の研究チームは、革新的なコード圧縮フレームワークであるLongCodeZipを提案しました。これは、熟練した外科医のように冗長なコードを正確に「切除」し、最も核となるコンテキスト情報のみを残します。最も重要な点として、このフレームワークは訓練不要(training-free)、モデル非依存(model-agnostic)、かつプラグアンドプレイ(plug-and-play)です。

画像

この論文は、CCF-AトップカンファレンスであるASE 2025に採択され、発表当日にはHugging Face Daily Papersのトップにランクインしました。

コアアイデア:「不確実性」を低下させるコードを保持する

AMIと従来の類似度マッチング手法の比較

AMIと従来の類似度マッチング手法の比較

LongCodeZipの理念はシンプルかつ深遠です。あるコードスニペットが有用であるかどうかは、それがモデルがユーザーの指示をよりよく理解するのに役立つかどうかによって決まります。

研究者らは、この点を測定するために近似相互情報量(Approximated Mutual Information, AMI)という指標を使用しました。具体的には、モデルが特定のコードを見た後、ユーザーの指示(プロンプト)を予測する際のパープレキシティ(困惑度)がどれだけ低下するかを計算します。パープレキシティが低いほど、モデルの指示に対する「不確実性」が小さいことを意味し、そのコードが指示と強い関連性を持つことを示します。この手法は、単純なテキストの類似性よりもはるかに深く論理的な依存関係を捉えることができます。

これに基づき、LongCodeZipは2段階の圧縮プロセスを設計しました。

LongCodeZipの2段階コード圧縮プロセス

LongCodeZipの2段階コード圧縮プロセス

第一段階:粗粒度圧縮 (Coarse-grained Compression)

まず、フレームワークはコードベース全体を関数またはクラスの境界で分割し、各コードブロックのセマンティックな完全性と構文的な有効性を保証します。次に、前述のAMI指標を利用して、ユーザーの指示に対する各コードブロックの関連性をスコアリングし、順位付けします。

最後に、事前に設定された「粗い予算」内で、ランキングが最も高い関数とクラスを貪欲に選択します。選択されなかったコードは、短いプレースホルダー(コメントや省略記号など)に置き換えられます。これにより、コンテキスト長を大幅に削減しつつ、コード全体の構造を保持します。

第二段階:細粒度圧縮 (Fine-grained Compression)

細粒度圧縮プロセスの例

細粒度圧縮プロセスの例

選別された主要な関数の内部で、LongCodeZipはさらに詳細な「剪定」を行います。

1. パープレキシティに基づくブロック分割:関数内のコード行は原子単位と見なされます。あるコード行のパープレキシティがその隣接行に対して急激なピークを示した場合、それは通常、新しい意味ブロックの開始(例:新しいロジック、重要な条件分岐、外部API呼び出し)を意味します。

2. 適応的な予算配分:選択されたすべての関数が等しく重要であるわけではありません。フレームワークは、各関数の第一段階のAMIスコアに基づいて、適応的なトークン予算を割り当てます。これにより、より重要な関数にはより多くの詳細が保持されます。

3. ナップサック問題による最適選択:各関数の予算制限内で、どの意味ブロックを選択すれば情報を最大限に保持できるかという問題は、古典的な0/1 ナップサック問題に帰着します。動的計画法を用いてこれを解くことで、LongCodeZipは限られた予算内で情報密度が最も高い圧縮後コードを組み合わせることができます。

実験効果:5.6倍の圧縮、効率と性能の両立

研究チームは、コード補完、モジュール要約、リポジトリQA(RepoQA)の3つの典型的なタスクでLongCodeZipを包括的に評価しました。テストモデルには、主要なオープンソースモデル(DeepSeek-Coder-6.7B、Qwen2.5-Coder-7B、Seed-Coder-8Bなど)とクローズドソースモデル(GPT-4o、Claude-3.7-Sonnet)が含まれています。

LongCodeZip 圧縮効果

LongCodeZip 圧縮効果

結果は非常に注目に値します。

  • 最大5.6倍の圧縮を実現し、性能は低下するどころか向上:大量のノイズ情報がフィルタリングされたため、モデルは完全なコンテキストを処理する場合よりも、圧縮されたコンテキストを処理する方が優れたパフォーマンスを示しました。
  • コストと遅延の大幅な削減:Qwen2.5-Coder-7Bを例にとると、コード補完タスクでの生成時間が15.7秒から6.6秒に短縮され、入力トークンコストが約77%削減されました。圧縮プロセス自体にかかる時間はわずか2.6秒です。
  • 驚異的なクロスモデル汎化能力:実験により、圧縮タスクの実行にわずか0.5Bパラメータの小規模モデルを使用し、その圧縮されたコンテキストを強力なメインモデルに渡した場合でも、最終的な性能はほとんど失われないことが証明されました。これは、ユーザーが品質を犠牲にすることなく、圧縮プロセスの計算リソースを大幅に節約できることを意味します。

応用シナリオ

LongCodeZipのプラグアンドプレイ特性は、その応用範囲を非常に広げています。

  • クロスファイルコード補完:開発者の意図が複数のファイルにまたがり、モデルのコンテキストウィンドウがプロジェクト全体を収容できない場合、LongCodeZipは効率的に「黄金のコンテキスト」を構築できます。
  • リポジトリレベルのコードQA:何千行ものコードを手動でロードして読むことなく、大規模なコードベース内の特定の実現箇所を迅速に特定し、理解できます。
  • 大規模モジュール要約とコードレビュー:コードレビュアー(人間であれAIであれ)のために高度に凝縮されたコンテキストを用意し、モジュールの核心的なロジックを素早く把握するのを助けます。

結論として、LongCodeZipは、情報理論に基づいた斬新な手法を通じて、大規模言語モデルが長いコードコンテキストを処理する際の核となる問題を見事に解決し、大規模ソフトウェアエンジニアリングプロジェクトへの実用化における大きな障害を取り除きました。

論文リンク:https://arxiv.org/abs/2510.00446

プロジェクトアドレス:https://github.com/YerbaPage/LongCodeZip

メインタグ:コード圧縮

サブタグ:大規模言語モデルコンテキストウィンドウAI研究ソフトウェア工学


前の記事:プリンストン大学陳丹琦グループの新作:RLHFでは不十分、RLVRには限界?RLMTが第三の道を切り開く

次の記事:細胞世界の「高速道路」:微細な溝が混乱した細胞集団を自発的に整列させ、秩序へと導くメカニズムを解明

短いURLをシェア