AI News HubLIVE
站內改寫2 分鐘閱讀

從NVIDIA Open-SWE-Traces構建監督微調資料:軌跡解析、補丁分析、Token預算與工具使用指標

本教程介紹如何使用NVIDIA的Open-SWE-Traces資料集為智慧體軟體工程軌跡準備監督微調資料。包括從Hugging Face流式載入資料、標準化多輪對話、解析程式碼補丁、構建分析DataFrame,以及根據成功標籤、Token限制、語言過濾和補丁可用性篩選高質量軌跡。

來源MarkTechPost作者: Sana Hassan

本教程深入探討了NVIDIA的Open-SWE-Traces資料集,這是一個用於研究智慧體軟體工程軌跡的實用資源。我們將演示如何高效地處理和準備這些資料,以用於監督微調(SFT)。整個過程完全在Google Colab中完成,透過直接從Hugging Face流式載入資料集,避免了本地下載大量資料。

首先,我們安裝必要的依賴庫,包括datasets、huggingface_hub、tiktoken、pandas和matplotlib,並配置顯示選項和繪圖風格。然後定義資料集名稱、智慧體/模型組合以及取樣引數。本教程使用兩個智慧體(openhands和sweagent)和兩個模型(minimax_m25和qwen35_122b),每個組合抽取400條軌跡,總計3200條。

為了處理格式不一致的資料,我們編寫了一系列輔助函式來標準化軌跡、提取訊息文本、統計角色、檢測工具呼叫、解析程式碼補丁以及估算Token數量。這些函式具有防禦性設計,能夠應對資料集中可能存在的結構變化。

我們透過流式載入少量樣本,檢查單個記錄的結構:包括instance_id、倉庫、語言、許可證、解決狀態(resolved欄位:1表示成功,0表示失敗,-1表示未知)、後設資料和軌跡。軌跡由多輪訊息組成,包含系統、使用者、助手和工具角色。最後還展示了模型生成的補丁(model_patch)。

接下來,將所有流式記錄轉換為結構化的pandas DataFrame。每條記錄提取的特徵包括:例項ID、倉庫、語言、許可證、解決狀態、智慧體、模型、訊息數量、各角色數量、補丁檔案數、增刪行數、軌跡Token總量以及工具使用計數。同時建立是否解決的標誌。數值摘要顯示平均軌跡包含約44條訊息,補丁修改約120行,軌跡Token約8000。

然後進行視覺化分析:按語言統計軌跡分佈(Python、Java、TypeScript等);根據解決率排序(語言需至少25條軌跡);展示智慧體×模型的解決率;繪製訊息數量直方圖(集中在20-60條);補丁大小直方圖(截斷至97分位數);以及軌跡Token與訊息數的散點圖,按解決狀態著色。

最後,我們分析Token預算需求。對於監督微調,需要確保軌跡在上下文視窗內。設定最大Token數為32K,僅保留已解決(resolved=1)的軌跡,並根據需要按語言過濾。這建立了一個高質量的SFT子集,可用於微調程式碼生成模型。

本教程展示瞭如何處理大規模流式資料集、提取有意義的特徵以及為下游任務(如微調智慧體)準備乾淨、相關的訓練資料。所有程式碼均可在Google Colab中執行,便於復現和擴充套件。