“使用Scikit-LLM的零样本文本分类体验”

“用Scikit-LLM体验零样本文本分类”

文本分类是自然语言处理(NLP)中最常见的应用之一。它是将一组预定义类别分配给文档中的文本片段的任务。文本分类可以在许多应用中发挥作用,例如情感分析、垃圾邮件检测、主题建模、文档摘要等。

文本分类的标准方法是以有监督的方式训练模型。然而,按照这种方法,结果取决于手工标记的训练数据的可用性。例如,在实际应用中,数据的可用性可能是一个问题,而零样本文本分类是一种越来越流行的新方法。

什么是零样本文本分类?

在介绍零样本文本分类之前,有必要谈论一下零样本学习,它旨在使用较少数量的带标签数据进行建模。是的,确切地说,它可以被看作是迁移学习的一种实例,迁移学习是一种机器学习方法,其中为一个任务开发的模型重复使用为在第二个任务上建模的起点。它利用经验的学习过程的概念。当标记数据量较少时,这种方法是很有用的。文本分类是自然语言处理的一个任务,模型预测文档中文本片段的类别。传统的方法需要大量的带标签数据来训练模型,在训练过程中,如果标记的数据不足,则会失败。用零样本学习解决文本分类任务,我们得到了零样本文本分类,它在训练过程中没有看到任何带标签文本类别的文本文档进行分类的任务,其中一种方法是使用自然语言推理(NLI),由Yin等人(2019)提出。您可以在Transformer模型和Hugging Face Hub中找到零样本分类的实现,这些模型都是可用的。

什么是Scikit-LLM?

Scikit-learn是机器学习领域中最著名和广泛使用的开源Python库之一,由于其广泛的模型和友好的使用,数据科学家们喜爱使用它。您可以使用这个库解决任何任务,从回归到分类,从聚类到降维,只需使用一个库。Scikit-LLM是一个Python库,将大型语言模型体现到scikit-learn框架中。它是在Scikit-Learn流水线内执行自然语言处理(NLP)任务的工具。Scikit-LLM正在发展,它开始集成OpenAI模型(如ChatGPT),现在还有PaLM 2。例如,它是OpenAI API的包装器。

始终参考与OpenAI的接口,接下来介绍了Scikit-LLM提供的功能:

-零样本文本分类

-小样本文本分类

-动态小样本文本分类

-多标签零样本文本分类

-文本向量化

-文本翻译

-文本摘要

分析的目标

这个任务的目标是使用两个数据集,通过零样本文本分类方法探索GPT模型的性能:

-GPT-3.5 turbo 容量为4,097个标记

-GPT-3.5 turbo-16k 容量为16,385个标记

-GPT-4 容量为8,192个标记

第一个数据集是关于对金融数据集进行情感分析,其中包含3种极性:积极、中性和消极。

第二个数据集是关于对CNN文章数据集进行文本分类,其中包含6个标签:财经、娱乐、健康、新闻、政治和体育。

在这两种情况下,都采用了分层抽样和整个数据集样本量的10%来节省计算工作量。

由于这两个数据集都有标签,因此可以通过混淆矩阵和多类别适应的F1分数来对结果进行评估:微平均F1分数

您可以通过这个笔记本跟踪体验过程。

分析

第一个任务使用了一个包含财务句子、情感标签和5842行的数据集,用于财务情感分析。

有3个情感标签,以“中性”类为主导,实验使用了584行数据。

从GPT-4的混淆矩阵来看,我们可以看到数据预测的左对角线上有相当不错的分配。

从F1分数来看,所有模型的得分都超过了70%。符合预期,GPT-4是第一个实验中表现最好的模型。

第二个任务使用了一个包含了从2013年到2022年的CNN新闻、11个变量和9307行的多类别文本分类数据集。

“part_of”列代表新闻的类别,标签被用作目标变量,而“Description”列被用于进行零样本文本分类。

有6个类别,以“新闻”和“体育”类为主导,实验使用了931行数据。

从GPT-4的混淆矩阵来看,相比第一个任务,我们可以看到数据预测的左对角线上有更好的分配。

从F1分数来看,GPT-3.5模型的性能稍低于第一个任务,但仍超过了70%的得分。GPT-4在与其他模型的比较中表现出色,得分超过80%。

最后的思考

GPT-3.5 turbo 16k的性能略低于GPT-3.5 turbo,但速度更快。另一方面,GPT-4在情感分析和多类别文本分类方面表现更好,但速度较慢且价格更高。

如果在整个数据集上运行这个笔记本,这些结果可能会略有不同,因为我只取了数据集大小的10%作为分层抽样样本,这与使用分层交叉验证将数据集划分为十个折叠并只选择一个折叠是相同的。此外,在Scikit-LLM中,目前还没有调整温度特性以获得更确定结果的机会。

无论如何,我认为了解这些模型在零样本文本分类方法下可以达到的能力是很有好处的。因此,当训练数据较少或不存在时,零样本文本分类可能是一个解决方案。它们的通用适用性使它们非常吸引人,尽管大型预训练模型的微调肯定仍然表现出色。毫无疑问,随着大型语言模型成为我们在解决任务时使用模型的一个风向标,零样本学习在未来几年中可能会变得更加重要。

关于Scikit-LLM的最后一件事是,它是一个NLP强大的工具,将Scikit-Learn库的多功能性与大型语言模型带来的潜力相结合。它当然无法与LangChain相提并论,但它正在发展,并且一定能提供帮助。

参考资料

笔记本

金融数据

CNN新闻文章

-statworx的零样本文本分类

-基准测试零样本文本分类:数据集,评估和蕴含方法

-OpenAI模型

Scikit-LLM