4. 模型卡片基础
好,咱们进入正题。模型需求定义这一步,说白了就是回答三个问题:用什么模型?怎么算好?有什么限制?
我见过太多项目,模型选型拍脑袋,指标定义模糊不清,最后上线才发现根本跑不动。嗯,今天咱们就把这块掰开揉碎了讲清楚。
4.1 模型类型选择:分类、回归还是生成?
先问自己一个问题:你的输出是什么?
- 输出是「是/否」或「类别标签」?→ 分类
- 输出是「连续数值」?→ 回归
- 输出是「新内容(文本/图像/音频)」?→ 生成
听起来很简单对吧?但实际项目中经常有人搞混。我遇到过一位产品经理,非要把用户满意度评分(1-5分)当分类问题做,结果模型精度死活上不去。其实这就是典型的回归问题——分数是连续的,不是离散的类别。
核心判断原则:
- 分类:输出空间是有限离散集合(如:猫/狗/鸟)
- 回归:输出空间是连续实数区间(如:房价、温度)
- 生成:输出是全新数据样本(如:写文章、画图)
你想想看,如果业务需求是「预测明天会不会下雨」,那就是二分类。如果需求是「预测明天降水量是多少毫米」,那就是回归。千万别搞混。
4.2 性能指标:准确率、召回率、F1 到底怎么选?
指标选不对,模型白训练。我刚开始做 AI 时也踩过这个坑——只看准确率,结果模型把所有人都预测为「正常」,准确率 95%,但一个病人都没查出来。这能叫好模型吗?
4.2.1 混淆矩阵:一切指标的基础
先看这张图,所有指标都从这里来:
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 综合决策框架
把上面这些串起来,我一般用这个流程:
这个流程走下来,模型需求定义就清晰了。说白了,就是先想清楚要什么,再想怎么衡量,最后看能不能落地。
总结一下本章要点:
- 模型类型由输出空间决定:分类、回归、生成
- 指标选择要匹配业务目标:别只看准确率
- 约束条件要在选型前明确:性能、数据、业务三方面都要考虑
- 用决策框架把需求系统化,避免拍脑袋