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 来源的标签只在有契约认证的地方被接受,在其他地方,人们会在核验请求中看到它们。

延伸阅读

实现细节见源文档。