
开源大语言模型调研
本文将会从大语言模型的发展历程和基础知识出发,带大家由浅入深地了解大语言模型,然后介绍目前大语言模型的开源情况,对主流的预训练语言模型和其微调模型进行详细介绍,并通过一些示例展示给大家各个模型的效果。
摘要
ChatGPT的大火引发了学术界和工业界对大语言模型的强烈重视,大语言模型的重要性不言而喻。首先,大语言模型在各种自然语言处理任务上取得了显著的性能提升,不仅刷新了各项基准测试的记录,而且在实际应用中取得了广泛的成功。其次,通过预训练和微调的策略,大语言模型可以将从海量数据中学到的知识迁移到特定任务上,降低了训练数据和计算资源的需求。此外,大语言模型具有较强的通用性,可以应用于各种自然语言处理任务,如文本分类、情感分析、问答系统、文本生成等。最后,这些模型的出现引发了对自然语言处理模型可解释性、泛化能力和语言表示的深入研究,推动了理论研究和技术发展。
本文将会从大语言模型的发展历程和基础知识出发,带大家由浅入深地了解大语言模型,然后介绍目前大语言模型的开源情况,对主流的预训练语言模型和其微调模型进行详细介绍,并通过一些示例展示给大家各个模型的效果,最后对这些模型进行总结。
1 大语言模型背景
在Transformer[1]结构出现之前,自然语言处理主要使用循环神经网络(RNN)和长短时记忆网络(LSTM)等结构,其在处理序列数据方面取得了一定的成功,例如机器翻译和文本生成。它们能够捕捉长距离依赖关系,但在并行计算和长序列处理方面存在局限。2017年,Transformer结构的提出彻底改变了自然语言处理领域。Transformer使用自注意力机制来捕捉上下文信息,同时具有较强的并行计算能力。这为大型预训练语言模型的发展奠定了基础。谷歌于2018年提出BERT[2](Bidirectional Encoder Representations from Transformers)这种大型预训练语言模型,它在自然语言处理(NLP)领域产生了深远的影响,其在性能、通用性、迁移学习和多语言支持等方面的突破,催生了一系列基于Transformer的预训练语言模型,如RoBERTa、ALBERT、XLNet等。这些模型在海量无标签数据上进行预训练,然后在特定任务上进行微调。它们在许多自然语言处理任务上实现了显著的性能提升。
2018年,OpenAI提出了GPT-1[3]模型,其思想为先预训练一个语言模型,再基于这个模型适配不同的下游任务进行微调,GPT-1的模型由于思想与BERT相同但性能难以比拟,因此没有得到大众的关注。随后,OpenAI又继续推出GPT-2[4]和GPT-3[5]模型,其将模型大小和训练数据量都大幅度扩展,GPT-3 在各种 NLP 任务上表现出了非常出色的性能,不仅在生成任务上有所改进,还在零样本或少样本学习上表现出了惊人的能力。这意味着 GPT-3 可以在没有微调的情况下,仅通过提供适当的前提或上下文来解决特定任务。GPT 系列模型的发展反映了 NLP 领域在模型设计、训练技术和应用方面的进步。从 GPT-1 到 GPT-3,模型的性能持续改进,推动了各种自然语言处理任务的发展。
2 主要模型与方法
2022年底,OpenAI推出ChatGPT聊天机器人程序,该程序是基于 GPT-3.5 的大语言模型,虽然聊天机器人的核心功能是模仿人类对话者,但ChatGPT用途广泛,可以用于编程、创作,因此其推出两个月内,月用户活动量就达到2亿。其功能强大,以至于大语言模型成为学术和工业界研究的热点,各个公司纷纷推出各自研发的大语言模型,如Meta自研的LLaMA模型、清华大学自研的GLM模型、百度推出的文心一言大语言模型等,本章节会介绍一些在Github上已开源的预训练大语言模型和基于其进行指令微调的微调模型。
2.1 LLaMA[6]
LLaMA是Meta提出的预训练语言模型的集合,其参数范围从7B到65B。其预训练数据集均使用公开可用的数据集,而不依赖于专有的和不可访问的数据集。其网络结构基于Transformer架构,但是相较于原始GPT模型有了以下改变:
- 为了提高训练的稳定性,对每个Transformer子层的输入进行归一化,归一化函数采用RMSNorm。
- 用SwiGLU激活函数取代ReLU非线性激活函数,可以提升模型的性能。
- LLaMA删除了绝对位置嵌入,取而代之的是在网络的每一层添加旋转位置嵌入。
经过测试,LLaMA-13B在大多数基准测试中优于GPT-3 (175B), LLaMA-65B与最好的模型Chinchilla-70B和PaLM-540B具有竞争力。Meta开源了四种参数规模的预训练权重,自此基于LLaMA模型的微调持续活跃,研究人员纷纷基于已有权重进行微调并对LLaMA模型进行测试,发现经过微调其性能能够有效提升。
2.1.1 Alpaca
较早开源的斯坦福羊驼(Alpaca)模型是基于LLaMA-7B微调而来的全新模型,仅用了52k数据,在8个80GB A100上训练了3个小时,性能约等于GPT-3,不仅如此,斯坦福还公开了其微调数据集和代码,该工程在开源不到24小时就收获近13.5k的stars,可见其火爆程度,大家均纷纷上手微调LLaMA-7B模型,并探索其性能极限。
2.1.2 Chinese-LLaMA-Alpaca
LLaMA的中文能力比较差,Chinese-LLaMA-Alpaca 在原版 LLaMA 的基础上扩充了中文词表,并使用中文数据进行二次预训练。同时,在中文LLaMA的基础上,使用了中文指令数据进行指令精调,显著提升了模型对中文指令的理解和执行能力。
2.2 GLM[7]
GLM-130B是清华大学公布的一个开源开放的双语双向稠密预训练大语言模型,拥有 1300 亿参数,与GPT类型的预训练语言模型不同,GLM-130B是一种通用语言模型(GLM),其结构有如下改变:
- 在训练时利用自回归空白填充方法进行训练。
- Layer Normalization采用DeepNorm初始化后的Post-LN,该操作能够增强训练稳定性。
- 采用旋转位置编码,并且激活函数采用GeLU。
GLM-130B可以同时支持中文和英文,在英文LAMBADA benchmark上优于 GPT-3 175B davinci(+4.0%)、OPT-175B(+5.5%)和BLOOM-176B(+13.0%)。在中文benchmark上的性能也明显优于中文大预训练语言模型ERNIE TITAN 3.0 260B。GLM-130B 模型权重已开源,推进了基于GLM微调模型的发展,其中卓有成效的模型为ChatGLM,也是清华大学推出的。
2.2.1 ChatGLM
ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。
2.3 Bloom[8]
Bloom预训练大语言模型最大有1760亿参数量,比GPT-3还多10亿,其共包含70层Transformer,每层112个注意力头;token序列长度为2048;采用GeLU激活函数;数据集共计3416亿条token(1.5TB文本数据);共支持13种编程语言、46种语言。最重要的,从代码到数据集,Bloom全部在huggingface上对外开放,所有人都可使用。由于其权重开源,因此基于该预训练模型的微调模型也层出不迭,其中BELLE项目基Bloom-7B模型,针对中文做了优化,模型调优仅使用由ChatGPT生产的数据,便能够实现很好的中文效果。
2.3.1 BELLE
BELLE基于开源预训练大语言模型Bloom,针对中文做了优化,目标是促进中文对话大模型开源社区的发展,愿景做能帮到每一个人的LLM Engine。模型调优仅使用由ChatGPT生产的数据,BELLE使用了0.2M、0.6M、1M、2M条中文数据进行模型微调训练,同时BELLE开源了10M中文微调数据集。
3 应用和案例展示
由于预训练语言模型普遍规模都比较大,而且其采用自回归方法进行预训练,主要使得模型对知识体系进行学习并具备一定生成能力,其问答能力并不是很强。因此,本节主要对经过指令微调的模型在问答方向的能力进行测试,测试问题分为中文和英文。
在问题的选择上,提问包括了中、英文方向上具有迷惑的常识问答,“推荐几本金庸的科幻小说”,因为众所周知,金庸没有写过科幻小说。除此之外,还包括一些建议性、知识性、编程性的问答,问题具体如下,英文能力图1,2所示,中文能力图3,4,5:
Fig.1 英文能力展示
Fig.2 英文能力展示
Fig.3 中文能力展示
Fig.4 中文能力展示
Fig.5 中文能力展示
通过对比不同微调模型对同样问题的回答,我们可以得到以下结论:
- alpaca-7B模型是斯坦福调用GPT-3.5 API生成52000条指令数据微调得到的模型,首先可以看到由于其预训练中文语料极少,且微调数据没有中文语料,其对中文问题的回答较差,有的只是简单的对中文进行翻译,甚至完全理解错中文语义。对于英文问题,其回答问题的流畅性较好,但是其回答问题的准确性不足。
- Chinese-LLaMA-Alpaca是中文LLaMA模型和经过指令精调的Alpaca大模型,其开源了7B和13B的模型,经过测试,其7B模型并不能回答我们给出的问题,只是简单的重复了题干内容。因此我们展示其13B模型的问答能力,可以发现,其对于原始Alpaca模型中文能力有提高,英文能力略有退步。但是对于复杂的中文问题,解决能力还有待提高,还是会出现不合理解释。从其回答的问题来分析,其微调数据中包括一些论坛数据,这些数据目前并没有很好的激活模型对中文的理解能力。
- ChatGLM是基于中英双语预训练大模型GLM进行指令微调得到的模型,从测试结果来看,对于中文问题,ChatGLM回复还是很有逻辑性的,但是对于金庸写科幻小说这一常识性问题并没有识破。对于英文问题,会出现中、英文乱码情况,具备一定的编程能力,但是对题目的理解还是不够。
- BELLE是基于Bloom多语言预训练模型进行微调的,其具备多语言能力,在英文回答中出现了中英文杂糅的形式。尽管BELLE是在中文数据集上进行了额外的微调,但它仍然保留了回答简单英文问题的能力,同时其中文对话也具备了一定的逻辑性。
- OpenAI的GPT-4对于常识问题中的错误知识能够进行有效校正,其内容上会更丰富,准确性也更高。
4 总结
目前国内外各个科技公司纷纷宣布要加入大模型研究,Github和各社区上关于大模型微调也持续火热,基于指令微调的模型产品层出不迭,但是经过我们的测试发现,目前开源项目在中英问答、编程、常识等方向的能力较GPT-4差距较大,在该形式下,我司有必要进行大模型训练的相关研发,加强自研产品的开发。
参考文献
更多推荐
所有评论(0)