随着大模型框架的普及，会不会从根本上改变 GPU 使用思路？
这里是大模型框架是指ZeRO、DeepSpeed、FSTD、Colossal等。因为这些框架往往使用数据并行+模型并行，大幅减少了对于单个GPU显存的要求。一方面，这些框架的初衷是训练大模型。但另一方面，其实也降低了训练中小模型的要求。例如原来要用8张V100
32g才能训练10亿规模的模型。未来是否可以用16张16g，甚至12g的GPU来训练，同时速度更快、成本更低呢？
当前大模型应该还未普及开来，后续随着大模型和大数据量的普及，训练的数据规模和模型参数会呈现越来越大的趋势。单个设备的算力肯定无法满足业务对算力快速增长的需求，因此必然会向着分布式方式发展。而分布式本质上是用开发、管理的复杂性，换取性能提升，以应对大数据量、大模型的场景。下表列举出了分布式和单机的优缺点：模块分布式单机资源管理相对复杂（考虑多机的环境准备、资源利用率等问题）相对简单代码开发复杂（需要引入分布式通信以及模型并行实现等额外开发内容）相对简单，只需要考虑网络实现调试复杂（中间数据散落在不同机器上，如精度调试会更复杂）相对简单性能相对高（但存在通信损耗）相对低部署相对复杂相对低硬件成本相对低（消费级的显卡价格相对低，10块308012G显存显卡价格差不多和一块80GA100价格一样）相对高（大显存的商用显卡价格高）分布式和单机，他们都会有自己适用的场景，针对分布式和单机，软件层面未来的技术也会持续演进，比如：对于分布式：通过表达能力演进提升开发体验，持平单机，参考Ray或者函数计算的框架。通信及调度优化让数据搬移时节点更近或者减少数据的搬移。对于单机：在持续提升单卡容量的同时，通过软件优化，如提供内存复用能力，让更多的大模型能在单卡上跑起来，比如MindSpore通过内存复用，可以支持AlphaFold2模型在序列长度为1500，放在单卡（32G）上跑起来（其它框架通常需要A10080G才能跑相同序列长度的数据）。最后，我们正在分析和梳理包含分布式并行在内的AI工程最佳实践，包括《为什么AI需要分布式并行？》，《基于MindSpore的Resnet-50模型分布式训练实》，《分布式并行模式（DistributionStrategy）》等，欢迎加入一起探索。