输入“/”快速插入内容

探讨 | 大模型在传统NLP任务的使用姿势

2024年8月12日修改
邱震宇|阅读原文
转载请联系原作者取得授权
写在前面
今天给大家带来一篇震宇兄(@知乎邱震宇) 探讨大模型技术在提升传统NLP类任务效果上的应用方式 的文章,主要从文本分类任务出发。
以chatgpt为起始节点的大模型技术经过了两年左右的发展,大致沉淀了一些较为确定的研究领域。首先是基座大模型的研究,主要是国内外大厂集中大量财力、人力、算力进行大模型军备竞赛,企图将大模型的基础能力(包括推理能力)上限逐步提升到更高的层次。当然也有一些研究机构致力于改进transformer的架构或者提出其他更先进的基础模型结构,在性能或者效率上做文章,例如MOE,Mamba等;多模态模型,让大模型同时能够理解并生成图像、音频、视频、文字等多种模态的信息,例如大火的Sora。其次是大模型的微调对齐研究,主要是基座大模型通过指令微调、强化学习等技术将其变成一个应用友好、用户友好的能力模型,也可以将模型长文本、长上下文能力的提升也包含在该方向内;另外,还有大模型的高效部署和推理计算,在降低大模型服务成本的同时,提升大模型服务的实时性,提升用户体验;最后,则是大模型在各种细分场景领域的应用落地,能够将大模型封装成一个成熟的应用产品,真正的将大模型用起来,当然也可以将agent相关的技术研究归纳在这个方向上,因为agent的目标就是将大模型的能力充分利用起来,帮助人类更好地使用大模型。详见下图所示:
本人目前主要精力集中在大模型的应用落地,对大模型在传统NLP应用任务上的效果非常感兴趣。正好前段时间,有潜在客户希望我们研究是否能够通过大模型提升新闻事件分类的效果。借着这个机会,我对大模型在文本分类任务上的应用方式和对应效果进行了研究,有了一些初步的结论。本文希望通过描述上述研究过程与结果,总结出大模型在文本分类任务上的最佳实践,并推广到更多类似的应用上,为业界做大模型应用时提供一些落地的参考。
应用场景分类
在谈具体的研究内容前,需要先明确一下研究的问题类型。目前对于可能会应用到大模型的传统NLP应用,我自己将其分为两种不同的情况:
(1)开荒式业务场景。这种场景主要出现在那些刚刚完成数字化还未进行智能化的机构、或者业务场景本身比较复杂、传统技术无法在该场景中匹配最低的用户使用体验要求的情况。特点:数据积累不成熟(也就是没有足够的训练语料用于场景专用模型的训练)、硬件资源不足(没有足够的GPU用于训练模型)等。
(2)优化提升式业务场景。这种场景主要出现在那些已经有一定智能化基础的机构、或者业务场景中已经使用了一些传统NLP技术解决了部分问题的情况。特点:需要提升已有方法的应用效果和用户体验(如准确率、召回率等),当前方法继续优化的难度较大。
本文主要讨论的是第二种场景,这也是很多有一定数字化、智能化基础的公司比较关注的类型。他们在大模型提出之前,已经通过一些规则、统计机器学习、深度神经网络等算法模型技术构建了一些分类服务,有些行业头部团队在此基础上通过一些技巧(数据增强,对抗训练等)进行了优化,将算法指标提升到了某个瓶颈线。然而,业务用户对于算法的精度提升要求是持续性的,因此在大模型出现之前的一段时间,算法人员疲于应付业务用户对于场景效果的高要求。
只用prompt工程足够吗?
截止2024年,我浏览过很多应用大模型研究传统NLP任务的工作,大多集中在如何利用prompt技术、few-shot技术等直接将大模型应用在这些传统任务中。例如这一篇:Can ChatGPT Understand Too? A Comparative Study on ChatGPT and Fine-tuned BERT,通过prompt工程对比ChatGPT与Fine-tuned Roberta在GLUE数据集上的效果,最终的结论是Fine-tuned Roberta在文本理解任务上仍然无法被超越。然而我也看到有一些观点认为这些传统任务直接用大模型一把梭就能搞定,只要prompt写的足够好,就能得到一个足够好的语言理解分析服务。本人并不反对这种观点,而且还支持对过去的一些应用模式进行革新,从而让大模型能够充分发挥其特性。不过在目前的阶段,很多企业或者业务场景基于安全、成本、时延等因素,无法使用综合能力强的模型(GPT4,国内模型的付费版公有云服务、超过14B的开源模型等),而通过纯prompt工程使用类似7B的模型还无法完全替代已经在足量数据上训练过的BERT类模型。由于上述提到的研究是使用ChatGPT以及英文的数据集,为了验证国内开源的大模型是否在中文数据集上是否也有类似的结论,下面我将根据相关的目标应用场景以一个具体的数据集的实验来说明。
应用场景与数据集
目标应用场景:新闻事件分类任务。任务特点:
(1)多标签分类任务,即一个新闻可能会对应多个事件类别;
(2)事件标签体系庞大,且有比较严重的类别不均衡问题。出现频次高的类别容易累积训练数据,而低频长尾类别属于典型的小样本问题。
由于一些原因,不能拿到相关真实场景数据,因此搜寻了网上的公开数据集,最终找到了一个比较贴近上述任务特点的数据集:ccks 2022 任务八数据集。
代码块
数据链接见:https://tianchi.aliyun.com/dataset/136800
数据集简介:数据主要来自金融领域的公开新闻、报道,数量在5万+左右。原始数据集的任务是“给定100+事件类型及其事件主体公司, 训练数据中对其中16个事件类型只保留10条左右的训练样本,测试集中包含这16个类型的大量待抽取样本。
本次的验证为了简化问题,不会采用上述的任务形式 ,而是采用最基本的全类别分类数据集的处理方式,从而验证模型在这种类型的数据集上的整体效果,以及在一些小样本类别上的效果。
由于目前只有训练集有标注标签,因此只能针对标注数据集进行分析。具体做法是根据标注数据分布划分了训练集,测试集(5000+),其中测试集只用于评测模型的最终结果。
备注:该数据集存在一定的标注质量问题,前期通过一些人力检测与校正,提升了部分的标注质量。
数据示例如下:
代码块
{"textId": "2333e4ef53762e498cc79c7613d6ac6f", "text": "科锐国际:2018年年度权益分派实施公告", "eventTags": [{"eventType": "公司权益分派", "eventCompany": "科锐国际"}]}
{
"textId": "35a726ecec33a755abea4ff6fd5464ec",
"text": "讷河软式透水管有限责任—讷河公司;湘潭招聘/万达集团招聘信息;多次延期后,ST康美终于披露回覆函",
"eventTags": [
{
"eventType": "延期信息披露",
"eventCompany": "ST康美"
},
{
"eventType": "当地招募员工",
"eventCompany": "万达集团"
}
]
}