# BigCode Evaluation Harness

> 仓库地址：https://github.com/bigcode-project/bigcode-evaluation-harness
> 作者/组织：BigCode Project (HuggingFace / ServiceNow)
> 成熟度：production
> 分析日期：2026-05-06

## 一句话总结
BigCode 项目为代码生成模型专门构建的评测框架，支持 HumanEval、MBPP、DS-1000 等代码 benchmark，提供沙盒执行和 pass@k 计算。

## 项目定位与架构
BigCode Evaluation Harness 是 lm-evaluation-harness 在代码领域的专用版本，针对代码生成的特殊需求（代码执行、测试用例验证、pass@k 统计）进行了深度定制。架构包括：(1) **Task 定义**——代码生成 benchmark 的标准化实现；(2) **Code Execution Sandbox**——安全执行生成代码的隔离环境；(3) **Sampling & Evaluation**——多次采样计算 pass@k；(4) **Model Integration**——支持 HF Transformers 和 API 模型。

## 关键技术特性
- **代码执行沙盒**：在 Docker 容器中安全执行生成的代码
- **pass@k 计算**：标准化的 unbiased pass@k estimator 实现
- **多 Benchmark 支持**：HumanEval、HumanEval+、MBPP、APPS、DS-1000、MultiPL-E
- **多语言评测**：通过 MultiPL-E 支持 Python 以外的编程语言
- **Temperature Sampling**：支持高 temperature 多次采样以计算 pass@k
- **Infilling 评测**：支持代码填空（fill-in-the-middle）任务

## 设计亮点与创新
1. **执行-验证范式**：不是比较字符串相似度，而是实际运行代码并检查测试通过
2. **统计严谨的 pass@k**：使用无偏估计器而非简单的经验频率
3. **安全沙盒设计**：生成代码可能有恶意行为，需要严格隔离
4. **多语言翻译评测**：通过 MultiPL-E 将 Python benchmark 自动翻译到其他语言

## 局限性与风险
- 测试用例覆盖有限——通过测试 ≠ 正确实现
- HumanEval/MBPP 可能已被训练数据污染
- 仅评测函数级代码生成，不覆盖项目级/系统级编程
- Docker 执行环境增加了评测的基础设施复杂度

## 与生态系统的关联
- 是 BigCode Leaderboard 的官方评测工具
- 设计灵感来自 lm-evaluation-harness 但针对代码领域深度定制
- 与 Copilot Arena 互补——前者自动化评测能力，后者收集人类偏好
- 评测了 StarCoder、CodeLlama、DeepSeek-Coder 等主要 code LLM
