4. 模型卡片基础

好,咱们进入正题。模型需求定义这一步,说白了就是回答三个问题:用什么模型?怎么算好?有什么限制?

我见过太多项目,模型选型拍脑袋,指标定义模糊不清,最后上线才发现根本跑不动。嗯,今天咱们就把这块掰开揉碎了讲清楚。

4.1 模型类型选择:分类、回归还是生成?

先问自己一个问题:你的输出是什么?

  • 输出是「是/否」或「类别标签」?→ 分类
  • 输出是「连续数值」?→ 回归
  • 输出是「新内容(文本/图像/音频)」?→ 生成

听起来很简单对吧?但实际项目中经常有人搞混。我遇到过一位产品经理,非要把用户满意度评分(1-5分)当分类问题做,结果模型精度死活上不去。其实这就是典型的回归问题——分数是连续的,不是离散的类别。

核心判断原则:

  • 分类:输出空间是有限离散集合(如:猫/狗/鸟)
  • 回归:输出空间是连续实数区间(如:房价、温度)
  • 生成:输出是全新数据样本(如:写文章、画图)

你想想看,如果业务需求是「预测明天会不会下雨」,那就是二分类。如果需求是「预测明天降水量是多少毫米」,那就是回归。千万别搞混。

4.2 性能指标:准确率、召回率、F1 到底怎么选?

指标选不对,模型白训练。我刚开始做 AI 时也踩过这个坑——只看准确率,结果模型把所有人都预测为「正常」,准确率 95%,但一个病人都没查出来。这能叫好模型吗?

4.2.1 混淆矩阵:一切指标的基础

先看这张图,所有指标都从这里来:

TP(真阳性) 预测为正,实际为正 FP(假阳性) 预测为正,实际为负 FN(假阴性) 预测为负,实际为正 TN(真阴性) 预测为负,实际为负 实际正类 实际负类 预测正类 预测负类

4.2.2 三大核心指标详解

指标 公式 关注点 适用场景
准确率(Accuracy) (TP+TN)/(TP+TN+FP+FN) 整体预测正确比例 正负样本均衡时
精确率(Precision) TP/(TP+FP) 预测为正的样本中,有多少是真的正 垃圾邮件过滤(误判代价高)
召回率(Recall) TP/(TP+FN) 实际为正的样本中,有多少被找出来了 癌症筛查(漏诊代价高)
F1 分数 2×P×R/(P+R) 精确率和召回率的调和平均 需要平衡两者时

我的经验之谈:

别死磕 F1。如果业务场景中精确率和召回率的权重不一样,用 Fβ 分数 更合适。β>1 时更看重召回率,β<1 时更看重精确率。我曾经在反欺诈项目中把 β 设为 2,因为漏掉一笔欺诈交易的损失远大于误判一笔正常交易。

4.2.3 回归任务的指标

回归任务常用的指标有这些:

  • MAE(平均绝对误差):直观,单位与原始数据一致
  • MSE(均方误差):对大误差惩罚更重
  • RMSE(均方根误差):单位与原始数据一致,且对大误差敏感
  • R²(决定系数):模型解释了多少方差,范围 [0,1]

我个人习惯在项目初期用 MAE,因为它好解释。跟业务方沟通时,你说「预测房价平均偏差 5 万」比「MSE 是 2500 万²」要直观得多。

4.3 约束条件:别忘了「能不能跑」

模型再准,跑不动也是白搭。约束条件通常包括这几类:

4.3.1 性能约束

  • 推理延迟:线上服务要求 <100ms?还是可以接受 5 秒?
  • 吞吐量:每秒需要处理多少请求?
  • 内存/显存:模型能占多大空间?

4.3.2 数据约束

  • 标注成本:有多少标注数据?能承受多少人工标注?
  • 数据分布:训练集和线上数据分布是否一致?
  • 隐私合规:数据能否出域?是否需要联邦学习?

4.3.3 业务约束

  • 可解释性:是否需要解释为什么做出这个预测?(金融、医疗场景常见)
  • 公平性:模型是否对不同群体有偏见?
  • 鲁棒性:对抗样本下是否还能正常工作?

避坑指南:

我曾经在一个智能客服项目中,选了一个超大模型(BERT-large),离线评测准确率 92%。结果上线后发现单次推理需要 1.2 秒,用户等得直接关页面。最后不得不换成 DistilBERT,准确率降到 88%,但延迟只有 80ms。用户满意度反而提升了。

所以记住:约束条件要在模型选型之前就明确,而不是等模型训练完了再考虑部署问题。

4.4 综合决策框架

把上面这些串起来,我一般用这个流程:

业务需求分析 确定输出类型 → 模型类型 明确性能指标(准确率/召回率/F1/MAE等) 列出约束条件(延迟/内存/数据/可解释性等) 综合决策 → 输出模型需求文档

这个流程走下来,模型需求定义就清晰了。说白了,就是先想清楚要什么,再想怎么衡量,最后看能不能落地。

总结一下本章要点:

  1. 模型类型由输出空间决定:分类、回归、生成
  2. 指标选择要匹配业务目标:别只看准确率
  3. 约束条件要在选型前明确:性能、数据、业务三方面都要考虑
  4. 用决策框架把需求系统化,避免拍脑袋