SkyPilot:构建在多云之上的 ML 和数据科学,可节约 3 倍以上成本

简介: 导读:用于 ML 和数据科学的云计算已经比较困难,如果你想要通过成本优化削减成本,你的整体成本包括资源和人力,可能会不降反增。

作者:Zongheng Yang(在加州大学伯克利分校研发 SkyPilot)


整理:高现起


导读:用于 ML 和数据科学的云计算已经比较困难,如果你想要通过成本优化削减成本,你的整体成本包括资源和人力,可能会不降反增。不想在机器闲置时停止?因为这样你可能需要反复的启停,并且重新配置环境或者准备数据。想要通过使用抢占实例降低成本?解决抢占实例的调度问题也可能会花上几周时间。如何很好的利用地区之间的巨大价格差异,或者不同云厂商之间更大的价格差异来降低成本?


如果云上有一个简单、统一的 ML 和数据科学接口,具有成本效益、容错性、多区域和多云,是不是会更好?今天就给大家介绍一个项目,会从以下几个方面展开:

  • SkyPilot 项目介绍
  • SkyPilot 工作原理
  • SkyPilot 使用场景为什么多云成为新常态?
  • 尝试 SkyPilot


以下为详细内容。

SkyPilot 项目介绍

SkyPilot,由加州大学伯克利分校的 Sky Computing 实验室主导研发的一个开源框架,用于在任何云上无缝且经济高效地运行 ML 和数据科学批处理作业。它的目标是让云比以往任何时候都更容易使用,成本更低,并且全程不需要云计算相关的专业知识。



近一年多来,SkyPilot 一直在加州大学伯克利分校的天空计算实验室积极开发。它被 10 多个组织用于各种用例,包括:GPU/TPU 模型训练(成本节省 3 倍)、分布式超参数调优以及 100 多个 CPU 抢占实例上的生物信息学批处理作业(在持续使用的基础上成本节省 6.5 倍)。

SkyPilot 工作原理

给定一个作业及其资源需求(CPU/GPU/TPU),SkyPilot 会自动找出哪些位置(可用区/区域/云厂商)具有运行该作业的计算能力,然后将其发送到成本最低的位置执行。

a2.jpg


SkyPilot 将作业发送到最佳位置(可用区、区域、云厂商)以获得更好的价格和性能。


SkyPilot 自动执行云上正在运行的作业的繁重工作:

  • 可靠地配置集群,如果发生容量或配额错误,自动故障转移到其他位置
  • 将用户代码和文件(从本地或云存储桶)同步到集群
  • 管理作业排队和执行



SkyPilot 还大大减少了不断增长的云费用,通常减少 3 倍以上:


  • 自动找到所需资源的最便宜的可用区/区域/云厂商(节省约 2 倍的成本)
  • Managed Spot,通过使用抢占实例节省约 3-6 倍的成本,并自动从抢占中恢复
  • Autostop,自动清理空闲集群——可避免的云超支的最大贡献者

SkyPilot 的使用场景


在过去的几个月里,逐渐向来自 10 多个组织的数十名 ML/数据科学从业者和研究人员推荐了 SkyPilot。从用户反馈中,看到该系统确实解决了他们遇到的常见痛点。


出现了几种使用场景,从交互式开发到跨区域或跨云厂商运行许多的项目,再到横向扩展:

a3.jpg


SkyPilot 已被用于交互式开发(例如,运行 Jupyter 的 CPU 服务器)、管理许多项目(可以在不同的云厂商)或扩展数百个作业。

在 GPU 和 TPU 上进行 ML 训练和超参数调整

伯克利人工智能研究所 ( BAIR ) 和斯坦福大学的领先机器学习团队一直在使用 SkyPilot 在云端运行机器学习训练。用户通常在不更改代码的情况下启动他们现有的 ML 项目。可靠地配置 GPU 实例、在集群上排队许多作业以及同时运行约 100 个超参数试验是用户反馈的主要优点。此外,用户在 AWS 上运行的相同作业只需更改一个参数就可以在 GCP/Azure 上运行。


用户还使用 SkyPilot 在谷歌的 TPU 上训练大模型。研究人员可以通过 TRC 程序申请免费的 TPU 访问权限,然后使用 SkyPilot 快速上手 TPU。

CPU 抢占实例上的生物信息学批处理作业,成本节省 6.5 倍

生物研究所 Salk 的科学家们一直在使用 SkyPilot 在抢占实例上运行每周定期执行的批处理作业任务。这些作业分别操作序列的不同部分,之前一直以一种令人尴尬的情况并行。使用 SkyPilot 的 Managed Spot 功能之后,Salk 的科学家们可以在数百个 CPU 抢占实例上进行计算,与使用按需实例相比成本降低了 6.5 倍,并且与使用繁忙的本地集群相比显著缩短了任务处理时间。Salk 用户反馈到,通过抽象化云计算技术,SkyPilot 让他们能够更专注于科学研究而非云端技术细节问题。

使用 SkyPilot 构建基于多云的应用

一些行业合作伙伴已经在 SkyPilot 的 API 之上构建了更多云厂商的 lib 库。SkyPilot 使更多应用从第一天起就可以使用与云厂商无关的界面在不同的云上运行(这与 Terraform 等工具形成对比,后者虽然功能强大,但专注于较低级别的基础设施而不是作业,并且需要特定于云厂商的模板)。开发人员喜欢开箱即用地在不同云厂商可靠地配置和运行作业的能力,这样他们就可以专注于应用的业务逻辑,而不是熟悉各个云厂商的功能操作。

为什么多云成为新常态?

多云和多区域的增长趋势促使构建了 SkyPilot。出于战略原因,企业组织越来越多地使用多个公有云,例如更高的可靠性、避免云供应商锁定、更强的议价能力等。


即使从用户(例如,机器学习工程师或数据科学家)的角度来看,也有很多理由可以根据工作负载使用多云:

减少开支

使用相同/相似硬件的最优惠价格的云厂商可以自动节省大量成本。以 GPU 为例。在 2022 年底时,Azure 拥有最便宜的 NVIDIA A100 GPU 实例,GCP 和 AWS 分别收取 8% 和 20% 的溢价。


a4.png


相同配置硬件的云价格差异。每个云最便宜区域的按需价格。

CPU 也存在价格差异。对于最新的通用实例(相同的 vCPU/内存),差异可能超过 50%(见上图)。

利用一流的硬件

正处于计算机体系结构的新黄金时代,专用硬件正在推动性能和效率的大幅提升。毫不奇怪,云厂商越来越多地提供定制硬件以从竞争中脱颖而出。例子包括:

  • GCP 用于高性能 ML 训练的 TPU
  • 用于经济高效的 ML 推理的 AWS Inferentia 和用于 CPU 工作负载的 Graviton 处理器
  • 用于机密计算的 Azure 英特尔 SGX


使用更适合工作负载的硬件,可以显著的降低成本或提高性能,一般这些硬件位于不同的云厂商那里。


增加稀缺资源的可用性

理想的云实例很难获得。使用 NVIDIA V100 和 A100 等高端 GPU 的按需实例经常售罄。具有 GPU 或大量 CPU 的抢占实例甚至几乎不可能获得。根据经验,一般需要等待几小时或者几天的时间才能获取这些稀缺资源。


为了提高成功获取此类资源的机会,一种自然的方法是使用多云。(假设每个云有 40% 的机会提供资源;使用 3 个云将机会增加到 1–0.6³ = 78%。)

单云用户也想要多个区域

有趣的是,上述所有好处也都适用于单云的多个区域:


(1) 不同可用区/区域的价格差异也很大。对于普通的 GPU/CPU,跨区按需价格差异可能高达20%(见下图)。对于现货实例,价格差异很容易超过 3 倍。简单地说:用户可以通过在同一个云厂商跨多个可用区/区域购买来降低成本。


a5.jpg


云内价格差异。(“+20%”表示最贵的区域收费是最便宜的区域的 1.2 倍。)


(2) 硬件/服务产品因云区域而异。例如,GCP 的 TPU V3 仅在其 35 个全球区域中的 2 个区域可用。


(3) 分散从多个区域获取稀缺资源更容易成功。

尝试 SkyPilot

项目地址:https://github.com/skypilot-org/skypilot


以上是文章的主要内容,作为融合云/多云管理/私有云/FinOps 厂商,云联壹云会持续关注这些领域的动态,分享相关的信息和技术,可以通过的官网(yunion.cn)或关注的公众号(云联壹云)来获取最新的信息,感谢大家的时间。


原文地址:https://www.yunion.cn/article/html/20230515.html

其他推荐阅读

Flexera 2023 云状态报告解读


新品发布 | Cloudpods 3.10版本上线!


企业面对FinOps,到底能做些什么?总结了4个方面

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
1月前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
83 1
|
2月前
|
机器学习/深度学习 人工智能 并行计算
GPU的优势主要体现在哪些方面呢
【10月更文挑战第20天】GPU的优势主要体现在哪些方面呢
90 0
|
4月前
|
监控 持续交付 开发者
资源紧张下的创新之道:揭秘高效可扩展架构的设计秘诀,让技术与成本达到完美平衡!
【8月更文挑战第22天】在科技行业的快节奏发展中,设计出经济高效且可扩展的架构是每位工程师面临的挑战。本文提出五大策略:精准需求分析确保目标清晰;模块化设计如微服务架构促进独立开发与扩展;选择成熟技术栈及利用云服务提升系统效能;实施自动化流程如CI/CD加速开发周期;建立全面监控体系保障系统健康。遵循设计原则如SOLID,结合这些策略,即便资源有限也能构建出高质量、灵活应变的系统。
52 0
|
4月前
|
缓存 负载均衡 架构师
优化大型数据处理系统的性能:从设计到实施
在数据驱动的世界中,大型数据处理系统的性能对企业运营至关重要。本文将探讨如何通过优化设计、选择合适的技术栈以及实施高效的策略来提升数据处理系统的性能。我们将深入分析数据库设计优化、并发处理、数据缓存策略、和数据流管理等关键领域,提供实际案例和技术建议,以帮助开发人员和系统架构师构建高效、可扩展的数据处理系统。
|
4月前
|
机器学习/深度学习 并行计算 调度
构建高效GPU算力平台:挑战、策略与未来展望
【8月更文第5天】随着深度学习、高性能计算和大数据分析等领域的快速发展,GPU(图形处理器)因其强大的并行计算能力和浮点运算速度而成为首选的计算平台。然而,随着模型规模的增长和技术的进步,构建高效稳定的GPU算力平台面临着新的挑战。本文旨在探讨这些挑战、应对策略以及对未来发展的展望。
450 1
|
5月前
|
机器学习/深度学习 人工智能 弹性计算
|
6月前
|
人工智能 自然语言处理 算法
AI 应用之成本节约实践
本文探讨了如何避免高成本的模型微调,通过任务拆解和提示词调优实现业务目标。文中提到,当大语言模型不能直接满足需求时,微调涉及大量工作,包括数据准备、模型训练及GPU资源。为降低成本,作者提出了两步方法:1) 任务拆解,将复杂任务分解为简单子任务,利用模型优势处理部分;2) 提示词调优,优化输入以引导模型更高效地响应。虽然这可能不适用于所有情况,但能有效减少对模型微调的依赖。
161 1
|
7月前
|
机器学习/深度学习 资源调度 算法
利用机器学习优化数据中心的能效管理
【5月更文挑战第31天】 在数据中心管理和运营中,能效优化是降低运营成本和减少环境影响的关键。本文提出了一种基于机器学习的方法来动态调整数据中心的资源分配,旨在提高整体能源效率。该方法通过分析历史数据和实时负载信息,预测未来工作负载并相应地调整硬件配置。实验结果表明,与传统的静态管理策略相比,所提出的动态管理策略可以显著降低能耗,同时保持服务质量。
|
7月前
|
机器学习/深度学习 数据采集 算法
利用机器学习优化数据中心的能耗管理
在数据中心管理和运营领域,能耗优化是提高经济效益和环境可持续性的关键。本文提出了一种基于机器学习的方法来优化数据中心的能源消耗,通过实时监控与智能调节系统参数以降低总体能耗。研究采用多种算法对比分析,包括监督式学习、非监督式学习以及强化学习,并在此基础上设计出一套综合策略。该策略不仅提升了能效比(PUE),还保证了系统的高可靠性和性能稳定性。文章的结构首先介绍数据中心能耗管理的重要性,然后详细阐述所提出的机器学习模型及其实现过程,最后通过实验结果验证了方法的有效性。
|
机器学习/深度学习 人工智能 并行计算
AI 时代的 GPU 生存工具包,每个开发人员必须知道的最低限度
AI技术迎来了“百花齐放”的春天,这既是我们的挑战也是机会。而AI+千行百业创造了无限可能,也为独立开发者提供了大量的资源、支持以及学习经验的机会。本文分享一篇摘录自Hexmos 期刊的AI 时代的 GPU 生存工具包。
79988 7