首页 / 正文

模型不缺了,真正卡住你的,是训练数据

Mooko
发布于 2026-08-20 · 5分钟阅读
1867 浏览
0 点赞 暴击点赞!

模型不缺了,真正卡住你的,是训练数据

你有没有遇过这种场面?

GPU 申请到了,模型也选好了,代码仓库里甚至已经有了一个 train.py

然后项目卡住了。

因为你发现:没有数据。

更准确地说,是没有能直接拿去训练的数据。

图片散落在网盘、业务系统和同事电脑里;标签五花八门;有人把“轿车”标成“汽车”,有人标成“私家车”;边界框还没画完,模型实验的 deadline 已经到了。

这才是很多 AI 项目最真实的开局。


一个很朴素的痛点,为什么能做成 Scale AI

Alexandr Wang 在 MIT 读书时,想训练一个模型。

他需要三样东西:

  • 云账号
  • 训练代码
  • 训练数据

云账号,点几下就能开。

代码,GitHub、开源社区、论文复现,总能找到路。

只有数据,没法“点一下就生成”。

特别是计算机视觉任务。你想让模型识别红绿灯、车道线、货架商品、工地安全帽,就得有人把一张张图片、视频帧、点云里的目标圈出来,写上统一的标签,再做检查。

这件事听起来不酷,甚至有点像苦力活。

可模型的上限,往往就被这堆“苦力活”钉死了。

Scale AI 抓住的,正是这个空档:把数据采集、标注、质检、回流做成一套可交付的服务。

一句话理解:

算力和模型越来越像基础设施,可靠的数据生产能力,才是很多团队手里的稀缺资产。


为什么“找了一堆图片”不等于你有训练数据

很多人做视觉项目,一开始会犯一个很自然的错误:先疯狂收图。

爬网页、导出历史订单图片、拉监控截图、让运营同学发素材。几天后,硬盘里多了 20 万张图,大家很兴奋。

等真正开训,麻烦来了。

1. 标签不统一

同一个物体被标出多个名字。

比如零售货架识别项目:

  • A 标注员写“可乐”
  • B 标注员写“可口可乐”
  • C 标注员写“饮料”
  • D 干脆写“瓶子”

模型根本不知道你到底要识别什么。

2. 数据和真实场景脱节

你拿了一堆商品白底图训练,实际部署地点却是便利店。

现场有反光玻璃、遮挡、促销牌、倾斜货架、昏暗灯光,还有顾客伸手拿商品。

模型在测试集上 95 分,到了门店像突然失忆。很常见,也很扎心。

3. 标注质量没验收

框偏了十几个像素,小目标漏标一大片,语义分割边缘像狗啃过。

这种数据喂进去,模型会非常认真地学坏。

4. 类别分布严重失衡

你有 10 万张“正常情况”的图片,只有 50 张“异常情况”。

比如工地安全识别里,绝大部分人都戴了安全帽,没戴安全帽的人少得可怜。

模型会学到一个聪明又偷懒的答案:反正全判“戴了”,准确率看起来还挺高。

这不是模型聪明,是指标把你骗了。


做 AI 项目,别急着训练:先写一份标注规范

没有标注规范,后面的返工几乎跑不掉。

这份文档不需要写成学术论文。它的目标很简单:让不同的人面对同一张图时,能做出尽量一致的判断。

一份能用的标注规范,至少要写清楚下面几件事。

标签定义

把每个类别讲人话,讲具体。

别只写:

标签:安全帽。

应该写成:

标签:安全帽。指覆盖头顶、用于工地防护的帽子。黄色、白色、红色、蓝色均计入。普通鸭舌帽、毛线帽、头巾不计入。

标注边界

框到底贴多紧?被遮住一半怎么办?远处小到只有几个像素的目标要不要标?

这些都要提前定。

例如:

  • 目标可见面积超过 30% 时标注
  • 被遮挡部分按完整目标的可见外轮廓框选
  • 宽或高小于 12 像素的目标忽略
  • 反光海报里的“安全帽图片”不标,真实佩戴者才标

负样本怎么处理

负样本特别容易被忽略。

假设你做的是“是否佩戴安全帽”,那下面这些图必须专门收集:

  • 戴鸭舌帽的人
  • 举着安全帽但没戴的人
  • 画面里有安全帽海报的人
  • 人背对镜头、头部不可见的人
  • 安全帽被强光照得发白的人

它们是模型最容易误判的地方。

给标注员看正例和反例

文字描述不够,示例图才有杀伤力。

建议每个类别准备:

  • 10 张标准正例
  • 10 张典型反例
  • 10 张容易争议的边界案例

别嫌麻烦。你现在多花半天,能少掉后面两周的返工。


一套能落地的数据生产流水线

如果你准备做一个视觉 AI 项目,可以照着下面的流程跑。

第一步:从业务现场采样,不要只从网上找图

数据要像真实世界,不要像搜索引擎。

以“仓库托盘识别”为例,采集时主动覆盖这些条件:

  • 白天、夜间、弱光
  • 正拍、俯拍、斜拍
  • 托盘完整、被遮挡、堆叠
  • 空仓、满仓、人员走动
  • 不同摄像头、不同焦距、不同分辨率
  • 干净地面、反光地面、杂乱背景

可以建一个简单的采样表:

| 场景维度 | 要覆盖的情况 | 建议数量 | | --- | --- | --- | | 光照 | 正常、过曝、昏暗 | 每类 500 张起 | | 视角 | 正面、侧面、俯视 | 每类 500 张起 | | 遮挡 | 无、轻度、重度 | 每类 300 张起 | | 设备 | 摄像头 A、B、C | 每台都要有 |

别等模型上线后,才发现它没见过夜班仓库。

第二步:先做小批量标注试跑

别一上来就扔 5 万张图给标注团队。

拿 200 到 500 张有代表性的样本做试标。然后检查三件事:

  • 标注员能否理解类别定义
  • 同一张图,不同标注员的结果是否接近
  • 哪些场景最容易产生争议

试标阶段发现问题是好事。

这时候改规范,成本几乎可以忽略。等 5 万张标完再改,钱包会哭。

第三步:建立双层质检

别把“抽查了几张”当成质检。

一个实用的配置是:

  1. 基础审核:检查漏标、错标、框太离谱等明显问题。
  2. 高风险复核:专门盯小目标、遮挡目标、边界案例和高价值类别。

你可以给每批数据设置验收线:

  • 漏标率低于 2%
  • 错标率低于 1%
  • 边界框 IoU 达到约定阈值
  • 关键类别必须全量复核

如果团队暂时没有成熟的质检系统,先用表格也行。核心不是工具有多高级,而是每一批数据都有明确的“能不能过”。

第四步:划分训练集、验证集、测试集

常见比例可以从 8:1:1 开始。

不过,真正要防的是数据泄漏。

举个例子:同一段监控视频每秒抽一帧,前 80% 放训练集,后 20% 放测试集。看起来比例没问题,实际上测试图和训练图几乎一模一样。

模型分数会非常漂亮,然后一部署就翻车。

更靠谱的做法:

  • 按摄像头划分
  • 按日期划分
  • 按门店、工地、仓库划分
  • 按完整视频片段划分

测试集必须像一个模型从没去过的新现场。

第五步:用错误案例驱动下一轮采集

模型训练完,不要只盯一个总准确率。

把错误样本拉出来,一张张看。

你会看到特别具体的问题:

  • 夜间画面漏检
  • 逆光时把反光背心识别错
  • 密集货架里的小商品分不清
  • 人群遮挡后,安全帽检测断断续续

每类错误都对应下一轮数据动作:

| 模型错误 | 数据侧动作 | | --- | --- | | 夜间漏检 | 补采低照度和红外画面 | | 遮挡误判 | 增加遮挡比例高的样本 | | 类别混淆 | 增加相似类别的对照样本 | | 小目标漏检 | 采集更高分辨率画面,补标小目标 |

这就是数据闭环。

模型不是训一次就结束。它更像新员工:哪里做错了,就拿真实案例重新教。


一个小团队怎么低成本开始

不是每个团队都需要一开始就找大型数据服务商。

如果你只有 2 到 5 个人,完全可以这样搭:

  • 存储:对象存储或团队网盘,统一目录命名
  • 标注工具:CVAT、Label Studio、Roboflow 等
  • 任务管理:Notion、飞书多维表格、Trello 都够用
  • 版本记录:用 Git 管代码,用数据版本表记录数据集变化
  • 抽检机制:每批随机抽 5% 到 10%,由非原标注人检查

目录可以简单定成这样:

dataset/
├── raw/              # 原始数据,不直接训练
├── sampled/          # 清洗、去重后的候选数据
├── labeled_v1/       # 第一版标注数据
├── labeled_v2/       # 修订后的数据
├── train/
├── val/
└── test/

再配一张数据版本表:

| 版本 | 数据量 | 新增内容 | 标注规范 | 对应模型 | | --- | ---: | --- | --- | --- | | v1 | 3,000 | 日间正常场景 | spec_1.0 | baseline_1 | | v2 | 5,500 | 夜间、遮挡样本 | spec_1.1 | model_2 | | v3 | 8,000 | 相似类别难例 | spec_1.2 | model_3 |

有了这张表,三个月后你不会对着一堆文件夹发呆:这批数据到底是干嘛的?


数据标注最容易踩的 6 个坑

1. 把标注外包出去,就以为自己不用管了

外包解决的是人力,不是判断标准。

规则没写清楚,交付再快也只是在高速生产垃圾数据。

2. 只看标注数量,不看难例比例

1 万张大晴天、无遮挡的照片,可能还不如 2 千张覆盖充分的现场难例。

别沉迷“数据量破十万”的数字游戏。

3. 标注规范边做边改,却不回刷旧数据

规范从“只标完整目标”改成“遮挡超过 30% 也要标”,旧数据怎么办?

不回刷,训练集内部就会自相矛盾。模型会被教得很迷糊。

4. 测试集被反复拿去调参

测试集是期末考试,不是练习册。

你每调一次参数都看测试集,测试分数迟早会被你“调高”。真正上线还是会露馅。

5. 忽略隐私和合规

人脸、车牌、病历、聊天记录、企业内部屏幕,这些都可能涉及敏感信息。

采集前明确授权范围;标注前做脱敏;对外发包时控制访问权限。别等出事了才补流程。

6. 只修模型,不修数据

模型效果差时,很多人立刻换更大模型、加更多层、调更多参数。

有时问题根本不在模型。

先抽 100 个错误样本出来看看。你很可能会发现,漏标、错标、样本偏差才是罪魁祸首。


一份可以直接拿走的启动清单 ✅

开始一个视觉模型项目之前,确认下面这些问题都有答案:

  • [ ] 模型上线后要处理什么真实画面?
  • [ ] 标签名称、定义、边界规则是否写成文档?
  • [ ] 有没有准备正例、反例和争议案例?
  • [ ] 是否完成了 200 到 500 张的小批量试标?
  • [ ] 是否有独立人员做抽检或复核?
  • [ ] 训练集、验证集、测试集是否按场景隔离?
  • [ ] 是否记录了数据版本和标注规范版本?
  • [ ] 是否建立了从模型错误回流到补数据的机制?
  • [ ] 敏感信息是否完成脱敏和权限控制?

模型能力会越来越便宜,调用接口也会越来越简单。

可现实世界不会自动变成干净的训练集。

谁能把一团乱麻的业务素材,整理成持续迭代的数据资产,谁的 AI 项目才更有机会跑到生产环境,而不是永远停在那句熟悉的话里:

“Demo 效果挺好的,怎么一上线就不行了?”

OpenClaw
木瓜AI - 中转平台
木瓜AI - 大模型中转平台上线啦
注册即送免费tokens
聚合 全球顶尖大语言模型,支持 GPT, Claude, Gemini 等。
立即领取tokens