跳转到主要内容
最后一条命令把偏好数据作为 qa-preference 数据集的一个新版本落地,走的是和 tp dataset push 同一条路:不可变版本、指纹、质量报告。 LLM 裁判会自动打分。有些判断只有人能做,这条链就是把那些判断变回训练数据的方式。

开始之前

  • 两次已完成、有验证样本、prompt 有重叠的运行。
  • 一个管理员已经配好的 Argilla 部署。tp annotate status 会告诉你。

把两次运行配对

必须两个 run id,因为偏好标注问的是 A 和 B 哪个更好,而单次运行的样本只能被评分、不能被比较。 配对按 prompt 对齐,不按样本下标。两次验证不保证采样顺序相同,所以按下标对齐会把 A 的第三题 和 B 的第三题配起来,得到的偏好毫无意义。 回答完全相同的对会在送到任何人面前之前就被丢掉。

把结果取回来

你会得到 prompt / chosen / rejected 三列。不带 --version 时版本是当天日期。 然后把下一次 DPO 运行指向它:

确认成功

tp annotate pull 会打印它读了多少对、其中多少产生了偏好、多少被跳过。 tp dataset ls alice/qa-preference 能看到新版本。 回答”分不出”不产生训练数据:DPO 需要一个序,把平局硬塞进去等于教给模型一个本来不存在的信号。被跳过 的数量会打印出来,这样它不会看起来像丢了数据。 同一对回答有多人标注时,按多数合并成一行。票数打平的一对没有任何人一致认可的序,所以不产生行, 并单独计数。拉取需要和推送一样的权限:只有当你能访问这批回答所来自的两次 run 时,才能把数据集拉 回来;不是由本平台推送的数据集,不能通过它读取。

下一步

数据集 · 评分标准讲同一种判断的自动版本 · 流水线
标注界面、权限、进度跟踪和标注者一致性都是 Argilla 的。平台做的是 Argilla 做不了的两头:配对,那需要两次运行的验证样本;以及把结果落成一个版本化的数据集。A/B 顺序由 prompt 推导,不由哪次运行是哪个决定。它跨重新打开是稳定的,所以标注者回到同一条记录 看到的是同样的排布;但标注者学不到”A 永远是新模型”,也就不会形成系统性偏置。
这个地址是部署配置,和数据库、对象存储地址同一信任级别,所以适用于用户提供的 webhook URL 的 “拒绝私有地址”规则不适用于这里。内网部署里 Argilla 本来就在私有网络上。