概述
Prodigy 是一个现代化的标注工具,用于为机器学习模型收集训练数据。本文将展示如何配置 Prodigy 以发现文本分类任务中的错误标签。虽然这些技术主要应用于文本分类,但它们也适用于一般的分类任务。
核心内容
1. 错误标签的问题
错误标签(Bad Labels)会严重影响模型性能。识别和修正这些错误标签是提升模型准确率的关键步骤。
2. 启发式规则 (Heuristics)
通过设定简单的规则(如文本长度、特定关键词的存在等)来初步筛选出可能被错误标注的样本。这些规则可以在 Jupyter Notebook 中快速实现和验证。
3. 利用模型识别错误标签
- 模型置信度:训练一个初步模型,检查模型对每个样本预测的置信度。低置信度的预测可能意味着样本本身模糊或标签错误。
- 模型分歧:比较多个不同模型(例如,逻辑回归与随机森林)对同一样本的预测结果。如果模型间预测结果不一致,该样本可能是可疑的。
4. 嵌入向量技巧 (Embedding Tricks)
使用预训练的词向量或句子向量(如通过 spaCy 或 whatlies 库)将文本数据映射到向量空间。
- 邻近分析:在向量空间中,查找与某个样本距离很近但标签不同的其他样本。这些“邻近异类”很可能是错误标签。
- 可视化:利用
whatlies等工具对嵌入向量进行降维可视化(如 PCA 或 UMAP),可以直观地观察不同类别样本的分布和重叠区域,从而发现潜在的标注错误。
5. 怀疑原因库 (Doubtlab)
介绍 doubtlab 项目,它是一个用于识别可疑数据的库,集成了上述多种策略(如邻近异类、模型分歧、置信度低等),可以方便地为数据集中的每个样本生成一个“怀疑分数”,从而快速定位最可能出错的样本。
6. 在 Prodigy 中进行标注
- 设置 Prodigy:配置 Prodigy 以加载现有的数据集和通过上述策略筛选出的“可疑”样本列表。
- 标注界面:在 Prodigy 的标注界面中,标注员可以查看这些被标记为可疑的样本,并重新判断其类别。
- 工作流集成:可以将怀疑原因(如“邻近异类”)作为上下文信息展示给标注员,帮助他们做出更明智的判断。
7. 标注者分歧 (Annotator Disagreement)
当多个标注员对同一个样本给出不同标签时,这通常是数据定义模糊或样本本身难以归类的信号。分析这些分歧点有助于优化标注指南或识别极端案例。
8. 经验总结 (Learnings)
- 结合多种策略(启发式、模型、嵌入)可以更有效地发现错误标签。
- 将怀疑机制集成到标注工具中,可以显著提升数据清洗和迭代的效率。
- 关注标注者之间的分歧,对于理解数据和任务本身至关重要。FINISHED