自 20 世纪 40 年代以来,从 McCulloch 和 Pitts 的早期概念到 20 世纪 50 年代 Frank Rosenblatt 的感知器,神经网络已经发生了显着的发展。 20 世纪末的重大进步,例如反向传播方法的发展,为现代深度学习奠定了基础。 Google 研究人员在 2017 年的“Attention is All You Need”中介绍了 Transformer 架构标志着自然语言处理 (NLP) 的转折点,导致了 BERT 和 GPT 等强大模型的发展。
2020 年,OpenAI 推出了拥有 1750 亿个参数的模型 GPT-3,体现了对高性能计算的需求。训练如此大规模的模型需要先进的 GPU 或 TPU 集群以及巨大的计算资源,这突显了人工智能开发的超级计算架构不断变化的挑战。
本文涵盖了一系列主题,从 Yandex 在搜索技术中使用高级神经网络和大型语言模型的训练,到工程师在利用高性能计算和未来 HPC 策略方面面临的挑战集群设计。
搜索中的变形金刚:Yandex 对高级神经网络的利用
在“搜索中的变形金刚:Yandex 实现基于意义的搜索的高级神经网络”由 Yandex.Search 神经网络技术小组负责人 Sasha Gotmanov 在 Habr 上发表,深入研究了 Transformer 神经网络与 Yandex 搜索引擎的集成,旨在通过评估语义相关性来优化网页排名。< /p>
搜索中的神经网络对于通过理解用户查询和网络文档之间的语义关系来有效地对搜索结果进行排名至关重要。最初,搜索排名依赖于分析和启发式方法,但随着时间的推移,其有效性趋于稳定。神经网络,尤其是 Transformer 的出现,标志着质量指标的显着提高。这些转换器用途广泛,不仅限于语言任务,还包括语音生成和用户行为预测。然而,训练这些模型需要大量的计算能力。虽然在常规 CPU 服务器上进行训练可能需要数十年时间,但使用 GPU 加速器可显着缩短这一时间。通过在多个 GPU 之间并行执行任务并使其之间具有良好的连接性,该过程得到进一步优化,从而能够在合理的时间范围内进行高效的训练。这一进步标志着过去十年来 Yandex 搜索技术的重大进步。
训练大型模型是什么样的:Yandex 案例研究
如前所述,在 Yandex 训练大型模型需要部署强大的 GPU 集群,解决计算资源和网络效率方面的重大挑战。但它的训练过程是怎样的呢?在“Yandex 超级计算机:深入了解”中,作者尝试使用这些材料构建一个初始集群他们可以随意使用。他们使用了多台服务器,每台服务器都嵌入了 8 个通过 RoCE 网络连接的 NVIDIA V100 GPU。然而,他们最初的试验并没有取得成功的结果。
根据测量结果,缩放效率低得令人失望。为了诊断问题,他们制定了一种评估方法,除了了解学习算法的工作原理之外,还提供了一个指标来显示问题所在。他们只是创建了一个图表来比较相同规模的能源使用和数据交换。
相同规模的能源消耗和流量交换图 – 在初始集群上获得的图。资料来源:HABR
图标题>
训练过程是重复的:每个 GPU 都被分配一个要处理的批次,如图表中的蓝色部分所示。接下来,GPU 通过网络将处理后的数据传输到相邻的 GPU,如图中的绿色部分所示。然后这个循环从第一步重新开始。
上面提供的图表指出了主要问题。其中一半时间消耗在网络交换上,期间GPU处于闲置状态,导致硬件利用率低下。
服务器受到 PCIe Gen3 x8 的限制且网络吞吐量上限为 62 Gbps,使得现有集群上的严格计算变得不切实际。这使得需要开发一种新的解决方案来解决互连瓶颈。
因此,需要部署全面的 HPC 解决方案。因此,配备 1,592 个 GPU 的“Chervonenkis”集群于 2021 年启动。据报道,其运行任务性能为 21,530 petaflops,峰值性能为 29,415 petaflops,使其成为俄罗斯和东欧最强大的超级计算机。但为了实现这一峰值性能,我们必须修复在 LINPACK 基准测试中发现的许多软件问题,该基准测试用于构建 TOP500 列表。
图标题>
在此设置中,与初始安排相比,网络交换阶段所需的时间明显减少。这种效率使得能够在合理的时间范围内训练当代模型,同时实现高集群利用率。实现这一目标不仅需要最先进的设备,还需要对整个软件堆栈(包括培训代码)进行大量更新。尽管如此,模型的复杂性和规模仍在不断增长。
如何培训您的法学硕士
迄今为止,我们已经在 Yandex 中观察到了这一过程。然而,为了更好地理解现代语言模型需要更大的计算能力,让我们考虑一个额外的例子。想象一下,您想培养自己的现代法学硕士。您究竟需要什么?
图标题>
换句话来说,大型语言模型 (LLM) 的开发涉及两个关键步骤:
预训练:最初,通过互联网收集大量文本数据。这些数据用于训练神经网络,重点是提高其下一个单词的预测能力。结果是一个生成文本的基本“文档生成器软件”。然而,我们的目标是创建一个能够执行各种任务的有用助手,而不仅仅是生成文本。
微调:在此阶段,聘请人员精确标记数据,确保响应准确且安全。此阶段还包括人机协作以优化响应。微调比预训练成本更低,并且通过重复迭代,可以开发出实用的 LLM 辅助模型。
但是,在培训方面,了解 LLM 缩放法则至关重要,因为它概述了系统行为如何随着规模或其他关键参数的增加而变化。一般来说,这一定律表明,具有更多参数和数据的较大模型往往表现更好,看似在没有显着算法进步的情况下增强了智能。这一点意义重大,因为法学硕士的改进直接提高了各种 NLP 任务的性能,正如评估期间所证明的那样,从而产生更强大、更有效的语言模型。
图标题>
因此,这意味着大型模型的发展趋势,因此需要部署更大的高性能计算 (HPC) 集群来支持这些先进系统。事实上,现代 LLM 需要的集群大约是 Chervonenkis 集群的 3-4 倍,而这种升级只发生在短短两年内。
机器学习工程师在利用高性能计算方面面临的挑战
就现代高性能计算 (HPC) 而言,集群正在演变成综合平台,不仅包含硬件,还包含软件、方法等。这些平台旨在为机器学习工程师提供独立训练模型的便捷服务,同时最大限度地减少人力和硬件资源。
重点关注领域包括性能、可观察性和可调试性。该平台必须提供必要的工具来分析分布式训练和识别瓶颈。
除此之外,持续数周的培训课程也带来了另一个挑战。硬件容易出现故障;例如,在拥有数千个 GPU 的集群中,日常故障是不可避免的。此外,区分用户相关问题和平台问题通常很复杂,需要专门的工具。例如,在 Yandex,我们在每个节点上启动训练之前和之后执行了专门的测试。这样做是为了确保节点能够用于训练目的,并区分训练代码中的硬件错误和故障(尽管这并不能涵盖所有潜在的故障)。这一现实凸显了拥有保存训练状态能力的重要性。将此责任转移给用户可能会造成机器时间和资源的重大损失。因此,当代学习平台的任务就是代表用户解决这些问题。
未来 HPC 集群的设计策略是什么?
在展望高性能计算 (HPC) 集群的未来时,必须重点关注最大化整个车队的吞吐量。一种有前途的方法是Singularity采用的设计原则,这是微软的全球调度服务,旨在高效可靠地执行深度学习任务,包括训练和推理工作负载。这些原则包括:
无资源闲置:它将所有加速器视为单个共享资源的一部分,防止利用率不足并避免需要固定容量预留。这种方法可以灵活地利用可用容量来完成全球范围内的各种任务。
作业级 SLA:在利用可用资源的同时,Singularity 还确保遵守每项作业的特定服务协议。它动态调整资源,例如在必要时减少训练作业资源以满足推理作业的需求。
故障恢复能力:认识到 DNN 训练的持续时间较长,Singularity 旨在有效地从中断中恢复。作业无需重新启动,而是从上次保存的点继续,从而减少时间和资源浪费。
相反,未来的 HPC 系统必须能够处理更大的模型。这就需要解决节点之间连接的挑战。元平台有自己的愿景:他们努力使以太网技术适应人工智能应用。目前,他们基于 RoCE 的结构允许组合多达 32,000 个 GPU。
值得一提的 HPC 领域转型的另一个关键趋势是云计算的迅速普及,这是由 AWS 等主要提供商提供的服务的可用性和可负担性不断提高所推动的,Azure 和 Google Cloud。这些公司提供先进的 HPC 服务,包括高性能虚拟机和存储。然而,超级计算机尽管具有令人印象深刻的能力,但也面临着寿命相对较短的挑战。它们使用先进技术进行高速处理和计算,导致发热和高功耗等问题,从而缩短其使用寿命并随着时间的推移增加成本。
结论:未来会怎样
在法学硕士需求日益增长的推动下,高性能计算正在从一种专有资源转变为可供众多公司广泛使用的平台。 HPC 的扩展对于企业跟上技术进步至关重要。然而,随着法学硕士的扩展,HPC 集群也必须不断发展,从而带来各种工程挑战。
此外,未来的一个重大发展可能是用量子处理取代 GPU单元 (QPU),实现处理能力和效率的革命性飞跃,从而重塑 HPC 场景。