Skip to main content
Reflow 是从一个部署的生产流量回到它下一版训练数据的受治理路径。 你按部署打开采集,让缓冲区填满,从中挖掘候选,再把通过审核的部分推广成一个数据集版本。 它闭合的是平台原本留着的那个开口:数据进去、模型出来、模型在服务—— 而它从服务中学到的东西,哪也没去。
被采集的是真实用户输入,是这个平台会持有的最敏感的数据。 采集默认关闭,直到有人打开它;打开的人会被记录,设置的每一次改动都进审计。

它的形状

只有最后一步不可逆。 之前的每一步要么过期要么被覆盖——正因如此,在采样、脱敏、挖掘上出错才是可承受的。

开启

部署详情 → 生产回流 页。 缓冲区字节计入所有者的存储配额。配额优先于保留期:超了就从最旧的缓冲文件开始提前回收,并计数。共享盘写满会让整个集群停训。

永不捕获的东西

任何请求头(所以 Authorization 不可能误入);部署 Token 本身(只留它的 id,那是单个部署内部的租户边界);以及 chat completions 之外的一切。

脱敏

掩码在任何东西落盘之前完成——在持久化之后跑的不叫脱敏,叫过滤。默认规则包覆盖邮箱、手机号(中国大陆与 E.164)、美国 SSN、中国大陆身份证、疑似银行卡号、疑似密钥串。它带版本号,且版本盖在每条记录上,这样事后能查清哪批记录是用哪套规则洗的。 刻意偏向多掩码。代码样例里的长十六进制会被当成疑似密钥掩掉,代价是训练样本略差;反过来的错误是把客户凭据留在语料里。

挖掘难例

缓冲区里有用的那一半很小,而且不是平均请求。挖掘挑出值得再训一轮的: 挖掘会替换掉上一次的候选集;它是一份工作建议,不是台账。

Promote

选中候选、指定目标数据集、提升。三道检查,全部 fail-closed:
  • 可见性。部署只对它的所有者和管理员可见,所以唯一不构成提权的目标是该所有者自己的 private 数据集——包括已经存在的那些。提升进公开数据集等于把你用户的流量公开给平台上每一个账号;管理员可以这么做,审计记录会写明。
  • 污染。点名要对照的评测集,或者显式声明跳过检查。这个选择会记进版本的溯源,因为**「没查过」和「查过且干净」事后不能看起来一样**。生产流量与评测集重合是常态——那个评测集多半就是从同一个分布里造的。
  • 非空。一个存在、可被引用、却什么也教不了的版本,比没有这个版本更糟。
污染估算用的是 13-gram、1/64 抽样的指纹。少量短 prompt 的 Promote 切不出足够的 n-gram,估算就没有意义——这种情况会报证据不足,而不是当作通过。

看整个环

模型 → 展开某个模型 → 数据飞轮。它展示一个版本的完整链条:数据来源、训练 run、评测裁决、在线服务与捕获量、以及回流成的数据集。 「已闭环」的判定刻意从严:捕获流量不算闭环,挖掘也不算。只有流量变成了别人能拿去训练的数据集才算。