使用 Kili 和 HuggingFace AutoTrain 进行观点分类
Hugging Face 详细介绍了一种通过将 Kili(一个以数据为中心的 AI 训练平台)与 HuggingFace AutoTrain 集成来构建文本分类主动学习流水线的工作流程。该方法使开发者能够迭代标记数据并在最少编码的情况下训练模型,显著缩短了从原始数据到可投入生产的分类器的时间。
主动学习流水线概览
主动学习是一种迭代过程,向数据集添加已标记的数据并重新训练模型以提升性能。在本实现中,流水线被应用于约 40,000 条来自 Google Play 商店的 Medium 应用用户评论,以对观点进行分类并执行情感分析。
使用 Kili 进行数据标注
Kili 被用作创建高质量训练数据的端到端平台。工作流程包括:
- 项目配置:通过网页界面或 Python API 创建多类文本分类项目。
- 标签定义:针对 Medium 评论数据集,定义了四个主要类别:Subscription、Content、Interface 和 User Experience。另外使用 “Other” 和 “Multi-label” 标签来处理边缘情况。
- API 集成:Kili Python API 允许以编程方式创建项目、批量(每批 100 条)上传数据,并更新资产属性(例如,将样本移动到 “To Review” 状态以纠正错误标记或偏差)。
- 标注界面:Kili 提供内置键盘快捷键和简化的 UI,以加速标注过程。
使用 AutoTrain 自动建模
AutoTrain 自动化机器学习流水线,包括数据清洗、模型选择和超参数优化。它基于 transformers、datasets 和 inference-api 库构建。
- 功能:AutoTrain 支持二分类和多标签文本分类、标记分类、抽取式问答、文本摘要以及多语言文本评分。
- 性能:在提供的示例中,AutoTrain 在约 20 分钟的训练时间内实现了接近 89% 的准确率,整个设置过程大约耗时 30 分钟。
手动建模与超参数优化
为了进行对比,使用 Hugging Face Trainer API 和 Ray Tune 实现了手动建模方法进行超参数优化。
技术实现
- 基础模型:选择了
cardiffnlp/twitter-roberta-base-sentiment模型进行微调。 - 优化堆栈:流水线使用异步连续削减算法(ASHA)作为调度器,HyperOpt 作为搜索算法。
- 数据集处理:创建了自定义
TextClassificationDataset类,用于将标签映射到索引并通过 AutoTokenizer 进行分词。
结果与观察
使用 20 次和 40 次试验的手动调优显示,模型性能对数据集质量高度敏感。作者指出,在标注阶段引入偏差导致性能下降,随着后期数据集版本中样本方差的增加,这些问题得到了纠正。
最终分析与洞察
通过将微调模型应用于完整数据集并结合情感分析,得出了以下关于 Medium 移动应用的洞察:
- Subscription(订阅):大多数关于订阅的评论为负面,表明付费内容在移动应用中普遍不受欢迎。
- Interface(界面):大量负面评论针对界面,尤其是在 4.5 版本,暗示存在 bug 或用户对特定功能感到困惑。
- Content and Experience(内容与体验):用户普遍对文章以及平台的整体使用体验持积极情绪。
结论
将 Kili 的标注工具与 AutoTrain 结合,为部署文本分类器提供了高效路径。虽然通过 Ray Tune 进行手动调优可以获得更多控制,但 AutoTrain 自动化模型选择和超参数优化的能力,使其在建立基线并在以数据为中心的 AI 项目中迭代时显著更快。