首页 LLM概述
文章
取消

LLM概述

语言模型发展

统计语言模型SLM

词序列 w1w2…wm 作为一个句子出现的可能性大小可以表示为:

\[P(w_1w_2...w_m)\]

由于这个联合概率的参数量十分巨大,直接计算十分困难。

根据条件概率,可以表示为(可以看作单词逐个生成的过程):

\[P(w_1w_2...w_m)=\prod_{i=1}^mP(w_i|w_1w_2...w_{i-1})\]

将联合概率转换为了多个条件概率的乘积。但是,模型的参数空间依然没有下降。

可以进一步假设任意单词 wi 出现的概率只与过去 n − 1 个词相关,这被称为n 元语法或n 元文法(n-gram) 模型。

\[P(w_i|w_1w_2...w_{i-1})=P(w_i|w_{i-(n-1)}w_{i-(n-2)}...w_{i-1})\]

可以使用平滑,是指为了产生更合理的概率,对最大似然估计进行调整的 一类方法,也称为数据平滑(Data Smoothing)。平滑处理的基本思想是提高低概率,降低高概率, 使整体的概率分布趋于均匀。具体来说,对所有可能出现的字符串都分配一个非零的概率值,从而避免零概率问题。

较为明显的缺点:

  • 无法建模长度超过 n 的上下文
  • 依赖人工设计规则 的平滑技术
  • 当 n 增大时,数据的稀疏性随之增大,模型的参数量更是指数级增加,并且模型 受到数据稀疏问题的影响,其参数难以被准确的学习。
  • 单词的离散表示也忽略了单词之间的相似性。

神经语言模型NLM

使用前馈神经网络对联合概率进行估计,词的独热编码被映射为一个低维稠密的实数向量,称为词向量(Word Embedding)。

预训练语言模型PLM

受到计算机视觉领域采用 ImageNet 对模型进行一次预训练,使得模型可以通过海量图像 充分学习如何提取特征,然后再根据任务目标进行模型精调的范式影响。

GPT 和 BERT 为代表的基于 Transformer 模型的大规模预训练语言模型出现。

将预训练模型应用于下游任务 时,不需要了解太多的任务细节,不需要设计特定的神经网络结构,只需要“微调”预训练模型, 即使用具体任务的标注数据在预训练语言模型上进行监督训练,就可以取得显著的性能提升。

大规模语言模型LLM

2020 年 Open AI 发布了包含 1750 亿参数的生成式大规模预训练语言模型 GPT-3。

由于大规模语言模型的参数量巨大, 如果在不同任务上都进行微调需要消耗大量的计算资源,因此预训练微调范式不再适用于大规模 语言模型。

LLM发展历程

基础模型阶段

这个阶段研究主要集中语言模型本身,包括仅编码器 (Encoder Only)、编码器-解码器(Encoder-Decoder)、仅解码器(Decoder Only)等各种类型的模 型结构都有相应的研究。

模型大小与 BERT 相类似的算法,通常采用预训练微调范式,针对不同 下游任务进行微调。

但是模型参数量在 10 亿以上时,由于微调的计算量很高,这类模型的影响力 在当时相较 BERT 类模型有不小的差距。

能力探索阶段

由于大规模语言模型很难针对特定任务进行微调,因此探索不需要修改语 言模型的参数,仅依赖基于 语言模型本身如何能够发挥大规模语言模型的能力。

这些方法从直接利用大规模语言模型进行零样本和少样本学习 的基础上,逐渐扩展到利用生成式框架针对大量任务进行有监督微调的方法,有效提升了模型的 性能。

突破发展阶段

以 2022 年 11 月 ChatGPT 的发布为起点。从 2022 年开始 大模型呈现爆发式的增长,各大公司和研究机构都在发布各种不同类型的大模型。

LLM构建流程

预训练

预训练(Pretraining)阶段需要利用海量的训练数据,利用由数千块高性能 GPU 和高速网络组成超级计算机,花费数十天完成深度神经网络参数训练,构建基础语言模型 (Base Model)。

基础大模型构建了长文本的建模能力,使得模型具有语言生成能力,根据输入的 提示词(Prompt),模型可以生成文本补全句子。

  • GPT-3 完成一次训练的总计算量是 3640PFlops,按照 NVIDIA A100 80G 和平均利用率达到 50% 计算,需要花费近一个月时间使用 1000 块 GPU 完成。
  • 参数量同样是 1750 亿的 OPT 模型,该模型训练使用了 992 块 NVIDIA A100 80G,整体训练时间将 近 2 个月。
  • BLOOM 模型的参数量也是 1750 亿,该模型训练一共花费 3.5 个月,使用包含 384 块 NVIDIA A100 80G GPU 集群完成。

有监督微调

利用少量高质量数据集合,包含用户输入的提示词(Prompt)和对应的理想输出结果。

利用这些有监督数据,使用与预训练阶段相同的语言模型训练算法,在基础语言模型基础上再进 行训练,从而得到有监督微调模型(SFT 模型)。

例如:提示词(Prompt):复旦大学有几个校区?

理想输出:复旦大学现有 4 个校区,分别是邯郸校区、新江湾校区、枫林校区和张江 校区。其中邯郸校区是复旦大学的主校区,邯郸校区与新江湾校区都位于杨浦区,枫林校区 位于徐汇区,张江校区位于浦东新区。

奖励建模

目标是构建一个文本质量对比模型,对于同一个提示词,SFT 模型给出的多个不同输出结果的质量进行排序。奖励模型(RM 模型)可以通过二分类模型,对输 入的两个结果之间的优劣进行判断。

RM 模型的准确率对于强化学习阶段的效果有着至关重要的影响,因此对于该 模型的训练通常需要大规模的训练数据。

由于标注其质量排序需 要制定非常详细的规范,标注人员也需要非常认真的对标规范内容进行标注,需要消耗大量的人力。

强化学习

根据数十万用户给出的提示词,利用在前一阶段训练 的 RM 模型,给出 SFT 模型对用户提示词补全结果的质量评估,并与语言模型建模目标综合得到 更好的效果。

使用强化学习,在 SFT 模型基础上调整参数,使得最 终生成的文本可以获得更高的奖励(Reward)。

本文由作者按照 CC BY 4.0 进行授权

基于知识蒸馏的视频问答模型

训练 DualVGR