Skip to content

資料集與實驗

構建帶版本的評估資料集,並執行隨時間為智慧體輸出打分的實驗。Potato 的評估基座 —— 檔案或 SQLite 儲存、帶標籤的版本、資料切分、SFT/DPO 匯出,以及帶回退差值的實驗並排對比。

資料集與實驗是 Potato 的評估基座:帶版本的評估示例集合,以及用程式化評估器為其打分的實驗執行。 二者結合,讓 Potato 從"標註一次"變成"持續評估":整理一個測試集、執行評估器,並跨提示詞或模型版本跟蹤分數。

啟用

yaml
datasets:
  enabled: true
  storage: file   # "file" (default, git-diffable JSONL) | "sqlite"

資料集

資料集是一個有名字的示例集合(idinputs、可選的 reference_outputsmetadatasplit)。每次新增/更新/刪除都會建立一個新的不可變版本v0001v0002……);版本可以打標籤(例如 prod),讀取時用 as_oflatest、某個標籤或版本 id)固定到某個版本。

有三種整理示例的方式:

  • 來自當前任務 —— 匯入已載入實例將任務的實例轉成示例。
  • 僅來自已攝入的軌跡 —— 匯入已攝入軌跡(webhook / LangSmith / Langfuse)。
  • 以人工標註為參考 —— 將每個方案的多數人工標籤聚合進每個示例的 reference_outputs

實驗

一次實驗會對某個資料集版本執行評估器,並記錄逐示例結果和聚合分數。在總覽頁面選擇資料集和評估器後點擊執行,或呼叫 POST /datasets/api/experiments/run。選擇兩個或更多實驗並點選對比,即可並排檢視聚合分數,並附有相對基線的差值,讓回退一目瞭然。

LLM 評審類評估器會呼叫你配置的 AI 端點,在大數據集上可能耗時較長。

匯出為微調資料

任何資料集版本都可以匯出為用於微調的 JSONL:

  • SFT —— {"prompt": <inputs>, "completion": <reference_outputs>}
  • DPO —— {"prompt": <inputs>, "chosen": <reference_outputs>, "rejected": <metadata.rejected | outputs>}
bash
curl -OJ "http://localhost:8000/datasets/api/datasets/agent-eval-v1/export?format=sft"

API

所有端點都需要管理員認證(X-API-Key 請求頭或管理員會話)。

方法路徑用途
POST/datasets/api/datasets建立資料集
POST/datasets/api/datasets/<name>/examples新增示例(生成新版本)
POST/datasets/api/datasets/<name>/tag給版本打標籤
GET/datasets/api/datasets/<name>/export?format=sft|dpo匯出 JSONL
POST/datasets/api/experiments/run執行實驗
GET/datasets/api/experiments列出實驗

評估管理 API(/admin/eval/...)用於檢視和控制這些任務的標註過程:資料集/實驗狀態、逐實例標註進度、已攝入軌跡計數,以及分配的暫停/恢復。

相關內容