Large Language Model系列之二:Transformers和预训练语言模型
1 Transformer模型
Transformer模型是一种基于自注意力机制的深度学习模型,它最初由Vaswani等人在2017年的论文《Attention Is All You Need》中提出,主要用于机器翻译任务。随后,Transformer模型因其出色的性能和灵活性被广泛应用于各种自然语言处理(NLP)任务,如文本分类、问答系统、文本摘要等,以及计算机视觉领域中的一些任务。
以下是Transformer模型的几个关键特点:
- 自注意力机制(Self-Attention):
允许模型在编码(编码器)或解码(解码器)过程中,计算序列中每个元素对于其他所有元素的注意力权重,从而捕捉序列内部的长距离依赖关系。 - 编码器-解码器架构(Encoder-Decoder Architecture):
Transformer模型由编码器和解码器组成,编码器处理输入序列,解码器生成输出序列。 - 多头注意力(Multi-Head Attention):
模型并行地执行多个注意力函数,每个头学习输入的不同表示,然后将这些表示合并,以捕获不同子空间的信息。 - 位置编码(Positional Encoding):
由于Transformer模型缺乏递归和卷积结构,因此需要位置编码来提供序列中单词的位置信息。 - 前馈网络(Feed-Forward Networks):
在每个编码器和解码器层中,自注意力层的输出会通过一个前馈神经网络,进一步提取特征。 - 层归一化(Layer Normalization) 和 残差连接(Residual Connections):
这些技术有助于避免训练过程中的梯度消失问题,使得可以训练更深的网络。 - 并行处理能力:
与循环神经网络(RNN)相比,Transformer模型可以并行处理整个序列,这大大提高了模型的计算效率。 - 可扩展性:
Transformer模型可以通过简单地堆叠更多的层或使用更大的模型尺寸来扩展,以提高模型的容量。
Transformer模型的成功推动了后续许多变体和改进,例如BERT(Bidirectional Encoder Representations from Transformers)、GPT(Generative Pre-trained Transformer)和T5(Text-to-Text Transfer Transformer)等,这些模型在预训练和微调范式下取得了显著的成果。
参考资料:
1 十分钟理解Transformer
2 The Illustrated Transformer
3 Transformer模型详解(图解最完整版)
4 万字长文,深入浅出Transformer,值得收藏!
2 早期PLMs
2-1 仅编码器PLMs
仅编码器模型,最初为语言理解任务设计,如文本分类,通过编码器网络将文本转换为类别标签。这类模型的代表包括BERT及其衍生模型,如RoBERTa、ALBERT、DeBERTa、XLM、XLNet、UNILM等。
BERT模型
组成:嵌入模块、Transformer编码器堆栈、全连接层。
预训练目标:掩蔽语言模型(MLM)和下一个句子预测。
微调应用:适用于多种语言理解任务,通过添加分类器层进行微调。
变体模型
RoBERTa:通过调整超参数和训练策略提高BERT的鲁棒性。
ALBERT:采用参数减少技术,降低内存消耗,加快训练速度。
DeBERTa:引入解耦注意力机制和增强的遮蔽解码器,提高模型泛化能力。
ELECTRA:使用替换token检测(RTD)作为预训练任务,效率更高。
跨语言模型
XLMs:将BERT扩展到跨语言模型,使用无监督和监督两种方法,通过新的跨语言模型目标提高跨语言能力。
这些模型在语言理解任务上取得了显著成果,推动了AI社区开发更多基于BERT的仅编码器语言模型。
2-2 仅解码器PLM
在仅解码器预训练语言模型领域,OpenAI开发的GPT系列模型扮演了关键角色,从GPT-1到GPT-2。
GPT-1模型
创新:首次证明仅解码器Transformer模型通过生成式预训练能在多种自然语言处理任务上展现优异性能。
预训练:在大量未标记文本上进行自监督学习,目标是预测下一个词。
微调:在特定下游任务上进行微调,需要的样本数量较少。
影响:为后续GPT模型奠定了基础,每一代都在架构上进行了优化,提升了语言任务的性能。
GPT-2模型
能力:在大规模WebText数据集上训练,展示了语言模型在无明确监督的情况下执行特定任务的能力。
改进:在GPT-1的基础上进行了架构上的调整,包括层归一化的位置变动、增加额外的层归一化、修改初始化过程、调整残差层权重。
扩展:扩大了词汇量至50,257个,并将上下文大小从512个标记增加至1024个标记。
GPT系列模型通过逐步的架构优化和扩展,实现了在自然语言处理领域的显著进步,为大型语言模型的发展提供了坚实的基础。
2-3 编码器-解码器PLM
Raffle等人提出,几乎所有的自然语言处理(NLP)任务都可被视为序列到序列的生成任务。基于这一理念,编码器-解码器语言模型被设计为一个统一框架,能够处理所有自然语言理解和生成任务。以下是几个代表性的编码器-解码器预训练语言模型(PLM)的概览:
T5模型
框架:T5是一个文本到文本转换的Transformer模型,将所有NLP任务统一为文本到文本的生成任务,有效利用迁移学习。
特点:通过转换任务格式,T5能够处理广泛的NLP任务。
mT5
多语言支持:mT5是T5的多语言版本,预训练涉及101种语言,基于Common Crawl的多语言数据集。
MASS模型
遮蔽序列到序列预训练:MASS采用编码器-解码器框架,通过遮蔽句子片段并预测这些片段来同时训练编码器和解码器,用于语言嵌入和生成。
BART模型
训练方式:BART基于标准的序列到序列翻译模型架构,通过引入噪声并学习重构原始文本进行预训练。
这些模型展示了编码器-解码器架构在处理多样化NLP任务时的灵活性和强大能力,推动了自然语言理解和生成任务的进展。
3 大型语言模型(LLMs)
3-1 GPT 家族
GPT家族是由OpenAI开发的一系列仅解码器Transformer语言模型,涵盖了从GPT-1到GPT-4等多个版本,以及其他衍生模型如CODEX、WebGPT、InstructGPT和ChatGPT。
开源与封闭源代码
早期的GPT-1和GPT-2模型是开源的,而GPT-3和GPT-4等近期模型则是封闭源代码,仅通过API提供服务。
GPT-3模型
参数规模:GPT-3拥有1750亿参数,是一个巨大的自回归语言模型。
能力:作为首个真正的大型语言模型(LLM),GPT-3展示了无需微调即可在多种任务上应用的能力。
性能:在翻译、问答等NLP任务上表现卓越,且能够处理需要推理或领域适应的任务。
CODEX模型
发布:2023年3月发布,是一个能将自然语言解析生成代码的通用编程模型。
应用:支持GitHub Copilot服务,是GPT-3针对编程应用的微调版本。
WebGPT模型
功能:经过微调,能够使用文本浏览器回答开放式问题,帮助用户搜索和浏览网页。
训练:包括模仿人类浏览行为、学习奖励函数,并通过强化学习进行优化。
InstructGPT
设计:旨在使语言模型遵循人类指令,通过人类反馈进行微调。
改进:提高了真实性,减少了有害输出,同时保持了在公共NLP数据集上的性能。
ChatGPT
发布:2022年11月30日发布,是一个能够完成问答、搜索、摘要等任务的聊天机器人。
技术基础:基于GPT-3.5和GPT-4,遵循InstructGPT的训练理念。
GPT-4模型
最新进展:GPT-4是GPT家族中最新且功能最强大的LLM,具备多模态能力,可以接受图像和文本输入。
性能表现:在专业和学术基准测试中展现出与人类相媲美的性能。
训练与微调:通过预训练和RLHF微调,使模型行为与人类期望一致。
GPT家族的模型不仅在规模上不断增长,而且在能力上也不断创新,推动了自然语言处理技术的发展。
3-2 LLaMA 家族
LLaMA家族是由Meta发布的一系列开源基础语言模型,旨在推动开源大型语言模型(LLMs)的发展,并为特定任务应用提供定制化的解决方案。与GPT模型不同,LLaMA模型在非商业许可下向研究社区开放模型权重。
LLaMA模型
发布时间与规模:2023年2月发布的第一组模型,参数从70亿到650亿不等。
预训练数据:在数万亿标记的公开数据集上进行预训练。
架构创新:采用改进的Transformer架构,包括SwiGLU激活函数、旋转位置嵌入和均方根层归一化。
性能对比:LLaMA-13B模型在基准测试中超越了GPT-3模型。
LLaMA-2
发布背景:2023年7月,Meta与微软合作发布,包括基础语言模型和对话微调的LLaMA-2 Chat。
性能优势:在公共基准测试中表现优于其他开源模型。
Alpaca
来源与微调:从LLaMA-7B模型微调而来,使用自我指导方式生成的遵循指令演示。
成本效益:特别适合学术研究,性能与GPT-3.5相似,但模型规模更小。
Vicuna-13B
开发背景:通过对LLaMA模型微调,利用用户共享对话开发。
初步评估:质量上达到ChatGPT和Google Bard的90%以上,训练成本仅为300美元。
Guanaco
微调方法:使用QLoRA技术高效微调,即使是650亿参数的模型也能在单个GPU上完成。
性能对比:在Vicuna基准测试中胜过所有之前发布的模型。
Koala
构建背景:基于LLaMA,特别关注交互数据,包括用户输入和高性能封闭源代码聊天模型生成的响应。
性能评估:在现实世界用户提示的评估中与最先进的聊天模型相当。
Mistral-7B
模型特点:70亿参数的语言模型,采用分组查询注意力和滑动窗口注意力技术。
性能对比:在多个基准测试中优于其他开源模型,实现了更快的推理和更低的推理成本。
LLaMA家族的模型通过不断的技术创新和性能优化,为开源LLMs领域提供了强有力的竞争者,推动了自然语言处理技术的发展。
3-3 PaLM 家族
PaLM(Pathways语言模型)家族是由谷歌开发的一系列大型语言模型(LLMs),以其庞大的规模和高质量的预训练数据而著称。
首款PaLM模型
发布时间:2022年4月。
规模:基于5400亿参数的Transformer架构。
预训练资源:在7800亿个标记的文本语料上预训练,使用6144个TPU v4芯片和Pathways系统。
性能和成果:PaLM在多个语言理解和生成基准测试中实现了最先进的小样本学习结果,部分任务上与人类表现相当。
U-PaLM模型的持续训练
规模:提供8B、62B和540B三个规模的模型。
持续训练方法:采用UL2R方法,实现计算节省。
Flan-PaLM的指令微调
微调特点:使用大量任务和数据集进行指令微调。
性能提升:在多个任务上显著提高了性能。
PaLM-2模型
性能提升:相比前身,PaLM-2在多语言和推理能力上表现更佳,同时具有更高的计算效率。
Med-PaLM:面向医疗领域的专用模型
模型定位:专门用于提供高质量医学问题答案。
微调方法:使用指令提示微调方法,适应医学领域。
Med-PaLM 2的进一步改进
改进方法:通过医学领域微调和合成提示进行改进。
性能提升:在MedQA数据集上得分显著提高,创造了新的最先进水平。
PaLM家族的模型通过不断的技术创新和性能优化,在自然语言处理领域展现了强大的能力,特别是在多语言理解和生成任务上。此外,通过持续训练和指令微调,PaLM家族的模型在特定领域如医疗保健中也展现出了巨大的潜力。