在过去一两年里,以GPT和Diffusion model为代表的大语言模型和生成式AI,将人们对AI的期待推向了一个新高峰,并吸引了千行百业尝试在业务中利用大模型。
国内各家大厂在大模型领域展开了激烈的军备竞赛,如:文心大模型、通义千问、混元大模型、盘古大模型等等,这些超大规模的模型训练参数都在千亿以上,有的甚至超过万亿级。
即便训练一次千亿参数量模型的成本可能就高达数百万美元,但大厂们依然拼尽全力,除此之外也有很多行业企业希望拥有自己的专属大模型。
对于企业来说,要想在大模型的竞争中胜出,就必须充分利用算力,并且构建高效稳定的服务运行环境,这就对IT基础设施能力提出了更高的要求。
而云原生正是比拼的重要一环。云原生技术的自动化部署和管理、弹性伸缩等功能,能够有效提高大模型应用效率并降低成本。
据Gartner预测,2023年70%的AI应用会基于容器和Serverless技术开发。在实际生产中,越来越多的AI业务,比如自动驾驶、NLP等,也正在转向容器化部署。
那么,云原生是如何帮助大模型降本增效,在这个过程中又遇到了哪些挑战?
云原生成为大模型的标配
近年来,容器和Kubernetes已经成为越来越多AI应用首选的运行环境和平台。
一方面,Kubernetes帮助用户标准化异构资源和运行时环境、简化运维流程;另一方面,AI这种重度依赖GPU的场景可以利用K8s的弹性优势节省资源成本。
随着大模型浪潮的到来,以云原生环境运行AI应用正在变成一种事实标准。
大模型训练往往需要大量的计算资源,而云原生环境通过容器化和编排工具可以实现资源的弹性调度与自动扩缩容。
这意味着在大模型训练过程中可以迅速获取所需资源,并在任务完成后释放资源,降低闲置成本。
云原生架构天然支持分布式系统,大模型训练过程中的并行计算需求可以通过云上的分布式集群轻松实现,从而加速模型收敛速度。
大模型推理服务可以被分解为多个微服务,比如预处理服务、模型加载服务和后处理服务等,这些服务能够在云原生环境中独立部署、升级和扩展,提高系统的可维护性和迭代效率。
云原生理念强调快速迭代和自动化运维,借助CI/CD流程,大模型的研发团队能够以更高效的方式构建、测试和部署模型版本,确保模型更新的敏捷性。
云原生提供了多种数据持久化和临时存储解决方案,有助于解决大模型所需的大量数据读取和写入问题。
同时,利用云上大数据处理和流式计算能力可以对大规模数据进行有效预处理和后处理。
在云原生环境下,监控、日志和追踪功能完善,使得大模型服务的状态更加透明,遇到问题时能更快地定位和修复,保证服务高可用性。
总体而言,云原生架构的诸多优势契合了大模型在计算密集、数据驱动、迭代频繁等方面的需求,能够为大模型带来成本、性能、效率等多方面的价值,因而成为大模型发展的标配。
大模型对云原生能力
提出新挑战
尽管云原生对于大模型有着天然的优势,但是面对LLM、AIGC这样的新领域,依然对云原生能力提出了更多挑战。
在训练阶段,大模型对计算、存储、网络等基础架构的要求都更高。
规模上,要训练出具有广泛知识和专业领域理解及推理能力的大语言模型,往往需要高达万卡级别的GPU集群和PB级的数据存储以及TB级的数据吞吐。
此外,高性能网络也将达到单机800Gbps甚至3.2Tbps的RDMA互联。
性能方面,随着模型体积和参数量的增长,单张显卡已无法承载完整的模型。因此需要使用多张显卡进行分布式训练,并采用各种混合并行策略进行加速。
这些策略包括数据并行、模型并行、流水线并行以及针对语言模型的序列并行等,以及各种复杂的组合策略。
在推理阶段,大模型需要提供高效且稳定的推理服务,这需要不断优化其性能,并确保服务质量(QoS)得到保证。
在此基础上,最重要的目标是提高资源效率和工程效率。一方面,持续提高资源利用效率,并通过弹性扩展资源规模,以应对突发的计算需求。
另一方面,要最优化算法人员的工作效率,提高模型迭代速度和质量。
由此可见,大模型对云原生技术提出了新的能力要求:
一是,统一管理异构资源,提升资源利用率。
从异构资源管理的角度,对IaaS云服务或者IDC内的各种异构计算(如 CPU,GPU,NPU,VPU,FPGA,ASIC)、存储(OSS,NAS, CPFS,HDFS)、网络(TCP, RDMA)资源进行抽象,统一管理、运维和分配,通过弹性和软硬协同优化,持续提升资源利用率。
在运维过程中,需要多维度的异构资源可观测性,包括监控、健康检查、告警、自愈等自动化运维能力。
对于宝贵的计算资源,如GPU和NPU等加速器,需要通过各种调度、隔离和共享的方法,最大限度地提高其利用率。
在此过程中,还需要持续利用云资源的弹性特征,持续提高资源的交付和使用效率。
二是,通过统一工作流和调度,实现 AI、大数据等多类复杂任务的高效管理。
对于大规模分布式AI任务,需要提供丰富的任务调度策略,如Gang scheduling、Capacity scheduling、Topology aware scheduling、优先级队列等,并使用工作流或数据流的方式串联起整个任务流水线。
同时,需兼容Tensorflow,Pytorch,Horovod,ONNX,Spark,Flink等各种计算引擎和运行时,统一运行各类异构工作负载流程,统一管理作业生命周期,统一调度任务工作流,保证任务规模和性能。
一方面不断提升运行任务的性价比,另一方面持续改善开发运维体验和工程效率。
此外,在计算框架与算法层面适配资源弹性能力,提供弹性训练和弹性推理服务,优化任务整体运行成本。
除了计算任务优化,还应关注数据使用效率的优化。为此,需要统一的数据集管理、模型管理和访问性能优化等功能,并通过标准API和开放式架构使其易于被业务应用程序集成。
对于大模型还有一个主要能力,就是能够在分钟级内准备好开发环境和集群测试环境,帮助算法工程师开始执行深度学习任务。
把端到端的 AI 生产过程通过相同的编程模型、运维方式进行交付。
结语
随着大模型等AI技术的不断发展,云原生技术将面临一些新的挑战和需求。
例如,如何快速适应新的开源大模型训练方法,以及如何提高大模型推理性能并确保其质量和稳定性。
同时,也需要关注一些前沿技术和创新能力,通过标准化和可编程的方式来集成,不断迭代业务应用,形成 AI+ 或 LLM+ 的新应用开发模式和编程模型。
但无论技术如何发展,为大模型提供快速、准确、稳定且成本可控的服务,保证大模型训练和推理的成本、性能和效率,都将成为企业为其价值买单的根本。