大模型 LLM 综述, A Survey of Large Language Models
一、概述
一般认为NLP领域的大模型>=10 Billion参数(也有人认为是6B、7B, 工业界用, 开始展现涌现能力);
经典大模型有GPT-3、BLOOM、Flan-T5、GPT-NeoX、OPT、GLM-130B、PaLM、LaMDA、LLaMA等;
大模型时间线, 图来自A Survey of Large Language Models,下同。
二、大模型,新能力
2.1 涌现
涌现, emerge(abilities), 即一般指在大模型中出现而小模型没有的能力。
一般包括上下文学习(ICL)、指令微调(IFT)、思维链(CoT)等。
2.2 指令微调(IFT)
指令微调一般可以分为两类,一种是从已知学术界等数据集构建;另外一种是构建更接近人类的,如大模型收集与手工标注。
一般认为,指令微调是通过自然语言形式给出人类指令,可以提高在未知任务上的效果(zero-shot learning)。
2.3 上下文学习(ICL)与思维链(CoT)
上下文学习(ICL)是指不需要微调,只需要少数几个样例作为示例,就能在未知任务上取得不错的效果(提升few-shot能力)。
思维链(CoT)是指在生成回答前,先生成中间过程(思维链),这么做会提升效果,特别是推理生成任务(尤其是数学问题)。
三、大模型,架构
3.1 大模型LLM基本情况(2020-2022)
大模型热潮主要时间是在2021-2022这两年,模型参数50-200B的居多,预训练Tokens在300B-1T(1-5TB corpus),GPU需要100-2000个(如A100),训练时间为1-2个月。
3.2 大模型LLM架构-1
大模型架构主要有Decode-Only(Causal)、Pre-LN、RoPE、GeGLU、Bais等,
L、H在100左右、d_model在1w左右、Seq大都为2048等,比较宽的模型。
3.3 大模型LLM架构-2
大模型LLM架构-2,其中层归一化位置有Post-LN(泛化性更好)、Pre-LN(训练更稳定)、Sandwich-LN(稳定+泛化的结合)。
层归一化方法有LayerNorm(标准LN)、RMSNorm(剔除bais减少参数与计算量)、DeepNorm(层数衰减可构建1k层)。
激活函数有Relu(梯度不会消失、阈值化计算简单)、GELU(处理负数、门控机制非线性处理大数/接近0的数、引入随即正则)、Swish、SwiGLU、GeGLU。
位置编码有Abs(绝对编码, 可训练)、Rel(相对, 展开魔改)、RoPE(相对, 引入复数)、Alibi(操控Attention、复杂)等。
3.4 大模型LLM参数配置
大模型LLM的参数配置,批尺寸batch-size从32k-3.2M,学习率lr一般为10^-5级别(衰减consine decay by 10%),优化器opt一般为AdamW/Anam(warmup),
数据类型一般为FP16(或者BF16),梯度裁剪大都为1.0,Dropout大都为0.1。
四、大模型,数据
4.1 一些大模型预训练语料构成
一般认为,高质量预训练语料对大模型有益,所以数据清洗就很重要。来自维基百科、代码code、论文paper、书籍book、网页web等的数据。
五、大模型RLHF
5.1 训练大模型的方法, RLHF全流程
有监督微调(SFT) --> 奖励模型训练(RMT) --> 强化学习(对齐,基于RM、PPO)
参考
- A Survey of Large Language Models
- ChatGPT的前世今生
- 2022年NLP突破进展
- RWKV-LM
- ChatRWKV
- PromptCLUE
- ChatYuan
- ChatGPT内核:InstructGPT,基于反馈指令的PPO强化学习
- ChatGPT评测观察之对话能力