算法项目开展的数据准备及标注规范

标签体系的意义

  • 标签的制定需要花最多的时间,而且不断修正,可以借助其他成熟的平台进行辅助。
  • 标签定义一定要清楚, 先做到任何人标注理解无歧义, 算法模型才有可能出好的结果。
  • 标签代表了我们试图解决的问题什么. 如果问题本身摸棱两可, 再好的学生也回答不出答案。

标注数据的质量本身决定了算法天花板

Good ML relies on good data,Garbage in, garbage out

  • 训练的数据量
  • 数据质量提升

测试集验证集

  • 测试集 / test set: 作为质量验收的标准,是考试题,不应提前提供给算法人员,尽量做到每个类别都有相差不大的数据量。
  • 训练集 / training set (这里包含验证集 / validation set): 通过验证集可以作为评估模型的标准,一般来说,训练集、测试集、验证集应该是同分布的。

取数与数据清洗

取数要有代表性和随机性,取数的数量要兼顾标注的难度

  • 要体现出业务上数据的优先级
    1. 需根据业务的场景对部分字段进行排序,符合线上的数据呈现逻辑,抓重点。
  • 有足够的覆盖度,增强模型的泛化性。
    1. 不同来源的文本。
    2. 不同长度的文本。
    3. 如果类别数据不够,无法兼顾到全部类别,也需要把无覆盖的类别样本合并一起作为负样本,避免模型对陌生样本的错判。
  • 类别间的样本量一定要均衡,数据量相差悬殊会大大影响模型的判断。
    1. 数据量较少的类别需要用数据增强等手段,重采样效果一般,可根据线上数据的特点,采用如拼接、截断等方式。
    2. 同一类别下模板化的数据太多,可以用编辑距离等方法进行去重。
  • 两步走:
    1. 用粗标的数据进行大量数据的预训练
    2. 再用精标的类别均衡数据进行微调
    3. 两个步骤采用同一份验证集

数据标注流程

  1. 算法工程师/产品经理试标一轮,并在过程中修正标签体系和标签定义,并记录。
  2. 非人工标注样本数据补充办法:
    1.  既有标注数据集、外部开源数据集训练
    2. 外部开源免费的AI接口, 生成训练用数据
    3. 自研的目的: 外部接口调用的成本高于自行研发维护
  3. 培训标注人员, 标注人员试标, 检查试标结果,针对标注错误部分进行辅导和纠正
  4. 标注人员全量样本数据标注
    1. 对于有歧义/不确定的需要记录后续分析
    2. 判断的依据新关键词, 也要记录下来, 判定典型性
    3. 对于有歧义标注数据协商处理, 可能会需要反推导标签体系说明修正, 最后取一致的部分作为标签
    4. 标注量偏少的标签需要再定向补充一轮, 确保每个标签下的样本数据足够均衡
    5. 尽量盲标, 即不提供识别来源出来的标签结果, 避免预信息对于标注质量产生影响
  5.  标注数据抽样验收:验收人员也尽量先盲标 (Excel先通过隐藏对应列方式), 背靠背的方式单独再标一轮后对比, 避免误导

你可能感兴趣的:(工作规范,人工智能,python)