今年,我有幸亲临现场参加了所有的 keynote,每一场都让我感受到深深的震撼。无论是全新的功能发布,还是令人眼前一亮的新特性展示,每一场 keynote 都精彩纷呈,充满干货,值得反复学习和回味。
恰好,我在其他平台上发现了一些整理得非常好的文章版本。于是,我决定将其制作成中文版本。在翻译和整理的过程中,不仅加深了自己的理解,也希望将这些内容分享给大家,方便更多人学习和阅读。
re:Invent 2024 的开幕:云计算的创新
欢迎来到 re:Invent 2024。感谢您参加周一晚上的直播,或者我称之为“主题演讲前夕”的这个环节。我们有精彩的乐队表演,还有啤酒可供享用,但我有一点要道歉。我们发现没有准备好 IPA。对于喜欢 IPA 的朋友们,我深感抱歉,明年我们一定会改进。这是我的责任。
今夜我们将深入探讨技术创新。作为一个良好的主题演讲前夕,我们可能会打开一个礼物。嗯,可能就一个吧。不过,首先让我们从最重要的事情开始。那就是我们在周一晚直播中总是谈论的“如何”的部分。这个“如何”之所以重要,是因为它实现了云计算最重要的特性。这些不仅仅是功能的发布。这些是需要在服务中设计并融入的元素,而这正是我们的做法。这些是我们构建方式的具体体现。
利用 AI 助手进行演示准备
今夜,我想解释一下为什么 Amazon Web Services 特别擅长提供这些功能。在准备这个主题演讲的这一部分时,我决定尝试使用 AI 助手。我受到我团队和整个 Amazon 团队利用 AI 助手进行代码创建和创意制作的启发。我认为这是一个很好的实验机会。因此,我告诉 AI 助手我想如何开始这个演示以及如何进行可视化。
我想出了一些想法。第一个想法是冰山。我想谈谈表面下的东西,但我并不太喜欢冰山的类比。在冰山的情况下,只有一小部分可见,而下面的只是冰。第二个类比要好得多。它是关于宇宙飞行的,AI 助手提出的解释是,我们只看到短暂的发射时刻,但在幕后有许多工程师、操作员和设计师参与其中。这更合适,但仍然不完全符合我所追求的东西。
因此,在与 AI 助手进一步交流的结果中,我们决定谈论树木。树木代表着我们每年讨论的重大差异化技术投资。例如,向 AWS 客户提供最佳性能和最低成本的基础设施选项的定制硅的长期投资。此外,还包括对 AWS 定制虚拟机监控程序的投资,以实现安全的无服务器计算,以及对数据库技术的深度投资,以提供差异化的数据库功能和性能。
AWS 的特点:对细节的关注和长期视野
今夜我想在谈论树木之前,首先谈谈根部。根部是支撑树木并提供养分的重要地下结构。我们先来看主根。并不是所有的树木都有主根,但拥有主根的树木能够独立吸收地下深处的水分,即使在恶劣的环境中也能生存。AWS 和亚马逊最显著的特点之一是领导者们在细节上花费了大量时间。关注细节的重要性在于,通过掌握细节,可以理解客户和服务的实际情况,从而能够快速做出决策,并在问题发生之前进行修正和预防。
其他组织也在进行这样的事情,但在许多情况下,信息需要通过组织的多个层级向上传递。而且这绝对不够迅速。想想向上司报告一些不好的事情有多么让人感到沉重。没有人愿意这样做,而且通常不会以足够的速度进行。说想要关注细节很简单,但困难的是建立所需的机制。
我们正是这样实践的,在扩大规模的同时保持对细节的关注。一个很好的例子是我们每周三举行的 AWS 整体运营会议。在这个会议上,所有团队聚集在一起讨论问题,分享学习,相互学习。这是我和其他领导者保持对细节把握的重要机制。对细节的把握在其他方面也很有帮助。其中之一是更容易做出必要的长期艰难决策。
一个好的例子是开始投资定制硅的决定。现在看来这是一个理所当然的决定,但在 12 年前却并不明确。正是因为我们掌握了细节,才明白如果没有像 Nitro 这样的东西,就无法实现 AWS 所需的性能和安全性。我们决定与 Annapurna 团队合作,这最终成为我们业务中最重要的技术推动力之一。如果没有对挑战的深刻理解,我们可能会轻易选择等待。但幸运的是,我们没有等待。正是因为这个决定,AWS 的故事变得截然不同。
AWS 的优势:整个堆栈的创新
主根的比喻很精彩,但支撑最巨大的树木的并不是深根。相反,树木依赖于水平根系。这种水平根系的一个迷人例子可以在亚马逊热带雨林中看到的板根系统。这个露出地面的根系支撑着在不稳定土壤中生长的世界最大树木。板根从树的根部向外延伸数百英尺,与附近的树木交织在一起,形成支撑这些热带雨林巨人的基础。
这是 AWS 另一个独特特征的体现。那就是在整个技术栈中创造创新的能力。从数据中心的电力,到网络、芯片、虚拟机监控程序、数据库的内部结构,以及高层软件,几乎没有其他公司在如此多的重要组件上进行深度投资。本周,我们将展示这种广泛的创新如何为客户创造独特和差异化的功能。
然而,这些板根系统只是树木相互连接的惊人方式之一。也许最令人惊讶和意想不到的是“木材广域网”。我们常常认为蘑菇是从地面长出来的真菌,但实际上蘑菇是地下生长的真菌的果实。它是栖息在树木根部的巨大生命体。树木与这种真菌形成共生关系,利用它们进行沟通,分享信息和资源。这使得森林比单独的树木要强大得多。
这是我认为 AWS 最重要和独特的地方,也就是支撑我们所有活动的文化。当我在 1998 年作为年轻工程师加入 AWS,也就是亚马逊时,我惊讶于公司在如此早的阶段就如此专注于文化的建设。高级领导者们花时间构建机制,以便公司能够成长到今天这样的规模。我们文档化了领导力原则,并建立了 Bar Raiser 程序,以维持对我们希望招聘的人才的高标准。我们构建了像刚才展示的每周运营会议这样的机制,以确保在规模扩大时不单靠善意。
回顾过去,我很容易就能明白我在这些投资的紧迫性上是多么错误。文化要么存在,要么不存在。如果不存在,获得它是极其困难的。我们的文化是独特的,在保持对安全性、运营性能、成本和创新的坚定关注的同时,使我们能够扩大规模。今晚,我想遵循创新规模扩大的精神,尝试一些新事物。我认为,今晚听听其他推动这些创新的 AWS 领导者们的直接分享,会很有趣。
AWS Compute 的演变:Dave Brown 的解说
让我们欢迎 AWS 计算与网络的副总裁、资深领导者 Dave Brown 上台。
彼得,非常感谢您。今天能有这样的机会,我感到荣幸。我的 AWS 之旅始于大约 18 年前,当时我在南非开普敦的一个 14 人小团队中。我们正在开发后来成为 EC2(弹性计算云)的产品。我们的使命是雄心勃勃的,最终设计出支撑云的基础性编排层。那时我们并不知道这只是计算领域更大变革的开始。从那时起,我们重新发明了基础设施的各个方面,致力于为客户提供最佳的弹性、性能和效率。
在这个旅程中,重要的一部分是我们的定制硅开发。2018 年首次发布 Graviton 时,目标并不是制造最快的芯片。相反,目的是向市场发出信号,让开发者在实际硬件上进行实验,并激活以 Arm 为中心的数据中心行业合作。之后,我们设定了更雄心勃勃的目标。开发完全从零开始设计的首个专用处理器。在 Graviton2 中,我们特别关注当时客户关注并挑战其极限的规模扩展工作负载,如 Web 服务器、容器化微服务、缓存群集和分布式数据分析。这正是 Arm 真正进入数据中心的时刻。
在 Graviton3 中,我们在实现整体性能提升的同时,扩大了我们的领域。我们专注于需要非凡计算能力的特殊工作负载,结果是戏剧性的。从机器学习推理到科学建模、视频转码、加密处理等,我们在许多计算密集型工作负载中将性能提升了两倍以上。今天,Graviton4 代表了我们在云端处理器开发方面所有知识的集大成。这是我们最强大的芯片,支持多插槽,并且 VCPU 数量是第一代的三倍,成为大规模数据库和复杂分析等最苛刻企业工作负载的游戏规则改变者。
Graviton 处理器的创新
在 Graviton 的各个世代中,客户只需切换到最新的实例类型,就能立即感受到性能提升。接下来,让我们看看如何针对实际工作负载优化 Graviton 的性能。最新的 CPU 就像一个精密的组装流水线,拥有提取和解码指令的前端以及执行这些指令的后端。在评估性能时,我们考虑不同的工作负载如何对 CPU 的微架构施加压力。
工作负载是对前端停顿(受分支数量、分支目标、指令等因素影响)敏感,还是对后端停顿(受 L1、L2、L3 缓存和指令窗口大小影响)导致的性能敏感?传统上,微基准测试被用来对处理器架构进行压力测试。例如,请看这个基准测试。它猛烈地打击 L3 缓存,导致大量后端停顿。从工程的角度来看,这就像 CPU 管道在等待被驱逐出 L3 缓存的数据,处于无所事事的状态。多年来,行业一直执着于优化这样的基准测试。然而,这就像用 100 米赛跑来进行马拉松训练。虽然两者都是在跑,但训练的目标根本不同。实际的工作负载表现出与这种整齐的基准测试完全不同的行为。它们复杂且不可预测,坦率地说,远比这有趣。让我们将这个微基准测试与客户每天运行的实际应用程序进行比较,比如 Cassandra、Ruby、Nginx。
微基准测试专注于后端的停顿,而实际工作负载中各种因素则成为瓶颈。分支预测失败的情况更为频繁,来自 L1 缓存和 L2 缓存的指令错误,以及 TLB 错误也会发生。与微基准测试不同,前端成为主要的停顿原因,前端的停顿比在微基准测试中观察到的后端停顿要多。
在 AWS,我们将实际工作负载的性能放在首位。在处理器设计中,我们的目标不是在基准测试中占据优势,而是在客户的实际应用中展现出卓越的性能。这些都是对实际工作负载的深入关注的结果。在 Graviton3 中,与 Graviton2 相比,传统基准测试显示出 30%的性能提升。但这还不是全部。在测试 Nginx 时,通过显著减少在标准基准测试中几乎未被考虑的分支预测错误,实现了惊人的 60%的性能提升。在 Graviton4 中也观察到了类似的模式。微基准测试暗示提升为 25%,但在实际的 MySQL 工作负载中实现了 40%的性能提升。这对运营大型数据库的客户具有重要意义。
这正是客户喜爱 Graviton4 的原因。这些不仅仅是幻灯片上的数字。实际的客户正在体验为他们的客户带来的实际改善。在 AWS,我们不仅谈论 Graviton 的优势,还通过迁移自己的服务直接体验其效果。Aurora、DynamoDB、Redshift 等服务通过在 Graviton 上运行获得了巨大的好处。在全球最大的购物活动 Amazon Prime Day 上,超过 25 万个 Graviton CPU 支持了运营。我们达成了一个重要的里程碑:在过去两年中,数据中心的新 CPU 容量中有超过 50%来自 AWS Graviton。这意味着引入的 Graviton 处理器数量超过了所有其他处理器类型的总和。
AWS Nitro System 的开发
然而,Graviton 并不是我们在硅级别上进行创新的第一个领域。我们很早就意识到,为了提供世界级的性能和安全性,必须在整个堆栈上进行创新,这将为 EC2 实例提供支持。这导致了 AWS Nitro 系统的开发,彻底重新思考了服务器架构,根本改变了构建云和确保安全的方法。Nitro 消除了其他云提供商至今仍面临的传统虚拟化开销。Nitro 的架构使我们获得了灵活性,无论是在云中运行 Apple Mac,还是在裸金属 EC2 实例上直接访问基础硬件,几乎可以将任何计算机转换为 EC2 实例。
让我们关注这次旅程的起点:安全性。AWS Nitro System 不仅提高了安全性,还创新了我们对硬件供应链完整性的处理方法。在云中的安全性要求绝对的确定性。AWS 需要确保所有硬件都以预期的方式运行预期的软件。这不仅仅是更新整个车队的软件和固件。我们需要通过加密进行证明,也就是所谓的认证。这样,我们就可以了解所有系统中正在运行的内容。在我们的规模下,实时证明全球基础设施中数百万个组件的完整性是一个非常大的挑战。
让我们将引导序列视为一系列精密的步骤。首先,从 ROM(只读存储器)开始,芯片的基本部分启动。然后,处理器加载下一个固件层,接着进入引导加载程序,从那里传递到操作系统,最终到达应用程序。这里重要的是,这些每个步骤都可能存在潜在的脆弱性。
此外,作为一个更根本的问题,这整个链条依赖于信任的起点(root of trust)。因此,真正的挑战在于如何验证第一个链接。为了找到这个答案,我们需要回到制造现场。
产品的历程是非常漫长的,从初期制造到组装,再到运输路线,最后到数据中心,最终安装。在每一个步骤中,都需要有确保没有任何侵犯的信心。这不是事后发现脆弱性,而是从部件制造阶段到实际客户工作负载执行阶段,创造一个不断管理和验证的链条。
AWS Nitro System 与 Graviton 的协作
让我们详细了解基于 Graviton4 的工作负载启动过程。我们的硬件安全性和信任的起点在于 Nitro 芯片本身。在每个 Nitro 芯片的制造过程中,都会生成独特的秘密并保存在芯片内。这就像芯片特有的指纹,永远不会从硅片中泄露。这一秘密构成了公钥和私钥对的基础。私钥永久锁定在芯片内,而公钥则成为安全制造记录的一部分。
从这里开始我们的管理链条。Nitro 芯片内的秘密钥匙将成为验证启动过程的锚点。在启动的每个阶段,生成并签署新的秘密钥匙,前一个秘密钥匙将被废弃。这就像安全接力棒的传递。每次传递都必须是完美的,否则比赛将停止。通过这条签名链,可以验证从芯片的制造质量到固件版本,以及其识别信息的所有内容。
系统在通过此完整的认证过程之前,将限制对 AWS 其他资源的访问。如果认证失败,将立即被隔离并进行调查。Graviton 进一步扩展了安全边界。在 Nitro 的安全基础上,认证扩展到了 Graviton4 处理器本身。这将产生重要系统组件之间的信任链。
如果两个 Graviton4 处理器需要协作,首先通过加密确认彼此的身份,并建立加密通信。同样,在 Graviton4 和 Nitro 之间,也会进行与主机 ID 和私钥相关的密钥交换。想一想这意味着什么。从 CPU 之间的通信到 PCIe 流量,系统内的每一个重要连接都受到从制造时开始的基于硬件的安全保护。
Nitro 和 Graviton4 协同工作,实现了持续的认证系统。这不仅仅是安全性的逐步改善。通过结合 Nitro 的硬件基础安全性和 Graviton4 的增强功能,创造了迄今为止最安全的计算环境之一。对于客户来说,这意味着从制造时到运营的每一秒,工作负载都在经过加密验证的硬件上运行。这是传统服务器和数据中心无法实现的安全级别。
那么,Nitro 能解决哪些问题呢?为了理解这一点,我们来看看存储的趋势。硬盘容量的演变没有停止的迹象。硬盘制造商每隔几年就会找到在盘片上存储更多数据的新方法。回顾 AWS 的初创时期,大约在 2006 年,当时使用的硬盘容量是几百千兆字节。如今,已经引入了超过 20TB 的硬盘。
AWS 的分布式存储:典型设计
同时,设计、制造过程和材料的创新使得每 terabyte 存储的成本在过去几十年中大幅下降。为了始终以最有效的方式运营存储系统,需要随时准备好应对下一代驱动器尺寸和新存储技术。
那么,为了更深入地理解这种复杂性,我们来详细看看典型的存储系统设计。像 S3 和 EBS 这样的存储服务由三个重要组件组成。首先是前端集群。这是处理 API 流量和认证请求的 Web 服务器,负责管理客户接口。其背后是被称为索引或映射服务的东西。
这可以说是系统的头脑。它准确地追踪所有数据及其存储位置。如果客户想要读取数据,这项服务会告诉他们准确的数据位置。最后,还有存储介质层。这里是实际存储数据的地方。
让我们更详细地看看这个存储服务器。传统上,我们的存储服务器是基于称为头节点架构的方式构建的。头节点本身基本上是标准的计算服务器。它配备了 CPU、内存和网络功能,运行专用软件来管理存储的重要功能,如数据的耐久性、驱动器的健康监测以及所有 IO 操作的调节。连接到这个头节点的是我们亲切地称之为 JBOD(Just a Bunch of Disks)的设备。顾名思义,它是一个装满硬盘驱动器的机箱,所有驱动器通过 SATA 或 PCIe 连接直接接线到头节点。
不过,这个设计有一个问题。计算和存储的比例在设计时被固定了。当构建和部署这些服务器时,会受到 CPU、内存和存储容量特定比例的限制。虽然驱动器容量每年都在急剧增加,但这种固定比例使得更有效的管理变得更加困难。因此,我们通过增加驱动器的大小和数量来扩展存储系统的容量。最初是从每台服务器 12 台或 24 台的相对较小的配置开始。随着驱动器技术的进步,以及对更大驱动器池的管理能力的提高,我们逐渐增加到每台服务器 36 台,然后是 72 台,持续探索密度和管理便利性的平衡点。
然后我们创造了 Barge。Barge 是我们最雄心勃勃的存储密度工程项目,是一台搭载 288 个硬盘的巨大存储服务器。想想这个数字。288 个硬盘。如果使用今天的 20TB 硬盘,一台服务器将拥有约 6PB 的原始存储容量。这超过了 AWS 早期数据中心的整体容量。这是挑战存储密度可能性极限的尝试。尽管这是一个令人印象深刻的工程成果,但它也给我们带来了关于密度极限的重要教训。
分散存储的优点和未来的准备
从 Barge 学到的第一个教训是关于物理限制的。这是字面上的重负担。Barge 架子一台的重量为 4500 磅,也就是超过 2 吨。这给数据中心带来了很大的挑战。需要对地板进行加固,安装位置需要仔细规划,移动这些设备也需要特殊的设备。当 288 个旋转的驱动器被挤在一起时,不仅增加了重量,还产生了我称之为“振动交响乐”的现象。通常,将驱动器一起存放并不是大问题,但当有 288 个以 7200 RPM 旋转的驱动器时,振动的影响会变得显著,实际上会影响驱动器的性能和可靠性。
而且,软件复杂性的问题也存在。从单一主机管理 288 个驱动器将我们的软件系统推向了极限。想想需要处理的各种故障模式、数据布局算法的复杂性,以及在如此大规模的驱动器群中保持一致性能的难度。然而,也许最重要的教训是关于故障影响范围的。当 Barge 服务器发生故障时(而且服务器必然会发生故障),其影响是巨大的。突然间,我们面临着 6PB 存储不可用的可能性。即使有冗余,恢复如此大量的数据也需要相当的时间和网络带宽。因此,我们意识到必须与 Barge 告别。
考虑到这些教训,我们需要退一步重新思考。我们如何在为客户提供高性能的同时,减少运营的复杂性,并提高存储基础设施的敏捷性?因此,我们关注了存储服务。S3、EBS 和 EFS 等存储服务都是建立在标准存储服务器架构之上的,但它们各自有独特的要求。有些服务需要更多的内存,而有些服务则只需较少的计算能力。然而,存储层本身的功能是相同的。那么,计算和存储的紧密结合是否成为了我们的限制呢?
将计算和存储分离的概念开始显得非常吸引人。如果能够找到一种方法,使计算和存储能够独立扩展,同时保持服务所需的直接访问和性能,那么可能会获得两者的优势。在这里,我们开始考虑利用我们已经拥有的工具包中的 Nitro。
通过将 Nitro 卡直接集成到 JBOD 外壳中,而不是将驱动器连接到头节点,从而实现存储的分离。这些 Nitro 卡可以被视为为驱动器提供独特智能和网络连接性。每个驱动器将成为一个安全虚拟化的、分离的网络端点。这种方法的优点在于,它在保持驱动器和存储服务所需的低级直接访问的同时,完全摆脱了以前的物理限制。而 Nitro 处理网络的复杂性、加密和安全性。由于 Nitro 是以高性能和低延迟为设计目标,因此即使通过网络访问,也能提供驱动器本身的所有性能。
这就是我们数据中心的实际情况。乍一看,它可能看起来像一个标准的 JBOD 机箱,但实际上有几个重要的区别。刚才提到的 Nitro 卡与驱动器一起集成在内。这种设计的美妙之处在于它的简单性。向机架内部窥视时,它的外观更接近网络交换机,而不是传统的存储服务器。这使得维护工作变得更加简单。由于我们的分布式存储架构,故障的驱动器可以通过几次 API 调用迅速从服务中断开,并与另一个正常的驱动器进行更换。可热插拔的驱动器容器使数据中心的技术人员能够轻松维护这些单元,而不会影响服务的可用性。
驱动器故障已经不再是担忧的根源,但头节点呢?在这里,话题变得更加有趣。在传统架构中,头节点的故障是一个重大事件。在修复或更换服务器之前,数十到数百个驱动器的访问将会丧失。你还记得一个服务器故障影响了 288 个驱动器的 Barge 的例子吗?在分布式存储中,头节点的故障几乎是微不足道的问题。驱动器在网络上是单独寻址的,因此只需启动一个新的 EC2 实例,将所有驱动器重新连接即可。这与标准 EC2 实例的恢复过程相同,通常在几分钟内完成。无需复杂的数据移动或重建过程,只需重新连接并恢复操作。
这些故障场景突显了重要的点。我们能够在显著缩小故障影响范围的同时,实际提高恢复速度。这只是通过将计算和存储分离所能实现的一个开始。分布式存储的另一个强大优势是可以独立扩展计算和存储。在 Amazon S3 中,引入新的存储容量时,在将数据展开到新驱动器并进行重新平衡时,通常会发生高负载的计算处理。现在,我们可以在这个初始阶段临时扩展计算资源,而在正常操作时缩减。这种灵活性使得更高效的运营成为可能,最终为客户提供更好的价值。
分散存储使我们摆脱了长期以来限制存储架构的固定比例。通过将计算与存储分离,我们能够在保持高性能的同时,使各个组件独立扩展。正如在云环境中所期待的那样,故障的影响范围大大缩小。故障可以局部化,恢复速度加快,服务的恢复能力比以前更强。敏捷性的提高使我们在实际运营中也受益匪浅。每项服务可以根据实际需求而不是硬件限制,适当地调整计算资源的规模。维护变得更加简单,容量规划更加灵活,创新的速度也加快了。
最重要的是,这种架构为我们未来的准备提供了支持。在驱动容量持续增加的情况下,分布式存储为我们的基础设施提供了适应和进化的灵活性。作为解决存储密度问题的方案开始,它发展成为更根本的东西——成为为客户构建更高效、更可靠的存储服务的新原语。那么,我想把话筒交给 Peter。 是的,精彩的演讲。
AI 工作负载的特性和扩展挑战
Dave 对 AWS Compute 的创新举措进行了精彩的概述。接下来,我想谈谈完全不同类型的工作负载,即人工智能。实际上,AI 工作负载分为两个部分:AI 模型的训练和 AI 推理。AI 工作负载的一个有趣之处在于,它为我们的团队提供了以全新方式进行创新的机会。今晚,我们将看看一些这样的创新举措,例如开发最高性能的芯片和通过创新技术进行互连。此外,我们还将探讨在过去十年中积累的创新技术如何应用于这一新领域,以及如何将 AWS 的高性能、可靠性和低成本带入 AI 工作负载。
我们经常讨论 Web 服务、大数据应用程序、分布式系统等的扩展工作负载。扩展工作负载在系统中添加资源时能够非常高效地运行,我们为这些工作负载构建优化基础设施进行了大量投资。Dave 刚才解释了一些这样的创新举措。然而,AI 工作负载并不是扩展工作负载。它是扩展升级工作负载。让我来解释一下原因。
AI 能力飞跃性提升的原因之一是模型的规模不断扩大,而且是非常庞大的。2022 年我谈论这个话题时,对拥有数十亿参数的模型感到兴奋。去年,我对拥有数千亿参数的模型感到兴奋。而在不久的将来,最先进的模型将拥有数万亿的参数。为什么会出现这样的增长呢?2020 年,研究人员发表了开创性论文《Scaling Laws》。这篇论文提出了通过扩大参数数量、数据集规模和计算量等因素,可以提升模型能力的假设。从那时起,构建更大、更计算密集的模型的趋势加速,这些模型的确表现得更为出色。大家在日常生活中也能感受到这种进化吧。
仔细观察这些图表,你会发现非常有趣的事情。这些是对数-对数图,x 轴和 y 轴都是对数刻度。在对数-对数图中,直线可能会引起误解。让我们仔细看看计算量的图表。我们通常习惯于 x 增加 1 个单位时 y 也增加 1 个单位的线性关系。然而在对数-对数图中,直线表示的是“将 x 增加 4 倍时 y 增加 2 倍”的乘法关系。这些缩放图中所显示的关系是惊人的。为了将 y 轴上表示的损失减半,需要 100 万倍的计算量。这个 y 轴的测量值上改善 50%的模型,实际上在其他许多基准测试中变得极其聪明。这种计算量与模型损失之间的关系解释了为什么行业在 AI 基础设施的改善上投入了数百亿美元。
为了理解更好的 AI 基础设施意味着什么,我们来看看大规模 AI 模型是如何训练的。最新的生成 AI 应用程序的核心是预测引擎。当输入以单词的一部分,即令牌的形式提供时,它会一个接一个地预测下一个令牌。正是从这种预测下一个令牌的基本能力中,产生了推理和问题解决等惊人的特性。为了构建这样的预测模型,我们使用数万亿个令牌的数据训练模型,直到找到最小化整个训练数据中的预测误差的模型权重。进行如此庞大的令牌训练过程需要巨大的计算量。
如果试图在单个服务器上训练最大规模的模型,即使是性能最强的服务器,也可能需要几个世纪甚至几千年。因此,显然需要并行化。首先可以考虑的是学习数据的分割。乍一看似乎很简单——如果在一台服务器上需要 1000 年才能完成的处理,使用 1000 台服务器执行应该只需 1 年。这确实是正确的,前提是工作负载是可扩展的,但实际上并没有那么简单。刚才提到的分割数据的方法被称为数据并行处理。与生活中许多美好的事物一样,数据并行处理也有一些需要注意的重要点。
数据并行处理中的重要考虑事项如下。采用简单的分治方法会构建多个独立的模型,最后试图将它们组合在一起,但这并不奏效。相反,在采用数据并行处理时,所有服务器需要持续共享和组合模型的权重。这使得大型服务器集群能够构建一个共享模型。
这里重要的是全局批量大小。全局批量大小是指在需要组合所有服务器的结果之前,可以处理的最大数据集。这个全局批量大小只是整体学习数据的一小部分。数据并行处理的机制是这样的:取一个不超过全局批量大小的数据块,将其均匀分割,并分配给所有服务器。每个服务器使用分配的数据进行学习,完成后,将结果与集群内的其他所有服务器组合。当所有服务器的结果组合后,就可以进入下一个批次的数据。
实际上,由于这个全球批量大小的限制,学习集群最多只能扩展到几千台服务器。再增加的话,每台服务器处理的数据量太少,导致花费更多时间在结果调整上而不是数据处理上。即使增加服务器,速度也不会提高,只会增加成本。理解数据并行处理及其限制,突显了 AI 基础设施的两个基本支柱。首先,由于全球批量大小的扩展限制,要构建更大的模型,就需要构建更强大的服务器。这是基础设施挑战中的扩展部分。
尽管在构建 AI 模型时存在扩展的限制,但构建这些大规模集群仍然具有巨大的价值。要成功实现这一点,需要利用多年来构建的扩展工具,如高效的数据中心、高速的扩展和出色的网络等。首先,我们来看看扩展的挑战。构建最强大的服务器意味着在尽可能小的空间内,构建一个一致的计算系统,容纳大量的计算能力和高速内存。
Trainium2:最强大的 AI 服务器构建
空间重要的原因在于,通过将所有计算和内存靠近,可以使用大量高带宽、低延迟的连接来进行所有的布线。延迟的优势是直观的,但靠近性也提高了吞吐量。通过将组件靠近,可以缩短用于数据传输的布线,能够容纳更多的布线。此外,还可以降低数据交换的延迟,并使用更高效的协议。
昨年,我们发布了下一代 Trainium 芯片 AWS Trainium2。今晚,我们将向您解释如何利用这个 Trainium2 构建迄今为止最强大的 AI 服务器。首先,从系统的最小单元 Trainium2 芯片开始,谈谈在构建最大规模的 AI 服务器时面临的工程约束。芯片通过卓越的制造技术在硅晶圆上制造,这些过程不断得到改进。为了在系统上实现最大限度的计算和内存,采用最先进的封装技术和制造技术,制造尽可能大的芯片是一个良好的起点。
这里我们遇到了第一个工程上的限制。芯片制造过程受到用于刻蚀硅晶圆的镜头的影响,导致芯片尺寸的上限。这被称为掩模,限制了芯片的最大尺寸约为 800 平方毫米,也就是 1.25 平方英寸。我手中拿的东西可能看起来比 1.25 平方英寸大得多,但这不是芯片,而是封装。我们许多人在想到计算机芯片时,会想到主板中央、散热器下方的那个,但实际上那是封装,里面装着芯片。
数年前,封装相当简单。基本上只是一个存放单一芯片并连接到主板的方法。通过封装,可以从硅芯片非常小的世界过渡到在主板上连接所有东西的相对较大布线。
然而,如今的封装技术已经高度发展。最新的封装技术可以被视为使用一种称为互连器的特殊设备,将多个芯片连接在一个封装内。互连器实际上是一个小型芯片,充当类似于小型主板的角色,可以以约 10 倍于普通 PCB 基础主板的带宽互连芯片。我们在最近几代 Graviton 处理器中使用了这种先进的封装技术。在这里展示的 Graviton3 和 Graviton4 中,可以看到两个封装中都内置了多个芯片,即芯片组。Graviton4 的封装实际上搭载了 7 个芯片组。中央的大芯片是计算核心,周围的小芯片则使得访问内存和其他系统总线成为可能。通过分离计算核心,我们能够将 Graviton4 处理器的核心数量增加 50%,而且以成本效益高的方式实现。
这种方法在 Graviton 中非常有效,但在构建优秀的 AI 服务器时可以说是理所当然的。这是我手中持有的 Trainium2 包装。正如您所见,包装中央排列着两个 Trainium 芯片。每个 Trainium2 芯片的两侧各有两个不同的芯片。这些芯片是 HBM(高带宽内存)模块。HBM 是一种将内存芯片堆叠在一起的特殊模块。由于内存芯片的功耗较低且发热量小,因此可以在相同的面积上容纳更多的内存。
这个包装配备了大量的计算用内存,但您可能会想知道为什么不能将包装做得更大。在这里,我们面临第二个限制。目前,包装的大小限制在最大芯片大小的约三倍。这几乎相当于考虑到两个芯片和 HBM 时的大小。在这个图中,我们去掉了一些 HBM,以便您可以看到下面的互连层。您可以看到连接芯片和互连层的微小凸点,但让我们从一个更清晰的角度来展示它。
这是 Annapurna 团队为我制作的非常有趣的图像。沿着紫色的线小心切割后,制作了截面,并在显微镜下放大了其侧面。左上角可以看到 Trainium2 的运算芯片,旁边是 HBM 模块。特别有趣的是,HBM 模块的层实际上是可见的。而且两者都位于薄的连续晶圆上。这是连接芯片之间的互连器。可以看到连接芯片和互连器的微小连接点。芯片与互连器顶部之间的电气连接小得令人难以置信,每个约 100 微米,比见过的最细的盐粒还要小。为了保持芯片的连接状态,所有这些连接点必须保持在指定位置。因此,封装的尺寸是有限制的。为了维持所有连接,封装必须保持足够的稳定性。
Trainium2 的电力管理和制造过程的创新
然而,不要被如此微小的尺寸所迷惑。这些芯片中流动着大量电力,并且会产生热量。单个 Trainium 芯片的性能足以在 1 秒内处理人类需要数百万年才能完成的计算。要进行这种处理,需要向芯片提供大量电力。要以低电压提供大量电力,就需要粗线。虽然“粗”是相对的表达,但请看一下封装底部的线路。芯片专家称这些为 PowerVia。需要粗线的原因是为了避免电压降落。半导体利用微小电荷的有无来存储和处理信息。因此,当芯片经历电压降落或波动时,通常需要等待电力供应系统进行调整。芯片出现等待时间是不可取的。
芯片需要低电压的电力,但以更高的电压供电更有效率。因此,数据中心实际上会以多个电压供电,并在接近芯片时逐步降低电压。最后的电压降落是在电力进入封装之前进行的。
查看 Trainium1 的主板,可以清楚地看到这种常见的实现方法。最终的电压降落是由尽可能靠近封装位置的电压调节器完成的。这里强调了它们在板上的位置。为了抑制和优化电压降落,Trainium2 的开发团队致力于将这些电压调节器进一步靠近芯片。查看 Trainium2 的主板,可以发现板面上没有这些电压调节器。相反,电压调节器被放置在封装周边的下方。这是一个相当困难的工作,因为电压调节器会产生热量,需要创新的工程设计。
通过将电压调节器靠近芯片,可以使用更短的线路,而短线路有助于降低电压降。这是 Trainium1 的情况,可以看到负载增加时的响应。这是在开始大量计算时发生的现象。当负载急剧增加时,电压会大幅下降。这个现象是暂时的,但这种电压下降会导致芯片无法以最佳状态进行计算。这种极端的波动对芯片来说是一种负担,可能会缩短其寿命。另一方面,我们来看看在 Trainium2 上施加相同负载的情况。由于线路变短,未出现显著的电压下降,因此芯片的性能抑制也没有发生,能够发挥更好的性能。
那么,关于芯片的讨论到此为止,我们来看看服务器。这是一个配备了两台 Trainium2 服务器的机架,上下各有一台。相当大的服务器呢。每台 Trainium2 服务器由 8 个加速器托盘组成,每个托盘包含 2 块配备专用 Nitro 卡的 Trainium2 加速器板。与基于 NVIDIA 的系统的 GPU 类似,Trainium 服务器是为执行构建 AI 模型所需的计算和运算而设计的加速器。然而,它不支持执行操作系统或程序所需的常规指令——这需要一个头节点。
这实际上是我们服务器的技术限制。服务器上可安装的 Trainium 加速器数量受到头节点有效管理这些节点和提供数据能力的限制。再添加加速器也无法获得额外的性能,只会增加成本。这不是我们所追求的。最后,还需要一个交换机将所有加速器和头节点连接到网络。
那么,Trainium2 服务器到底有多强大呢?Trainium2 服务器是 AWS 最强大的 AI 服务器,提供 20 拍浮点运算能力。这是 Trainium1 的 7 倍,甚至比目前最大的 AI 服务器性能高出 25%。此外,Trainium2 服务器配备了 1.5TB 的高速 HBM 内存,是目前最大 AI 服务器的 2.5 倍。这是一个可扩展的服务器,但拥有最强大的 AI 服务器只有在能够迅速将其交付给客户时才有意义。
数年前,新芯片和服务器问世时,通常会描绘出这样的采用曲线。在新服务器问世后的几个月内,一些早期采用者开始进行采纳。通常是处理最大规模数据库或最苛刻工作负载的用户。在这些早期采用者将新工作负载迁移到硬件的同时,能够解决初期的制造挑战。然而,在 AI 的世界里情况并非如此。由于构建更优秀的模型需要强大的服务器,客户寻求最佳的 AI 基础设施,并希望从第一天起就能使用它。
我们预测到前所未有的需求激增,因此在这一领域进行了创新。让我们再看看刚才看到的 Trainium2 的托盘。这里有趣的是,看不见的东西。也就是说,没有大量的电缆。因为开发团队致力于减少电缆的数量。作为电缆的替代,这些组件都通过底部主板上的布线迹线连接。为什么要这样做呢?因为每增加一个电缆连接,
制造时可能会发生缺陷,这会降低制造速度。实际上,Trainium2 服务器最优秀的特点之一是专门为自动制造和组装而设计。这种高度自动化使得从第一天起就能迅速扩展。也就是说,Trainium2 不仅是最强大的 AI 服务器,而且是特别设计用于比我们迄今开发的任何 AI 服务器更快地扩展。
Trainium 的系统级阵列架构
然而,这还不是全部。强大的 AI 服务器不仅仅是将原始计算能力和内存压缩到一个小空间中。它是为了优化 AI 工作负载而设计的专用工具。在这里,Trainium2 的架构发挥了重要作用。关于 Trainium,首先需要理解的是,它采用了与传统 CPU 和 GPU 完全不同的架构。这被称为“脉动阵列”。
让我简单地解释一下它们之间的区别。在这里,我展示了一些执行指令的标准 CPU 核心。CPU 有多种类型,但所有 CPU 都有一些共同的特征。首先,每个 CPU 核心都是完全独立的处理器。因此,现代 CPU 能够同时执行多个进程。另一个值得注意的点是,所有 CPU 核心在执行少量工作后,都会访问内存以进行数据的读写。这使得 CPU 具有很高的通用性,但同时性能最终会受到内存带宽的限制。最后,近年来 CPU 的核心数量大幅增加,但即使是目前最大规模的 CPU,核心数量也最多只有几百个。
GPU 是完全不同的存在。现代的 GPU 配备了数百到数千个计算核心,这些核心构成了并行处理单元。在 GPU 中,多个核心对不同数据执行相同的处理,从而可以在同一空间中容纳更多的核心。也就是说,每个 GPU 核心并不是完全独立的,而是与其他核心相连,这使得我们能够用比 CPU 完全独立核心更少的晶体管来构建每个 GPU 核心。这种 GPU 架构大大加速了包括图形在内的许多工作负载,特别是 AI 的处理。
GPU 无疑是创新的硬件架构,但我们选择了不同的方法。脉动阵列架构是一种独特的硬件架构,可以创建长的相互连接的计算管道。在 CPU 和 GPU 中,每个计算指令都需要读取内存、进行处理,然后写回内存。在脉动阵列中,通过直接将结果从一个处理单元传递到下一个处理单元,可以避免计算步骤之间的内存访问。这可以减轻内存带宽的负担,并优化计算资源。
在 Trainium 中,我们为 AI 工作负载设计了一个系统阵列。它的布局与刚才所示的处理单元的线性链条不同。我们的布局特别设计用于支持 AI 代码的基础通用矩阵和张量运算。这种架构使得 Trainium 相较于传统硬件架构具有优势,能够优化 AI 服务器可用的内存和带宽。这使得我们能够最大限度地利用搭载在 Trainium2 服务器上的计算能力和内存。
我们在 Trainium 上做出的另一个决定是提供对硬件的直接访问,以便优化应用程序的性能。Neuron Kernel Interface(NKI)是一种新语言,使得开发和部署能够充分利用基础 Trainium 硬件的代码成为可能,从而以更具成本效益的方式构建 AI 应用程序。上个月,我们宣布了 Build on Trainium 计划,旨在为研究人员提供对 Trainium 硬件的访问,以支持新技术的开发。来自 UC Berkeley、卡内基梅隆大学、德克萨斯大学奥斯汀分校、牛津大学等高校的研究人员对使用 Trainium 及其创新硬件功能进行 AI 新研究寄予厚望。我们期待与这些研究机构的合作,以推动明天最苛刻的 AI 工作负载所需的硬件创新。
NeuronLink 和 Amazon Bedrock 的新功能
现在,我们已经准备好构建配备针对 AI 工作负载优化的创新硬件架构的最强 AI 服务器,并以空前的速度进行部署。
然而,对于支持最新前沿模型的最苛刻的 AI 工作负载来说,情况如何呢?对于这些工作负载来说,无论性能多么高都不够。因此,NeuronLink 应运而生。NeuronLink 是我们独立开发的针对 Trainium 的互连技术。使用 NeuronLink,可以将多个 Trainium2 服务器结合为一个逻辑服务器,并以 1 微秒的低延迟和每秒 2TB 的带宽连接这些服务器。与传统的高速网络协议不同,NeuronLink 服务器可以直接访问彼此的内存,从而创造出一种特殊的东西,我们称之为“超服务器”。
实际上,我一直想把硬件带到舞台上,但每年都被拒绝了。因为这会遮挡屏幕 - 我很抱歉,确实会让屏幕变得不易看清。但今年,为了向大家展示什么是超服务器,我实际上把超服务器带到了舞台上。这就是一台超服务器。64 个 Trainium2 芯片协同工作,提供当前 EC2 AI 服务器 5 倍的计算能力和 10 倍的内存。这正是构建 1 万亿参数的 AI 模型所需的服务器。相当厉害吧?我相信在场的观众中,至少有一个人正在考虑构建 1 万亿参数的 AI 模型,但对其他人来说,这也是一个有趣的话题。
那么,让我们来看看每个人都在频繁进行的 AI 推理。大规模模型的推理本身就是一个非常有趣且要求严格的工作负载,但实际上它由两个工作负载组成。第一个工作负载是输入编码,它处理提示和其他模型输入,以准备生成令牌。这个过程被称为预填充,它需要大量的计算资源来将输入转换为传递给下一个过程的数据结构。当预填充完成后,计算得到的数据结构将被传递到第二个推理工作负载,在那里进行令牌生成。
生成令牌的一个有趣特征是,模型按顺序逐个生成每个令牌。这会对 AI 基础设施产生完全不同的要求。每当生成一个令牌时,都需要从内存中读取整个模型,但所使用的计算量很少。因此,令牌生成对内存总线造成很大负担,但计算负担较小,具有与预填充工作负载几乎相反的特性。
那么,这些工作负载的差异对你们和 AI 基础设施意味着什么呢?不久前,像聊天机器人这样的许多工作负载主要关注预填充的性能。这是因为在预填充执行期间,用户通常在盯着屏幕或等待旋转的等待图标。而一旦开始生成令牌,只要生成速度快于人类可读的速度就足够了。并不需要那么快的速度。然而,最近模型在代理型工作流程中的使用越来越多。在这里,为了进入工作流程的下一步,需要等待整个响应的生成。
现在,客户重视的是高速的预填充和非常快速的令牌生成。在这里,AI 推理基础设施的需求出现了有趣的现象。对高速推理的要求使得 AI 推理工作负载也开始需要最强大的 AI 服务器。令人惊讶的是,刚才提到的两种不同的工作负载是相辅相成的。预填充需要更多的计算能力,而令牌生成需要更多的内存带宽。因此,在同一台强大的 AI 服务器上运行这些工作负载,可以实现卓越的性能和效率。
因此,我们考虑了如何将 Trainium2 的优势作为推理工具提供给 AWS 的客户。今天,我非常高兴能够宣布 Amazon Bedrock 的新延迟优化选项。通过这个选项,您可以访问最新的 AI 硬件和其他软件优化,以在各种主要模型中获得最佳的推理性能。延迟优化推理目前可以作为选定模型的预览使用。其中一个模型是广泛使用的 Llama。我们非常高兴地宣布,延迟优化版的 Llama 405B 和更小规模的 Llama 70B 模型现已可用。
这些模型目前在 AWS 上提供的性能是与任何提供商相比都最好的。这是最大且最受欢迎的 Llama 模型 Llama 405B 的性能。它显示了从请求处理到响应生成的总时间,包括预填充工作流程和令牌生成工作流程。数值越低越好。如您所见,Amazon Bedrock 的延迟优化版本显示的值明显低于其他提供服务。
我们很高兴能够通过与 Anthropic 的合作,发布新款非常受欢迎的 Claude 3.5 模型的延迟优化版本。根据请求,延迟优化的 Haiku 3.5 的运行速度比标准的 Haiku 3.5 快 60%,提供比任何地方都快的 Haiku 3.5 推理。同时,Haiku 3.5 也利用 Trainium2 来实现这一性能,正如 Llama 一样。我们非常高兴能够邀请到刚才提到的 Scaling Law 论文的共同作者之一上台。欢迎 Anthropic 的联合创始人兼首席计算官 Tom Brown,他将分享如何利用 Trainium 和 AWS 进行创新。
Anthropic 和 AWS 的合作:Claude 3.5 的加速
谢谢你,Peter。Anthropic 正在致力于构建可信赖的 AI。全球数百万的人们在日常工作中使用 Claude。Claude 可以编写代码、编辑文档并使用工具完成任务。老实说,我接下来要讲的演讲稿一半是 Claude 写的。得益于与 AWS 的合作,大小企业都可以在他们已经信任的安全云上使用 Claude。
那么,我想更详细地探讨一下我们的合作是如何运作的。首先,让我们谈谈 Peter 刚才提到的 Claude 3.5 Haiku。这是最新且最快的模型之一。尽管是小型模型,但令人惊讶的是,有时在成本低至 15 倍的情况下,其性能可以与顶级模型 Opus 相媲美。正如 Peter 所解释的,我们合作开发了在 Trainium2 上更快运行 Haiku 的低延迟优化模式。这意味着,从今天开始,Haiku 的运行速度提高了 60%,而且客户无需进行任何更改。只需切换 API 开关,请求就会转发到新的 Trainium2 服务器。
这种高速性在交互操作中尤为重要。如果您是程序员,请想象一下在按键之间的短时间内需要补全建议的代码补全功能。60%的加速在这种情况下会产生巨大的差异。这可能是补全候选项是否显示的分水岭。那么,究竟是如何实现如此高速的呢?首先,请看一下这款硬件。简直是个怪物。正如 Peter 所解释的,每个芯片都具备惊人的规格。Systolic Array 拥有超过 1 拍浮点运算的计算能力,并配备丰富的内存带宽和高速互连。
它拥有出色的规格,但正如任何工程师都知道的,仅仅依靠规格是不够的。要发挥最佳性能,必须始终为 Systolic Array 提供足够的数据。这意味着必须适当地调度处理,以确保不会因等待来自内存、互连和其他来源的输入而被阻塞。这就像是俄罗斯方块,打包得越紧,模型的成本就越低,速度就越快。那么,我们是如何解决这个类似俄罗斯方块的挑战的呢?实际上,Anthropic 的性能工程团队与亚马逊和 Annapurna 紧密合作,已经超过一年,以应对这一挑战。
编译器可以处理很多事情,但并不完美。在我们的规模上,追求完美是值得的。对 Anthropic 来说,一个性能优化可能释放出足够的计算能力,以便为 100 万新客户提供服务。因此,值得将程序中最重要的部分从 Python 迁移到 C,深入到像 NKI 这样的低级别,以尽可能接近硬件的层面编写内核。而且,Trainium 的设计被发现非常适合这种低级编码。可能不太为人所知的是,其他 AI 芯片实际上没有办法知道内核中执行了哪些指令。
这使我们不得不依赖推测。这就像蒙着眼睛玩俄罗斯方块一样。Trainium 是第一个能够记录系统内所有地方执行的所有指令时机的芯片。这是我们 Anthropic 开发的实际低级 Trainium 内核的例子。可以准确确认 Systolic Array 何时执行、何时被阻塞,以及为什么被阻塞和在等待什么。通过揭开眼罩,创建低级内核变得更快、更简单,也更有趣。
那么,我很高兴地通知您一个激动人心的消息。我们一直专注于推理,但“Trainium”这个名字是有原因的。下一代 Claude 将在搭载数十万颗 Trainium2 芯片的新亚马逊集群“Project Rainier”上进行训练。这意味着数百 Exaflops 的高密度计算能力,性能是我们迄今为止使用的任何集群的五倍以上。Project Rainier 将对客户产生非常大的影响。今年初,Anthropic 发布了 Claude 系列中最先进的模型 Claude 3 Opus。四个月后,我们推出了性能超过 Opus 但成本仅为五分之一的 Claude 3.5 Sonnet。最近,我们还发布了 3.5 Haiku 和具有人类般与计算机对话能力的改进版 3.5 Sonnet。
Project Rainier 将进一步加速我们的开发,推动研究和下一代扩展。这一进展将使客户能够以更低的成本、更快的速度获得更高级的智能,并能够利用更重要的项目交给智能代理。通过 Trainium2 和 Project Rainier,我们不仅实现快速的 AI,还将实现可扩展和可靠的 AI。
10p10u 网络:为 AI 优化的高性能网络
刚才我提到,要构建最佳的 AI 基础设施,需要创建最强大的服务器。这是规模扩展的要素。然而,这只是方程式的一半。要训练最大规模的模型,还需要构建像 Project Rainier 这样的最大规模集群。在这里,规模扩展的讨论变得重要。AWS 在高性能规模扩展基础设施的创新方面拥有丰富的经验。这种规模扩展创新的代表例子是弹性 AI 优化网络的开发。优秀的 AI 网络与优秀的云网络共享许多特征,但在各个方面都得到了显著增强。如果将其比作拉斯维加斯的战斗,差距是不可同日而语的。
云网络需要足够的容量,以免对客户造成干扰,但 AI 网络的需求远远超过这一点。每个 Trainium2 超服务器提供约 13 太比特的网络带宽,在学习时,所有服务器需要同时进行相互通信。这需要一个巨大的网络,以防止服务器速度下降。云网络需要快速扩展,每天在全球数据中心增加数千台服务器。然而,AI 的扩展速度更快。当在 AI 基础设施上投资数十亿美元时,立即部署变得极为重要。
云网络需要可靠性,必须提供比最先进的本地网络更优越的可用性。我们的全球数据中心网络实现了 99.999%的可用性。然而,AI 工作负载的要求更加严格,网络的短时间故障甚至可能导致整个集群的学习过程延迟,从而导致闲置容量和学习时间的延长。那么,基于云网络的创新,我们该如何构建更优秀的 AI 网络呢?我将为您介绍最新一代的 AI 网络架构。
我们称之为 10p10u 网络。这个网络结构支持 Ultra Server 2 集群,并同时用于 Trainium 和基于 NVIDIA 的集群。之所以称为 10p10u,是因为它能够为数千台服务器提供数十 PB 的网络容量,延迟低于 10 微秒。10p10u 网络支持大规模并行处理,互连密集,灵活性强。从几台机架开始,可以灵活扩展到跨多个数据中心校园的集群。
您现在看到的是仅有的一个 10p10u 机架。您可能注意到了,开关呈现出美丽的绿色。其实绿色是我最喜欢的颜色。我特别喜欢英国赛车绿,但这个颜色也相当不错。这是我第一次在数据中心看到绿色的开关。这种绿色被称为“格林纳里”,是 2017 年的潘通年度色。实际上,有一家供应商有多余的油漆,以非常优惠的价格提供给我们。这一故事很好地体现了我们的设计哲学:在客户认为重要的事物上花钱,而在像油漆这样的不重要的事物上控制成本。
您可能还注意到,这个机架上连接了非常多的网络电缆。非绿色部分是网络配线架。要构建如此高密度的网络结构,需要以非常精确的模式互连交换机,而这正是这个配线架所能实现的。这个配线架多年来一直为我们做出贡献,但正如您所看到的,在 10p10u 网络中,电缆的复杂性大幅增加,因此变得相当繁琐。正如之前所述,安装工作的速度也在提高,这为团队带来了创新的绝佳机会。
其中一个创新是开发独特的干线连接器。这可以看作是将 16 根光纤电缆汇聚成一个坚固的连接器,称之为超级电缆。突破性在于,这一复杂的组装工作不是在数据中心现场进行,而是在工厂完成的。这大大提高了安装过程的效率,几乎将连接错误的风险降至零。虽然这看起来是一个微不足道的改进,但其影响是巨大的。使用干线连接器后,AI 机架的安装时间缩短了 54%,而且外观也变得更加整洁。那绿色的开关真的更加突出。
团队的创新不仅仅如此。还有一个令人惊叹的创新,称为 Firefly Optic Plug。这个独创的低成本设备作为小型信号反射装置工作,可以在机架到达数据中心之前全面测试和验证网络连接。也就是说,服务器到达后无需花时间调试电缆布线。在 AI 集群的世界里,时间字面上就是金钱。Firefly Plug 还具有保护密封的次要功能,可以防止灰尘进入光学连接部。听起来可能微不足道,但即使是微小的灰尘颗粒,也可能严重损害连接的完整性,并导致网络性能问题。
通过优雅的解决方案,我们解决了两个重要的课题。真是一举两得。这种创新使得 10p10u 网络成为迄今为止扩展最快的网络。此图表显示了我们在不同网络结构中安装的链接数量。10p10u 网络的增长曲线对我们来说也是前所未有的。在过去的 12 个月中,我们安装了超过 300 万个链接,这还是在开始部署 Trainium2 之前的数字。
最后一个课题是提高网络的可靠性。AI 网络中最大的障碍因素是光链接。光链接是指我们所见的所有电缆中用于光信号的发送和接收的小型激光模块。AWS 多年来一直在设计和运营其独特的光学设备。由于其运营的严格性和大规模的规模,故障率得以稳步降低。尽管这种规模带来的进步令人印象深刻,但无论故障率降低到何种程度,都无法完全消除。
如果无法完全消除故障,就需要考虑如何减轻其影响。所有网络都有用于指示数据包路径的交换机。这基本上就像网络的地图。在 AI 网络中,这张地图需要考虑数十万条路径,并且每当光链接故障时都必须更新地图。
那么,如何才能快速而可靠地做到这一点呢?简单的方法是集中管理地图。听起来一个单一的头脑来优化网络很有吸引力,但存在问题。当网络变得庞大时,中央控制会成为瓶颈。故障检测变得困难,交换机的更新非常缓慢,中央控制器成为单点故障。因此,大规模网络通常采用分散式。使用 BGP 或 OSPF 等协议,交换机之间共享健康更新信息,并协作创建网络地图。这种方法虽然稳健,但并不完美。在大规模网络中,当链接发生故障时,网络交换机协作找到新的最佳地图可能需要相当长的时间。而在 AI 网络中,这就变成了无法工作的时间。
当面临这两种不算最优的选择时,我们需要开辟一条新路。在 10p10u 网络中,我们决定构建一种全新的网络路由协议。我们称之为可扩展意图驱动路由(SIDR)。没错,对于熟悉网络的人来说,这可能听起来像是文字游戏。SIDR 兼具两者的优点。简单来说,SIDR 是通过中央规划者对网络进行结构化,并将其推送到所有交换机,从而使每个交换机在检测到故障时能够迅速做出自主判断。也就是说,SIDR 将中央计划的控制和优化与分散的速度和恢复力结合在一起。结果,SIDR 能够在最大规模的 10p10u 网络中,在不到 1 秒的时间内响应故障。这比其他网络结构使用的替代方法快 10 倍。当其他网络仍在重新计算路由时,10p10u 网络已经恢复工作。
AWS 的创新:跨整个堆栈的差异化
さて、今夜是关于多个主题的讨论。从 Nitron 和 Graviton 到我们在存储方面的核心创新,再到如何构建搭载 Trainium2 的我们最大最强的 AI 服务器,以及多年来在云规模扩展中的创新如何应用于 AI。我希望大家能够理解,我们在整个技术栈中推动创新,为客户创造真正差异化的解决方案。那么,我将结束今天的演讲。感谢大家的聆听。祝您享受 re:Invent。