(一)大语言模型的关键技术<-AI大模型构建
本文讨论了大语言模型的关键技术,包括模型预训练、适配微调、提示学习、知识增强和工具学习等方面的多种方法及应用。关键要点包括:
1. 预训练策略:采用不同策略降低预训练成本,如设计高效任务目标、热启动、渐进式训练、知识继承、可预测扩展等,部分策略可加速训练、降低成本。
2. Transformer架构优化:一是统一序列建模,整合多种自然语言处理任务;二是优化模型架构,在处理训练复杂度等方面进行改进,出现新架构和算法。
3. 适配微调技术:指令微调让模型遵循人类指令,涉及指令理解、数据获取和对齐;参数高效微调通过微调少量参数实现全参微调效果,有添加式、指定式、重参数化等方法。
4. 提示学习形式:有少样本提示、零样本提示、上下文学习三种形式,思维链技术可激发模型多步推理能力。
5. 知识增强途径:从模型输入、神经架构、模型参数、输出等层面,通过知识增广、支撑、约束、迁移等方法融入外部知识 。
1. 大语言模型的关键技术
语言大模型技术主要包括:模型预训练、适配微调、提示学习、知识增强和工具学习等。
1.1 预训练
高效预训练策略。其主要思路是采用不同的策略以更低成本实现对语言大模型的预训练。
💾 1. 一种是在预训练中设计高效的优化任务目标,使得模型能够利用每个样本更多的监督信息,从而实现模型训练的加速。
2. 第二种是热启动策略,在训练开始时线性地提高学习率,以解决在预训练中单纯增加批处理大小可能会导致优化困难问题。
3. 第三种是渐进式训练策略,不同于传统的训练范式使用相同的超参数同时优化模型每一层,该方法认为不同的层可以共享相似的自注意力模式,首先训练浅层模型,然后复制构建深层模型。
4. 第四种是知识继承方法,即在模型训练中同时学习文本和已经预训练语言大模型中的知识,以加速模型训练。在中文语言大模型 CPM-2中,采用知识继承技术经测试可以使大模型在预训练前期提速 37.5%。
5. 第五种是可预测扩展策略(Predictable Scaling),旨在大模型训练初期,利用大模型和小模型的同源性关系,通过拟合系列较小模型的性能曲线预测大模型性能,指导大模型训练优化。OpenAI 在 GPT-4 训练中,使用 1000 倍至 10000 倍较少计算资源训练的小模型可靠地预测GPT-4 某些性能,大幅降低了模型训练成本。
BERT 之后的 Transformer 架构在提高自然语言处理效率方面有两个重要优化方向:
(1)统一的序列建模,
旨在将多种自然语言处理任务(如分类、信息抽取、翻译、对话等)整合到一个统一的框架,然后在同一模型中执行多个任务,以实现更高效的自然语言处理。
💾 1. 一是转化为序列生成的统一任务,如 T5和 BART等将多种自然语言任务统一转化文本到文本的生成任务;
2. 二是转化为语言大模型预训练任务,通过语言提示在输入文本中插入人类设计或者自动生成的上下文,实现对不同任务的处理。
(2)计算高效的模型架构,
从 Transformer 模型架构本身在处理训练复杂度、编解码效率、训练稳定性、显存利用等方面进行优化。
比如,Transformer 其并行处理机制是以低效推理为代价的,解码时每个步骤的复杂度为 O(N),Transformerr 模型也是显存密集型模型,输入序列越长、占用的内存越多。
为此,微软设计了一种新的 Transformer 架构 RetNet,其采用线性化注意力+尺度保持(Retention )机制,在基本保持模型性能的基础上同时实现模型训练速度、推断速度和内存节约的大幅提升。
混合专家化的模型架构
针对自注意力显存消耗大,斯坦福大学在 Transformer中引入FashAttention,给出了一种具有 IO 感知,且兼具快速、内存高效的注意力算法,已经被各种主流大模型采用以扩展对超长文本输入的支持。
最近,模块化大模型架构引起广泛关注,其利用大模型的神经激活稀疏性,对稠密模型进行模块化划分,不同任务只经过部分模块计算实现训练和推理加速,典型工作包括 Google 的 Switch Transformers 和 Pathways架构、清华大学的 MoEfication 架构 、FastMoE 架构等。
Switch Transformers 模型架构
1.2 语言大模型的适配微调
高效预训练策略。其主要思路是采用不同的策略以更低成本实现对语言大模型的预训练。
💾 1. 一种是在预训练中设计高效的优化任务目标,使得模型能够利用每个样本更多的监督信息,从而实现模型训练的加速。
2. 第二种是热启动策略,在训练开始时线性地提高学习率,以解决在预训练中单纯增加批处理大小可能会导致优化困难问题。
3. 第三种是渐进式训练策略,不同于传统的训练范式使用相同的超参数同时优化模型每一层,该方法认为不同的层可以共享相似的自注意力模式,首先训练浅层模型,然后复制构建深层模型。
4. 第四种是知识继承方法,即在模型训练中同时学习文本和已经预训练语言大模型中的知识,以加速模型训练。在中文语言大模型 CPM-2中,采用知识继承技术经测试可以使大模型在预训练前期提速 37.5%。
5. 第五种是可预测扩展策略(Predictable Scaling),旨在大模型训练初期,利用大模型和小模型的同源性关系,通过拟合系列较小模型的性能曲线预测大模型性能,指导大模型训练优化。OpenAI 在 GPT-4 训练中,使用 1000 倍至 10000 倍较少计算资源训练的小模型可靠地预测GPT-4 某些性能,大幅降低了模型训练成本。
BERT 之后的 Transformer 架构在提高自然语言处理效率方
首先介绍 Transformer 的整体结构,下图是 Transformer 用于中英文翻译的整体结构:
Transformer 的整体结构,左图Encoder和右图Decoder
可以看到 Transformer 由 Encoder 和 Decoder 两个部分组成,Encoder 和Decoder 都包含 6 个 block。
Transformer 的工作流程大体如下:
◦ 第一步:获取输入句子的每一个单词的表示向量 X,X由单词的 Embedding(Embedding就是从原始数据提取出来的Feature) 和单词位置的 Embedding 相加得到。
Transformer 的输入表示
◦ 第二步:将得到的单词表示向量矩阵 (如上图所示,每一行是一个单词的表示 x) 传入 Encoder 中,经过 6 个 Encoder block 后可以得到句子所有单词的编码信息矩阵 C,
▪ 如下图。单词向量矩阵用表示, n 是句子中单词个数,d 是表示向量的维度 ( d=512)。每一个 Encoder block 输出的矩阵维度与输入完全一致。
Transformer Encoder 编码句子信息
第三步:将 Encoder 输出的编码信息矩阵 C传递到 Decoder 中,Decoder 依次会根据当前翻译过的单词 1~ i 翻译下一个单词 i+1,如下图所示。在使用的过程中,翻译到单词 i+1 的时候需要通过 Mask (掩盖) 操作遮盖住 i+1 之后的单词。
Transofrmer Decoder 预测
上图 Decoder接收了 Encoder 的编码矩阵 C,然后首先输入一个翻译开始符 "<Begin>",预测第一个单词 "I";然后输入翻译开始符 "<Begin>" 和单词 "I",预测单词 "have",以此类推。这是 Transformer 使用时候的大致流程,接下来是里面各个部分的细节。
2.Transformer 的输入
Transformer 中单词的输入表示 x由单词 Embedding 和位置 Embedding(Positional Encoding)相加得到。
Transformer 的输入表示
2.1 单词Emdedding
单词的 Embedding 有很多种方式可以获取,例如可以采用 Word2Vec、Glove 等算法预训练得到,也可以在 Transformer 中训练得到。
2.2 位置Emdedding
Transformer 中除了单词的 Embedding,还需要使用位置 Embedding 表示单词出现在句子中的位置。因为 Transformer 不采用 RNN 的结构,而是使用全局信息,不能利用单词的顺序信息,而这部分信息对于 NLP 来说非常重要。所以 Transformer 中使用位置 Embedding 保存单词在序