概念:天空计算#
SkyPilot 是一个开源的天空计算框架。
问题:云基础设施的爆炸性复杂性#
今天的云基础设施在复杂性上已经爆炸式增长。组织被迫处理在三个维度上组合起来的大量基础设施选择:
位置:单个云中的数十个区域和数百个区域。团队也越来越多地采用多集群和多云(3+个超大规模云,10+个专用云)。
硬件: 每个云500+实例类型;许多新的加速器(例如,GPU,TPU)。
定价模型:按需、预留和抢占式实例,每种都有不同的定价和可用性。
(locations, hardware, pricing models) 的搜索空间在组合上是巨大的,即使在一个云内部也是如此。它也是动态的,因为可用性和价格会随时间变化,并且因地区而异。看似简单的任务,如“以最低成本在我的任何美国地区/集群中运行作业”或“在AWS和GCP上监控和管理作业”,变得非常昂贵:
宝贵的工程时间被投入到掩盖基础设施选择之间的差异上。
工作负载被迫在次优选择上运行(为了启发式地简化搜索空间),浪费了利用率、成本节约和容量。
天空计算#
为了解决这个问题,天空计算最近在加州大学伯克利分校的两篇论文中被提出: 从云计算到天空计算 和 云层之上的天空(白皮书)。
简而言之,Sky Computing 将团队多样化的云基础设施整合成一个统一的资源池,即“天空”。 Sky 包含两个组件,用于简化和利用复杂的搜索空间:
一个统一的接口,用于在不同的云基础设施上运行工作负载。
一个优化器,用于为每个工作负载找到最佳的基础设施选择(最便宜且最可用)。
这两个组件使得使用复杂的云基础设施变得简单:
统一的Sky接口允许工作负载使用相同的接口一次性指定,并能够在不同的基础设施上运行。
Sky优化器跨越搜索空间,以利用计算池中(动态变化的)定价和可用性差异。
通过Sky,云用户及其工作负载获得以下好处:
云更易于使用:通过统一的接口,基础设施得到简化并支持多云。
降低成本:节省了处理云基础设施的工程时间。Sky优化了每个工作负载的成本。由于可移植性,大型组织获得了定价优势。
更高的容量:工作负载现在可以在更大的计算池上运行,有多种地理位置、硬件和定价模型的选择。
为什么人工智能受益于天空计算?#
人工智能是高度容量和成本密集型的,比之前的云工作负载高出许多数量级。为了增加容量并降低成本,人工智能团队正在使用任何地方和任何形式的计算。
位置:AI团队使用混合的超大规模云服务(AWS/GCP/Azure/..)、GPU云(CoreWeave/Lambda/..)、云中的多个区域和/或多个Kubernetes集群。
硬件:针对不同任务的不同GPU世代(例如,H100用于训练,L4用于推理);AMD GPU;超大规模计算平台上的加速器(例如,TPU、Trainium、Inferentia)。
定价模型:团队使用预留、按需和现货GPU的组合来节省成本。
这些选择经常交织在一起:例如,AI团队通常会在云X上使用预留的H100进行训练,并在云Y上使用spot L4进行大规模批量推理。 因此,AI工作负载本质上需要在复杂的搜索空间中管理许多计算选择。
天空计算提供了一个自然的解决方案。 天空为AI团队提供了一个统一的接口,使他们能够轻松且可移植地在多样化的计算资源上运行AI。 此外,天空智能地协调团队选择的AI计算资源,从而大幅节省成本并提高计算能力。
SkyPilot 和天空计算#
SkyPilot 诞生于提出天空计算的同一个加州大学伯克利分校实验室。 SkyPilot 是 Sky 的第一个实例化项目,它的启动是为了为一类重要的工作负载实现天空计算:AI 和计算密集型工作负载。
在过去的几年里,SkyPilot 已被约100家领先的公司和AI团队广泛采用。 虽然最初的开发团队由伯克利的博士/研究人员组成,但今天的SkyPilot社区已经发展到 来自许多组织的100+ 贡献者。
SkyPilot 在 BYOC(自带云)模式下运行,所有资源都在用户现有的云账户、VPC 和集群中启动。
SkyPilot 是在宽松的 Apache 2 许可证下开源的,并且正在 GitHub 上积极开发。
如果我只有一个云:天空计算的层次#
就像自动驾驶有不同的自主级别(例如,1-5级),人们可以采用Sky Computing和SkyPilot来逐步提高“级别”并获得更多好处。
对于使用固定集群的用户(例如,Kubernetes, Slurm),SkyPilot 提供:
一个简单的界面,用于提交和管理AI工作负载,专为AI用户的人体工程学设计。
支持在您的集群上进行开发集群、作业和服务。
成本节约:自动停止、排队和更高的硬件利用率。
未来保障:未来添加其他集群或云时无需重新配置。
对于使用单一云区域/区域的用户,SkyPilot 提供:
自动重试、自动回退配置器:指定多个硬件回退目标,SkyPilot 将自动优化并自动重试以应对 GPU 短缺。
经过实战检验的工作恢复能力,包括在现货实例上进行训练和服务。
简单的工作负载打包: 将您现有的AI项目打包成一个简单的SkyPilot YAML文件,所有基础设施任务都将为您处理。
加上以上所有好处。
对于使用一个云服务的多个区域的用户,SkyPilot 提供:
支持单个作业利用多个区域以提高GPU可用性和更快的恢复速度。
支持模型的副本跨越多个区域,以提高可用性并节省成本。
加上以上所有好处。
对于使用多个云或集群的用户,SkyPilot
将您所有的基础设施整合到一个统一的池中(您的天空),以提高利用率、节省成本和增加容量。
加上以上所有好处。
了解更多#
今天,加州大学伯克利分校的系统社区——以及更广泛的社区——已经产生了几个后续项目来扩展Sky Computing堆栈:
Can’t Be Late: SkyPilot的高级现货实例调度策略(NSDI '24最佳论文)。
Skyplane: 开源工具,用于快速且经济高效的跨云数据传输。
Cloudcast: 高吞吐量、成本感知的跨区域和跨云多播。
FogROS2: 开源云机器人平台,通过SkyPilot利用天空计算。
…还有几个正在筹备中。
要了解更多关于SkyPilot的信息,请参考项目公告博客文章,或SkyPilot NSDI 2023论文和演讲。
要了解更多关于天空计算的信息,请参阅天空计算白皮书。
参与其中#
尝试使用SkyPilot:通过快速入门在5分钟内体验您的云中的天空计算。
分享您的反馈:在SkyPilot Slack上与团队聊天,或在我们的GitHub上留言。
贡献: 我们欢迎社区的贡献!请参阅 CONTRIBUTING。