虎嗅

对话蚂蚁吴伟:训推一体池化调度,如何把GPU用到极限

该文章尚未提供 Русский 解读,以下为中文版内容。

核心内容总结

大模型时代,GPU资源的问题不是“不够多”,而是“不会用”——训练需要上千张卡协同,还得考虑硬件拓扑;推理和训练各有潮汐规律,分开管理会导致一边闲死一边排队。蚂蚁通过“训推合池”(打通训练和推理资源池)、动态混部(弹性配额+优先级抢占+混部)提升利用率,同时面对国产芯片替代,发现生态差距是关键,训推一体也并非适用于所有企业。

1. GPU和CPU:不只是贵,是“结构性”不一样

以前GPU任务小,一张卡就能跑,和CPU没啥区别;但大模型来了后,两者差异就像“小作坊和工厂”的区别:

  • 训练侧:一个大模型训练要上千张卡同时工作,得一次性分配足够的卡(叫“gang scheduling”,通俗说就是“凑齐人才能开工”),还得考虑硬件连接(比如交换机怎么连才能让数据传输最快)、节点内部差异(同一服务器里的GPU性能可能不同)。这不是简单“多买卡”的问题,而是“怎么排兵布阵让所有卡发挥最大作用”的排列组合题。
  • 推理侧:大模型推理也搞分布式(比如把任务拆成几块并行),还要用到显存、内存里的KV Cache,得把这些资源合理排布,不像CPU那样“申请4核8G就行”。

简单说:CPU是“通用小工具”,随便用;GPU是“专用大机器”,得整体规划才能用对。

2. 训推合池:解决“一边闲死一边排队”的痛点

为啥蚂蚁要把训练和推理的资源池打通?两个触发点:

  • 外部压力:英伟达对国内限购,买不到足够的卡,只能把现有卡用好;
  • 内部浪费:训练和推理各有“潮汐”——推理晚上用户少,资源闲;训练白天研发提交任务多,资源不够。分开管理时,推理闲的资源不能给训练用,训练闲的也不能给推理用,等于“一半资源在睡觉”。

打通后,资源能在波峰波谷间流动:比如晚上推理闲,训练任务就能用这些资源;白天训练忙,推理如果有闲资源也能支援。

3. 动态混部:在“服务不卡”和“成本最低”之间走钢丝

怎么让训推合池后不影响服务质量?蚂蚁搞了三层策略:

  • 第一步:软件栈统一:把训练和推理的底层软件(比如操作系统、驱动)都调成一样,让一个集群既能跑训练也能跑推理;
  • 第二步:精细化管理:给任务分优先级——比如To C用户的推理服务(高优)和大规模预训练(高优)要优先保障,低优任务(比如内部实验)只能用空闲资源;
  • 第三步:抢占回收:当高优任务需要资源时,低优任务自动保存进度(叫Checkpoint),然后让出资源。为了减少损耗,刚保存过的低优任务优先被抢占,没保存的尽量往后排。

核心原则:先保服务稳定,再谈成本优化——比如推理服务要保证用户响应速度,不能为了省资源把服务搞卡。

4. 国产芯片:单卡算力不差,但“全链路生态”差得远

国产芯片能替代英伟达吗?蚂蚁的结论是:

  • 推理场景:能规模化用,比如处理用户请求、数据清洗这些任务;
  • 训练场景:能跑但不够好,问题不在“单卡算力”(比如FLOPS数值和英伟达差不多),而在“全链路生态”——英伟达有CUDA生态,从硬件适配到算子优化(比如让计算更快)、稳定性都成熟;国产卡的适配、优化、稳定性还没完全打通,跑起来可能慢或出问题。

适配国产卡最头疼的是精度对齐:要和英伟达的结果对比,看训练的Loss(误差)是否一样,推理的输出是否一致,这需要大量人工排查,耗时耗力。

5. 训推一体不是万能药:这些情况别硬搞

训推合池虽好,但不是所有企业都适合:

  • 业务初期:比如刚起步的AI公司,需要快速迭代训练或推理业务,分开管理干扰小,不用急着合池;
  • 单一业务:如果公司只做训练(比如专门训练模型)或只做推理(比如提供API服务),合池没用;
  • 不差钱:如果能随便买卡,资源足够用,优化利用率的意义不大。

简单说:训推一体是“资源紧张时的省钱大招”,不是“所有企业的必选项”。

总结

大模型时代,GPU资源的核心矛盾是“结构性稀缺”和“利用率低”。蚂蚁的解法是通过训推合池、动态混部来“榨干”现有资源,同时面对国产芯片替代,生态建设是关键。对企业来说,优化资源利用率要先保服务稳定,再看自身情况选择是否搞训推一体——毕竟,适合自己的才是最好的。