大型语言模型比较: Gen2/Gen3模型(Bloom、 Gopher、 OPT 和 其它)

大语言模型是产生文本的复杂的神经网络。自2018年成立以来,它们发生了戏剧性的进化,传递的信息可以与人类媲美。为了更好地理解这种演变,这个博客系列调查模型,以揭示它们如何前进。具体来说,从已发表的论文中对每个模型的见解进行了解释,并从基准比较中得出结论。

本文涵盖以下 LLM:

  • Hugging Face
    • Bloom
    • BloomZ
  • Deep Mind
    • Gopher
    • Chinchilla
    • Sparrow
  • Nvidia
    • Megatron-Turing NLG
  • Meta AI
    • Open Pretrained Transformer
  • Allen Institute for AI
    • TK Instruct

Bloom

Bloom
Date 2021-11
Producer Hugging Face
Paper BLOOM: A 176B-Parameter Open-Access Multilingual Language Model
Source CodeWikipedia

BLOOM大型语言模型(LLM)是由100人组成的开放研究协作的成果,其明确目标是实现大型语言模型的民主化(更加开放和可访问,以便更广泛的研究和开发社区能够使用和贡献)。在其研究论文中,介绍了这个研究项目的组织结构、不同工作组以及个人所贡献的研究领域。为了指导整个项目,采用了一套核心价值观。除了这些组织信息外,还公开发布了完整的模型训练脚本、输入数据和模型检查点,且均可公开访问。

BLOOM是一款仅包含解码器的变换器(decoder-only transformer)模型。其训练数据被命名为ROOTS语料库,包含了1.61TB的多语言内容,来源于252个不同的来源,并且增加了来自GitHub的源代码仓库以及CommonCrawl数据集。所有文本材料都经过清洗,以获得"由人类为人类编写"的文本,然后在用作训练模型的输入之前进行了去重。这个多语言语料库包含了46种自然语言和13种编程语言。

该模型在法国政府资助的一台超级计算机上进行了培训,该计算机有48个节点,总数为384个 NVIDIA A100图形处理器。为了训练,图书馆使用了威震天和深度极速。与其他 LLM 一样,公布了不同的模型尺寸,范围从560M 到3B、7.1 B 和176B 参数版本。

这个模型被用于第一代 LLM 中的各种 NLP 基准测试的零镜头或少镜头指令,如 SuperGlue、机器翻译数据集 WMT14、 Flores-101和 DiaBLa,以及 WikiLangua 文本摘要。它也被应用在代码生成中。BLOOM 模型超过了 GPT-Neo 和 GPT-J,但是在代码生成方面,CodeX 得到了更好的分数。在比较生成文本的准确性、偏差和公平性等方面,未经微调的 BLOOM 模型取得了较好的效果,但仍不能超过 GPT3 Davinci 模型。

BloomZ

BloomZ
Date 2022-07
Producer Hugging Face
Paper Crosslingual Generalization through Multitask Finetuning
Source Code

BloomZ模型是对Bloom模型的精调版本。基于研究发现,指令式微调极大地增强了模型的小样本学习能力,从而提高了其在基准测试中的整体性能,英语P3指令数据集被扩展为两个变体。xP3数据集包含英语提示,但在46种不同语言中具有多语言任务上下文。而xP3mt变体还包含了机器翻译的非英语提示。这些任务涵盖了广泛的范围,如多项选择、提取式和闭卷问答,以及摘要、程序合成和共指解析。

对比Bloom与BloomZ的性能,证据明确:指令式微调显著提高了每个任务的性能。此外,在句子完成、自然语言干扰和共指解析等任务中的性能随着指令式微调数据集变体的增加而提高。例如,在自然语言干扰中,Bloom-P3得分为47.7,BloomZ-xP3为55.3,而BloomZ-xP3mt为57.7。

观察到几个有趣的方面。首先,仅英语的微调提示增加了LLM在其所有其他训练语言中的任务泛化能力。其次,微调在仅使用零样本提示的任务中带来了几个最佳表现。第三,当给定特别设计的多样本提示任务时,模型甚至可以生成它未经训练的语言的文本。虽然所有未训练语言的性能没有显著提高,但某些测试中展现出惊人的结果,例如在自然语言干扰中。

Gopher

Gopher
Date 2021-12
Producer Deep Mind
Paper Scaling Language Models: Methods, Analysis & Insights from Training Gopher
Source Blog

Deep Mind的Gopher模型系统地检验了模型大小对模型性能的影响。Gopher模型系列是自回归变换器,分别训练了五种不同大小的模型:44M、117M、417M、1.4B、7.1B、280B。

所有模型都是用来自一个名为MassiveText的数据集的300B令牌进行训练的。这个数据集受到The Pile的启发,包含了来自多个来源的文本,如书籍、新闻、GitHub上的源代码和维基百科。文本处理流程非常详细:内容过滤、文本提取、质量过滤、重复移除、文档去重和测试集过滤。只考虑英语文本。训练使用了Jax库。

所得到的模型与彼此以及以下模型进行了比较:GPT-3(175B)、Jurassic-1(178B)、Megatron-Turing NLG(530B)。基准任务范围从语言建模、阅读理解到事实检查和BIG bench,共包含156个任务。研究人员发现,在阅读理解任务中取得了均匀的任务改进,但在常识和逻辑推理任务中,Gopher模型表现更差。

Megatron-Turing NLG

Megatron-Turing NLG
Date 2021-10
Producer NVIDIA
Paper Using DeepSpeed and Megatron to Train Megatron-Turing NLG 530B, A Large-Scale Generative Language Model
Source Blog

Megatron Turing NLG的研究目标是大规模的大型语言模型(LLM)。为了训练这个560B模型,需要进行软件和硬件方面的创新。研究论文提到了关键的学习点。为了有效地切分270B令牌输入,管道并行和数据并行是基础。这通过结合Deep Speed开源库(用于从输入数据创建批次)和使用Megatron框架并行化结果张量来实现。

训练硬件是庞大的:560台DGX A100服务器,每台装有8个A100 GPU。单个GPU在16FP精度下的峰值计算输出为每个GPU 312 tFLOP/s。数据来源包括The Pile,以及来自common crawl、real new和CC-Stories的快照。与其他研究相似,有效的输入文本过滤被认为是必不可少的,论文提到了所有应用的方法。从所有来源中提取自然语言文本,计算质量评分和模糊相似度评分。只有通过给定阈值的文本才被考虑。这导致了3390亿个令牌,从中通过加权输入数据来源取出270B。

应用的基准测试包括完成预测、阅读理解和常识推理。与GPT3和Gopher相比,结果有所不同:在完成预测方面,只能看到边际改进,但在阅读理解方面,零样本示例性能从GPT3的60.50提高到Megatron的78.20。

Chinchilla

Chinchilla
Date 2022-03
Producer Deep Mind
Paper Training Compute-Optimal Large Language Models

Chinchilla大型语言模型是Gopher的继续。研究人员想要确定在训练中如何投入计算能力,即浮点运算次数(FLOPs)。本质上是:是扩大模型的参数大小更好,还是增加训练输入数据的数量更好?他们训练了从70M到10B不等大小的模型,并估计了最佳模型大小和令牌数量。

基于这一观察,他们随后训练了Chinchilla,一个70B参数大小的模型,输入令牌为1.4万亿。对比一下:175B的GPT-3有300B令牌,280B的Gopher也有300B令牌。输入令牌来自MassiveText数据集,这个数据集遵循与Gopher相同的原则来收集、清理、去重文本。训练是在TPUv3和TPUv4上进行的,使用Jax和Haiku库。

结果令人震惊:更小的Chinchilla模型在一致性和显著性上均优于Gopher、GPT-3和其他更大的模型。此外,它使用的计算能力和能源显著更少,更小的大小使其进行进一步微调更为可行和高效。另一个有趣的结果是在Massive Multitask Language Understanding (MMLU)任务中的表现得分。对于五样本提示,Chinchilla达到了67.6%,与Gopher的60.0%和GPT-3的43.9%相比有显著提升。

Sparrow

Sparrow
Date 2022-09
Producer Deep Mind
Paper Improving alignment of dialogue agents via targeted human judgements
Source Blog

Sparrow 是一款专为对话设计的大型语言模型(LLM)。该模型以对话引导的Chinchilla LLM作为基础模型,然后应用了人类反馈驱动的强化学习(RLHF)作为微调步骤。这个模型的独特之处在于,它的对话规则是以自然语言形式制定的。总共制定了23条规则,从关于整个对话的总体范式到详细的"每轮对话"规则,这些规则仅适用于单次文本生成。例如,这些规则包括"不要假装拥有身体或能够在身体中移动"、"只做可能是真实的陈述;不要说明显是假的事情"和"代理人不应该不必要地重复自己"。

在微调阶段,用户面临三项任务。在每轮响应参考任务中,用户被展示对话的部分内容,以及对话应如何继续的选项。这些选项实际上是不同LLM的输出,因此用户的投票决定了哪个模型表现更好。在对抗性探测任务中,给用户一条对话规则,并要求他们使模型违反这条规则。计算规则违反率进一步帮助选择表现最佳的模型。最后,在模型的带证据响应任务中,用户可以看到模型用于提供答案的数据,并可以评价模型在给定答案中使用其证据的效果。对于证据本身,模型使用一个功能执行谷歌搜索查询,抓取结果网页,并接收一个500字符的文本,然后用于制作响应。

比较基础的对话引导的Chinchilla 70B模型与微调后的版本,趋势是可辨识的。用户更喜欢Gopher模型而非基础模型。对于事实性问题,支持性证据被正确引用了78%,规则违反率降至8%。

Open Pretrained Transformer

Open Pretrained Transformer
Date 2022-05
Producer Meta AI
Paper OPT: Open Pre-trained Transformer Language Models
Source CodeBlog

开放预训练变换器(Open Pretrained Transformer,简称OPT)大型语言模型是一个开源变换器模型。该模型以10种不同的大小发布,从125M到6.7B以及175B,可以从其代码仓库下载。训练材料包括几个来源:BookCorpus、Stories、CC- News v2、The Pile和PushShift.io Reddit。所有输入源都经过了仔细的去重处理,作者特别指出,在The Pile语料库中存在多个重复项。

这些模型在16种不同的自然语言处理任务上进行了测试,如OpenBook QA和SuperGLUE。零样本性能与GPT3相当(尽管在某些任务上可以确定一些差异),但在多样本任务上,性能下降。另一组基准测试用于评估对话中的性能,如Empathetic Dialogue和Blended Skill Talk。研究人员得出结论,OPT 175B在对话中展现出一致的人格特征。

忠于研究者的开源目标,他们甚至发布了完整的训练步骤日志。这个有趣的资源详细记录了训练的几个操作细节,包括处理软件和硬件错误,这些错误延迟了模型的训练。

TK Instruct

TK Instruct
Date 2022-04
Producer Allen Institute for AI
Paper Super-NaturalInstructions: Generalization via Declarative Instructions on 1600+ NLP Tasks
Source Code

指令式微调是提升大型语言模型(LLM)性能的基石。为了理解和比较模型对未预见任务的表现,研究人员创建了一个新的基准测试,名为超自然指令(Super Natural Instructs,简称SNI),涵盖了76种任务类型,包含1616个任务。SNI基准测试包含的任务被构建为上下文中的指令,也称为k-shot示例。这些指令提示包括任务描述、上下文,以及可选的正面和负面示例。

研究人员使用预训练的T5模型作为基础,对Instruct-TK进行了元训练和在SNI数据集上的微调,然后对其进行了未见任务的基准测试。选择的比较指标是ROGUE-L,它用于确定文本之间最长公共子序列的长度,例如,比较模型创建的文本与预期文本。使用ROUGE-L指标的基准测试结果显示,11B的Instruct-TK比未进行任务微调的T5和GPT3高出30%,甚至比进行了任务微调的175B InstructGPT高出10%。

其他值得注意的发现包括,在Instructs-TK训练期间,每个任务64个实例就足以饱和下游性能。显然,存在一个模型需要消耗的实例上限阈值,超过这个阈值后,模型才能学会概括特定任务,避免过度拟合训练数据。此外,用更多样化的任务进行任务微调,即使对于较小的模型大小,也显著提高了性能。

总结

第二代和第三代大型语言模型(LLM)沿着参数复杂性、训练材料和指令式微调不断发展。从本文涉及的模型中可以观察到以下趋势。首先,如Megatron模型所示并引领的,有效的管道和数据并行对于有效且可扩展的训练至关重要。几个开源框架解决了这些训练需求,并可被所有后续研究所使用。其次,如BLOOM和TK-Instruct所展示的,使用指令式提示进行训练或微调,可以显著提高模型在多个NLP和任务基准测试中的性能。似乎存在一个阈值,即每个任务所需的实例数量,以实现这种泛化。接下来,如BloomZ所示,一个多语言模型可以仅用英语提示进行任务微调,并扩展其在所有其他训练语言中的能力。然后,麻雀(Sparrow)模型展示了如何使用指令式提示来定义模型的"行为",在这个案例中是用于对话。最后,Chinchilla LLM表明,计算效率高的模型应该着重于使用更多的输入文本进行训练。他们的70B参数模型,配备了1.4万亿的输入文本,明显优于参数数量是其2倍或5倍的模型。

相关推荐
说私域33 分钟前
私域电商逆袭密码:AI 智能名片小程序与商城系统如何梦幻联动
人工智能·小程序
请站在我身后1 小时前
复现Qwen-Audio 千问
人工智能·深度学习·语言模型·语音识别
love you joyfully1 小时前
目标检测与R-CNN——paddle部分
人工智能·目标检测·cnn·paddle
AI视觉网奇1 小时前
Detected at node ‘truediv‘ defined at (most recent call last): Node: ‘truediv‘
人工智能·python·tensorflow
西西弗Sisyphus1 小时前
开放世界目标检测 Grounding DINO
人工智能·目标检测·计算机视觉·大模型
抓哇能手2 小时前
数据库系统概论
数据库·人工智能·sql·mysql·计算机
火云洞红孩儿2 小时前
基于AI IDE 打造快速化的游戏LUA脚本的生成系统
c++·人工智能·inscode·游戏引擎·lua·游戏开发·脚本系统
风清扬雨2 小时前
【计算机视觉】超简单!傅里叶变换的经典案例
人工智能·计算机视觉
HuggingFace2 小时前
自动评估基准 | 设计你的自动评估任务
人工智能·自动评估