【技术解析】万卡集群的企业布局、技术挑战与解决之道

引言

万卡集群是指由一万张及以上的计算加速卡(如GPU、TPU或其他专用AI加速芯片)组成的高性能计算系统,主要用于训练和推理大型人工智能模型。这种集群通过整合高性能GPU计算、高性能RDMA网络、高性能并行文件存储、智算平台等关键技术,将底层基础设施整合成为一台“超级计算机”,可支持千亿级甚至万亿级参数规模的大模型训练,有助于大幅压缩大模型训练时间,实现模型能力的快速迭代。

万卡集群主要应用于需要大规模计算能力的场景,如人工智能模型的训练和推理、大数据分析、科学研究等。它们能够显著加速AI技术的研发和应用,推动AI技术的创新和发展,并促进AI技术的普及和推广。

一、万卡集群的相关企业布局

在当今的人工智能时代,万卡集群已成为各大科技企业竞争的重要领域,众多企业纷纷投入到万卡集群的建设与布局中。

国际科技巨头

Google:推出了超级计算机A3 Virtual Machines,拥有26000块Nvidia H100 GPU,同时基于自研芯片搭建TPUv5 p8960卡集群,在人工智能的基础研究和应用开发方面拥有强大的算力支持。

Meta:早在2022年就推出了拥有16000块Nvidia A100的AI研究超级集群(AI Research Super Cluster),2024年初又公布了2个24576块Nvidia H100集群,为其下一代生成式AI模型的训练提供了坚实的基础,有力地推动了Meta在人工智能领域的研究和应用。

微软:作为全球软件巨头,微软也在积极布局万卡集群,将其应用于人工智能的研发和应用中,为其旗下的人工智能产品和服务提供强大的算力支持。

亚马逊:亚马逊的AWS云服务在全球范围内拥有广泛的用户基础,为了满足用户对人工智能算力的需求,亚马逊也在不断加强其在万卡集群方面的建设和投入。

特斯拉:马斯克的xAI宣布了2024年最大的一笔60亿美元B轮融资,计划建造一个名为“超级算力工厂”的设施,为下一版本Grok提供强大的算力支持,这个计划使用多达10万个GPU来训练,预计2025年秋天之前投入运行。

国内企业

通信运营商

中国移动:今年将商用哈尔滨、呼和浩特、贵阳三个自主可控万卡集群,总规模近6万张GPU卡,作为国家算力基础设施建设的重要力量,中国移动积极推动万卡集群的建设,为我国人工智能产业的发展提供了强大的算力支持。

中国电信:上半年在上海规划建设到达15000卡、总算力超4500P的国产万卡算力池,是国内首个超大规模国产算力液冷集群,也是业内领先的全国产化云智一体公共智算中心。此外,中国电信京津冀万卡液冷智算集群还入选了全国一体化算力网应用优秀案例。

中国联通:上海临港国际云数据中心在今年内将建成中国联通首个万卡集群。

互联网企业

字节跳动:搭建了一个12288卡Ampere架构训练集群,并研发了Megascale生产系统用于训练大语言模型,该系统在提高算力利用率和训练效率方面取得了显著成果。

蚂蚁集团:在去年透露已建成万卡异构算力集群,为其在人工智能领域的业务发展提供了有力的支持。

腾讯:推出的高性能网络星脉,具备业界最高的3.2T通信带宽,为AI大模型带来10倍通信性能提升。基于腾讯云新一代算力集群HCC,可支持10万卡GPU的超大计算规模。

AI初创企业和硬件厂商

摩尔线程:发布了一款兼具“超大规模+高通用性+生态兼容”的国产GPU万卡集群解决方案——“夸娥万卡智算集群”,标志着国产GPU正式迈入万卡时代。

华为:2023年宣布昇腾AI集群全面升级,集群规模从4000卡集群扩展至16000卡,是业界首个万卡AI集群,拥有更快的训练速度和30天以上的稳定训练周期。

二、万卡集群的技术挑战

万卡集群的构建并非简单地将大量GPU卡堆叠在一起,而是面临着诸多技术挑战:

1、效率问题

通信开销:训练大语言模型并非简单的并行任务,在万卡集群中,GPU之间需要频繁通信以协同推进训练进程。大量的通信数据在网络中传输会带来较大的延迟和开销,影响训练效率。例如,在张量并行和流水线并行的过程中,设备间需要频繁地交换数据和同步参数,这对网络带宽和延迟提出了极高的要求。

计算与存储平衡:大模型的训练需要大量的计算资源和存储资源。在万卡集群中,如何合理地分配计算任务和存储资源,使得GPU在进行计算时能够快速地获取所需的数据,避免因数据传输和存储瓶颈导致的计算等待,是一个需要解决的问题。此外,随着模型规模的不断增大,模型参数的存储需求也会急剧增加,如何有效地管理和利用GPU的显存以及外部存储设备,也是提高效率的关键。

操作符优化:操作符是构成模型计算的基本单元,对操作符的优化能够提高计算效率。在万卡集群中,需要对诸如矩阵乘法、卷积等常用操作符进行优化,减少计算过程中的冗余操作和内存访问,提高GPU的利用率。同时,对于一些复杂的操作符,如LayerNorm和Gelu等,需要进行融合操作,以减少内核启动的开销。

2、稳定性问题

硬件故障:万卡集群由大量的硬件设备组成,硬件故障的概率较高。在训练过程中,单个GPU卡、服务器、网络设备等的故障都可能导致训练任务的中断或失败。而且,由于集群规模庞大,故障的定位和排查也变得非常困难,需要耗费大量的时间和精力。

软件兼容性:万卡集群涉及到多个层次的软件系统,包括操作系统、驱动程序、训练框架、分布式通信库等。这些软件之间的兼容性问题可能会导致系统的不稳定,例如驱动程序与训练框架的不兼容可能会导致GPU无法正常工作,分布式通信库的版本不兼容可能会导致通信异常。

数据一致性:在分布式训练中,多个GPU同时对模型参数进行更新,需要保证数据的一致性。如果数据同步不及时或出现错误,可能会导致模型的训练结果不准确,甚至使训练过程无法收敛。因此,需要设计有效的数据同步机制和一致性校验算法,确保数据的正确性和一致性。

3、可扩展性问题

网络拓扑:随着集群规模的不断扩大,网络拓扑结构的设计变得至关重要。传统的网络拓扑结构可能无法满足万卡集群的需求,需要设计更加高效、灵活的网络拓扑,以降低网络延迟和通信开销,提高网络的可扩展性。例如,胖树拓扑结构在小规模集群中应用广泛,但在万卡集群中,需要对其进行改进和优化,以降低成本和提高性能。

资源管理:万卡集群中的资源管理非常复杂,需要对GPU、CPU、内存、网络等资源进行统一的管理和调度。如何根据训练任务的需求,动态地分配和调整资源,提高资源的利用率,同时保证各个任务之间的隔离性和安全性,是一个具有挑战性的问题。

系统升级:随着技术的不断发展,万卡集群需要不断地进行升级和维护。如何在不影响现有训练任务的情况下,对系统进行升级和扩展,是一个需要解决的问题。例如,在添加新的GPU卡或更新软件系统时,需要确保系统的稳定性和兼容性。

三、万卡集群的技术探索

为了应对万卡集群的技术挑战,企业和研究机构在不断地进行技术探索和创新:

1、算法优化

并行算法改进:研究人员不断探索新的并行算法和策略,以提高模型训练的效率和可扩展性。例如,采用自适应的混合并行策略,根据模型的特点和硬件资源的情况,自动地选择数据并行、张量并行和流水线并行的比例,以达到最佳的训练效果。

模型压缩:为了减少模型的存储需求和计算量,研究人员采用模型压缩技术,如量化、剪枝等。量化技术将模型参数的精度降低,减少存储和计算开销;剪枝技术则去除模型中的冗余参数,提高模型的计算效率。

优化器改进:优化器是模型训练中的重要组成部分,对训练速度和模型性能有着重要的影响。研究人员不断改进优化器算法,如采用更高效的自适应学习率算法、引入二阶优化算法等,提高模型的训练速度和收敛性。

2、系统架构优化

分布式通信优化:通过对分布式通信框架的优化,减少通信延迟和开销。例如,优化集体通信群的初始化过程,缩短通信初始化的时间;采用高效的通信协议和算法,提高通信的效率和可靠性。

硬件加速:利用硬件加速技术,如FPGA、ASIC等,对模型的计算过程进行加速。这些硬件加速器具有较高的并行度和计算效率,能够有效地提高模型的训练速度。同时,与GPU相比,它们的功耗更低,能够降低系统的能耗。

液冷技术:万卡集群的能耗非常高,散热问题是一个关键的挑战。液冷技术能够有效地降低服务器的温度,提高系统的稳定性和可靠性。同时,液冷技术还能够降低数据中心的能耗,减少运营成本。

3、智能化运维

故障预测和自动恢复:利用机器学习和大数据分析技术,对万卡集群的运行状态进行实时监测和分析,预测潜在的故障,并提前采取措施进行预防。同时,当故障发生时,能够自动地进行故障定位和恢复,缩短故障恢复的时间,提高系统的可用性。

资源智能调度:通过对训练任务的特点和资源需求的分析,实现资源的智能调度和分配。例如,根据任务的优先级、计算量、所需资源等因素,自动地将任务分配到合适的GPU上进行计算,提高资源的利用率和系统的整体性能。

性能优化建议:基于对系统运行数据的分析,为用户提供性能优化建议,帮助用户调整模型参数、训练策略等,以提高模型的训练效率和性能。

结语

总之,万卡集群是人工智能领域的重要发展方向,具有巨大的应用潜力。然而,万卡集群的构建和应用面临着诸多技术挑战,需要企业和研究机构不断地进行技术探索和创新,以推动万卡集群技术的不断发展和应用。