alexziskind1/codeneedle

A long-context code retrieval and reproduction benchmark.

解決的問題

CodeNeedle 是一個設計用來衡量 LLM 在長上下文視窗中「位置記憶」能力的基準測試。與簡單的命名實體查找不同,它測試模型能否從被塞入上下文的大規模原始碼語料庫中,準確地逐字重現特定函數本體的前 N 行。

工作原理

該工具將原始碼語料庫(Python 或 JavaScript)載入至 LLM 的上下文中,並根據函數的精確簽名提示模型重現其函數本體。隨後,使用一種忽略空白行(以防止分數虛高)但可選擇包含註解和文件字串的評分策略,將模型輸出與真實原始碼進行對比。此專案提供了真實世界語料庫(如 jQuery 和 Python 的 http_server)以及「新生成」的合成語料庫,以防止模型依賴訓練資料記憶。

適用對象

  • AI 研究人員與開發者:測試 LLM 的有效上下文視窗與檢索能力。
  • 模型評估者:比較不同模型架構、量化方式或推理能力(例如,比較推理模型與非推理模型)。

特色亮點

  • 新語料庫:包含使用不透明識別碼決定性生成的 Python 程式碼,確保模型無法僅靠記憶訓練資料。
  • 崩潰安全:每次查詢後原子性地寫入結果,允許在中斷後恢復執行,避免數小時推論工作損失。
  • 嚴格評分:實作精細化評分系統,排除空白行並處理縮排差異,確保準確性。
  • 可視化:提供基於 Plotly 的儀表板建構器,用於視覺化與比較不同模型與語料庫的效能表現。
  • 多語言支援:支援 .py, .js, .mjs, 和 .cjs 檔案。

相關

  • 專案
  • 專案
  • 專案
  • 專案