招聘模型上线后准确率下降,团队往往先改模型。可真正的变化可能发生在数据入口:ATS 导出的日期格式变了,新的简历模板打乱阅读顺序,职位部门开始把“优先条件”写进“硬性要求”,或一个标签接口把空值改成字符串 null。
模型只是在消费数据。若团队看不见定义、采集和转换链路,再高级的模型也会把上游问题稳定放大。
数据问题为什么会形成级联
Google 研究团队访谈 53 名高风险 AI 从业者,在 Data Cascades 研究中将其描述为由早期数据问题触发、在下游复合并延迟显现的事件。论文报告这类现象普遍存在,且常与数据工作被低估、组织边界和文档缺失有关。
招聘系统也有相同结构:解析器把公司与岗位错配,技能模型据此生成标签,匹配模型再把标签作为特征,最终招聘人员看到的是一个“排序问题”。如果只在最后一层增加样本,根因会继续污染下一轮训练。
质量不是“干净”,而是符合用途
同一份数据对不同任务可能有不同质量。电话号码用于联系要求逐字符正确;岗位名称用于统计需要标准化;职位描述用于语义检索可以容忍部分格式噪声,却不能丢失“必须/优先”关系。因此质量规则必须绑定用途和错误代价。
可以把指标分成五层:完整性检查关键字段是否缺失;有效性检查类型、枚举和范围;一致性检查多系统与跨字段是否冲突;唯一性检查重复候选人和职位;时效性检查数据是否仍代表当前状态。模型层另测标签可靠性、分布覆盖与切片表现。
一个总体缺失率没有意义。工作结束日期缺失可能表示“至今”,电话缺失却无法联系;应按字段语义定义允许的空值状态,而不是统一填默认值。
数据合同让变化不再静默
数据合同应明确字段名称、类型、业务含义、允许值、来源、更新频率、责任人和兼容策略。上游改动 Schema、单位或空值表达时,必须经过版本与验证,而不是让下游模型在运行中猜测。
对简历解析,可规定每段经历必须有证据位置,公司原文和标准值分开保存,日期包含精度与“至今”状态;对 JD,可规定要求等级不能只靠文本位置推断。合同失败的数据进入隔离区或回退流程。
The ML Test Score 将数据、模型、基础设施和监控测试共同纳入生产就绪度,而不是只看离线模型指标。这种思想适合把数据检查变成发布门槛。
测试集也可能过期
固定测试集保证版本可比,却会逐渐偏离线上分布。团队需要同时维护稳定基准集、近期样本集和困难样本集。基准集用于长期比较,近期集发现新模板与岗位变化,困难集防止历史错误复发。
所有指标都应按关键切片展开:文件格式、模板来源、语言、岗位族、资历层级和数据渠道。总体 F1 不变,可能掩盖扫描件性能大幅下降而原生 PDF 占比上升。
漂移告警也不等于自动重训。输入分布变化可能是正常业务增长,也可能是采集故障;标签分布变化可能来自政策调整。告警后先确认变化、影响和数据语义,再决定修管线、更新词表还是重训模型。
文档与来源是质量基础设施
Datasheets for Datasets 建议记录数据集动机、组成、收集、预处理、用途与维护。Hidden Technical Debt in Machine Learning Systems 则指出 ML 系统会因数据依赖、反馈循环和配置等积累隐性技术债。
招聘数据尤其需要记录合法来源、处理目的、标注指南版本、排除范围、已知偏差与删除机制。来源记录让团队能够从一个异常预测追到具体原文、解析版本、词表和训练批次,也能在数据需要删除时找到派生结果。
让数据质量成为有人负责的产品
每个关键数据集都需要负责人、服务水平目标和故障处置。仪表盘不仅显示数值,还要能定位受影响样本;质量告警要连接到业务影响和回退策略;修复完成后,困难样本进入回归测试。
当指标下降时,正确的问题顺序是:输入是否变化,合同是否违反,标签是否可信,切片是否集中,最后才是模型是否需要更新。这样,“模型问题还是数据问题”不再靠经验争论,而能沿证据链定位。
