1.1大模型Emergent Abilities(新兴能力)现象
模型规模达到某个阈值时,模型对某些问题的处理性能呈现快速增长。这个过程类似于水加热到100度的过程。
目前一些大模型已达或接近这个阈值,个人觉得这些技术或方法功不可没:
一、软件方面
1.BP算法
2.注意力机制
注意力机制,尤其是自注意力机制,是LLM的核心,自注意力机制为啥高效?个人觉得自注意力机制突破了传统看问题的视角,采用了新视角。
3.强化学习
强化学习一大贡献就是弥补了传统机器学习评估标准的不足,传统机器学习一般基于损失函数进行评估,希望预测与标签的差平方(或两者的分布近似度)越小越好。这种评估方式是一种绝对值的近似,不利于输出多样性的结果。而强化学习采用奖励或评分的方式,看重的是输出与期望值的对齐程度。
4.大数据平台,如PyTorch,TensorFlow,及CUDA架构等
5.GEMM
二、硬件方面
GPU、TPU等的助力。
1.2 几种正助力拓展序列长度的算法
(1)FlashAttention,FlashAttention-2
FlashAttention优化特点:从软件又结合了硬件两个方面。
软件方面,采用了矩阵分块、在线softmax、重新计算(有点类似于Python中迭代器思想)等方法
硬件方面:考虑到GPU的架构特点,如A100,H100等GPU中的HBM,SRAM的优缺点。
GPU中的HBM,SRAM的优缺点
(2)Learned、Relative、RoPE等位置编码方法
RoPE位置编码利用绝对位置的表达方式实现了相对位置编码的功能,其关键是采用了复数的表达方式,利用欧拉公式 ,把数字与旋转有机结合,而相对位置可以用旋转角度很好解决。
(3)多种注意力机制
1.3.各种大模型使用技术概览
下面我选择8个比较典型的大模型,统计了它们使用的一些技术,供大家参考。
模型 | 公司 | 目的 | 参数量 | 类型 | Tokens | 序列长度 |
T5 | | General | 11B | Enc-Dec | 1T | 512 |
GPT-3 | OpenAI | General | 175B | Causal-Dec | 300B | 2048 |
PanGu-α | Huawei | General | 200B | Causal-Dec | 1.1TB | 1024 |
Codex | OpenAI | Coding | 12B | Causal-Dec | 100B | 4096 |
ERNIE-3.0 TITAN | Baidu | General | 260B | Causal-Dec | 300B | 512 |
LaMDA | | Dialog | 137B | Causal-Dec | 2.81T | 32K |
CodeGen | Salesforce | Coding | 16B | Causal-Dec | 577B | 2048 |
LLaMA-2 | Meta | General | 70B | Causal-Dec | 1T | 4K |
模型 | 注意力机制 | 分词算法 | 正则化 | 位置编码 | 激活函数 | 优化算法 |
T5 | Standard | SentencePiece | Pre-RMS | Relative | ReLU | AdaFactor |
GPT-3 | Dense+Sparse | BPE | Layer | Learned | GeLU | Adam |
PanGu-α | Standard | BPE | Layer | Relative | ReLU | Adam |
Codex | Standard | BPE+ | Pre-Layer | Learned | GeLU | Adam |
ERNIE-3.0 TITAN | Standard | WordPiece | Post-Layer | Relative | GeLU | Adam |
LaMDA | Standard | BPE | Layer | Relative | GeGLU | AdamW |
CodeGen | Parallel | BPE | Layer | RoPE | Gelu | Adam |
LLaMA-2 | Grouped-query | BPE | Pre-RMS | RoPE | SwiGLUE | AdamW |