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文件。
相关
- 项目
- 项目
- 项目
- 项目