文章目录
- 一、预训练语言模型发展历程
- 二、经典的Pre-trained任务
- 2.1 Masked Language Modeling
- 2.2 Next Sentence Prediction
- 三、Task-specific Fine-tuning 任务
- 3.1 Single-text Classification (单句分类)
- 3.2 Sentence-pair Classification (句子匹配/成对分类)
- 3.3 Span Text Prediction (区间预测)
- 3.4 Single-token Classification(字符分类)
- 3.5 Text Generation (文本生成)
- 三、LLM models
- 3.1 主体结构:Transformer
- 3.2 GPT
- 3.3 BERT
- 3.4 T5
- 四、模型微调技术
一、预训练语言模型发展历程
预训练语言模型的发展历程:
截止23年3月底,语言模型发展走过了三个阶段:
-
第一阶段:设计一系列的自监督训练目标(MLM、NSP等),设计新颖的模型架构(Transformer),遵循Pre-training和Fine-tuning 范式。典型代表是BERT、GPT、XLNet等;
-
第二阶段:逐步扩大模型参数和训练语料规模,探索不同类型的架构。典型代表是BART、T5、GPT-3等;
-
第三阶段:走向AIGC (Artificial Intelligent Generated Content)时代,模型参数规模步入千万亿,模型架构为自回归架构,大模型 走向对话式、生成式、多模态时代,更加注重与人类交互进行对齐,实现可靠、安全、无毒的模型。典型代表是InstructionGPT、 ChatGPT、Bard、GPT-4等。
预训练语言模型主要分为单向和双向两种类型:
- 单向:以GPT为首,强调从左到右的编码顺序,适用于Encoder-Decoder模式的自回归(Auto-regressive)模型;
- 双向:以ELMO为首,强调从左向右和从右向左的双向编码,但ELMO的主体是LSTM,由于其是串行地进行编码,导致其运行速度较慢。因此BERT则以Transformer为主体结构作为双向语言模型的基准。
二、经典的Pre-trained任务
2.1 Masked Language Modeling
传统的语言模型是以word2vec、GloVe为代表的词向量模型,他们主要是以词袋(N-Gram)模型为基础。例如在word2vec的CBow中,随机选择一个固定长度的词袋区间,然后挖掉中心部分的词后,让模型(一个简单的深度神经网络)预测该位置的词,如下图所示:
Masked Language Modeling(MLM)则采用了N-Gram的方法。不同的是,N-Gram喂入的是被截断的短文本,而MLM喂入的则是完整的文本,因此MLM更能够保留原始的语义。
MLM是一种自监督的训练方法,其先从大规模的无监督语料上通过固定的替换策略获得自监督语料,设计预训练的目标来训练模型。具体的可以描述为:
- 替换策略:在所有语料中,随机抽取15%的文本。被选中的文本中,从80%的文本中,随机挑选一个token并替换为
[mask]
,10%的文本中则随机挑选一个token替换为其他token,10%的文本中保持不变。 - 训练目标:当模型遇见
[mask]
token时,则根据学习得到的上下文语义去预测该位置可能的词。因此,训练的目标是对整个词表上的分类任务,可以使用交叉信息熵作为目标函数。
这里以BERT为例,首先喂入一个文本 It is very cold today, we need to wear more clothes.
,然后随机mask掉一个 token,并结合一些特殊标记得到: [cls] It is very cold today, we need to [mask] more clothes. [sep]
,喂入到多层的 Transformer结构中,则可以得到最后一层每个token的隐状态向量。MLM则通过在[mask]
头部添加一个MLP映射到词表上,得到所有词预测的概率分布。
2.2 Next Sentence Prediction
在BERT原文中,还添加了NSP任务,其主要目标是给定两个句子,来判断他们之间的关系,属于一种自然语言推理(NLI)任务。在NSP中则存在三种关系,分别是:
- entailment (isNext):存在蕴含关系,NSP中则认为紧相邻的两个句子属于entailment, 即isNext关系;
- contradiction (isNotNext):矛盾关系,NSP中则认为这两个句子不存在前后关系,例如两个句子来自于不同的文章;
- Neutral:中性关系,NSP中认为当前的两个句子可能来自于同一篇文章,但是不属于isNext关系的
而显然,构建NSP语料也可以通过自监督的方法技术,给定大量无监督语料,按照文章进行分类。在同一篇文章里,随机挑选一个句子作为premise,因为搜索AI提问评论笔记其下一个句子,另外再随机挑选同一篇文章中的其他句子作为Neutral类,其他文章中的句子作为contradiction类。
在BERT中,NSP任务则视为sentence-pair任务。例如输入两个句子 S1: It is very cold today.
和 S2: We need to wear more clothes.
,通过拼接特殊字符后,得到: [cls] It is very cold today. [sep] We need to wear more clothes. [sep]
,然后喂入到多层Transformer中,可以得到[cls] token
的隐状态向量,同样通过MLP映射到一个3分类上获得各个类的概率分布:
在以ALBETR、RoBERTa等系列的模型中,由于发现NSP对实验效果没有太大的影响,因此均删除了NSP任务。
三、Task-specific Fine-tuning 任务
获得了预训练的语言模型后,在面对具体的下游任务时,则需要进行微调。通常微调的任务目标取决于下游任务的性 质。我们简单列举了几种NLP有关的下游任务。
3.1 Single-text Classification (单句分类)
常见的单句分类任务有短文本分类、长文本分类、意图识别、情感分析、 关系抽取等。给定一个文本,喂入多层Transformer模型中,获得最后一层的隐状态向量后,再输入到新添加的分类 器MLP中进行分类。在Fine-tuning阶段,则通过交叉信息熵损失函数训练分类器。
- 短/长文本分类:直接对句子进行归类,例如新闻归类、主题分类、场景识别等;
- 意图识别:根据给定的问句判断其意图,常用于检索式问答、多轮对话、知识图谱问答等;
- 情感分析:对评论类型的文本进行情感取向分类或打分;
- 关系抽取:给定两个实体及对应的一个描述类句子,判断这两个实体的关系类型;
3.2 Sentence-pair Classification (句子匹配/成对分类)
常见的匹配类型任务有语义推理、语义蕴含、文本匹配与检 索等。给定两个文本,用于判断其是否存在匹配关系。此时将两个文本拼接后喂入模型中,训练策略则与Single-text Classification一样;
- 语义推理/蕴含:判断两个句子是否存在推理关系,例如entailment、contradiction, neutral三种推理关系;
- 文本匹配与检索:输入一个文本,并从数据库中检索与之高相似度匹配的其他句子
3.3 Span Text Prediction (区间预测)
常见的任务类型有抽取式阅读理解、实体抽取、抽取式摘要等。给定一个 passage和query,根据query寻找passage中可靠的字序列作为预测答案。通常该类任务需要模型预测区间的起始位 置,因此在Transformer头部添加两个分类器以预测两个位置。
- 抽取式阅读理解:给定query和passage,寻找passage中的一个文本区间作为答案;
- 实体抽取:对一段文本中寻找所有可能的实体;
- 抽取式摘要:给定一个长文本段落,寻找一个或多个区间作为该段落的摘要;
3.4 Single-token Classification(字符分类)
此类涵盖序列标注、完形填空、拼写检测等任务。获得给定文本的隐状 态向量后,喂入MLP中,获得每个token对应的预测结果,并采用交叉熵进行训练。
- 序列标注:对给定的文本每个token进行标注,通常有词性标注、槽位填充、句法分析、实体识别等;
- 完形填空:与MLM一致,预测给定文本中空位处可能的词
- 拼写检测:对给定的文本中寻找在语法或语义上的错误拼写,并进行纠正;
3.5 Text Generation (文本生成)
文本生成任务常用于生成式摘要、机器翻译、问答等。通常选择单向的预训练语言 模型实现文本的自回归生成,当然也有部分研究探索非自回归的双向Transformer进行文本生成任务。BART等模型则 结合单向和双向实现生成任务。
- 生成式摘要:在文本摘要中,通过生成方法获得摘要;
- 机器翻译:给定原始语言的文本,来生成目标语言的翻译句子;
- 问答:给定query,直接生成答案;
相关的任务类型、常见的Benchmark以及形式化定义如下图所示:
三、LLM models
3.1 主体结构:Transformer
现如今常用的语言模型大多数是BERT及其变体,它的主体结构Transformer模型是由谷歌机器翻译团队在17年末提出的,是一种完全利用attention机制构建的端到端模型,具体算法详解可参考博客:Transformer 模型详解。
之所以选择Transformer作为语言模型的主体结构,是因为其完全以Attention作为计算推理技术,任意的两个token均可以两两交互,使得推理完全可以由矩阵乘机来替代,实现了可并行化计算。 因此Transformer也可以认为是一个全连接图,缓解了序列数据普遍存在的长距离依赖和梯度消失等缺陷。
在NLP领域中,Attention机制的目标是对具有强相关的token之间提高模型的关注度。例如在文本分类中,部分词对分类产生的贡献更大,则会分配较大的权重。
对句子的编码主要目标是为了让模型记住token的语义。传统的LSTM则只能通过长短期记忆的方法来捕捉token之间的关系,容易导致梯度消失或记忆模糊问题,而Transformer中,任意的token之间都有显式的连接,避免了长距离依赖性问题。当然Transformer也增加了position
embedding以区分不同token的位置关系,
3.2 GPT
[待更新…]
3.3 BERT
[待更新…]
3.4 T5
[待更新…]
四、模型微调技术
大模型高效参数微调技术(Prompt-Tuning、Prefix Tuning、P-Tuning、LoRA…)