遷移到標註引擎
用 potato label migrate-config 把 icl_labeling、judge_calibration、pre_annotation 和 Solo Mode 的配置遷移到標註引擎,並瞭解遷移之後有哪些變化。
Potato 較早的機器標註功能在 2.11 中照常可用,在你加入 labeling_engine 塊之前,行為不會有任何改變。有三個鍵現在會在啟動時列印一條說明,指出它們在標註引擎中的對應寫法,這三個鍵計劃在 3.0 中移除。這些說明輸出到 stderr,以 NOTE: 開頭,不屬於警告,所以 potato validate --strict 不會因此失敗。
下表列出這三個鍵以及各自對應的寫法:
| 舊鍵 | 引擎中的對應寫法 |
|---|---|
icl_labeling | 一個 llm 來源,帶一份對應舊規則的 threshold_legacy 契約,旁邊再加一份 selective_risk 契約 |
judge_calibration | 使用 k_sample 置信度的 judge 來源,原來的盲態樣本變為校準請求 |
pre_annotation | 一個 static 來源 |
Solo Mode、評審對齊和互動式 AI 助手(ai_support)都沒有被棄用。Solo Mode 是一位專家通過它自己的介面與一個 LLM 協作,評審對齊則是一份報告。開啟引擎時,兩者都會把它們的模型預測寫入引擎的儲存,讓引擎可以校準並認證這些預測。
potato label migrate-config
potato label migrate-config 把舊鍵轉換成一個 labeling_engine 塊:
potato label migrate-config config.yaml --out config-engine.yaml這條命令只讀取 YAML,不載入任何資料,然後新增一個等價的 labeling_engine 塊,並把結果寫出,開頭附有一段說明,解釋每一項轉換。它寫出的塊帶有 enabled: false,所以在你開啟引擎之前,轉換後的配置與原配置行為相同。請閱讀這些說明,檢查來源和契約,然後設定 enabled: true 和 assignment_strategy: engine。如果配置中已經有 labeling_engine 塊,或者沒有任何可轉換的內容,命令會報錯退出。
轉換對照表
每個舊塊按如下方式對應到引擎的來源、契約和人工設定:
| 舊塊 | 來源 | 契約 | 人工 |
|---|---|---|---|
帶 confidence_routing.tiers 的 solo_mode | 每一層一個來源,按層的順序排列 | 每個單選方案一份 selective_risk,error: 1 - end_human_annotation_agreement | pools: [solo] |
帶 labeling_models 的 solo_mode | 每個模型一個來源,第一個作為級聯 | 同上 | pools: [solo] |
solo_mode.jury | 每位評審員一個來源,再加一個 jury 來源作為級聯 | 同上 | |
icl_labeling | ai_support 端點作為一個 llm 來源 | 閾值為原來 confidence_threshold 的 threshold_legacy,以及 10% 的 selective_risk | calibration_rate = 原來核驗的 sample_rate |
judge_alignment | 評審端點作為一個 judge 來源(只有一個方案時帶上評分細則) | no_worse_than_human,epsilon: 0.15,每個被評審的方案一份 | overlap: 0.3 |
judge_calibration | 每個模型作為一個使用 k_sample 置信度的 judge 來源 | sampling.sample_size → budgets.human_labels | |
帶 field 或 predictions_file 的 pre_annotation | 一個 static 來源,位於級聯第一位 | ||
active_learning.llm | 一個 llm 來源 | ||
ai_budget.cap_usd | budgets.model_usd |
遷移後的行為變化
引擎對待人工標籤的方式與舊功能不同,轉換後配置裡的說明會指出不同之處。預計會有四點變化:
- 固定閾值變為經過檢驗的閾值。 Solo Mode 的路由閾值和
icl_labeling的置信度閾值,會接受高於某個固定數值的機器標籤。selective_risk在 dev 標籤上選定閾值,只接受在留出標籤上通過檢驗的部分,所以一開始被接受的標籤會變少,但被接受的那些帶有明確的錯誤率上界。 - 核驗樣本變為均勻抽樣。
icl_labeling優先核驗置信度最低的預測,這樣能很快找到錯誤,但給出的準確率估計是有偏的。引擎的校準請求是隨機樣本,並記錄入樣機率。 - 內聯評審變為盲態。
judge_alignment.inline在人們標註時顯示評審的判定,所以一致性是在受錨定影響的標籤上測得的。引擎的校準請求從不顯示機器答案。 - 預標註要先經過檢驗才會被信任。
static來源的標籤只在有契約認證的地方被接受,在其他地方,人們會在核驗請求中看到它們。
延伸閱讀
實現細節見源文件。