🚀 Skywork-SWE
Skywork-SWE-32Bは、Skywork AIによって開発されたコードインテリジェントエージェントモデルで、ソフトウェアエンジニアリング(SWE)タスクに特化して設計されています。複数の重要な指標で優れた性能を発揮し、ソフトウェアエンジニアリングにおけるコード生成や問題修正などのタスクを効果的に解決し、ソフトウェア開発に効率的なサポートを提供します。

📖 技術レポート | 📝 ブログ
✨ 主な機能
- 高性能:Skywork-SWE-32Bは、SWE-bench Verifiedベンチマークテストで38.0%のpass@1正解率を達成し、以前のOpenHandsインテリジェントエージェントフレームワークに基づくオープンソースの最良モデルであるQwen2.5-Coder-32Bを上回りました。
- 性能のさらなる向上:テスト時スケーリング技術を組み合わせることで、正解率が47.0%に向上し、以前の320億パラメータ未満のモデルの最良結果を上回りました。
- データスケーリング法則の検証:大規模言語モデルにおけるソフトウェアエンジニアリング能力のデータスケーリング法則現象を明確に示し、収集された8209件のトレーニング軌跡で飽和の兆候は見られませんでした。
- 効率的なデータ収集パイプライン:効率的かつ自動化されたソフトウェアエンジニアリングデータ収集パイプラインを導入し、Skywork-SWEデータセットを作成しました。これは大規模で高品質で、完全な実行可能なランタイム環境を持つデータセットです。
📋 モデル詳細
📊 評価

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億パラメータ未満のモデルの最良結果を上回りました。
📈 性能まとめ
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パッケージのインストール
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
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
高度な使用法
テスト時スケーリング技術(批評モデルに基づくN選択方法)を使用してOpenHandsインテリジェントエージェントを実行する場合は、ブログを参照して詳細な説明を確認してください。feature/llm-criticブランチに切り替え、批評モデルを適切にデプロイする必要があります。また、設定ファイルに以下のパラメータを追加する必要があります:
use_critic=true
critic_model="critic_model"
critic_base_url="**********"
critic_api_key="************"
critic_num_candidates=2
🙏 謝辞
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ライセンスを採用しています。