CWM模型评估实战:在SWE-bench、LiveCodeBench和MATH基准上复现SOTA结果
【免费下载链接】cwmResearch code artifacts for Code World Model (CWM) including inference tools, reproducibility, and documentation.项目地址: https://gitcode.com/gh_mirrors/cwm2/cwm
CWM(Code World Model)是一个强大的代码世界模型,提供了完整的推理工具、可复现性和文档。本文将详细介绍如何在SWE-bench、LiveCodeBench和MATH三大基准上复现CWM的SOTA结果,帮助你快速上手模型评估流程。
1. 准备工作:环境搭建与依赖安装
要开始CWM模型评估,首先需要准备好环境。确保你的系统满足以下要求:
- Python 3.8+
- PyTorch 1.10+
- 足够的GPU内存(推荐8GB以上)
1.1 克隆仓库
首先克隆CWM项目仓库:
git clone https://gitcode.com/gh_mirrors/cwm2/cwm cd cwm1.2 安装依赖
使用以下命令安装项目依赖:
pip install -r requirements.txt如果你使用conda环境,可以通过environment.yaml文件创建环境:
conda env create -f environment.yaml conda activate cwm2. SWE-bench Verified评估:代码修复能力测试
SWE-bench Verified是评估模型代码修复能力的重要基准。CWM在该基准上取得了优异的成绩,你可以通过以下步骤复现结果。
2.1 下载数据集
使用提供的脚本下载SWE-bench Verified数据集:
python evals/scripts/download_lcb.py \ dataset=princeton-nlp/SWE-bench_Verified \ output_dir=data/swe-bench-verified2.2 转换数据格式
将SWE-bench Verified数据集转换为SWE-RL格式:
python evals/scripts/swerl/format_swerl.py \ dataset=princeton-nlp/SWE-bench_Verified \ input_path=data/swe-bench-verified \ output_path=data/swe-bench-verified-swerl2.3 运行评估
使用快速评估脚本运行SWE-bench Verified评估:
python evals/scripts/swerl/eval_cli.py \ eval_file=data/swe-bench-verified-swerl/all_preds.jsonl \ output_dir=results/swe-bench-verified \ num_threads=16这个评估脚本基于Modal构建,在足够的线程下(如16线程),整个SWE-bench Verified评估可以在5分钟内完成。评估逻辑位于evals/scripts/swerl/eval_cli.py,核心评估代码改编自SWE-bench官方实现。
3. LiveCodeBench评估:实时代码生成挑战
LiveCodeBench(LCB)是一个评估模型实时代码生成能力的基准。CWM在该基准上表现出色,以下是复现步骤。
3.1 下载LCB数据集
使用专用脚本下载LiveCodeBench数据集:
python evals/scripts/download_lcb.py \ dataset=princeton-nlp/LiveCodeBench \ output_dir=data/livecodebench3.2 配置评估参数
LiveCodeBench评估需要特定的配置,你可以在evals/configs/eval_lcb.yaml中调整参数,如模型路径、推理参数等。
3.3 运行LCB评估
运行LiveCodeBench评估:
python evals/main.py \ --config evals/configs/eval_lcb.yaml \ --output_dir results/livecodebenchCWM的LCB评估环境实现位于cwm/rl/envs/envs/lcb.py,该环境支持单轮或多轮代码生成任务。值得注意的是,LiveCodeBench不进行浮点比较,这在评估代码中已做特殊处理。
4. MATH基准评估:数学推理能力测试
MATH基准包括MATH-500、AIME24和AIME25等数据集,用于评估模型的数学推理能力。CWM在这些数据集上取得了显著成果。
4.1 下载MATH数据集
使用以下命令下载MATH-500数据集:
python evals/scripts/download_math.py \ dataset=HuggingFaceH4/MATH-500 \ output_dir=data/math-500如果你想评估AIME24或AIME25,可以将dataset参数改为HuggingFaceH4/aime_2024或yentinglin/aime_2025。
4.2 运行MATH评估
运行MATH基准评估:
python evals/main.py \ --config evals/configs/eval_math.yaml \ --output_dir results/math \ dataset=HuggingFaceH4/MATH-500默认情况下,评估会为每个问题生成20个解答。使用8张H100 GPU,MATH-500评估大约需要5小时,AIME24/25则需要2小时左右。
5. 评估结果分析与可视化
评估完成后,你可以在指定的输出目录中找到结果文件。CWM提供了一些工具帮助你分析和可视化评估结果。
5.1 结果文件结构
评估结果通常保存在以下结构的目录中:
results/ ├── swe-bench-verified/ │ ├── metrics.json │ ├── all_preds.jsonl │ └── logs/ ├── livecodebench/ │ ├── metrics.json │ └── logs/ └── math/ ├── metrics.json └── logs/5.2 关键指标解读
各基准的主要评估指标包括:
- SWE-bench Verified:修复成功率、测试通过率
- LiveCodeBench:代码正确性、生成效率
- MATH:解题准确率、步骤完整性
你可以通过分析metrics.json文件来获取这些指标的具体数值。
6. 常见问题与解决方案
在评估过程中,你可能会遇到一些常见问题,以下是解决方案:
6.1 评估速度慢
如果评估速度较慢,可以尝试:
- 增加线程数(适用于SWE-bench评估)
- 使用更多GPU(适用于MATH和LCB评估)
- 调整批处理大小(在配置文件中修改)
6.2 内存不足
如果遇到GPU内存不足的问题:
- 减小批处理大小
- 使用模型并行(通过cwm/model/parallelize_transformer.py实现)
- 降低模型精度(如使用FP16)
6.3 结果与报告不符
如果你的评估结果与技术报告中的结果有较大差异:
- 检查是否使用了相同的模型版本
- 确认数据集版本一致
- 核对评估参数是否与配置文件中的默认值一致
7. 总结与下一步
通过本文的指南,你已经了解了如何在SWE-bench、LiveCodeBench和MATH基准上评估CWM模型。这些评估不仅可以验证模型性能,还能帮助你深入理解CWM的工作原理。
下一步,你可以尝试:
- 调整模型参数,探索性能优化空间
- 在自定义数据集上进行评估
- 对比不同模型在相同基准上的表现
CWM项目的评估代码持续更新,建议定期查看evals/README.md获取最新信息和功能。祝你在模型评估之旅中取得成功!
【免费下载链接】cwmResearch code artifacts for Code World Model (CWM) including inference tools, reproducibility, and documentation.项目地址: https://gitcode.com/gh_mirrors/cwm2/cwm
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考