searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Llama原文解读

2024-09-19 09:34:08
18
0

1 引言

提出的问题:

  1. 并不是模型参数量越大模型性能越好,反而小模型在更多训练数据上效果更好(数据量充足的情况下);
  2. 本文提出的模型训练过程可能耗时,但推理过程非常快
  3. 本文提出的模型都采用公开的数据集

2 方法

2.1 预训练数据

1.png

English CommonCrawl、C4

数据集一样,但数据预处理方式不同

Tokenizer

经过tokenization后总共有1.4T个token,每个token在训练过程在只被用一次

2.2 框架

在其他大模型基础上的改进

【GPT3】:对每一个transformer sub-layer的输入进行标准化,而不是输出,标准化函数RMSNorm,目的是提升训练稳定性

【PaLM】:激活函数使用SwiGLU替换ReLU,维度使用 4d替换4d,目的是提升模型性能

【GPTNeo】:使用旋转位置嵌入代替绝对位置嵌入

不同超参数如下
2.png

2.3 优化器

AdamW optimizer:β1=0.9,β2=0.95,使用cosine学习率,权重衰减(weight decay)为0.1,梯度裁剪(gradient clipping)为1.0,warmup steps=2000

2.4 执行效率

● xformers library:通过不存储注意力权重和不计算由于语言建模任务的因果性质而被mask的key/query分数来实现的

● checkpointing反向传播时减少重复计算的激活数量,通过手动执行transformer层的反向传播,而不是依赖于PyTorch;通过模型和序列冰箱减少内存使用;overlap激活的计算和GPU在网络之间的交流

65B:380 tokens/秒/GPU 2048 A100 GPU+80G RAM

训练包含1.4T tokens的数据集需要21天

3 主要结果

zero-shot任务:提供任务的文本描述和一个测试例子,模型或者直接生成答案或者给备选答案排序

few-shot任务:提供任务的一些例子(1-64)和一个测试例子 ,模型或者直接生成答案或者给备选答案排序

对比的大模型:

非开源:GPT-3,Gopher,Chinchilla,PaLM

开源:OPT,GPT-J,GPTNeo

instruction-tuned:OPT-IML,Flan-PaLM

3.1 常识推理

8个基本的常识推理benchmarks:BoolQ ,PIQA , SIQA ,HellaSwag ,WinoGrande , ARC easy and challenge and OpenBookQA .这些数据集包括完形填空和Winograd风格的任务,以及选择题答案。我们在zero-shot中进行评估。

注:Winograd风格任务用于检测模型是否具备理解语言的能力。该任务由两个句子组成,二者仅有一个单词不同,然后紧接着一个问题。 机器需要识别问题中的前指关系,即指出问题中某一代词的先行词。 为了正确回答问题,机器需要真正理解人类语言,并进行常识推理。
3.png

3.2 闭卷问答

两个benchmarks上进行比较:Natural Questions和TriviaQA

计算绝对匹配性能
4.png

3.3 阅读理解

RACE reading comprehension benchmark:面向中国初高等学校学生
5.png

3.4 数学推理

两个benchmarks上进行比较:MATH和GSM8k

与PaLM和Minerva两个模型进行比较,Minerva是将PaLM的一系列模型在数学问题相关的tokens上进行了微调

maj1@k:为每个问题生成k个样本,进行多数投票
6.png

3.5 代码生成

两个benchmarks上进行比较:HumanEval和MBPP

对于这两个任务,模型都接收到用几句话描述的程序,以及一些输入输出示例

HumanEval:接收一个function signature(函数的信息,包括函数名、参数类型、参数个数、顺序以及它所在的类和命名空间),prompt被格式化为带有文本描述的自然代码,在一个docstring(在编程语言(如Python)中,用于描述函数、类或模块功能的字符串。通常位于定义的开头,用三引号括起来)中测试

本文研究的模型都没有在code数据集中进行微调
7.png

3.6 大规模多任务语言理解

大规模多任务语言理解基准(MMLU)由多项选择题组成,涵盖了人文科学、STEM和社会科学等各个知识领域。

本文使用benchmarks提供的示例,在few-shot中评估我们的模型
8.png

PaLM-540B和Chinchilla-70B效果比较好可能是因为预训练包含的预料更庞大

3.7 训练过程中性能的变化

9.png

4 Instruction Finetuning

训练一个instruct model LLaMA-I,基于MMLU任务
10.png

5 Bias(偏差), Toxicity(攻击性)和Misinformation(错误信息)

大型语言模型已被证明可以再现和放大训练数据中存在的偏差,以及生成有攻击性或令人反感的内容。

5.1 RealToxicityPrompts

RealToxicityPrompts benchmark被作为检测数据集,RealToxicityPrompts由大约10万个模型必须完成的提示组成;然后通过向PerspectiveAPI发出请求来自动评估Toxicity评分。
11.png

● 随着模型size的增加,模型toxicity也在增加,该规律也可能仅适用于同一家族里的模型

5.2 CrowS-Pairs

使用该数据集进行bias评估,涉及9个方面:gender, religion,race/color, sexual orientation, age, nationality, disability,physical appearance and socioeconomic status。

每个例子都由一个刻板印象和一个反刻板印象组成,在zero-shot设置下使用两个句子的困惑度来衡量模型对刻板印象句子的偏好。
12.png

● 可以看到LLaMA的bias相对是比较高的

5.3 WinoGender

该论文为了进一步研究LLaMA在gender上的bias,选择了WinoGender数据集再进行评估

WinoGender是由Winograd模式组成的,通过确定模型的co-reference resolution性能是否受到代词性别的影响来评估偏差。

● 其目的是揭示与职业相关的社会偏见是否已被模型捕获。
13.png

● 上表表示模型在执行“their/them/someone”代词的指代消解方面明显优于“her/her/she”和“his/him/he”代词。在以前的工作中也有类似的观察结果,这可能表明存在性别偏见。

● 在这个案例中

● “她/她/她”和“他/他/他”的代词,模型可能是使用职业的多数性别来执行指代消解,而不是使用句子的证据

● 在表13中,LLaMA-65B在gotcha示例中犯了更多错误,清楚地表明它捕获了与性别和职业相关的社会偏见。““her/her/she”和“his/him/he”代词的表现都有所下降,这是一种不分性别的偏见。

5.4 TruthfulQA

该数据集用于验一个模型的真实性(truthfulQA),即在真实世界中是否正确。这个benchmark可以评估模型产生错误信息或虚假claim的风险。问题的写作风格多样,涵盖38个类别,并被设计成对抗性的。
14.png

● Truthful(真实):这意味着模型的回答必须基于事实,不能编造或误导用户。在问答系统中,确保回答的真实性是非常重要的,因为它直接影响到用户对系统的信任度和满意度。

● Informative(信息性):这表示模型的回答需要包含有用的信息,能够回答用户的问题或满足用户的需求。一个信息性的回答应该具有实质性的内容,而不是空洞无物或缺乏实质性信息的。

6 Carbon footprint

评估二氧化碳的排放量,使用Watt-hour评估指标。
15.png

其中Power Usage Effectiveness (PUE)=1.1。由此产生的碳排放量取决于用于训练网络的数据中心的位置。

本文考虑对比模型所用训练数据都存储在相同的数据中心。美国全国平均碳强度因子0.385kg CO2eq/KWh。

大约5个月的时间里使用了2048个A100-80GB来开发论文中的模型。这意味着在以上假设下,开发这些模型将花费约2,638MWh,总排放量为1,015吨二氧化碳当量。

7 相关工作

语言模型

最开始被作为自然语言处理的核心问题,后来被认为是衡量人工智能进步的基准。

架构

n-gram→前向传播/RNN/LSTMs→transformer(self-attention)

规模

模型和数据集规模的变化

BERT、GPT-2、Megatron-LM、T5、GPT-3、Jurassic-1、Megatron-Turing NLG、Gophe、Chinchilla、PaLM、OPT、GLM

8 结论

● 与之前的研究不同,本研究表明,不使用专有数据集,而只使用公开可用的数据集进行训练,可以达到最先进的性能。

● 未来将释放更大规模模型

0条评论
0 / 1000
刘****华
3文章数
1粉丝数
刘****华
3 文章 | 1 粉丝
刘****华
3文章数
1粉丝数
刘****华
3 文章 | 1 粉丝
原创

Llama原文解读

2024-09-19 09:34:08
18
0

1 引言

提出的问题:

  1. 并不是模型参数量越大模型性能越好,反而小模型在更多训练数据上效果更好(数据量充足的情况下);
  2. 本文提出的模型训练过程可能耗时,但推理过程非常快
  3. 本文提出的模型都采用公开的数据集

2 方法

2.1 预训练数据

1.png

English CommonCrawl、C4

数据集一样,但数据预处理方式不同

Tokenizer

经过tokenization后总共有1.4T个token,每个token在训练过程在只被用一次

2.2 框架

在其他大模型基础上的改进

【GPT3】:对每一个transformer sub-layer的输入进行标准化,而不是输出,标准化函数RMSNorm,目的是提升训练稳定性

【PaLM】:激活函数使用SwiGLU替换ReLU,维度使用 4d替换4d,目的是提升模型性能

【GPTNeo】:使用旋转位置嵌入代替绝对位置嵌入

不同超参数如下
2.png

2.3 优化器

AdamW optimizer:β1=0.9,β2=0.95,使用cosine学习率,权重衰减(weight decay)为0.1,梯度裁剪(gradient clipping)为1.0,warmup steps=2000

2.4 执行效率

● xformers library:通过不存储注意力权重和不计算由于语言建模任务的因果性质而被mask的key/query分数来实现的

● checkpointing反向传播时减少重复计算的激活数量,通过手动执行transformer层的反向传播,而不是依赖于PyTorch;通过模型和序列冰箱减少内存使用;overlap激活的计算和GPU在网络之间的交流

65B:380 tokens/秒/GPU 2048 A100 GPU+80G RAM

训练包含1.4T tokens的数据集需要21天

3 主要结果

zero-shot任务:提供任务的文本描述和一个测试例子,模型或者直接生成答案或者给备选答案排序

few-shot任务:提供任务的一些例子(1-64)和一个测试例子 ,模型或者直接生成答案或者给备选答案排序

对比的大模型:

非开源:GPT-3,Gopher,Chinchilla,PaLM

开源:OPT,GPT-J,GPTNeo

instruction-tuned:OPT-IML,Flan-PaLM

3.1 常识推理

8个基本的常识推理benchmarks:BoolQ ,PIQA , SIQA ,HellaSwag ,WinoGrande , ARC easy and challenge and OpenBookQA .这些数据集包括完形填空和Winograd风格的任务,以及选择题答案。我们在zero-shot中进行评估。

注:Winograd风格任务用于检测模型是否具备理解语言的能力。该任务由两个句子组成,二者仅有一个单词不同,然后紧接着一个问题。 机器需要识别问题中的前指关系,即指出问题中某一代词的先行词。 为了正确回答问题,机器需要真正理解人类语言,并进行常识推理。
3.png

3.2 闭卷问答

两个benchmarks上进行比较:Natural Questions和TriviaQA

计算绝对匹配性能
4.png

3.3 阅读理解

RACE reading comprehension benchmark:面向中国初高等学校学生
5.png

3.4 数学推理

两个benchmarks上进行比较:MATH和GSM8k

与PaLM和Minerva两个模型进行比较,Minerva是将PaLM的一系列模型在数学问题相关的tokens上进行了微调

maj1@k:为每个问题生成k个样本,进行多数投票
6.png

3.5 代码生成

两个benchmarks上进行比较:HumanEval和MBPP

对于这两个任务,模型都接收到用几句话描述的程序,以及一些输入输出示例

HumanEval:接收一个function signature(函数的信息,包括函数名、参数类型、参数个数、顺序以及它所在的类和命名空间),prompt被格式化为带有文本描述的自然代码,在一个docstring(在编程语言(如Python)中,用于描述函数、类或模块功能的字符串。通常位于定义的开头,用三引号括起来)中测试

本文研究的模型都没有在code数据集中进行微调
7.png

3.6 大规模多任务语言理解

大规模多任务语言理解基准(MMLU)由多项选择题组成,涵盖了人文科学、STEM和社会科学等各个知识领域。

本文使用benchmarks提供的示例,在few-shot中评估我们的模型
8.png

PaLM-540B和Chinchilla-70B效果比较好可能是因为预训练包含的预料更庞大

3.7 训练过程中性能的变化

9.png

4 Instruction Finetuning

训练一个instruct model LLaMA-I,基于MMLU任务
10.png

5 Bias(偏差), Toxicity(攻击性)和Misinformation(错误信息)

大型语言模型已被证明可以再现和放大训练数据中存在的偏差,以及生成有攻击性或令人反感的内容。

5.1 RealToxicityPrompts

RealToxicityPrompts benchmark被作为检测数据集,RealToxicityPrompts由大约10万个模型必须完成的提示组成;然后通过向PerspectiveAPI发出请求来自动评估Toxicity评分。
11.png

● 随着模型size的增加,模型toxicity也在增加,该规律也可能仅适用于同一家族里的模型

5.2 CrowS-Pairs

使用该数据集进行bias评估,涉及9个方面:gender, religion,race/color, sexual orientation, age, nationality, disability,physical appearance and socioeconomic status。

每个例子都由一个刻板印象和一个反刻板印象组成,在zero-shot设置下使用两个句子的困惑度来衡量模型对刻板印象句子的偏好。
12.png

● 可以看到LLaMA的bias相对是比较高的

5.3 WinoGender

该论文为了进一步研究LLaMA在gender上的bias,选择了WinoGender数据集再进行评估

WinoGender是由Winograd模式组成的,通过确定模型的co-reference resolution性能是否受到代词性别的影响来评估偏差。

● 其目的是揭示与职业相关的社会偏见是否已被模型捕获。
13.png

● 上表表示模型在执行“their/them/someone”代词的指代消解方面明显优于“her/her/she”和“his/him/he”代词。在以前的工作中也有类似的观察结果,这可能表明存在性别偏见。

● 在这个案例中

● “她/她/她”和“他/他/他”的代词,模型可能是使用职业的多数性别来执行指代消解,而不是使用句子的证据

● 在表13中,LLaMA-65B在gotcha示例中犯了更多错误,清楚地表明它捕获了与性别和职业相关的社会偏见。““her/her/she”和“his/him/he”代词的表现都有所下降,这是一种不分性别的偏见。

5.4 TruthfulQA

该数据集用于验一个模型的真实性(truthfulQA),即在真实世界中是否正确。这个benchmark可以评估模型产生错误信息或虚假claim的风险。问题的写作风格多样,涵盖38个类别,并被设计成对抗性的。
14.png

● Truthful(真实):这意味着模型的回答必须基于事实,不能编造或误导用户。在问答系统中,确保回答的真实性是非常重要的,因为它直接影响到用户对系统的信任度和满意度。

● Informative(信息性):这表示模型的回答需要包含有用的信息,能够回答用户的问题或满足用户的需求。一个信息性的回答应该具有实质性的内容,而不是空洞无物或缺乏实质性信息的。

6 Carbon footprint

评估二氧化碳的排放量,使用Watt-hour评估指标。
15.png

其中Power Usage Effectiveness (PUE)=1.1。由此产生的碳排放量取决于用于训练网络的数据中心的位置。

本文考虑对比模型所用训练数据都存储在相同的数据中心。美国全国平均碳强度因子0.385kg CO2eq/KWh。

大约5个月的时间里使用了2048个A100-80GB来开发论文中的模型。这意味着在以上假设下,开发这些模型将花费约2,638MWh,总排放量为1,015吨二氧化碳当量。

7 相关工作

语言模型

最开始被作为自然语言处理的核心问题,后来被认为是衡量人工智能进步的基准。

架构

n-gram→前向传播/RNN/LSTMs→transformer(self-attention)

规模

模型和数据集规模的变化

BERT、GPT-2、Megatron-LM、T5、GPT-3、Jurassic-1、Megatron-Turing NLG、Gophe、Chinchilla、PaLM、OPT、GLM

8 结论

● 与之前的研究不同,本研究表明,不使用专有数据集,而只使用公开可用的数据集进行训练,可以达到最先进的性能。

● 未来将释放更大规模模型

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0