关键字: [亚马逊云科技中国峰会2024, 生成式Ai大模型, Kubernetes云平台训练, 分布式训练部署, 亚马逊云基础设施, 开源组件加速]
本文字数: 3500, 阅读完需: 18 分钟
导读
在这场演讲中,王宇博先生介绍了如何在Kubernetes云平台上训练和部署生成式AI大模型。他首先解释了生成式AI的概念和重要性,然后介绍了将机器学习应用于Kubernetes的优势,包括简化环境部署、更好利用资源以及提高容错性。接着,他详细阐述了如何利用亚马逊云科技的服务和开源组件,构建用于训练和推理生成式AI大模型的基础设施。他分享了Anthropic公司使用亚马逊云科技服务训练Claude 3模型的案例,以及在亚马逊EKS上部署Stable Diffusion模型的步骤。最后,他介绍了亚马逊云科技为开发者提供的生成式AI培训计划,帮助他们掌握相关技能。
演讲精华
以下是小编为您整理的本次演讲的精华,共3200字,阅读时间大约是16分钟。
在生成式人工智能(AI)的浪潮中,生成式AI大模型正成为开发者关注的焦点。作为亚马逊云科技的开发者关系专员,我将与您分享如何在Kubernetes云平台上训练和部署这些大模型。
生成式AI能够通过大模型的驱动,创造出新的内容、对话、图像和视频。从ChatGPT到Claude、GPT-4再到LLaMa,层出不穷的大模型推进着生成式AI的发展。企业开发者们更加关注如何将性能卓越且易于使用的生成式AI大模型应用于实际场景中。Claude 3在基准测试和实际场景中表现出色,吸引了越来越多企业开发者的青睐。
Claude 3的诞生离不开Anthropic公司与亚马逊云科技的密切合作。Anthropic利用了亚马逊云科技的一系列产品和服务,包括开源软件,为预训练这一大型模型提供了支持。训练一个大模型需要大量工作,包括底层硬件基础设施、GPU集群的高效通信、计算与存储之间的高速交互,以及分布式训练的考量等。Anthropic通过亚马逊云科技的整套解决方案构建起支撑大语言模型训练的集群。
Amazon EKS作为云上托管的Kubernetes云平台,使集群的伸缩更加简单、快速、高效和高可用。亚马逊云科技开源的Karpenter组件实现了自动伸缩,提高了集群扩展的性能和效果。S3的Model Checkpoint功能支持了模型的重训练、再训练和中间点应用,优化了模型处理。在EMR中的Spark用于数据处理、预处理、模型训练和模型推理,构建出卓越的效果。通过这一整套基础设施,前端的大模型训练和推理部署获得了支持,使训练作业能够扩展到数万个节点。
与此同时,Karpenter与EC2的Spot Instance相结合,极大降低了成本,使大语言模型的训练既高效又高可用,同时以更加经济和低廉的方式为企业带来更好的利润,实现了多方共赢。许多公司都利用了亚马逊云科技的底层基础设施来训练和构建大语言模型,这让许多开发者对如何将这一优秀的服务落地实践产生了浓厚的兴趣。
机器学习自上世纪中叶诞生以来,一直面临着计算能力、依赖性管理和安全合规等挑战。计算能力是构建机器学习的最重要因素和挑战,如何以更加经济的方式实现高性能集群的伸缩,来支撑训练或部署工作负载,是一个值得深思的问题,它不仅涉及技术层面,也关乎成本方面。社交媒体上曾流传一种说法,即大模型的主要成本集中在电费上,这句话非常准确。
依赖性管理也是一大挑战。许多机器学习都依赖于各种包,而这些包之间存在着复杂的依赖关系。如何使用统一的管理工具来更好地处理这些依赖关系,避免给机器学习带来负担,也是一个需要关注的问题。
安全和合规性则是另一个重要话题。如果要将生成式AI真正应用于生产环境,那么在整个过程中遵守国家的各种法律法规就变得至关重要。如何通过安全合规管理的工具、方法和措施,使生成式AI变得更加合规,一直是需要思考的问题。
将容器应用于机器学习在近十年来越来越成为主流,主要有以下几个考虑因素:首先,机器学习环境需要保持训练环境和推理环境的一致性,这对机器学习至关重要。将容器应用于整个机器学习环境中,包括各种软件包、库和依赖项,可以将它们打包在一个独立的单元中,确保在不同环境中拥有一致的配置,从而实现更好的扩展。
其次,容器的许多应用表明,机器学习和容器的结合是近几年才出现的趋势。容器具有便于部署、资源隔离和易于扩展的优势。基于容器的应用可以轻松构建在各种云平台、本地环境、边缘设备和移动端上,展现出了极高的灵活性。同时,容器也是一种有效的资源隔离手段,使不同的机器学习任务能够在同一物理机上运行,通过不同的容器进行构建,避免相互干扰,保持整个系统的安全性和稳定性。
最后,基于容器的机器学习可以更方便地扩展机器学习能力,提供更多的水平扩展方式,帮助将机器学习扩展到更大规模的集群上。此外,容器还拥有许多DevOps相关的工具,如版本控制、版本集成、CI/CD等,这些工具和应用都可以使容器和机器学习的结合获得更好的发挥。
Kubernetes已经成为容器编排的标准。通过Kubernetes这一自动化的容器编排工具,可以根据工作负载和资源利用率动态地扩展和伸缩机器学习资源,根据需求增加或减少资源,适应机器学习任务的需求。同时,Kubernetes还提供了高度灵活的调度手段,帮助更有效地管理机器学习任务,确保资源在机器学习中得到充分利用。Kubernetes还具有内置的容错机制,能够自动重启失败的容器实例,保证任务的高可用性。由于Kubernetes是一个成熟的生态系统,它可以与存储、日志、可观测性等多种工具集成,为机器学习提供全面的支持。
在Kubernetes上简化了环境部署、更好地利用资源,并通过弹性降低了故障率,提高了整体效率。由于Kubernetes是一个开放的生态系统,拥有许多组件,因此可以在云平台、本地环境和边缘端进行部署。在Kubernetes平台上,底层提供了计算、存储、网络和安全相关资源,通过统一的调度管理。此外,还有许多开源组件,不断提升开发者体验,使Kubernetes成为机器学习大模型部署和训练的绝佳平台。
接下来,我们将介绍如何基于亚马逊云科技云上托管的服务MACS来构建用于生成式AI的基础设施,包括训练和部署两个部分。
对于传统的机器学习模型,我们需要根据不同的应用收集不同的数据,进行基于不同算法的训练,然后将其应用于不同的场景。而对于现在的大模型,我们通常使用大量非标记数据,统一送入大模型算法中进行训练,然后根据不同的应用进行适当的调优和优化,将大模型应用于各种不同的工作负载。特别是现在多模态模型越来越成为市场热点,因此大模型的应用也越来越普及,对底层基础设施的要求也越来越高。
在生成式AI模型训练方面,我们面临着规模化、分布式和避免故障等挑战。构建一个生成式AI模型的训练需要大量的底层硬件资源,无论是选择英伟达的GPU资源,还是亚马逊云科技自研的训练芯片,都需要构建规模化的计算集群来支撑前端的模型训练。这可能需要数千甚至上万块GPU,因此需要自动化构建和配置基础设施,同时处理节点之间的规模问题,这是一个巨大的挑战。
训练大模型肯定需要进行分布式训练,我们需要考虑模型的分布式和数据的分布式,跨节点分割模型和数据,需要有相应的算法来实现,并将其落实在底层基础设施之上。
在训练过程中,我们需要尽可能避免故障,减小故障发生的概率,因为每次重复训练模型不仅耗时,成本也非常高昂。
为了解决这些挑战,亚马逊云科技提供了多种解决方案,帮助进行大规模生成式AI模型的分布式训练。首先,在底层芯片层面,亚马逊云科技提供了多种基础设施来帮助加速计算,包括自研的训练芯片TrainingOne和InfOne,以及与英伟达、Intel和AMD的合作产品,如V100、H100、H2200等,都可在亚马逊云科技平台上使用。
计算芯片只是一方面,如何最大限度发挥GPU的效能也需要上层软件环境的优化和支持。例如,亚马逊云科技为EKS特别优化了机器学习镜像Amazon ML Image,以及基于深度学习和大模型训练的Deep Learning Container,为大模型训练进行了软件层面的优化。同时,通过自动伸缩技术,可以保证分布式计算在计算层面的高效实施。
在存储层面,亚马逊云科技提供了不同层级的存储支持,包括文件存储、块存储等,通过文件系统EFS、EBS等,为分布式训练提供了高效的存储能力。
网络也是构建分布式能力的重要一环。如何加速网络能力,提供更快速的连接,以及与网络插件的集成,都可以帮助实现更好、更快的分布式EKS训练。
这里给出了一个使用MACS上的Training来训练LLaMa大模型的典型架构图。在这个架构中,使用Terraform创建了Amazon EKS集群,通过亚马逊自研的Training实例托管EKS节点,提供可扩展的资源来支持前端大模型训练。在容器镜像层面,选择了包含Amazon SDK的Docker镜像,SDK是与亚马逊云科技TrainingOne和InferenceOne配套的软件开发工具包,可以快速重用基于其他框架构建的机器学习库。
同时,在文件系统中选择了Amazon EFS作为共享文件系统,用于存取训练数据文件、系统脚本训练日志和模型检查点等,确保了训练中数据的一致性。
准备好计算资源、存储资源和容器镜像后,就可以开始部署了。需要准备数据集、构建训练脚本,确保训练环境就绪。一旦架构和数据就绪,就可以开始分布式训练。在这个架构中,使用了Kubeflow的MPI Operator来构建多Pod之间的分布式训练,每个工作Pod在亚马逊云科技的Training实例上运行,通过高速低延迟网络进行分布式训练。
在训练过程中,使用TensorBoard、Amazon Top等工具监控训练作业进度、系统使用率和加速器使用率,提供可视化能力和性能监控,确保训练获得更好的结果。训练完成后,会清理脚本,将模型存储在相关位置,避免资源浪费,节省成本。通过这一案例,我们可以看到如何在亚马逊云科技平台上训练其他开源大模型,如LLaMa、国产开源大模型等,获得卓越的效果。
除了训练,推理部署对于机器学习应用也至关重要。据调查,约90%的机器学习工作负载是推理工作负载,只有10%是训练工作负载。因此,优化推理端部署、节约成本是一个值得讨论的重点话题。
在推理端部署中,我们需要考虑规模、性能和成本三个方面。规模方面,需要根据需求扩大或缩小规模。例如,在ChatGPT刚推出时,由于前端访问量太大,后台系统无法及时扩大规模,导致无法为许多开发者提供良好的使用体验。对于使用云服务而言,这个问题相对容易解决。
性能方面,我们需要确保模型的高性能,以提供更好的推理体验。有时开发者和企业客户更关注准确率,有时则更关注延迟,需要根据实际情况进行权衡,获得最佳效果。
成本因素则是另一个重点。我们需要优化推理成本,在这里介绍了亚马逊云科技开源的Karpenter组件。Karpenter是一个基于Kubernetes的工具,可以帮助在云端更好地进行EKS上的机器学习工作负载构建,尽管它的初衷并非仅为机器学习工作负载设计。在许多开发者的实践中,Karpenter展现出了一些有助于机器学习工作负载在EKS上构建的特性。目前,不仅亚马逊云科技,许多开发者已经将Karpenter应用于其他云的Kubernetes托管平台,甚至本地环境,并取得了非常好的效果。
相较于传统的EBS资源调度方式,Karpenter的速度更快,可以更自动地调整节点大小,帮助机器学习工作负载获得更好的构建。因此,在EKS上,结合亚马逊云科技的优势和开源工具的优势,可以构建一整套开源的机器学习编排平台,快速编排基础设施和机器学习工作流。
亚马逊云科技提供了一个开源解决方案Kubeflow Stack,可用于端到端的机器学习编排。它是JupyterHub、Argo Workflow、Kubeflow和Ray四个开源组件的组合,可以帮助开发者在EKS平台上运行生成AI模型。
JupyterHub提供了一个共享的Notebook平台,加速实验过程,帮助数据工程师和Prompt Engineer进行模型构建和处理。Argo Workflow是一个开源的容器本地工作流引擎,可在Kubernetes上进行作业编排和并行处理。Kubeflow提供了结构化的流水线,用于模型微调。Ray则是一个开源的机器学习框架,利用开源组件构建分布式计算,扩展机器学习应用,支持分布式训练和处理超大规模数据。
Kubernetes作为主流的容器编排平台,与这些组件结合,可以加速端到端的机器学习编排。
此外,还有一个案例介绍了如何在EKS上部署Stable Diffusion模型。主要步骤包括:使用Terraform或Amazon EKS创建EKS集群,配置网络、安全组和权限;部署JupyterHub、Argo Workflow、Ray等基础组件;配置网络,如Nginx或负载均衡器;构建GPU节点组,托管部署GPU模型推理任务;使用Serving进行模型配置和部署在线推理服务;在正式上线前进行验证和优化。具体细节和代码可参考提供的链接。
在GitHub上,还有论坛可与工程师开发者互动,提供了许多在云平台上构建生成式AI的Kubernetes案例、参考模式和用例,如在亚马逊云科技上微调大模型、部署、构建多租户机器人和GitHub平台等。
亚马逊云科技还提供了生成式AI的培训计划,通过免费提供的最新生成式AI课程和工具,帮助开发者和非技术人员学习机器学习的训练和部署、构建生成式AI应用、发掘价值,最终成为竞争力强的复合型人才。该计划为开发者和非技术人员提供了成长平台,帮助大家通过大模型平台学习机器学习的训练和部署、构建生成式AI应用、发掘价值,最终成为竞争力强的复合型人才。
总之,亚马逊云科技提供了完整的基础设施和开源工具,支持在Kubernetes平台上高效训练和部署生成式AI大模型,满足企业开发者的需求,并为开发者提供了学习平台,帮助他们掌握前沿技术,增强竞争力。
简要总结一下,生成式AI正成为一股不可阻挡的浪潮,吸引着越来越多开发者的关注。亚马逊云科技提供了完整的基础设施和开源工具,支持在Kubernetes云平台上高效训练和部署生成式AI大模型,满足企业开发者的需求。
在训练方面,亚马逊云科技提供了多种加速计算芯片、优化软硬件环境、多层存储和网络优化等,支持大规模分布式训练。案例展示了如何利用亚马逊云科技服务训练LLaMa等开源大模型。
在推理部署方面,需要考虑规模、性能和成本三个因素。亚马逊云科技开源的Karpenter组件可以自动调节资源规模,优化推理成本。Kubeflow Stack等开源解决方案支持端到端的机器学习编排。
此外,亚马逊云科技还提供了生成式AI培训计划,帮助开发者和非技术人员掌握相关技能,成为复合型人才。通过论坛和案例分享,开发者可以学习在云平台上构建生成式AI应用的最佳实践。
总的来说,亚马逊云科技为开发者提供了完整的解决方案和学习资源,助力他们掌握生成式AI前沿技术,提高竞争力。
下面是一些演讲现场的精彩瞬间:
亚马逊云科技中国峰会2024上,王宇博介绍了他所负责的开发者关系业务,并邀请与会者关注其他相关演讲。
Claude3是一款强大的生成式AI大模型,在基准测试和实际场景中表现出色,受到企业开发者的广泛关注。
亚马逊云科技通过Kubernetes提供灵活的调度和管理机器学习任务的方式,确保资源充分利用,并具有容错机制和成熟的生态系统集成,为机器学习提供全面支持。
亚马逊云科技中国峰会2024:通过Kubernetes简化环境部署,利用资源弹性降低故障率,提升机器学习大模型部署训练效率
亚马逊云科技中国峰会2024:构建规模型AI模型需要大量底层硬件资源和自动化基础设施,是一项具有挑战的任务。
亚马逊云科技为GPU训练优化了软硬件环境,包括EKS机器学习镜像、深度学习容器和自动伸缩技术,实现分布式计算的高效实施。
亚马逊云科技中国峰会2024展示了在GitHub上的论坛,工程师开发者可以互动交流,并提供了在云平台上构建生成式AI的Kubernetes案例、参考模式和用例。
总结
生成式人工智能(AI)正在迅速发展,成为热门话题。本次演讲围绕在Kubernetes云平台上训练和部署生成式AI大模型展开,分为三个部分:
1)生成式AI概述及其重要性。生成式AI可创建新内容、想法,如对话、故事、图像和视频。大模型是其核心驱动力,通过预训练获得基础模型,再应用于不同场景。企业客户希望将高性能、易用的生成式AI大模型应用于实际场景。
2)在Kubernetes上进行机器学习的优势。容器化有利于环境一致性、部署便利性、资源隔离和扩展性。Kubernetes作为容器编排标准,可自动化管理资源调度和伸缩,提高容错性和可观测性,简化环境部署、资源利用和故障率降低。
3)基于亚马逊云科技服务构建生成式AI基础设施。亚马逊云科技提供了计算、存储和网络等底层资源,以及开源组件如EKS、Karpenter等,支持大规模分布式训练和高性能推理部署。案例展示了如何在亚马逊云科技上训练LLaMa模型和部署Stable Diffusion模型。亚马逊云科技还提供培训计划,帮助开发者掌握生成式AI技能。
总的来说,演讲强调了生成式AI的重要性,阐述了在Kubernetes上进行机器学习的优势,并介绍了亚马逊云科技提供的一整套解决方案,支持在云平台上高效训练和部署生成式AI大模型。
2024年5月29日,亚马逊云科技中国峰会在上海召开。峰会期间,亚马逊全球副总裁、亚马逊云科技大中华区总裁储瑞松全面阐述了亚马逊云科技如何利用在算力、模型、以及应用层面丰富的产品和服务,成为企业构建和应用生成式 AI 的首选。此外,活动还详细介绍了亚马逊云科技秉承客户至尚的原则,通过与本地合作伙伴一起支持行业客户数字化转型和创新,提供安全、稳定、可信赖的服务,以及持续深耕本地、链接全球,助力客户在中国和全球化发展的道路上取得成功。