如何在PRD中明确描述模型的输入、输出、评估指标和失败边界,避免歧义?

解读

面试官想知道三件事:

  1. 你是否能把“算法黑盒”拆成可落地的工程接口;
  2. 你是否能把学术指标翻译成业务语言,让研发、测试、运营、法务都听得懂;
  3. 你是否提前定义了“什么情况下模型必须熔断”,避免上线后互相甩锅。
    国内互联网节奏快、灰度窗口短,PRD 一旦含糊,算法同学就会按自己理解写代码,测试同学只能“看着办”,最后业务方一句“效果不达标”就把项目砍了。因此,PRD 里的这四要素必须像“接口文档”一样精确,可评审、可验收、可回滚。

知识点

  1. 输入:必须落到“字段级”
    • 数据类型、长度、编码、采样频率、缺失率容忍度、实时/离线、来源系统、脱敏等级。
  2. 输出:必须落到“协议级”
    • 同步/异步、返回码、置信度分位、多标签排序规则、兜底文案、超时降级策略。
  3. 评估指标:必须“三层拆解”
    • 模型层:AUC、F1、召回@K、MAE;
    • 系统层:QPS、P99 延迟、GPU 利用率;
    • 业务层:转化率提升绝对值、负向舆情率、客诉率、合规通过率。
  4. 失败边界:必须“双阈值+熔断动作”
    • 性能红线:单条请求>800 ms 占比>1% 时自动降级到规则库;
    • 效果红线:线上 A/B 实验核心指标下降>3% 持续 30 min 即触发回滚;
    • 合规红线:敏感词漏出率>0.5‰ 立即关断黑盒输出,切换白名单兜底。
  5. 国内特色:
    • 数据出境“安全评估”条款写进 PRD,明确原始日志不得出机房;
    • 灰度城市列表需与网信办备案一致;
    • 兜底文案必须走人工审核队列,避免“算法自动生成”被监管认定为“未经审核发布”。

答案

我实战中的 PRD 模板分五段,可直接放进 Confluence,评审会上零歧义:

  1. 输入定义
    “输入”章节用二级标题,先给一张“字段清单”,每行列出:字段英文名、中文业务含义、数据类型、取值范围、是否可空、枚举值示例、脱敏方式。
    示例:
    user_query,用户搜索关键词,VARCHAR(200),UTF-8,不可空,需脱敏手机号、身份证;缺失时直接拒绝,返回错误码 400-01。
    配图位置留空,文字说明采样频率为“实时 200 QPS 峰值”,并给出离线回溯 T-1 的 Hive 表名和分区字段。

  2. 输出定义
    先写“同步返回 JSON 结构”,再写“异步回调地址”。
    同步示例:
    {
    "code": 0,
    "data": {
    "rec_list": [
    {
    "item_id": "123456",
    "score": 0.987,
    "rank": 1,
    "explain": "根据你的历史偏好推荐"
    }
    ],
    "ab_tag": "exp_001"
    },
    "cost": 45
    }
    明确:score>0.9 才展示“explain”字段;cost>100 ms 时日志打 WARNING;无结果时返回空数组,禁止返回 null。

  3. 评估指标
    用“指标+口径+阈值+责任人”四元组写:

  4. 模型离线 AUC≥0.85,测试集为过去 30 天随机采样 100 万条,评估脚本统一用公司 AILab 提供的 eval_v2.py,责任人算法@张三;

  5. 线上实验核心指标“支付转化率”提升≥+1.5%,置信度 95%,实验周期 7 天,责任人数据@李四;

  6. 合规抽检敏感漏出率<0.5‰,由法务@王五每周人工抽检 2000 条;

  7. 延迟 P99<120 ms,压测用 Gatling 脚本,责任人运维@赵六。
    所有指标在 PRD 里直接给 Confluence 页面链接锚点,方便跳转。

  8. 失败边界
    用“触发条件+检测方式+熔断动作+恢复策略”四元组写:

  9. 效果下跌:核心指标下降>3% 且持续 30 min,检测方式实时 A/B 平台每 5 min 计算,熔断动作关闭实验流量 100%,恢复策略需人工审批并重新走灰度;

  10. 延迟飙高:P99>200 ms 且持续 2 min,检测方式 Prometheus 告警,熔断动作降级到规则推荐,恢复策略在 CPU 利用率<60% 后自动重启实验;

  11. 合规违规:敏感词漏出率>0.5‰ 或收到网信部门口头通知,立即关断模型输出,切换人工审核兜底,恢复策略需法务书面确认。

  12. 版本记录与反签名
    PRD 末尾留“版本记录”表,列出版本号、日期、变更人、变更原因;同时在飞书群里@所有干系人,48 小时内无回复即视为“无异议”,避免会后扯皮。

用这套模板,我曾在 3 周内把“智能客服意图模型”从需求到上线,灰度期间因触发“效果下跌”熔断一次,10 分钟完成回滚,零客诉、零舆情。

拓展思考

  1. 多模态场景:输入端同时有文本、图片、语音,PRD 里必须给出“模态缺失”组合矩阵,明确哪种组合可走降级,哪种必须拒绝。
  2. 大模型时代:输出不再是固定 JSON,而是一段自然语言,需要在 PRD 里增加“输出格式正则模板”和“禁止出现的正则黑名单”,并给出“温度系数”可调范围。
  3. 监管趋严:生成式 AI 服务管理暂行办法要求“生成内容标识”,PRD 里要提前约定在返回字段里增加“ai_generated”布尔值,并在前端渲染时强制打水印。
  4. 成本博弈:训练一次 7B 模型要烧 30 万 GPU 元,PRD 里可以前置“成本上限”条款,当实验效果边际增益<1% 时,项目直接终止,避免“技术自嗨”。