Coding Agent 蒸餾模板通過編程 Agent 在遠程沙箱中實際修改代碼、重放測實驗證,產出 ShareGPT 格式的多輪 SFT 資料集,適合訓練小模型在真實代碼倉庫中定位問題、修改代碼並驗證結果。
模板概述
Coding Agent 蒸餾模板適用於需要訓練代碼能力模型的情境。編程 Agent 在遠程沙箱中實際修改代碼,改動隨後在全新沙箱中重放並執行測試,僅保留「改動確實使測試通過」的軌跡,產出 ShareGPT 格式的多輪 SFT 資料集。與類比工具調用的 Agent 蒸餾不同,這條資料線的每一步都伴隨實際執行與防作弊校正,適合訓練小模型在真實代碼倉庫中定位問題、修改代碼並驗證結果。
該模板僅支援一段式建立:蒸餾資料構建,不包含學生模型訓練階段。
Coding Agent 蒸餾模板的流水線包含以下步驟:
步驟 | 名稱 | 說明 |
1 | 沙箱執行 | 為每條種子建立獨立的遠程沙箱並解壓其 workspace,隨後由編程 Agent 按任務描述修改代碼,完整記錄互動軌跡。 |
2 | 重放與測實驗證 | 在全新沙箱中重放軌跡裡的檔案改動並執行種子指定的驗證命令,同時進行防作弊校正(是否修改測試檔案、用例是否全部跳過、環境錯誤是否被計為通過等),輸出分數與結論。 |
3 | 構建 SFT 資料集 | 把通過驗證的軌跡整理成 ShareGPT 格式的多輪對話訓練樣本。 |
操作步驟
登入PAI控制台,在左側導覽列選擇模型应用> 模型蒸馏(ModelDistill)。
單擊新建任务,跳轉到蒸馏模板頁簽,或者直接進入蒸馏模板頁簽。
選擇Coding Agent 蒸餾,單擊使用模板,進入新建蒸馏任务頁面。如下配置關鍵參數,其他保持預設。
進行基础配置:
任务名称:系統已自動填滿。
输出路径:指定一個有許可權訪問的OSS路徑,如
oss://mybucket.oss-cn-hangzhou-internal.aliyuncs.com/coding-agent-distill/。說明請確保為每個蒸餾任務建立獨立的輸出目錄,避免檔案被覆蓋。OSS Bucket需與PAI服務在同一地區。
單擊下一步,進入蒸馏数据构建:
教师模型:來源選擇Token 服務,選擇教師模型(如
qwen3.8-max),裁判模型複用教師模型,不選擇。数据集:選擇一個有許可權訪問的OSS目錄(注意:必須選擇整個目錄,不能僅選擇 JSONL 檔案)。可直接下載樣本使用。
蒸馏配置:已提供了預設配置,根據實際需要修改。重點關注以下參數:
coding_agent.harness.max_turns:單條種子的最大互動輪次,預設 150。需與 timeout 配套——每輪都要在沙箱裡改代碼、跑測試。
coding_agent.sandbox.endpoint:即時服務接入地址,需替換預留位置
${EAS_SANDBOX_ENDPOINT}為實際地址。coding_agent.sandbox.api_key:即時服務 API Token,需替換預留位置
${EAS_SANDBOX_API_KEY}為實際 Token。說明即時服務:Coding Agent 蒸餾需要 即時服務提供沙箱執行環境。在 PAI 控制台左側導覽列選擇 模型在线服务(EAS),切到 即时服务頁簽,建立即時服務後使用公用模板或者自建模板,在模板詳情頁右上方單擊SDK接入擷取接入地址(endpoint)和 API Token,用於替換上方蒸餾配置中的
${EAS_SANDBOX_ENDPOINT}和${EAS_SANDBOX_API_KEY}。詳情參見即時服務-快速入門。
计算资源:资源类型選擇通用计算,资源来源選擇公共资源,在任务资源中選擇合適的资源规格,如
ecs.c6.large。
單擊创建,然後在彈出的計費提醒中單擊确定,頁面將自動跳轉至任務詳情的基礎配置頁面,可在此跟蹤任務狀態。
配置說明
以下說明 Coding Agent 蒸餾模板的關鍵配置參數。基礎配置和資源配置與通用蒸餾一致,此處僅列出本模板特有的參數差異。
基礎配置
基礎配置包含任務名稱和輸出路徑兩項。輸出路徑為任務全部產物的輸出根目錄,蒸餾資料集也寫在該目錄下,無需再單獨指定資料集輸出路徑。
蒸餾資料構建
教師模型
Coding Agent 蒸餾模板需要配置以下多個教師模型:
序號 | 模型角色 | 說明 |
1 | 教師模型(必填) | 同時用於 Coding Agent 的推理與 Harness,用於產生軌跡,建議選擇代碼能力強、支援長上下文與工具調用的模型。 |
2 | 裁判模型(可選) | 用於判斷 Coding Agent 軌跡的品質。留空則複用教師模型,建議單獨指定。 |
教師模型來源支援 Token服務。
資料集
選擇輸入目錄(注意:必須選擇整個目錄,不能僅選擇 JSONL 檔案),資料格式要求如下:
種子檔案:seeds.jsonl,一行一條種子任務,包含
id、instruction、workspace、test_cmd、test_files欄位。為每條種子準備一個 workspace 壓縮包,壓縮包按 seeds.jsonl 中的相對路徑解析。
輸入必須選擇整個目錄,僅選擇 seeds.jsonl 檔案會導致壓縮包不可用。
蒸餾配置
蒸餾配置以 YAML 格式提供,預置了演算法團隊的推薦預設值,可按需調整。下表列出部分建議關注的參數及其說明。
配置段 | 說明 |
dataset |
|
backend |
|
coding_agent.harness | 編程 Agent 外殼,控制代理行為與沙箱互動。
|
coding_agent.sandbox | 遠程沙箱配置,每條種子一個隔離執行個體。
|
coding_agent.scoring | 驗證與評分機制,控制軌跡品質篩選。
|
coding_agent.execution |
|