alexziskind1/codeneedle

A long-context code retrieval and reproduction benchmark.

何を解決するか

CodeNeedle は、長文脈ウィンドウにおける LLM の「位置記憶」を測定するためのベンチマークです。単純な名前付きエンティティの検索とは異なり、モデルが大規模なソースコードコーパスをコンテキストに含めた状態で、特定の関数の本体の最初の N 行を正確に正確に再現できるかをテストします。

動作方法

このツールは、ソースコードコーパス(Python または JavaScript)を LLM のコンテキストに読み込み、関数の正確なシグネチャに基づいてその本体を再現するようにモデルにプロンプトします。その後、モデルの出力を、正解のソースコードと比較し、空白行を無視する(スコアを誇張しないようにする)スコアリングポリシーを使用しますが、コメントやドキュメント文字列をオプションで含めることも可能です。このプロジェクトは、実世界のコーパス(例:jQuery や Python の http_server)と、「新規」に合成的に生成されたコーパスを提供しており、モデルが訓練データの記憶に依存するのを防ぎます。

対象ユーザー

  • AI研究者および開発者:LLM の有効なコンテキストウィンドウや検索能力をテストするため。
  • モデル評価者:異なるモデルアーキテクチャ、量子化、推論能力(例:推論モデル vs. 非推論モデル)を比較するため。

特徴

  • 新規コーパス:訓練データの再現ではなく、不透明な識別子を含む決定論的に生成された Python コードを含む。
  • クラッシュ対策:各クエリ後に結果をアトミックに書き込むため、推論の数時間分を失うことなく再開可能。
  • 厳格なスコアリング:空白行を除外し、インデントの違いを処理する、洗練されたスコアリングシステムを実装。
  • 可視化:Plotly を使用したダッシュボードビルダーを提供し、異なるモデルやコーパス間でのパフォーマンスを視覚的に比較可能。
  • 多言語対応.py, .js, .mjs, .cjs ファイルをサポート。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト