GPT、BERT、XLM、GPT-2、BART…你都掌握了吗?一文总结文本生成必备经典模型(1)

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,100CU*H 3个月
简介: GPT、BERT、XLM、GPT-2、BART…你都掌握了吗?一文总结文本生成必备经典模型

机器之心专栏

本专栏由机器之心SOTA!模型资源站出品,每周日于机器之心公众号持续更新。 本专栏将逐一盘点自然语言处理、计算机视觉等领域下的常见任务,并对在这些任务上取得过 SOTA 的经典模型逐一详解。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。

本文将分 2 期进行连载,共介绍 10 文本生成任务上曾取得 SOTA 的经典模型。


  • 第 1 期:Seq2Seq(RNN)、Seq2Seq(LSTM)、Seq2Seq+Attention、SeqGAN、Transformer
  • 第 2 期:GPT、BERT、XLM、GPT-2、BART

您正在阅读的是其中的第 2 期。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。

第 1 期回顾:Seq2Seq、SeqGAN、Transformer…你都掌握了吗?一文总结文本生成必备经典模型(一)


本期收录模型速览

模型 SOTA!模型资源站收录情况 模型来源论文
GPT

https://sota.jiqizhixin.com/project/gpt

收录实现数量:2

支持框架:TensorFlow、PyTorch

Improving language understanding by generative pre-training
BERT

https://sota.jiqizhixin.com/project/bert-22

收录实现数量:6

支持框架:TensorFlow

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
XLM

https://sota.jiqizhixin.com/project/xlm

收录实现数量:4

支持框架:PyTorch

Cross-lingual Language Model Pretraining
GPT-2

https://sota.jiqizhixin.com/project/gpt-2

收录实现数量:5

支持框架:PyTorch、MindSpore、TensorFlow

Language Models are Unsupervised Multitask Learners
BART

https://sota.jiqizhixin.com/project/bart-8

收录实现数量:1

支持框架:PyTorch

BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension

文本生成(Neural Language Generation,NLG)是指从非语言的表示生成人类可以理解的文本。根据非语言表示的不同划分,文本生成包括“文本→文本”、“数据→文本”、“图像→文本”。随着深度学习、知识图谱等前沿技术的发展,基于图像生成文本描述的实验成果在不断被刷新。基于GAN的图像文本生成技术已经获得了非常好的效果,不仅能够根据图片生成非常好的描述,还能根据文本输出生成对应的图片。由数据生成文本,目前主要用于新闻撰写领域,中文和英文都有很大的进展。

从应用任务的领域细分,机器翻译、对话系统(目标导向、开放式)、故事生成、诗歌生成、文本摘要等等都属于文本生成的范畴。与其他自然语言处理技术类似,文本生成也主要包括传统的文本生成方法(基于规则、基于统计)和基于神经网络的文本生成方法两类。

本文回顾文本生成领域必备的TOP模型,聚焦于“文本→文本”。所选出进行介绍的模型在提出之时,其目的可能是解决机器翻译、文本摘要、对话系统等不同的任务,因其经典性以及对文本生成整个领域中不同应用任务的巨大推动,我们都放入本文介绍。而针对具体的细分应用领域,例如机器翻译任务必备的TOP模型、文本摘要任务必备的TOP模型等等,我们将在具体的专题文章中详细介绍其中经典模型的改进历程。


Improving language understanding by generative pre-training


GPT,也称为GPT-1,是OpenAI在论文《Improving Language Understanding by Generative Pre-Training》中提出的生成式预训练语言模型。该模型的核心思想:通过二段式的训练,第一个阶段是利用语言模型进行预训练(无监督形式),第二阶段通过 Fine-tuning 的模式解决下游任务(监督模式下)。GPT-1可以很好地完成若干下游任务,包括分类、蕴含、相似度、多选等。在多个下游任务中,微调后的GPT-1系列模型的性能均超过了当时针对特定任务训练的SOTA模型。GPT全称Generative Pre-Training,是一种半监督学习方法,具体方法是在针对有标签数据训练Fine-tune之前,用无标签数据预训练模型Pretrain,并保证两种训练具有同样的网络结构。

GPT 采用两阶段过程,第一个阶段是利用语言模型进行预训练(无监督形式),第二阶段通过 Fine-tuning 的模式解决下游任务(监督模式下)。模型的结构如图1。


图1. (左)本工作中使用的transformer结构和训练目标。(右)在不同任务上进行微调的输入转换。将所有的结构化输入转换为标记序列,由预训练模型处理,然后是线性+softmax层

GPT-1由12层Transformer Decoder的变体组成,称其为变体,是因为与原始的Transformer Decoder相比,GPT-1所用的结构删除了Encoder-Decoder Attention层,只保留了Masked Multi-Head Attention 层和Feed Forward层,并扩大了网络的规模。将层数扩展到12层,GPT-1还将Attention 的维数扩大到768(原来为512),将Attention的头数增加到12层(原来为8层),将Feed Forward层的隐层维数增加到3072(原来为2048),总参数达到1.5亿。GPT-1还优化了学习率预热算法,使用更大的BPE码表,将ReLU改为对梯度更新更友好的高斯误差线性单元GeLU,将正余弦构造的位置编码改为了带学习的位置编码。


非监督预训练
在预训练部分,用u表示每一个token(词),当设置窗口长度为k,预测句中的第i个词时,则使用第i个词之前的k个词,同时也根据超参数Θ,来预测第i个词最可能是什么。简言之,用前面的词预测后面的词。



具体方法是代入Transformer模型,下式中的模型由l组(block)隐藏层组成,最初输入隐藏层的数据是词编码U乘词嵌入参数We加上位置参数Wp;后面经过l个层处理:



监督微调
接下来是要对前一个阶段训练出来的模型参数进行微调,以适应当前的监督型任务。假设有带标签的数据集C,数据结构为(x_1,x_2,…,x_m,y),然后输入(x_1,x_2,…,x_m),经过预训练模型在输入上的迭代之后,获得输出向量h_m^l,然后经过线性层和softmax得到预测标签:


W_y 表示预测输出时的参数,微调时候需要最大化以下函数:



GPT 在微调的时候也考虑预训练的损失函数,所以最终需要优化的函数为:



当前 SOTA!平台收录 GPT 共 2 个模型实现资源,支持的主流框架包含 TensorFlow、PyTorch 等。

项目 SOTA!平台项目详情页
GPT 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/gpt


BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding


BERT(Bidirectional Encoder Representations from Transformers)自从谷歌提出就一直大热,很多人认为Bert是整个NLP研究历程中里程碑似的节点。BERT的灵感来源是“Attention is all your need”中提到的Transformer模型。Bert用transformer的双向编码器表示。BERT通过在所有层的上下文联合调节来预训练深度双向表示。因此,预训练的bert可以添加一个额外的输出层进行微调,可以在广泛的任务上产生目前最好的效果。例如问答和语言推理,不需要大量特定任务的结构的修改。此外,bert受到完形填空的启发,通过 “masked language model” (MLM)预训练目标来缓解前面提到的单向性约束。masked语言模型从输入中随机掩码一些符号,并且目标是仅仅基于上下文来预测掩码词的原始词汇id。不同于left-to-right模型的预训练,MLM目标使得表示能够融合上下文,从而预训练一个深层的双向transformer。除了掩码语言模型,BERT还使用“下一句话预测”任务,联合预训练文本对表示。

BERT的网络结构使用了双向Transformer的堆叠,Encoder和Decoder分别12层。BERT加入了Masked Language Model(MLM) 和 Next Sentences Prediction(NSP),使得模型能够在无监督的场景下学习到句子间特征和语义特征。在无监督学习场景训练,能最大化的使用训练语料。而Pre-train和Fine-tune能够方便地将已训练好的BERT模型迁移到不同的应用场景,在工业界大有益处。

下图为Bert的输入图示。由图示可知,Bert的输入包括三个部分:词嵌入张量(Token embeddings)、语句分块张量( segmentation embeddings)、位置编码张量(position embeddings),最终的embedding向量是将上述的3个向量直接做加和的结果。


图2. BERT输入表示。输入嵌入是标记嵌入、分割嵌入和位置嵌入的总和。嵌入和位置嵌入的总和


接下来,MLM和 NSP是Bert的另外两个亮点:

Bert中引入了一个带mask的语言模型训练(Masked LM)。为了训练深度双向的表示,随机mask一定百分比的输入token,然后去预测那些掩码处理掉的token。作者将这个过程称为是“masked LM”(MLM),它在文献中通常被称为完形填空任务。在这种情况下,对应于mask token的最终的隐藏向量通过词汇表输出softmax,如标准的LM 具体而言,在原始训练文本中,随机抽取15%的token作为即将参与mask的对象。在选中的token中,数据生成器并不是把他们全部变成[MASK],具体变化方法包括三类:一是,在80%的概率下,用[MASK]标记替换token,比如my dog is hairy → my dog is [MASK];二是,在10%的概率下,用随机单词替换token,比如my dog is hairy → my dog is apple;三是,在10%的概率下,保持token不变,比如my dog is hairy → my dog is hairy。

Bert还引入了一个下一句话预测任务(Next Sentence Prediction )。许多重要的下游任务,例如问答(QA)和自然语言推理,都是基于理解两个句子之间的关系,而不是由语言建模直接捕获的。为了训练理解句子关系的模型,作者预训练了二进制的下一句预测任务,该任务可以从任何单语语料库中轻松的生成。具体而言,所有的参与任务训练的语句都被选中参加,其中:50%的B是原始本中实际跟随A的下句话;50%的B是原始本中随机抽取的一句话。在该任务中,Bert模型可以在测试集上取得97-98%的准确率。

最后,fine-tuning是Bert的另一个亮点,只需要将特定任务的输入输出插入到Bert中,利用Transformer强大的注意力机制就可以模拟很多下游任务,从而具有极佳的迁移特性。


当前 SOTA!平台收录 BERT 共 6 个模型实现资源,支持的主流框架包含 TensorFlow 等。

项目 SOTA!平台项目详情页
BERT 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/bert-22



目录
打赏
0
1
0
0
367
分享
相关文章
华为诺亚联合中科大发布工具调用模型ToolACE,效果持平GPT-4获开源第一
 【10月更文挑战第10天】华为诺亚方舟实验室与中国科学技术大学合作推出ToolACE,一种自进化合成过程的工具调用模型。ToolACE通过多智能体交互和双重验证系统生成准确、复杂、多样化的工具学习数据,显著提升大型语言模型(LLM)的功能调用能力。实验结果显示,使用ToolACE数据训练的80亿参数模型性能媲美GPT-4,在伯克利功能调用排行榜上获得开源第一。
146 4
k1.5:性能超越 GPT-4 和 Claude 3.5!Kimi 新一代多模态推理模型
Kimi k1.5 是月之暗面推出的多模态思考模型,具备强大的推理和多模态处理能力,支持长链思维与短链思维,性能超越GPT-4和Claude 3.5。
367 10
k1.5:性能超越 GPT-4 和 Claude 3.5!Kimi 新一代多模态推理模型
续命Scaling Law?世界模型GPT-4o让智能体超级规划,OSU华人一作
GPT-4o是OpenAI推出的先进语言模型,不仅在自然语言处理上表现出色,更在智能体规划领域展现了巨大潜力。它能模拟预测行动结果,提供决策支持,实现高效智能规划。适用于自动驾驶、机器人等领域,助力复杂任务的优化执行。尽管面临计算资源和环境一致性等挑战,GPT-4o仍为智能体规划带来新机遇。论文地址:https://arxiv.org/abs/2411.06559
28 2
预训练语言模型:从BERT到GPT,NLP的新纪元
自然语言处理(NLP)近年来因预训练语言模型(PLMs)的崛起而发生巨大变革。BERT和GPT等模型在学术与工业界取得突破性进展。本文探讨PLMs原理、发展历程及其实际应用,涵盖文本分类、命名实体识别、问答系统等场景,并通过实战案例展示如何使用这些强大的工具解决复杂的NLP任务。
InternVL 2.5,首个MMMU超过70%的开源模型,性能媲美GPT-4o
近期Internvl2.5发布,性能与GPT-4o和Claude-3.5-sonnet等领先的商业模型相媲美,成为首个在MMMU上超过70%的开源模型,通过链式思考(CoT)推理实现了3.7个百分点的提升,展示了强大的测试时间可扩展性潜力。
昇腾AI行业案例(四):基于 Bert 模型实现文本分类
欢迎学习《昇腾行业应用案例》的“基于 Bert 模型实现文本分类”实验。在本实验中,您将学习如何使用利用 NLP (natural language processing) 领域的AI模型来构建一个端到端的文本系统,并使用开源数据集进行效果验证。为此,我们将使用昇腾的AI硬件以及CANN等软件产品。
56 0
基于函数计算部署GPT-Sovits模型实现语音生成
阿里云开发者社区邀请您参加“基于函数计算部署GPT-Sovits模型实现语音生成”活动。完成指定任务即可获得收纳箱一个。活动时间从即日起至2024年12月13日24:00:00。快来报名吧!
活动实践 | 基于函数计算部署GPT-Sovits模型实现语音生成
通过阿里云函数计算部署GPT-Sovits模型,可快速实现个性化声音的文本转语音服务。仅需少量声音样本,即可生成高度仿真的语音。用户无需关注服务器维护与环境配置,享受按量付费及弹性伸缩的优势,轻松部署并体验高质量的语音合成服务。
[大语言模型-工程实践] 手把手教你-基于BERT模型提取商品标题关键词及优化改进
[大语言模型-工程实践] 手把手教你-基于BERT模型提取商品标题关键词及优化改进
474 0
掌握从零到一的进阶攻略:让你轻松成为BERT微调高手——详解模型微调全流程,含实战代码与最佳实践秘籍,助你应对各类NLP挑战!
【10月更文挑战第1天】随着深度学习技术的进步,预训练模型已成为自然语言处理(NLP)领域的常见实践。这些模型通过大规模数据集训练获得通用语言表示,但需进一步微调以适应特定任务。本文通过简化流程和示例代码,介绍了如何选择预训练模型(如BERT),并利用Python库(如Transformers和PyTorch)进行微调。文章详细说明了数据准备、模型初始化、损失函数定义及训练循环等关键步骤,并提供了评估模型性能的方法。希望本文能帮助读者更好地理解和实现模型微调。
221 2
掌握从零到一的进阶攻略:让你轻松成为BERT微调高手——详解模型微调全流程,含实战代码与最佳实践秘籍,助你应对各类NLP挑战!

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等