当前位置: 首页 > 科技观察

6144个TPU,5400亿个参数,可以修bug,可以解释笑话,谷歌刚刚用Pathways训练了一个大模型

时间:2023-03-11 23:23:39 科技观察

谷歌的下一代架构Pathways已经被用来训练大模型了。随着规模的增大,模型处理多任务的性能逐渐提升,并不断解锁新的能力。在讨论现有AI模型的局限性时,Google人工智能总监JeffDean曾表示,如今的人工智能系统总是从头开始学习新问题。最后,我们为数千个单独的任务开发了数千个模型。以这种方式学习每个新任务不仅耗时更长,而且需要更多的数据,效率非常低。在JeffDean看来,理想的开发模式应该是训练一个模型来做成千上万的事情。为了实现这一愿景,他的团队去年提出了一种名为“Pathways”的通用人工智能架构。JeffDean表示,Pathways旨在使用一种架构同时处理多项任务,并具备快速学习新任务和更好地理解世界的能力。前段时间,团队终于发表了Pathways论文。论文中写道,PATHWAYS采用了一种新的异步分布式数据流设计。这种设计让PATHWAYS采用单控制器模型,更容易表达复杂的新并行模式。实验结果表明,在2048个TPU上运行SPMD(单程序多数据)计算时,PATHWAYS(加速器利用率接近100%)的性能与SOTA系统相当。GooglePathways系统架构概述。有了强大的系统,下一步就是训练模型。在刚刚发表的论文——《PaLM:ScalingLanguageModelingwithPathways》中,Google宣布他们使用Pathways系统训练了一个拥有5400亿参数的大型语言模型——PaLM(PathwaysLanguageModel)。论文链接:https://storage.googleapis.com/pathways-language-model/PaLM-paper.pdf这是一个密集的Transformer模型,只有一个解码器。为了训练这个模型,谷歌使用了6144个TPU,并要求Pathways在两个CloudTPUv4Pod上训练PaLM。强大的系统和算力投入带来了惊人的效果。研究人员在数百个语言理解和生成任务上对PaLM进行了评估,发现它在大多数任务上都达到了SOTA小样本学习性能,并且在笑话解释、错误修复、从表情符号猜电影等代码任务上表现良好。有网友感叹,“终于知道谷歌开发TPU的目的是什么了。这种自然语言理解水平,一旦被应用使用,就变得足够高效并被广泛使用。这将彻底改变谷歌所做的一切。拥有一个可以做的芯片这是非常有价值的,陷入购买或租赁Nvidia芯片的公司将处于劣势。”PaLM架构概述PaLM仅包含解码器(每个时间步只能关注自身和过去的时间步),对标准Transformer架构进行了以下更改((Vaswani等人,2017)):SwiGLU激活研究人员使用SwiGLU激活(Swish(xW)xV)用于MLP中间激活,因为研究表明与标准ReLU、GeLU或Swish激活相比,SwiGLU激活可以显着提高质量。请注意,这确实需要三个矩阵乘法而不是MLP中的两个,但Shazeer(2020)在计算等效实验中展示了质量增益。并行层研究人员在每个Transformer模块中使用“并行”方法,而不是标准的“串行”方法。具体来说,标准方法可以写成:并行方法可以写成:由于可以融合MLP和注意力输入矩阵乘法,所以这里的并行方法可以将大规模训练速度提高15%。消融实验表明,在8B的尺度下,质量下降很小,但在62B的尺度下,质量没有下降,因此研究人员推断平行层的影响将在540B的尺度上达到质量中性。Multi-QueryAttention标准的Transformer方法使用k个attentionheads,其中每个时间步的输入向量被线性投影成形状为[k,h]张量的“query”、“key”和“value”,其中h是注意头部大小。这里,key/value投影为每个head共享,即“key”和“value”被投影到[1,h],但“query”仍被投影到形状[k,h]。先前的研究表明,这对模型质量和训练速度有中性影响,但可以显着节省自回归解码时间的成本。这是因为标准多头注意力在自回归解码期间在加速器硬件上效率低下,因为键/值张量不在实例之间共享并且一次只解码一个标记。RoPE嵌入研究人员使用RoPE嵌入而不是绝对或相对位置嵌入,因为RoPE嵌入已被证明在长序列长度上表现更好。Sharedinput-outputembeddings研究人员共享输入和输出嵌入矩阵,在过去的工作中经常这样做(但不是普遍)。无偏差研究人员不在任何密集内核或层规范中使用偏差。他们发现这增加了大型模型的训练稳定性。词汇研究人员使用了带有256k个标记的SentencePiece词汇表,选择在训练语料库中支持多种语言(没有过多的分词)。词汇表是根据训练数据生成的,研究人员发现这可以提高训练效率。使用Pathways训练5400亿参数语言模型PaLM是谷歌首次大规模使用Pathways系统将训练扩展到6144个芯片,这是迄今为止用于训练的最大的基于TPU的系统配置。研究人员使用数据并行性在Pod级别跨两个CloudTPUv4Pod扩展训练,同时在每个Pod内使用标准数据和模型并行性。与大多数以前的LLM相比,这是规模的显着增加。PaLM实现了57.8%的硬件FLOPs利用率的训练效率,这是LLM在这个规模上实现的最高效率。为了达到这个水平,研究人员将并行策略与Transformer块的重新设计结果相结合,使注意力层和前馈层能够并行计算,从而实现TPU编译器优化带来的加速。PaLM使用英语和多语言数据集进行训练,包括高质量的网络文档、书籍、维基百科、对话和GitHub代码。研究人员还创建了一个“无损”词汇表,它保留了所有的空格(对代码非常重要),将词汇表中的Unicode字符拆分为字节,将数字拆分为单独的标记,每个标记对应一个数字。突破性的语言、推理和代码生成能力PaLM在许多非常困难的任务上展示了突破性的能力,包括语言理解、生成、推理和编码等相关任务。语言理解和生成PaLM540B在29个基于英语的NLP任务上优于之前的SOTA结果。除了英语NLP任务外,PaLM在包括翻译在内的多语言NLP基准测试中也表现出色,尽管其训练语料库中只有22%是非英语的。研究人员还在BeyondtheImitationGameBenchmark(BIG-bench)上探索了PaLM的新功能和未来功能,这是最近发布的包含150多个新语言建模任务的套件。在此过程中,将PaLM的性能与Gopher和Chinchilla在这些任务的58个常见子集上进行了比较。有趣的是,研究人员指出,PaLM的性能作为规模的函数遵循与以前模型类似的对数线性行为,这表明规模的性能改进尚未达到稳定水平。PaLM540B5-shot在相同任务上的表现也优于人类的平均表现。PaLM在58个BIG-bench任务的子集上的缩放行为。PaLM在几个BIG-bench任务上展示了令人印象深刻的自然语言理解和生成能力。例如,该模型可以区分因果关系,理解上下文中的概念组合,甚至可以根据表情符号猜测电影。PaLM540B在BIG-bench任务上的单次表现:标记因果关系、概念理解、根据表情符号猜测电影以及寻找同义词和反事实。推理通过将模型规模与思维链提示相结合,PaLM在需要多步算术或常识推理的推理任务上展示了突破性的能力。以前的大型语言模型(如Gopher)在提高性能方面从模型规模中获益较少。小学数学问题示例中的标准提示与思维链提示。思维链提示将多步推理问题的提示分解为中间步骤(黄色部分),类似于人类处理它的方式。研究人员在三个算术数据集和两个常识推理数据集上观察了PaLM540B在思维链提示加持下的强劲表现。例如,PaLM在8次提示下解决了GSM8K中58%的问题,这是一个包含数千个具有挑战性的初级数学问题的基准,超过了之前的GPT-3175B微调模型(训练集包含7500个问题,结合外部计算器和验证器),最高得分为55%。这个新分数值得注意,因为它接近9至12岁儿童(问题集的目标受众)60%的问题解决水平。研究人员推测,PaLM词汇表中数字的独立编码有助于这些性能改进。值得注意的是,即使对于需要多步逻辑推理、世界认知和深度语言理解的复杂组合的场景,PaLM也可以生成明确的解释。例如,它可以为网络上找不到的新笑话提供高质量的解释。PaLM用两次提示解释了一个原创笑话。代码生成大型语言模型已被证明可以很好地泛化到编码任务,例如在给定自然语言描述的情况下编写代码(文本到代码),将代码从一种语言翻译成另一种语言,以及修复编译错误(代码到代码)。PaLM540B在单个模型中跨编码任务和自然语言任务显示出强大的性能,即使它在预训练数据集中只有5%的代码。具体而言,PaLM540B的少发性能与经过微调的Codex12B相当,同时使用的Python训练代码减少了50倍。这一结果证实了之前的发现,即更大的模型比更小的模型更有效,因为它们能够更好地从其他编程语言和自然语言数据中进行迁移学习。PaLM540B在文本到代码任务(例如GSM8K-Python和HumanEval)和代码到代码任务(例如转码器)上的微调模型示例。此外,该模型通过在纯Python代码数据集上微调PaLM进一步提高了性能,该团队将其称为PaLM-Coder。如下图所示,PaLM-Coder接到了一个名为DeepFix的示例代码修复任务,目标是修改最初坏掉的C程序,直到编译成功,PaLM-Coder540B表现出了不俗的表现,达到了82.1%的编译率??更好比之前的SOTA结果高出71.7%。这为修复软件开发过程中出现的更复杂的错误提供了机会。DeepFix代码修复任务示例。经过微调的PaLM-Coder540B将编译错误(左)修复为代码的可编译版本(右)。从伦理方面的考虑,最近的研究强调了与接受网络文本培训的法学硕士相关的各种潜在风险。通过模型卡和数据表等透明工件分析和记录这些潜在的不良风险至关重要,其中还包括有关预期用途和测试的信息。为此,谷歌的论文提供了数据表、模型卡和ResponsibleAI基准测试结果,并报告了对数据集和模型输出的综合分析,以发现偏差和风险。虽然分析有助于概述模型的一些潜在风险,但针对特定领域和任务的分析对于真正校准、情境化和减轻可能的危害至关重要。进一步了解这些模型的风险和好处是正在进行的研究的主题,同时开发可扩展的解决方案以防止恶意使用语言模型。