模型概述
模型特點
模型能力
使用案例
🚀 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 許可證。



