3、需求文档的通用结构:背景、目标、范围、定义、流程、规范、验收标准

说实话,我见过太多标注需求翻车的案例了。

需求文档写得像天书,标注团队看不懂,开发团队懒得看,最后项目延期、数据返工,大家互相甩锅。我自己就踩过这个坑——有一次写了个20页的文档,结果标注同学只看了第一页,后面全凭感觉做。嗯,从那以后,我彻底改了写文档的习惯。

今天聊聊我总结的一套通用结构。一共7个模块,按顺序写,基本不会漏东西。

3.1 背景:为什么要做这件事?

背景部分,说白了就是讲清楚「我们为什么要标注这批数据」。别小看这一段,它决定了团队对项目的理解深度。

我个人习惯写三句话:

  • 当前业务遇到了什么问题?
  • 为什么需要AI来解决?
  • 标注数据在其中扮演什么角色?

示例:

「当前客服系统每天收到5000+用户投诉,人工分类效率低、误差大。我们计划训练一个意图识别模型,将投诉自动归类到20个标准类别中。本次标注任务是为该模型提供首批5000条训练数据。」

我曾经见过一个项目,背景写了整整两页公司战略,标注同学看完一脸懵。记住,背景不是写论文,别扯太远。

3.2 目标:做到什么程度算成功?

目标要可量化。别写「提高模型准确率」这种废话,要写「标注数据用于训练后,模型在测试集上的F1值达到0.85以上」。

我一般会列3-5个关键指标:

  • 数据量目标:比如「完成10万条有效标注」
  • 质量目标:比如「标注准确率不低于95%」
  • 时间目标:比如「2周内交付第一批数据」

小技巧:目标最好和验收标准对应起来。你想想看,如果目标写「高质量数据」,验收时怎么量化?肯定扯皮。

3.3 范围:做什么,不做什么?

范围这块最容易出问题。我见过最典型的场景:标注团队把不该标的数据标了,该标的反而漏了。

范围要写清楚两件事:

  • 包含:哪些数据类型、哪些场景、哪些标签类别
  • 不包含:哪些数据不处理、哪些边界情况跳过
维度 包含 不包含
数据类型 中文文本、长度≤500字 英文文本、图片、音频
场景 售前咨询、售后投诉 闲聊、广告、垃圾信息
标签 20个标准意图类别 情感标签、实体标签

我曾经接手过一个项目,范围没写清楚,标注同学把「退货流程」和「退款流程」当成同一个标签标了。后来模型上线,这两个意图完全混淆,返工花了整整一周。血的教训啊。

3.4 定义:每个术语到底什么意思?

定义部分,就是给所有专业术语一个明确的解释。别觉得大家都知道,标注同学可能来自不同背景。

我建议用表格来写定义:

术语 定义 示例
意图 用户表达的核心诉求 「我想退货」→ 退货意图
实体 意图中的关键信息 「订单号:12345」→ 实体
边界情况 模糊、歧义、多意图的样本 「能退吗?能换吗?」→ 多意图

注意:定义部分一定要和标注团队对齐。我习惯在文档写完后,拉一个半小时的线上会议,逐条过一遍定义。别省这个时间,省了后面更费时间。

3.5 流程:标注工作怎么流转?

流程部分,我一般画一个简单的流程图。不用太复杂,标注团队能看懂就行。

数据分配 初标 质检 验收交付 不合格返工

流程里要写清楚:

  • 谁负责分配数据?
  • 标注员每天领多少条?
  • 质检比例是多少?(我一般建议10%-20%)
  • 返工流程怎么走?

3.6 规范:具体怎么标?

规范是文档里最长的部分,也是标注同学最常翻的部分。我建议按标签类别来写,每个标签给出:

  • 标注规则(一句话说清楚)
  • 正例(2-3个)
  • 反例(1-2个)
  • 边界情况处理方式

示例:退货意图标注规范

规则:用户明确表达希望退回已购买的商品,包含退货、退款、退换等关键词。

正例:「这件衣服我不想要了,能退吗?」

反例:「你们质量太差了!」(这是投诉,不是退货)

边界:「能退就退,不能退就算了」→ 标注为退货意图,因为用户优先表达了退货意愿。

规范部分,我建议用代码块来展示一些复杂的标注规则。比如正则表达式:

# 退货意图关键词匹配规则
退货关键词 = ["退货", "退款", "退换", "不要了", "退回"]
if any(keyword in user_input for keyword in 退货关键词):
    label = "退货意图"
else:
    label = "其他意图"

3.7 验收标准:怎么判断标注合格?

验收标准是文档的收尾,也是最重要的部分。没有验收标准,标注质量就是一笔糊涂账。

我一般写三个维度:

  • 准确率:随机抽检,准确率≥95%才算通过
  • 一致性:不同标注员对同一条数据的标注结果,一致率≥90%
  • 覆盖率:所有标签类别都有足够样本,每个类别不少于100条

我的习惯:验收标准最好和标注团队提前对齐。我曾经遇到过,我觉得95%准确率算合格,标注团队觉得90%就行。后来吵了一架才统一标准。提前说清楚,省得后面撕逼。

好了,以上就是需求文档的7个模块。你想想看,如果每个项目都按这个结构写,标注团队还会看不懂吗?开发团队还会抱怨吗?

下一章,我会聊聊「如何用示例数据让标注需求更清晰」。嗯,那个更有意思。