LLaMA (以LLaMA2为例,文末附加对比1 2 3 三个版本的变化)

一、背景

LLaMA 2 和 LLaMA2-Chat
参数规模:70亿、130亿和700亿
数据和训练规模:
上下文长度
训练资源
性能表现:

二、预训练 pretraining

1. 预训练数据

· 训练语料来自公开课用的数据源,不包括Meta的产品或服务数据
· 在2万亿个数据tokens上进行了训练
· 对真实的数据源进行上采样以提高只是并减少错误

2. 训练细节

2.1 标准的Transformer架构

2.2 RMSNorm归一化

2.3 SwiGLU激活函数

2.4 RoPE 旋转位置编码

2.5 GQA 分组查询注意力

2.6 Tokenizer分词器

三、微调 fine-tuning

1. 有监督微调 SFT

2. 基于人工反馈的强化学习 RLHF

3. 多轮对话中保持一致性的系统消息

四、LLaMA的前世今生(LLaMA1,2,3)

Llama1

动机:Meta认为推理成本更重要,所以提高数据量而不是模型大小,因为训练只需要一次,而推理是无数次的

具体行动:针对Transformer-decoder架构,做了以下修改:

  1. 和GPT-3一样将Normalization从每个子层的输出位置移动到了输入位置

  2. 将Layer Norm 改为 RMS Norm
    动机:进行Norm时,对特征进行平移并不能改变特征的分布,所以可以去掉平移相关的部分
    Note: 平移相关的部分指的是:
    a. 输入特征-均值 xE[x]
    b. 对标准化后进行线性变化偏差的参数 β

  1. 采用旋转位置编码

  2. 采用silu激活函数

和Relu比较像

我们尝试看看标记化时间如何受到更大的词汇量的影响。我们发现,将多词短语作为标记实际上的效果更差,然后只是添加更多标记,因为分词器不能假设一个词是每个标记的最大跨度。我们从 Wikipedia 中抽取 10K 个随机句子,并对 BERT 的标准大小写标记器使用 huggingface 的 12 实现。当使用原始词汇表(大小为 ∼ 20K)时,标记化需要 2.31 秒。当将词汇表扩展到我们收集的词汇表(大小为 ∼ 80K,包括多词短语)时,使用相同机器的标记化时间跃升至 8.92 秒。

Llama2

70B模型训练了172万GPU小时相当于2048个GPU训练35天

引入了GQA(Group Query Attention)

减小模型参数量和kv cache的大小

是左右的折中

Llama2只有70B做了GQA

Llama3

字典从三万2000个Token扩充4倍,提高推理效率,原来一个中文被编码为多个token,现在只需要1一个token,推理次数就减少了。

从仅聊天-->指令跟随

本文作者:zz-w

本文链接:https://www.cnblogs.com/zz-w/p/18614386

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   AAA建材王师傅  阅读(69)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起