利用Hugging Face进行复杂文本分类用例

使用Hugging Face进行文本分类

智慧工作与Hugging Face专家加速计划的成功故事。

如果您对快速构建机器学习解决方案感兴趣,请访问专家加速计划的落地页面并在此联系我们!

业务背景

随着信息技术的不断发展和重塑我们的世界,营造一个更多样化和包容性的行业环境变得至关重要。智慧工作成立于2018年,旨在应对这一挑战。起初,智慧工作是一家咨询公司,为组织提供多样化建议,并帮助他们使用包容性语言撰写工作广告。为了扩大这项工作,2019年,他们建立了一个Web应用程序,以帮助用户使用英语、法语和德语撰写包容性工作广告。随后,他们迅速扩大了范围,开发了一个作为浏览器扩展的写作助手,可以自动修正和解释电子邮件、Linkedin帖子、工作广告等中的潜在偏见。其目标是提供一种解决方案,用于内部和外部沟通,通过提供微型学习片段来解释突出词语和短语的潜在偏见,从而促进文化变革。

写作助手提供的示例建议

首次实验

智慧工作最初选择了一种基本的机器学习方法来从头开始构建他们的助手。使用预训练的spaCy模型进行迁移学习,该助手能够:

  • 分析文本并将单词转换为词元(lemmas),
  • 进行语言分析,
  • 从文本中提取语言特征(复数和单数形式、性别)、词性标记(代词、动词、名词、形容词等)、词语依赖关系标签、命名实体识别等。

通过使用语言特征检测和过滤特定知识库中的单词,助手可以实时突出显示非包容性的单词并提供替代建议。

挑战

在德语和英语中,词汇中大约有2300个非包容性单词和习语。上述基本方法对85%的词汇有效,但对于依赖上下文的单词则失败了。因此,任务是构建一个依赖上下文的非包容性单词分类器。这个挑战(理解上下文而不是识别语言特征)导致使用Hugging Face transformers。

依赖上下文的非包容性单词示例:
化石燃料不可再生资源。与他是一个老化石
你将有灵活的时间表。与你应该保持你的时间表灵活。

Hugging Face专家提供的解决方案

  • 获取选择正确的机器学习方法的指导。

    最初选择的方法是使用基本的transformers(用于提取特定非包容性单词的标记嵌入)。Hugging Face专家建议从基于上下文的单词嵌入切换到基于上下文的句子嵌入。在这种方法中,句子中每个单词的表示取决于其周围的上下文。

Hugging Face专家建议使用Sentence Transformers架构。该架构为整个句子生成嵌入。语义相似的句子之间的距离被最小化,而远离的句子之间的距离被最大化。

在这种方法中,Sentence Transformers使用Siamese网络和三元组网络结构来修改预训练的transformer模型,以生成“语义有意义”的句子嵌入。

生成的句子嵌入作为基于KNN或逻辑回归的经典分类器的输入,用于构建依赖上下文的非包容性单词分类器。

Witty Works的首席数据科学家Elena Nazarenko:
“我们为每个单词根据其所在句子生成上下文化的嵌入向量(BERT嵌入)。然后,我们仅保留“问题”单词的标记的嵌入,并计算最小夹角(余弦相似度)”

要对基于vanilla transformers的分类器进行微调,例如简单的BERT模型,智慧工作将需要大量的注释数据。每个标记单词类别需要数百个样本。然而,这样的注释过程将会成本高昂且耗时,而智慧工作无法承担。

  • 获取选择正确的机器学习库的指导。

    Hugging Face专家建议使用Sentence Transformers Fine-tuning库(又名SetFit),这是一个用于少样本微调句子嵌入模型的高效框架。SetFit结合了对比学习和语义句子相似性,用非常少的标记数据在文本分类任务上实现了高准确性。

Julien Simon, Hugging Face的首席传播官:
“SetFit对于文本分类任务是一个很好的工具,可以添加到ML工具箱中”

Witty Works团队发现,每个特定单词只需要15-20个标记句子,性能就足够了。

Elena Nazarenko,Witty Works的首席数据科学家:
“到了一天结束时,我们通过不创建这个大型数据集节省了时间和金钱”

减少句子的数量是确保模型训练保持快速和模型运行高效的关键。然而,这也是出于另一个原因的必要性:Witty明确采用高度监督/基于规则的方法来积极管理偏见。减少句子的数量非常重要,以减少手动审核训练句子的工作量。

  • 获取有关选择正确ML模型的指导。

    Witty Works面临的一个主要挑战是部署具有低延迟的模型。没有人期望等待3分钟才能获得改进文本建议!Hugging Face和Witty Works都尝试了几个句子转换模型,并选择了mpnet-base-v2与逻辑回归和KNN相结合的模型。

在Google Colab上进行了第一次测试后,Hugging Face的专家指导Witty Works在Azure上部署了模型。模型足够快,无需进行优化。

Elena Nazarenko,Witty Works的首席数据科学家:
“与Hugging Face合作为我们节省了很多时间和金钱。
在实施复杂的文本分类用例时,人们可能会感到迷失。
作为最受欢迎的任务之一,Hub上有很多模型。
Hugging Face的专家在选择最佳方法时为我提供了指导。
此外,在模型部署过程中,我感到得到了很好的支持”

结果和结论

训练句子的数量从每个单词的100-200个下降到了每个单词的15-20个。Witty Works在Azure上成功部署了一个自定义模型,几乎没有DevOps的工作量,并且准确率达到了0.92!

Lukas Kahwe Smith,Witty Works的CTO兼联合创始人:
“一个人独立开展IT项目可能是具有挑战性的,即使EAP对于初创公司来说是一项重大投资,但它是以更便宜和有意义的方式获得拍档的途径”

在Hugging Face的专家指导下,Witty Works通过以Hugging Face的方式实施新的ML工作流程,节省了时间和金钱。

Julien Simon, Hugging Face的首席传播官:
“构建工作流程的Hugging Face方式:
找到开源预训练模型,
立即进行评估,
看看哪些有效,哪些无效。
通过迭代,您可以立即开始学习”

🤗 如果您或您的团队有兴趣通过Hugging Face的专家加速您的ML路线图,请访问hf.co/support了解更多信息。