速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

Meta 如何搭建训练 Llama 3 的基础设施:未来将扩展到容纳 35 万颗 H100

Kevin Lee、Adi Gangidi、Mathew Oldham

  • 2024-03-27
    北京
  • 本文字数:3905 字

    阅读完需:约 13 分钟

大小:1.92M时长:11:11
Meta 如何搭建训练Llama 3的基础设施:未来将扩展到容纳35万颗H100

本文最初发布于 Meta 工程博客。

  • 我们宣布了两个 24k GPU 集群,这是 Meta 面向 AI 未来的重大投资。本文将分享有关硬件、网络、存储、设计、性能和软件的详细信息,它们将为我们的各种人工智能工作负载提供高吞吐量和可靠性。我们使用这个集群设计训练 Llama 3。

  • 我们坚定地致力于开放计算和开源。我们基于Grand TetonOpenRackPyTorch构建了这些集群,并将继续推动整个行业的开放创新。

  • 本次公告的内容是我们雄心勃勃的基础设施路线图的一个步骤。从现在到 2024 年底,我们的目标是继续扩大我们的基础设施建设,其中将包括 35 万颗 NVIDIA H100 GPU。这是我们投资组合的一部分,全部投资将提供相当于近 60 万颗 H100 的计算能力。

 

要想在人工智能的发展上领先就要在硬件基础设施的投资上领先。硬件基础设施在人工智能的未来发展中扮演着重要的角色。今天,我们将详细介绍 Meta 数据中心级集群(包含 24,576 颗 GPU)的两个版本。这些集群支撑着我们当前和下一代的 AI 模型,包括Llama 2(我们公开发布的 LLM)的继承者 Llama 3,以及 GenAI 和其他领域的 AI 研究和开发。

 

Meta 大规模 AI 集群简介

Meta 的长期愿景是构建开放、可靠的通用人工智能(AGI),使每个人都可以使用,都可以从中受益。在努力实现 AGI 的同时,我们也在努力为实现这一目标而扩展我们的集群。我们依托 AGI 方面取得的进展创造了新产品,为App家族构建了新的AI特性,以及开发了新的以 AI 为中心的计算设备。

 

虽然我们在构建人工智能基础设施方面有着悠久的历史,但我们在 2022 年才首次分享了AI Research SuperCluster(RSC)的细节。该集群有 16 万颗 NVIDIA A100 GPU。它帮助我们建立了第一代先进的人工智能模型,加速了我们开放、负责任的人工智能研究。RSC 在LlamaLlama 2的开发中发挥了重要作用,并将继续发挥重要作用。此外,它在计算机视觉、自然语言处理、语音识别、图像生成甚至编码等应用级先进人工智能模型中也已发挥并将继续发挥重要作用。



内部机制

我们新建的 AI 集群汲取了 RSC 成功的经验和失败的教训。我们专注于构建端到端的 AI 系统,并且重点关注研究人员和开发人员的体验和生产力。高性能网络结构的效率,一些关键的存储决策,再加上每个集群中 24,576 颗 NVIDIA Tensor Core H100 GPU,使得这两个版本的集群可以支持的模型比 RSC 能够支持的模型更大更复杂,为 GenAI 产品开发和人工智能研究的进步铺平了道路。

 

网络

在 Meta,我们的人工智能模型每天执行数万亿次。大规模交付这些服务需要非常先进和灵活的基础设施。定制设计我们自己的硬件、软件和网络结构,使我们能够优化 AI 研究人员的端到端体验,同时确保我们的数据中心可以高效运行。

 

考虑到这一点,我们以带有Wedge400Minipack2 OCP 机架交换机的Arista 7800为基础,采用融合以太网(RoCE)网络结构解决方案,构建了一个支持远程直接内存访问(RDMA)的集群。另一个集群采用了NVIDIA Quantum2 InfiniBand结构。这两个解决方案将 400 Gbps 的端点互连起来。有了这两个集群,我们就能够评估不同类型的互连在大规模训练中的适用性和可扩展性,为我们提供更多的见解,帮助我们在未来设计、构建更大、更可扩展的集群。通过对网络、软件和模型架构进行精心的协同设计,我们已经成功地将 RoCE 和 InfiniBand 集群应用于大型 GenAI 工作负载(包括正在 RoCE 集群上进行的 Llama 3 训练),而且没有遇到任何网络瓶颈。

 

计算

这两个集群都是用Grand Teton构建的,这是我们内部设计的一个开放式 GPU 硬件平台,我们已经把它贡献给了开放计算项目(OCP)。Grand Teton 基于多代 AI 系统,将电源、控制、运算和交换接口集成到单个机箱中,提供了更好的整体性能、信号完整性和热性能。它以简化的设计提供了快速可扩展性和灵活性,使其能够快速部署到数据中心机群中,并且易于维护和扩展。结合其他内部创新,如我们的开放式机架电源和机架架构,Grand Teton 使得我们可以专门针对 Meta 当前和未来的应用程序构建新的集群。

 

2015年的Big Sur平台开始,我们就一直在公开设计我们的 GPU 硬件平台。

 

存储

存储在 AI 训练中扮演着重要的角色,但却是提及最少的方面之一。随着时间的推移,GenAI 训练任务变得越来越多,需要消费大量的图像、视频和文本数据,因此对数据存储的需求也随之迅速增长。然而,人们还是希望将所有的数据存储放入一个高效节能的存储空间中,这使得这个问题变得更加有趣。

 

我们的存储部署通过本地 Linux Filesystem in Userspace (FUSE) API 解决了 AI 集群的数据和检查点需求。该 API 基于 Meta“Tectonic”分布式存储解决方案一个针对 Flash 媒体优化过的版本。该解决方案使数千个 GPU 能够同步保存和加载检查点(这对任何存储解决方案来说都是一项挑战),同时还提供数据加载所需的灵活的高吞吐量 EB 级存储。

 

我们还与Hammerspace合作,共同开发并行网络文件系统(NFS)部署,以满足该 AI 集群的开发体验需求。在 Hammerspace 的众多优点中,其中一个是,工程师可以使用数千个 GPU 对作业进行交互式调试,因为环境中的所有节点都可以立即获得代码更改。将我们的 Tectonic 分布式存储解决方案和 Hammerspace 相结合可以在不影响规模的情况下实现快速迭代。

 

GenAI 集群的存储部署,不管是采用 Tectonic 方案还是 Hammerspace 方案,都是基于YV3 Sierra Point服务器平台,并且使用我们可以在市场上买到的最新的高容量 E1.S SSD 进行了升级。除了更高的 SSD 容量之外,我们还定制了每个机架的服务器,以实现单台服务器吞吐能力、机架数量和相关电源效率之间的适当平衡。我们利用 OCP 服务器作为类似乐高积木的构建块,使得存储层能够灵活扩展,可以适应该集群未来的需求以及未来更大的 AI 集群,同时在日常基础设施维护操作方面具备容错能力。

 

性能

在构建大规模人工智能集群时,我们的原则之一是同时最大化性能和易用性,不牺牲其中任何一个。这是创建一流 AI 模型的重要原则。

 

当我们不断挑战 AI 系统的极限时,我们测试设计扩展能力的最佳方式就是简单地构建一个系统,对其进行优化和实际的测试(虽然模拟器可以提供帮助,但它们也只能做到这一点)。在设计过程中,为了发现瓶颈,我们比较了小型集群和大型集群的性能。下图显示了当大量 GPU 进行消息通信时,AllGather 的总体性能(按 0-100 的标准带宽表示)。

 

与经过优化的小型集群相比,我们的大型集群最初性能很差,而且不一致。为了解决这个问题,我们对内部作业调度器利用网络拓扑感知调度作业的方式做了一些更改——这对于延迟有一些好处,最大限度地减少了流向网络上层的流量。我们还结合 NVIDIA 集体通信库(NCCL)的更改优化了网络路由策略,从而实现最佳的网络利用率。这有助于推动我们的大型集群实现与小型集群一样出色的预期性能。

 

如上图所示,我们看到,小型集群的性能一开始就(总体通信带宽和利用率)达到了 90%以上,但未经优化的大型集群的利用率非常低,在 10%到 90%之间。在优化了整个系统(软件、网络等)之后,我们看到,大型集群的性能回到理想的 90%以上。

 

除了针对内部基础设施的软件变更之外,我们还与编写训练框架和模型的团队密切合作,以适应不断发展的基础设施。例如,NVIDIA H100 GPU 开启了利用 8 位浮点(FP8)等新数据类型进行训练的可能性。要想充分利用更大的集群,就需要在并行化技术和新的存储解决方案方面追加投资,寻找机会对跨数千个进程的检查点进行高度优化,以便可以在数百毫秒内运行。

 

我们也认识到,可调试性是大规模训练的主要挑战之一。在规模很大的情况下,要识别出阻碍整个训练工作的有问题的 GPU 变得非常困难。我们正在构建诸如异步调试或分布式集体飞行记录器之类的工具,以揭示分布式训练的细节,从而帮助我们用更快更简单的方式识别问题。

 

最后,我们将继续发展 PyTorch(这是为 AI 工作负载提供动力的基础 AI 框架),使其为数万甚至数十万的 GPU 训练做好准备。我们已经识别了进程组初始化的多个瓶颈,有时可以将启动时间从几小时减少到几分钟。

 

致力于开放式 AI 创新

Meta 将继续致力于人工智能软硬件的开放式创新。我们相信,开源硬件和软件将永远是帮助行业在大规模环境中解决问题的宝贵工具。

 

如今,作为 OCP 的创始成员,我们将继续支持开放式硬件创新,我们向 OCP 社区贡献了像 Grand Teton 和 Open Rack 这样的设计。我们还将继续努力成为PyTorch最大、最主要的贡献者,它是一个推动行业发展的重要的 AI 软件框架。

 

我们还将继续致力于 AI 研究社区的开放式创新。我们已经启动了开放式创新AI研究社区,这是一个面向学术研究人员的合作项目,目标是帮助我们进一步理解如何才算负责任地开发和分享 AI 技术。其中,LLM 是该项目的一个特别关注点。

 

对 Meta 来说,开放式 AI 方法并不新鲜。我们还创建了AI联盟。这是一个由人工智能行业中处于领先地位的组织组成的团体,其目标是在一个开放的社区内加速 AI 领域负责任的创新。我们的 AI 工作以开放科学和交叉合作的理念为基础。一个开放的生态系统可以为人工智能的发展带来透明度、监督和信任,促成每个人都能从中受益的创新,而且,这些创新首先考虑了安全和责任。

 

Meta AI 基础设施未来展望

这两个人工智能训练集群的设计是我们未来人工智能大路线图的一部分。从现在到 2024 年底,我们的目标是继续扩大我们的基础设施建设,其中将包括 35 万颗 NVIDIA H100 GPU。这是我们投资组合的一部分,全部投资将提供相当于近 60 万颗 H100 的计算能力。

 

在展望未来时,我们认识到,昨天或今天行之有效的方法可能不足以满足明天的需要。这就是为什么我们要不断评估和改进基础设施的各个方面,从物理层、虚拟层到软件层等等。我们的目标是创建灵活可靠的系统,以支持快速发展的新模型和研究。

 

声明:本文为 InfoQ 翻译,未经许可禁止转载。

 

原文链接:https://engineering.fb.com/2024/03/12/data-center-engineering/building-metas-genai-infrastructure/

2024-03-27 17:003275

评论

发布
暂无评论
发现更多内容

网络攻防学习笔记 Day19

穿过生命散发芬芳

5月日更 网络攻防

北京市级预付费资金监管平台正式上线试运行 内嵌区块链存证技术

CECBC

学习笔记之:知识地图

Nydia

学习

分布式架构的根基:深入浅出一致性算法

孤岛旭日

分布式 一致性算法 PAXOS 共识算法

闲言碎语:为什么阿里做不好业务中台

孤岛旭日

GraalVM系列(三):GraalJS多线程实践

孤岛旭日

GraalVM

中台反思:提质增效

孤岛旭日

效率 中台 企业中台

写给丫头

小天同学

情人节 5月日更 520单身福利 情书 告白

Flutter开发:Warning:CocoaPods minimum required version 1.6.0 or greater not installed…的解决方法

三掌柜

5月日更

初探图像二值化

CagyJ

算法 CV OpenCV 图像处理

Rust从0到1-错误处理-Result

rust Error 可恢复错误 result

有了这三个神器工具集,应用开发想怎么玩就怎么玩

华为云开发者联盟

开发者 华为云 应用开发 工具集 APIExplorer

中台反思:技术中台设计架构

孤岛旭日

中台 企业中台 技术中台

数据挖掘从入门到放弃(六):K-means 聚类

数据社

机器学习 5月日更

TOB产品需求调研

lenka

5月日更

一文掌握 Java8 的 Optional 的 6 种操作

看山

Java

如何制定战略?

石云升

创业 战略 职场经验 5月日更

中台反思:技术中台的未来

孤岛旭日

中台 低代码 中台架构

人工智能基础2 - DAY10

Qien Z.

人工智能 基础 5月日更

网络攻防学习笔记 Day20

穿过生命散发芬芳

5月日更 网络攻防

Dubbo 并发控制

青年IT男

dubbo

Hibernate的get和load区别学习笔记

风翱

hibernate 5月日更

211本硕如何通过字节跳动、百度、美团Android面试?复习指南

欢喜学安卓

android 程序员 面试 移动开发

520单身福利|女朋友又找我要礼物

孙叫兽

程序员 520单身福利 520 单身福利

Node.js学习 —— 简介

空城机

JavaScript 大前端 Node 5月日更

CEO观点 | 核心开放:企业拥抱开源的成功之道

极狐GitLab

开源 DevOps 安全 高效 协同办公

《Spring 手撸专栏》第 2 章:小试牛刀(让新手能懂),实现一个简单的Bean容器

小傅哥

Java spring 容器 小傅哥 hashmap

IDEA 这么设置 Maven,再也不用担心依赖下载失败了

楼下小黑哥

Java IDEA

区块链与资产数字化

CECBC

低代码“骗局”

ES_her0

5月日更

Python 多线程 VS 多进程(二)

若尘

多线程 多进程 Python编程 5月日更

Meta 如何搭建训练Llama 3的基础设施:未来将扩展到容纳35万颗H100_生成式 AI_InfoQ精选文章