Skip to content

遷移到標註引擎

用 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 塊:

bash
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_agreementpools: [solo]
帶 labeling_models 的 solo_mode每個模型一個來源,第一個作為級聯同上pools: [solo]
solo_mode.jury每位評審員一個來源,再加一個 jury 來源作為級聯同上
icl_labelingai_support 端點作為一個 llm 來源閾值為原來 confidence_threshold 的 threshold_legacy,以及 10% 的 selective_riskcalibration_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_usdbudgets.model_usd

遷移後的行為變化

引擎對待人工標籤的方式與舊功能不同,轉換後配置裡的說明會指出不同之處。預計會有四點變化:

  • 固定閾值變為經過檢驗的閾值。 Solo Mode 的路由閾值和 icl_labeling 的置信度閾值,會接受高於某個固定數值的機器標籤。selective_risk 在 dev 標籤上選定閾值,只接受在留出標籤上通過檢驗的部分,所以一開始被接受的標籤會變少,但被接受的那些帶有明確的錯誤率上界。
  • 核驗樣本變為均勻抽樣。 icl_labeling 優先核驗置信度最低的預測,這樣能很快找到錯誤,但給出的準確率估計是有偏的。引擎的校準請求是隨機樣本,並記錄入樣機率。
  • 內聯評審變為盲態。 judge_alignment.inline 在人們標註時顯示評審的判定,所以一致性是在受錨定影響的標籤上測得的。引擎的校準請求從不顯示機器答案。
  • 預標註要先經過檢驗才會被信任。 static 來源的標籤只在有契約認證的地方被接受,在其他地方,人們會在核驗請求中看到它們。

延伸閱讀

實現細節見源文件。