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檔案。
相關
- 專案
- 專案
- 專案
- 專案