Skip to content

SkyWork 系列

📅 发表于 2025/01/02
🔄 更新于 2025/01/02
👁️ -- 次访问
📝 0 字
0 分钟
skywork
#SkyRL-v0
#Skywork-SWE
#SWE任务收集
#执行测试

(2512) Skywork-R1V4 (多模态)

🌺 论文摘要

论文摘要

相关链接

效果

核心方法

重要结论

关键贡献

(2511) SkyRL-Agent

🌺 论文摘要

论文摘要

问题背景

❓问题背景

问题背景

核心方法

📕核心方法

核心方法

算法实验

实验设置

✍️实验设置

实验设置

基础模型

训练任务/数据

评测任务/数据

算法/策略

超参

关键结果

🍑关键结果

关键结果

未来方向

⛳ 未来方向

未来方向

(2506) Skywork-SWE

🌺 论文摘要

Skywork-SWE 摘要

参考链接

核心方法

  • 1套SWE任务收集构建方法Repo+PR 收集 + 统一环境安装 + 执行验证等。
    • 基于真实环境执行来做数据验证3层增量式镜像 (基础+环境+实例镜像)。
    • Skywork-SWE数据10k任务 + 2.5k仓库
    • AgentSFT蒸馏:8k轨迹数据

模型效果 (Qwen-2.5-Coder-32B)

  • 闭源LLM蒸馏 轨迹数据SFTSWE-verified 达36分TTS, Best-of-347分

重要结论

  • SWE Data-Scaling, Test-Time-Scaling, 轮数Scaling Law 得到验证。
  • 经过单元测试验证的数据SWE-smith合成数据 靠谱,提升6.8%

关键贡献

  • 开源数据和模型SkyWork-SWE-32B。

问题背景(SWE任务挑战+SWEAgent)

❓问题背景

代码任务

代码生成

  • 竞赛代码、一次性生成,self-contained
  • 简答代码(HumanEval/MBPP) -> 竞赛代码(LiveCodeBench) -> 推理LLM.

SWE

  • bug定位修改源代码执行测试,多轮迭代式解决问题。使用工具长上下文依赖

  • 一些工作:

    • SWE-Bench-extra:扩展了6k python数据,无环境。

    • SWe-Dev:测试用例合成pipeline。

    • SWE-Gym:有环境,仅2k数据;

    • SWE-Fixer/SWE-Smith:注入验证合理的bug,合成F2P实例,产生几k SWE任务实例。

SWE 挑战

挑战

  • 环境验证不足:可执行环境 + 验证过的单元测试 + 代码执行套件(统一执行脚本)
  • 高质量数据不足量大质低 + 质高量小
    • SWE-Dev:数据多,但缺环境和单元测试
    • SWE-Gym:有环境,但仅11仓库
  • SWE-Scaling Law 尚不清晰:SWE数据量小,Scaling Law尚未得到验证,增加数据是否带来效果提升?
SWE CodeAgent

全能派 Rich ACI

  • OpenHands
    • 提供编辑器 + 命令行终端 + 网页搜索,agent在沙箱环境 自主迭代式完成任务
    • 优点:上限高,能处理复杂问题,更像人。
    • 缺点:成本高,容易陷入死循环
  • SWE-Agent
    • 使用Agent-Computer-Interface,提供编辑器+shell+测试运行器给LLM。

专有精细派

  • 专有Pipeline
    • Agentless:固定的定位-修复-验证 pipeline
    • Moatless:主张有效上下文检索才是关键。
  • 检索微调
    • SWE-fixer:由粗到细,文件检索和编辑解耦。

📕核心方法

SWE任务收集构建方法和轨迹蒸馏

SWE任务收集构建和轨迹蒸馏流程:

Repo+PR数据收集和环境预过滤

RepoPR数据收集&环境安装预过滤

Repo 收集

  • 通过Github DeveloperAPI 收集Metadata信息 (name/star/pull数量等)。
  • 过滤缺字段repo,数量:15k -> 8k

PR 收集

  • 拉取Repo的PR,只选这3类PR
    • Merged:关键字closes/fixes/resolves#
    • Linked to Issue:必须解决了某个Issue
      • base_commit+gold_patch + test_patch
    • 修改了测试文件:只保留修改了测试相关文件的PR
  • 146w 任务

环境安装预过滤

  • 尝试去安装环境过滤123w,最终共23k 任务

环境准备和执行验证

基于执行的验证

统一命令配置

  • 环境初始化依赖安装测试命令

  • 默认python3.9,系统包gcc/g++/make/pkg-config,

  • 依赖:requrements.txt ,

  • 测试包:pytests/hypothesis/mock/setuptools

  • 测试命令:pytest

环境安装:三层增量镜像

  • 每个实例一个docker实例镜像

  • 基础镜像:ubuntu22.04,apt安装系统包,安装miniconda

  • 环境镜像Repo复用setup_env.sh,安装requirements.txt和额外开发测试包

  • 实例镜像增量构建

    • 执行setup_repo.sh,克隆仓库,checkout特定commit_id
    • 安装pre_sintall列出的系统依赖

执行验证

  • 实例进行过,执行测试:
    • Empty测试:复现bug,应用empt-patch,得到:empty-FAIL, empty-PASS
    • Gold测试:验证修复,应用gold-patch,得到:gold-FAIL, gold-PASS
  • 指标计算
    • FAILE_TO_PASS:empty-FAIL & gold-PASS
    • PASS_TO_PASS:empty-PASS & gold-PASS
    • PASS_TO_FAIL:empt-PASS & gold-FAIL

SkyWork-SWE 数据集分析

SkyWork-SWE 数据分析

最终数据

  • 2.5k 仓库10k python任务实例
  • 每实例:NL描述 + 可执行环境 + 单元测试

特点

  • 数量大:2.5k仓库,10k实例
  • 难度高:平均编辑2.5个文件74.2行代码10.2个 FAIL2PASS
  • 编辑复杂度:难度适中,60%多文件编辑,50%实例编辑1-3个代码库,70%少于50行代码编辑
  • 时间分布:2013-2025,但89%都是2018-2024这6年。
  • 分布长尾:

AgentSFT 轨迹数据蒸馏

AgentSFT 轨迹数据蒸馏
  • 轨迹rollout/模型蒸馏

    • 多个私有代码LLM + OpenHands v0.32.0,最多100轮
    • 一系列模型,模型-解决率依次Gemini2.5-Pro (20),GPT-4.1(18),o3-mini(15)...
  • 轨迹验证/过滤

    • 应用patch做测试通过所有测试才算成功。仅保留正确数据。
  • 最终:8k 轨迹数据

实验设置

✍️实验设置

实验设置

基础模型

  • Qwen-2.5-Coder-32B-Instruct

训练任务/数据

  • 8k SFT轨迹蒸馏数据,来自 2.5k仓库 + 10k python实例

评测任务/数据

  • SWE-Verified
  • Skywork-SWE-32B:rollout=1,直接去评测,38分
  • Skywork-SWE-32B (+TTS):rollout=8,使用Critic 打分选最优轨迹评测,47分

算法/策略

  • SFT,OpenHands agent

超参

  • 8 H100 - 训练12h, 3epoch,总计8000轮
  • Adam, cosine decay, weight decay=0.01

关键结果 (Qwen2.5-Coder-32B)

🍑关键结果

SkyWork-SWE-32B 关键结果

效果

  • Qwen2.5-Coder-32B SFT后,SWE达38分,使用TTS(best-of-8)47分

重要结论

  • SWE Scaling Law 验证

    • Data Scaling:数据增加,效果增加,6.4 -> 38
    • Test-Time Scaling:Best-of-838 -> 47
    • 轮数 Scaling:10步:2875步:37,100步:38。75步以后收益小。
  • 经过单元测试验证的数据比SWE-smith合成数据靠谱,提升6.8%

关键贡献

  • 1套SWE Data Pipeline:自动构建大规模高质量SWE任务数据
  • SkyWork-SWE-32B:开源。

未来方向

⛳ 未来方向

未来方向
  • 自动为测试配置环境的agent
  • 上下文限制:目前仅32k需扩展至128k序列并行
    • 但交互超过50轮时,会超过32k。
  • 不同OpenHands版本Prompt不同,建议使用最新版本。

(2506) SkyRL-V0.1 (RL框架)

摘要

(2505) SkyRL-v0

摘要背景

SkyRL 摘要

参考链接

模型效果

  • 基于Qwen3-14B,从SWE-Gym中选择少量数据,做RL训练,SWE达21分

核心方法

  • 环境:远程sandbox server + 异步RolloutOpenHands scaffold + CodeAct Agent

❓问题背景

问题背景

背景

  • 现有RL任务大多单轮、短期、无状态交互(简单搜索/代码等)。
  • 复杂真实任务需要高级agent能力
    • 复杂任务:SWE-BenchWebDevWeb浏览
    • 能力:多工具调用code测试长期规划

挑战

  • Agentic RL 训练具有挑战
    • 训练需要:高速环境执行高效rollout
    • 稳定训练Long Horizon的RL算法

📕核心方法

Sandbox环境和Rollout优化

SandboxServer + Rollout加速优化

环境扩展:远程sandbox server

  • 使用远程sandbox server,环境和训练分开,确保gpu高效利用
  • Kubernets部署Sever:16CPU节点,运行80-100个容器,且没有稳定性问题。
  • 开源。

Rollout加速优化

  • 背景:agent和环境多次交互很耗时
    • 如OpenHands+SWE 需要20-50轮,python测试很耗时。
  • 方法1:异步rollout
    • 每个轨迹独立进行,避免全局同步。
  • 方法2:三阶段Producer-Consumer Pipeline
    • 三个队列:初始化(准备环境) -> 运行 -> 评估(计算奖励)
    • Asyncio:动态创建任务s,异步推送,提高系统吞吐量

RL设计

RL设计

任务设计(Rollout/AgentLoop)

  • CodeAct + OpenHands scaffold
  • 三个Action:execute_bash + finish + str_replace_editor
  • AgentLoop循环,直到任务完成。

奖励设计

  • Rule:应用Patch,测试全部通过1分其他0分

数据集

2种常见失败模式

  • 陷入死循环:模型连续3轮执行相同动作
  • 没有结束动作:

实验结果 (Qwen3-14B)

✍️实验配置

实验配置

模型

  • OpenHands-7B-Agent -> SkyRL-Agent-7B-v
  • Qwen3-8B(非推理) -> SkyRL-Agent-8B-v0
  • Qwen3-14B(推理) -> SkyRL-Agent-14B-v0

训练数据

  • SkyRL-v0-80/220/293-data,从SWE-Gym 选的。

框架

  • OpenHands scaffold + CodeAct Agent

超参

  • 32k,50轮。

🍑关键结果

  • 14B 达21.6%

三个尺寸模型:7B、8B、14B,四种实验方法:Zero-Shot, Zero-Shot(推理)、SFT、RL。具体如下表所示:

Resolved RateTechnique
Qwen3-14B18%Zero-Shot (Thinking)
SkyRL-Agent-14B-v0 (Best👍)21.6%Outcome based Reinforcement Learning
Qwen3-8B3.6%Zero-Shot (Non thinking)
SkyRL-Agent-8B-v09.4%Outcome based Reinforcement Learning
Qwen2.5-Coder-Instruct1.8%Zero-Shot
OpenHands-7B-Agent11.0%Supervised Fine-tuning
SkyRL-Agent-7B-v014.6%Outcome based Reinforcement Learning
总访客数:   ·   总访问量:
PLM's Blog @ 2016 - 2026