模型简介
模型特点
模型能力
使用案例
🚀 Skywork-SWE
Skywork-SWE-32B 是由 Skywork AI 开发的代码代理模型,专为软件工程(SWE)任务设计。该模型在多个关键指标上表现出色,能有效解决软件工程中的代码生成、问题修复等问题,为软件开发提供高效的支持。
✨ 主要特性
Skywork-SWE-32B 是由 Skywork AI 开发的代码代理模型,专为软件工程(SWE)任务而设计。它在多个关键指标上展现出强大的性能:
- Skywork-SWE-32B 在 SWE-bench Verified 基准测试中达到了 38.0% 的 pass@1 准确率,超越了之前基于 OpenHands 代理框架、以 Qwen2.5-Coder-32B 为基础的开源最优大语言模型(LLMs)。
- 结合测试时缩放技术后,其性能进一步提升至 47.0% 的准确率,超过了之前参数少于 320 亿的模型的最优结果。
- 我们清晰地展示了大语言模型在软件工程能力方面的数据缩放定律现象,在收集的 8209 条训练轨迹中,没有出现饱和迹象。
我们还引入了一种高效且自动化的软件工程数据收集流程,最终创建了 Skywork-SWE 数据集——这是一个大规模、高质量的数据集,具有全面的可执行运行时环境。详细描述可在我们的 技术报告 中查看。
📋 模型详情
属性 | 详情 |
---|---|
模型名称 | Skywork-SWE-32B |
骨干大语言模型 | 🤖 Qwen2.5-Coder-32B-Instruct |
HuggingFace 链接 | 🤖 Skywork-SWE-32B |
技术报告 | 技术报告 |
博客 | 博客 |
📊 评估
使用 OpenHands v0.32.0 代码代理框架,基于 Qwen2.5-Coder-32B 的大语言模型在 pass@1 准确率方面的数据缩放定律。Skywork-SWE-32B 显著优于之前基于 Qwen2.5-Coder-32B 的大语言模型,在不使用验证器或多次滚动的情况下实现了最高的 pass@1 准确率。
结合测试时缩放技术后,Skywork-SWE-32B 的准确率进一步提升至 47.0%,超过了之前参数少于 320 亿的模型的最优结果。
📈 性能总结
- Skywork-SWE-32B:
SWE-bench 验证分割的提交总结
==================================================
解决了 190 个实例 (38.0%)
==================================================
按仓库解决情况
- astropy/astropy: 4/22 (18.18%)
- django/django: 99/231 (42.86%)
- matplotlib/matplotlib: 9/34 (26.47%)
- mwaskom/seaborn: 0/2 (0.0%)
- pallets/flask: 1/1 (100.0%)
- psf/requests: 4/8 (50.0%)
- pydata/xarray: 7/22 (31.82%)
- pylint-dev/pylint: 2/10 (20.0%)
- pytest-dev/pytest: 9/19 (47.37%)
- scikit-learn/scikit-learn: 17/32 (53.12%)
- sphinx-doc/sphinx: 13/44 (29.55%)
- sympy/sympy: 25/75 (33.33%)
==================================================
按时间解决情况
- 2013: 2/3 (66.67%)
- 2014: 2/2 (100.0%)
- 2015: 0/1 (0.0%)
- 2016: 2/2 (100.0%)
- 2017: 5/16 (31.25%)
- 2018: 7/24 (29.17%)
- 2019: 46/98 (46.94%)
- 2020: 43/108 (39.81%)
- 2021: 27/86 (31.4%)
- 2022: 35/102 (34.31%)
- 2023: 21/58 (36.21%)
- Skywork-SWE-32B + TTS (Bo8):
SWE-bench 验证分割的提交总结
==================================================
解决了 235 个实例 (47.0%)
==================================================
按仓库解决情况
- astropy/astropy: 8/22 (36.36%)
- django/django: 115/231 (49.78%)
- matplotlib/matplotlib: 15/34 (44.12%)
- mwaskom/seaborn: 0/2 (0.0%)
- pallets/flask: 1/1 (100.0%)
- psf/requests: 3/8 (37.5%)
- pydata/xarray: 14/22 (63.64%)
- pylint-dev/pylint: 4/10 (40.0%)
- pytest-dev/pytest: 10/19 (52.63%)
- scikit-learn/scikit-learn: 22/32 (68.75%)
- sphinx-doc/sphinx: 12/44 (27.27%)
- sympy/sympy: 31/75 (41.33%)
==================================================
按时间解决情况
- 2013: 1/3 (33.33%)
- 2014: 1/2 (50.0%)
- 2015: 0/1 (0.0%)
- 2016: 2/2 (100.0%)
- 2017: 6/16 (37.5%)
- 2018: 9/24 (37.5%)
- 2019: 52/98 (53.06%)
- 2020: 48/108 (44.44%)
- 2021: 40/86 (46.51%)
- 2022: 46/102 (45.1%)
- 2023: 30/58 (51.72%)
💻 使用示例
安装 vLLM 包
# 安装 vLLM 版本 0.9.0.1。
# 例如,如果你的 CUDA 版本是 12.8,请使用以下命令:
pip install vllm==0.9.0.1 --extra-index-url https://download.pytorch.org/whl/cu128
启动服务器以部署 Skywork-SWE-32B
vllm serve ${MODEL_PATH} —served-model-name ${SERVED_MODEL_NAME} --host 0.0.0.0 --port 8000 --gpu-memory-utilization 0.95 --tensor-parallel-size 8
由于我们的模型有 320 亿个参数,支持 32K 的上下文长度,我们建议使用至少 2 块配备足够显存的 GPU 来启动模型服务器,以确保高效推理。
设置 OpenHands 框架
git clone https://github.com/All-Hands-AI/OpenHands.git
cd OpenHands
git checkout tags/0.32.0
make build
OpenHands 的官方文档:使用 OpenHands SWE-Bench Docker 镜像进行 SWE-Bench 评估
创建相应的配置文件:
[core]
workspace_base="./workspace"
[llm.my-oss-model]
model = "openai/${SERVED_MODEL_NAME}"
base_url = "http://0.0.0.0:8000/v1"
api_key="vllm"
max_message_chars=32768
max_input_tokens=32768
max_output_tokens=8192
log_completions=true
temperature=0.0
如果你想使用测试时缩放技术(一种基于批评模型的 Best-of-N 方法)运行 OpenHands 代理,请参考 博客 获取详细说明。你需要切换到 feature/llm-critic 分支,并相应地部署 批评模型。此外,你需要在配置文件中添加以下参数:
use_critic=true
critic_model="critic_model"
critic_base_url="**********"
critic_api_key="************"
critic_num_candidates=2
在 SWE-Bench 实例上进行滚动测试
./evaluation/benchmarks/swe_bench/scripts/run_infer.sh [model_config] [git-version] [agent] [eval_limit] [max_iter] [num_workers] [dataset] [dataset_split]
# 示例
./evaluation/benchmarks/swe_bench/scripts/run_infer.sh llm.my-oss-model HEAD CodeActAgent 500 100 1 princeton-nlp/SWE-bench_Verified test
评估生成的补丁
./evaluation/benchmarks/swe_bench/scripts/eval_infer.sh \
./evaluation_outputs/outputs/princeton-nlp__SWE-bench_Lite-test/CodeActAgent/my-oss-model_maxiter_100_N_v0.32.0-no-hint-run_1/output.jsonl
🙏 致谢
我们要感谢 OpenHands 和 AllHands Critic 仓库的贡献者,感谢他们的开放研究和宝贵贡献。
📚 引用
如果你在研究中使用了 Skywork-SWE,请考虑使用以下 BibTeX 条目引用我们的工作:
@misc{skywork-swe,
title={Skywork-SWE: Unveiling Data Scaling Laws for Software Engineering in LLMs},
author={Liang Zeng, Yongcong Li, Yuzhen Xiao, Changshi Li, Chris Yuhao Liu, Rui Yan, Tianwen Wei, Jujie He, Xuchen Song, Yang Liu, and Yahui Zhou},
howpublished={\url{https://quixotic-sting-239.notion.site/eb17f379610040ceb54da5d5d24065bd}},
note={Notion Blog},
year={2025},
}
📄 许可证
本项目采用 Apache-2.0 许可证。



