如何使用AgentTrove:在Python中流式處理170萬條代理軌跡並構建乾淨的ShareGPT SFT資料集
本教程介紹AgentTrove——最大的開源代理互動軌跡集合之一,包含170萬條ShareGPT格式的軌跡。透過流式載入避免完全下載,學習標準化代理輪次、提取命令、分析軌跡,並將成功軌跡匯出為乾淨的SFT微調資料集。
文章情報
要點
- 使用流式載入處理170萬條代理軌跡,無需完整下載
- 標準化使用者、助手、系統和工具訊息的對話結構
- 分析軌跡統計資訊並視覺化關鍵模式
- 匯出成功軌跡為ShareGPT風格的JSONL格式,用於監督微調
為什麼重要
這條新聞值得關注,因為使用流式載入處理170萬條代理軌跡,無需完整下載。
技術影響
可能影響模型選型、推理成本、產品能力和評測基準。
在本教程中,我們將探索AgentTrove,這是最大的開源代理互動軌跡集合之一,並學習如何高效地處理它。我們將使用流式載入來檢查行、檢測對話模式、標準化代理輪次,並理解使用者、助手、系統和工具訊息的組織方式。我們還將構建實用程式來解析命令風格的助手輸出,以可讀格式渲染完整軌跡,並研究代理在不同任務中如何與工具互動。
此外,我們將建立一個輕量級分析工作流程,對數千條軌跡進行取樣,將其轉換為DataFrame,彙總輪次級統計資訊,視覺化重要資料集模式,並將成功軌跡匯出為乾淨的ShareGPT風格JSONL格式,用於監督微調。
本教程首先安裝必要的庫並載入AgentTrove資料集。我們定義了兩個關鍵函式:normalize_turns()將原始軌跡轉換為標準化的(角色, 內容)元組列表,其中角色包括user、assistant、system和tool;render_trace()將軌跡格式化為人可讀的文本,包含訊息數量、總字元數、角色序列以及每輪的前300個字元。
接下來,我們透過從流中取樣數千行並計算代理輪次、使用者輪次、工具輪次等的統計資訊來進行中心極限分析。我們視覺化每個軌跡的訊息數量分佈以及不同來源(如nl2bash、swesmith等)的使用頻率,並識別出工具密集的軌跡。
我們定義了一個成功過濾器,只保留標記為resolved、passed、correct或positively rewarded的軌跡。然後我們匯出成功軌跡,最多保留200條,輸出為agenttrove_clean_sft.jsonl檔案。此外,我們還新增了一個搜尋功能,允許按關鍵詞或來源查詢軌跡,方便探索特定代理任務。
總之,我們建立了一個完整的、可操作的資料管道,用於在Colab中檢查、分析、過濾和匯出AgentTrove資料。我們從流式訪問開始,逐步新增模式檢測、輪次標準化、命令提取、軌跡渲染、統計分析、視覺化、基於成功的過濾以及關鍵詞或來源搜尋。這個工作流程幫助我們理解代理軌跡的內部結構,併為準備高質量子集用於微調或評估提供了可複用的基礎。我們還透過避免完整資料集下載和使用流式取樣來保持過程的可擴充套件性。
本教程還演示瞭如何將AgentTrove視為一個豐富的代理行為、工具使用、任務結果和訓練就緒對話的來源,可用於支援代理學習、工作流分析和特定領域SFT資料集建立等未來實驗。
有關完整程式碼和筆記本,請檢視原始文章。