当前位置:首页> AI教程> MetaAI开源的LLaMA大语言模型

MetaAI开源的LLaMA大语言模型

释放双眼,带上耳机,听听看~!
本文介绍了最近MetaAI开源的大语言模型LLaMA,基于transformer架构,并使用更多的token在各种推理预算下实现最佳性能。

导语

随着ChatGPT的爆火,大语言模型逐渐成为了研究热点,然而过去的大部分工作中的大语言模型LLM都是闭源的,仅提供API有偿调用,本文介绍了最近MetaAI开源的大语言模型LLaMA。

1 简介

LLM通常在参数量提升到一定程度后出现一些奇特的特性,如Few-shot甚至Zero-shot的In-context learning能力。过去的研究主要集中在如何增加模型的参数量上,然而,最近的研究表明,当计算预算一定的情况下,小一些的模型在更多的训练数据上训练会得到比大参数模型(更少的数据)更好的效果。例如,尽管Hoffmann等人(2022)建议在200B个token上训练10B模型,但我们发现即使在1T个token之后,7B模型的性能仍在继续提高。

本文的工作重点是训练一系列语言模型,使用更多的token,在各种推理预算下实现最佳性能。所得模型称为LLaMA,其参数范围从7B到65B,与现有最佳LLM相比具有竞争力。例如,LLaMA-13B在大多数基准测试中优于GPT-3,尽管体积小了10倍。在更大的规模上,LLaMA-65B参数模型也可以与最好的大型语言模型(如Chinchilla或PaLM-540B)相媲美。

与Chinchilla, PaLM或GPT-3不同,LLaMA只使用公开可用的数据,而大多数现有模型依赖于非公开可用或未记录的数据。本文的后续部分概述了我们对Transformer架构所做的修改,以及我们的训练方法。然后报告模型的性能,并在一组标准基准上与其他LLM进行比较。最后,我们使用来自负责任的人工智能社区的一些最新基准,揭示了我们模型中编码的一些偏见和毒性。

2 方法

2.1 预训练数据

训练数据集是几个来源的混合,如表1所示,涵盖了不同的领域。本文只使用公开可用的数据,并且与开源兼容。以下混合数据及其在训练集中所代表的百分比如下:

MetaAI开源的LLaMA大语言模型

  • English CommonCrawl [67%]. 对2017-2020的CommonCrawl进行非英语去除和行级别的去重处理。
  • C4 [15%]. 即T5模型训练时使用的数据集。
  • Github [4.5%]. 使用Google BigQuery.上的Apache, BSD and MIT licenses数据。
  • Wikipedia [4.5%]. 截止到2022-08的多语言版本Wikipedia语料。
  • Gutenberg and Books3 [4.5%]. 书籍语料进行了去重。
  • ArXiv [2.5%]. 删除掉第一个Section之前的所有内容,并去除了.tex中的注释。
  • Stack Exchange [2%]. 保留了来自28个最大网站的数据,从文本中删除了HTML标签,并按分数(从最高到最低)对答案进行了排序。

本文使用字节对编码(BPE)算法对数据进行分词,使用SentencePiece的实现。值得注意的是,我们将所有数字拆分为单个数字,并使用字节来分解未知的UTF-8字符。总的来说,整个训练数据集在分词后大约包含1.4T个token。对于我们的大多数训练数据,每个token在训练期间只使用一次,除了Wikipedia和Books域,我们在其上执行大约两个epoch。

2.2 架构

LLaMA基于transformer架构并利用几类改进,以下是与原始架构的主要区别,以及我们找到这种变化的灵感的地方(括号内):

  • Pre-normalization [GPT3]. 为了提高训练的稳定性,我们对每个Transformer sub-layer的输入进行归一化,而不是对输出进行归一化。LLaMA使用了RMSNorm归一化函数。
  • SwiGLU activation function [PaLM]. 为了提高性能,使用SwiGLU激活函数取代了ReLU非线性。
  • Rotary Embeddings [GPTNeo]. 删除了绝对位置嵌入,取而代之的是在网络的每一层添加旋转位置嵌入(RoPE)。

表2给出了不同模型的超参数的详细信息。

MetaAI开源的LLaMA大语言模型

2.3 优化器

使用了AdamW优化器,并使用cosine learning rate schedule,使得最终学习率等于最大学习率的10%,设置0.1的权重衰减和1.0的梯度裁剪。warmup的step为2000,并根据模型的大小改变学习率和批处理大小(详见表2)。

2.4 高效实现

作者做了一些优化来提高模型的训练速度。首先,使用因果多头注意的有效实现来减少内存使用和运行时间。该实现可在xformers库中获得。为了进一步提高训练效率,通过检查点减少了在向后传递过程中重新计算的激活量。更准确地说,节省了计算成本高的激活,比如线性层的输出。这是通过手动实现transformer层的backward函数来实现的,而不是依赖于PyTorch的autograd。此外,还尽可能地覆盖激活的计算和gpu之间通过网络的通信(由于all_reduce操作)。

训练65b参数模型时,我们的代码在2048 A100 GPU和80GB RAM上处理大约380个token/秒/GPU。这意味着在包含1.4T token的数据集上进行训练大约需要21天。

3 主要结果

作者主要对比了在Zero-shot、Few-shot上的结果。

3.1 常识推理(Common Sense Reasoning)

MetaAI开源的LLaMA大语言模型

LLaMA-65B在除BoolQ以外的所有基准测试中都优于Chinchilla-70B。同样,除了在BoolQ和WinoGrande上,在所有方面都超过了PaLM-540B。LLaMA-13B模型在大多数基准测试中也优于GPT-3,尽管体积小了10倍。

3.2 闭卷问答(Closed-book QA)

MetaAI开源的LLaMA大语言模型MetaAI开源的LLaMA大语言模型

在表4中,我们报告了NaturalQuestions的性能,在表5中,我们报告了TriviaQA的性能。在这两个基准测试中,LLaMA-65B在零弹和少弹设置中实现了最先进的性能。更重要的是,尽管LLaMA-13B比GPT-3和Chinchilla小5-10倍,但在这些基准上也具有竞争力。该模型在推理期间运行在单个V100 GPU上。

3.3 阅读理解(Reading Comprehension)

MetaAI开源的LLaMA大语言模型

在这些基准测试中,LLaMA-65B与PaLM-540B具有竞争力,LLaMA-13B比GPT-3高出几个百分点。

3.4 数学推理(Mathematical reasoning)

在表7中,我们与PaLM和Minerva进行了比较。Minerva是一系列PaLM模型,对从ArXiv和Math Web Pages中提取的38.5B token进行了微调,而PaLM和LLaMA都没有对数学数据进行微调。我们比较了maj1@k和没有maj1@k的情况。maj1@k表示我们为每个问题生成k个样本并进行多数投票的评估。在GSM8k上,我们观察到LLaMA65B优于Minerva-62B,尽管它没有在数学数据上进行微调。

MetaAI开源的LLaMA大语言模型

3.5 代码生成(Code generation)

表8中将模型的pass@1分数与未对代码进行微调的现有语言模型(即PaLM和LaMDA)进行比较。PaLM和LLaMA在包含相似数量的代码token的数据集上进行了训练。如表8所示,对于类似数量的参数,LLaMA优于其他通用模型,如LaMDA和PaLM,这些模型没有专门针对代码进行训练或调优。具有13B及以上参数的LLaMA在HumanEval和MBPP上都优于LaMDA 137B。即使训练时间更长,LLaMA 65B的性能也优于PaLM 62B。

3.6 大规模多任务语言理解(Massive Multitask Language Understanding)

大规模多任务语言理解基准(MMLU)由多项选择题组成,涵盖了人文科学、STEM和社会科学等各个知识领域。我们使用基准提供的示例在5-shot设置中评估我们的模型,并在表9中报告结果。可以观察到LLaMA-65B在大多数领域平均落后于Chinchilla70B和PaLM-540B几个百分点。一种可能的解释是,预训练数据中使用了有限数量的书籍和学术论文,即ArXiv, Gutenberg和book3,总计只有177GB,而这些模型在高达2TB的书籍上进行了训练。Gopher、Chinchilla和PaLM使用的大量书籍可能也解释了为什么Gopher在这个基准测试中表现优于GPT-3,而在其他基准测试中却不相上下。

MetaAI开源的LLaMA大语言模型

3.7 训练过程中的性能演变(Evolution of performance during training)

在训练期间,我们在一些问题回答和常识基准上跟踪了模型的性能,并在图2中报告了它们。在大多数基准测试中,性能稳步提高,并且与模型的训练困惑度相关(见图1)。例外是SIQA和WinoGrande。最值得注意的是,在SIQA上,我们观察到性能上有很多差异,这可能表明这个基准测试不可靠。在WinoGrande上,性能与训练困惑度不相关:LLaMA-33B和LLaMA-65B在训练过程中表现相似。

MetaAI开源的LLaMA大语言模型

4 指令调优

在本节中,我们将展示对指令数据进行简单的调优可以迅速改善MMLU。虽然未经微调的LLaMA-65B版本已经能够遵循基本指令,但我们观察到,非常少量的微调提高了MMLU上的性能,并进一步提高了模型遵循指令的能力。由于这不是本文的重点,我们只进行了一个实验,遵循与Chung等人(2022)相同的方案来训练一个指令模型LLaMA-I。

MetaAI开源的LLaMA大语言模型

表10报告了指令模型LLaMA-I在MMLU上的结果,并与现有中等规模的指令微调模型,进行了比较。尽管这里使用的指令调优方法很简单,但在MMLU上达到了68.9%。LLaMA-I (65B)在现有中等规模的指令微调模型上的表现优于MMLU,但仍远未达到最先进的水平,在MMLU上的GPT code-davincii-002为77.4。

5 偏见、有毒性和虚假信息(Bias, Toxicity and Misinformation)

LLM可以再现和放大训练数据中存在的偏差,并产生有毒或令人反感的内容。为了了解LLaMA-65B的潜在危害,我们对测量有毒物质产生和定型物检测的不同基准进行了评估。

5.1 RealToxicityPrompts

语言模型可以生成有毒语言,例如侮辱、仇恨言论或威胁。模型可以生成的有毒内容范围非常大,这使得彻底的评估具有挑战性。最近的几项研究将RealToxicityPrompts基准视为其模型毒性的指标。RealToxicityPrompts由大约10万个模型必须完成的提示组成;然后通过向PerspectiveAPI发出请求来自动评估毒性评分。

对于每一个100k提示,我们用我们的模型生成,并测量它们的毒性评分。每个提示的评分范围从0(无毒)到1(有毒)。在表11中,我们报告了我们在RealToxicityPrompts的基本和尊重提示类别上的平均得分。这些分数与我们在文献中观察到的分数“相当”(例如,Chinchilla的分数为0.087),但这些工作与我们的方法不同(在抽样策略、提示次数和API时间方面)。我们观察到,毒性随着模型的大小而增加,特别是对于Respectful prompts。在之前的研究中也观察到了这一点,但Hoffmann et al.(2022)除外,他们没有发现Chinchilla和Gopher之间的差异,尽管大小不同。这可以用这样一个事实来解释,即较大的模型Gopher的表现比Chinchilla差,这表明毒性和模型大小之间的关系可能只适用于一个模型家族。

MetaAI开源的LLaMA大语言模型MetaAI开源的LLaMA大语言模型

5.2 CrowS-Pairs

CrowSPairs数据集衡量9个类别的偏见:性别、宗教、种族/肤色、性取向、年龄、国籍、残疾、外貌和社会经济地位。每个例子都由一个刻板印象和一个反刻板印象组成,我们使用两个句子的困惑度来衡量模型对刻板印象句子的偏好。因此,分数越高表明偏见越严重。我们在表12中将GPT-3和OPT-175B进行比较。

LLaMA平均比这两种模型略好。我们的模型特别偏向于宗教类别(与OPT-175B相比+10%),其次是年龄和性别。我们期望这些偏差来自CommonCrawl,尽管有多个过滤步骤。

5.3 WinoGender

为了进一步研究我们的模型在性别类别上的偏差,我们评估了WinoGender数据集,这是一个Coreference Resolution数据集。更准确地说,每句话都有三个提及:“职业”、“参与者”和“代词”(代词指代职业或参与者)。我们提示模型确定共参考关系,并测量它是否根据句子的上下文正确地找出例如,WinoGender数据集中的一个句子是“The nurse notified the patient that his shift would be ending in an hour.”,后面接“His”指的是。我们在使用“her/her/she”、“his/him/he”和“their/them/someone”三种代词(不同的选择对应代词的语法功能)时对其表现进行了评价。

表13报告了数据集中包含的三种不同代词的共同参考分数。LLaMA模型在执行“their/them/someone”代词的共同引用解析方面明显优于“her/her/she”和“his/him/he”代词。在以前的工作中也有类似的观察结果,这可能表明存在性别偏见。事实上,在“her/her/she”和“his/him/he”代词的情况下,模型可能是使用职业的多数性别来执行共同指称解析,而不是使用句子的证据。

为了进一步研究这一假设,我们查看WinoGender数据集中的“her/her/she”和“his/him/he”代词的“gotcha”案例集。这些情况对应于代词与职业的多数性别不匹配,职业是正确答案的句子。在表13中,我们观察到我们的模型LLaMA-65B在gotcha示例中犯了更多错误,清楚地表明它捕获了与性别和职业相关的社会偏见。“her/her/she”和“his/him/he”代词的表现都有所下降,这是一种不分性别的偏见。

MetaAI开源的LLaMA大语言模型MetaAI开源的LLaMA大语言模型

5.4 TruthfulQA

TruthfulQA旨在衡量模型的真实性,即识别声明何时为真的能力。Lin等人(2021)认为“真实”的定义是“关于现实世界的真实”,而不是只在信仰体系或传统背景下才是真实的说法。这个基准可以评估模型产生错误信息或虚假声明的风险。问题的写作风格多样,涵盖38个类别,并被设计成对抗性的。

在表14中,我们报告了我们的模型在两个问题上的表现,以衡量真实模型和真实与信息的交集。与GPT-3相比,我们的模型在这两个类别中的得分都更高,但正确答案的比率仍然很低,这表明我们的模型可能会产生幻觉。

6-7 碳足迹、相关工作

8 总结

本文中提出了一系列公开发布的语言模型,并实现与最先进的基础模型相竞争的结果。最值得注意的是,LLaMA-13B的性能优于GPT-3,但体积比GPT-3小10倍以上,LLaMA-65B与Chinchilla-70B和PaLM-540B竞争。与之前的研究不同,我们的研究表明,不使用专有数据集,而只使用公开可用的数据集进行训练,可以达到最先进的性能。我们希望向研究界发布这些模型将加速大型语言模型的发展,并有助于提高它们的鲁棒性,减轻已知的问题,如毒性和偏见。此外,我们像Chung等人(2022)一样观察到,根据指令对这些模型进行微调会产生有希望的结果,我们计划在未来的工作中进一步研究这一点。最后,我们计划在未来发布在更大的预训练语料库上训练的更大的模型,因为我们在扩展时已经看到了性能的不断提高。

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

L1和L2正则化在机器学习中的应用及示例

2023-12-8 14:36:14

AI教程

使用PyTorch实现物体检测任务的教程

2023-12-8 14:51:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索