介绍近年(2022、2024)大语言模型盛行下的两篇文本分类相关的论文,适用场景为few shot。两种方法分别是setfit和fastfit,都提供了python的包使用方便。
论文1:Efficient Few-Shot Learning Without Prompts
题目:无需提示的高效少镜头学习
来源:huggingface 2022
文档:https://huggingface.co/docs/setfit/installation
python包:https://pypi.org/project/setfit/
github:https://github.com/huggingface/setfit/tree/main
论文:https://arxiv.org/pdf/2209.11055
摘要:
解决few-shot的有效方法:PEFT、PET,存在的问题是需要人工构造prompts,并且需要大语言模型来提高精度。
setfit:不需要prompt框架,使用sentence-transformers(ST)微调实现few-shot。
setfit 的工作原理是首先在少量文本对上微调预训练的ST,以对比 Siamese 方式。然后使用生成的模型生成丰富的文本嵌入,用于训练分类头。
贡献:一种简单而无提示的方法——并提供了在实际少镜头设置中应用它的全面指南。
1.我们以 Siamese 的方式微调 ST 以进行文本分类目标,表明它显着提高了性能;
2.我们在少样本设置中演示了这种方法。
论文2:When LLMs are Unfit Use FastFit: Fast and Effective Text Classification with Many Classes
题目:大模型不适用时 使用fastfit:多类别下快速有效的文本分类方法
来源:IBM 2024
python包:https://pypi.org/project/fast-fit/
论文:https://arxiv.org/pdf/2404.12365
github:https://github.com/IBM/fastfit/tree/main
摘要:
FastFit主要用于少镜头分类,尤其是有很多语义相似类别的场景
方法:批对比学习+token级别的相似分数
现有挑战:少镜头+多类别+语义相似场景
具体难点:扩展训练数据费时昂贵
方法:调用大语言模型或者微调小语言模型
1.利用大语言的多任务能力解决数据稀缺问题
1.类别多的时候,LLM很难将所有类别都放进上下文窗口;
2.类别放进了上下文窗口后,分类效果也是一个挑战;
3.效果ok的话,长上下文和模型规模也会造成推理时间很慢。
2.利用小语言模型对特定任务的适应性
1.架构调整
2.不适用于多类别的时候
本文的方法也是微调小语言模型的方法,能够提供3-20倍的加速。
具体方法:
1.批对比学习
2.token级别的相似分数
3.文本增强方法