十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

SkyPilot 与 Sky Computing:将碎片化云基础设施统一为一个 AI 超级计算机

SkyPilot 与 Sky Computing:将碎片化云基础设施统一为一个 AI 超级计算机 SkyPilot 与 Sky Computing将碎片化云基础设施统一为一个 AI 超级计算机【免费下载链接】skypilotThe AI Compute Platform for frontier teams. SkyPilot turns fragmented AI compute into one AI supercomputer, so frontier AI teams build custom intelligence faster.项目地址: https://gitcode.com/GitHub_Trending/sk/skypilot面对云厂商数量、区域可用区、实例类型与定价模式的指数级组合现代 AI 团队正在被云基础设施的复杂性淹没。Sky Computing 是由 UC Berkeley 提出的一种计算范式主张将团队分散的云基础设施抽象为一个统一的天空Sky计算池。作为这一概念的开源实现SkyPilot 以统一的接口与智能优化器为核心让 AI 工作负载可以在多集群、多云、多区域的异构算力上一次定义、随处运行。读完本文你将理解 Sky Computing 的提出动机、核心设计、四大演进层次以及 SkyPilot 在 docs/source/sky-computing.rst 所定义愿景下的具体落地形态。问题背景云基础设施的爆炸性复杂性今天的云基础设施在复杂性上已经彻底爆炸。组织被迫在三个维度上面对组合数量级庞大的基础设施选择位置Locations单个云内就有几十个区域regions和上百个可用区zones。团队还越来越多地采用多集群、多云策略——3 个以上的超大规模云厂商hyperscalers以及 10 个以上的专用云。硬件Hardware每个云有 500 种实例类型并持续涌现新的加速器如 GPU、TPU。定价模型Pricing models按需on-demand、预留reserved与可抢占的 spot 实例并存每种都有不同的价格与可用性。(位置, 硬件, 定价模型)的搜索空间是组合爆炸级的即使在单个云内部也是如此。同时由于可用性与价格随时间动态变化且因位置而异这个搜索空间还是动态的。原本看似简单的任务——例如在我任意一个美国区域/集群上以最低成本运行任务或在 AWS 和 GCP 上同时监控和管理作业——会变得成本极高大量宝贵的工程时间被投入到掩盖各种基础设施选择之间的差异上工作负载被迫运行在次优的选择上以启发式方式简化搜索空间从而浪费了利用率、成本节省空间与算力容量。Sky Computing统一接口 跨搜索空间优化器为了对抗这种复杂性UC Berkeley 在《From Cloud Computing to Sky Computing》HotOS 2021与《The Sky Above The Clouds》白皮书这两篇论文中提出了Sky Computing。简而言之Sky Computing 将团队多样化的云基础设施组合成一个统一的池即一片天空Sky。Sky 由两个组件构成用于简化并利用这个复杂搜索空间统一的接口在异构云基础设施上运行工作负载的统一界面优化器为每个工作负载寻找最优基础设施选择最便宜且最可用。这两个组件协同工作让复杂的云基础设施变得简单易用统一 Sky 接口允许工作负载只定义一次、用同一套接口即可在不同基础设施上运行Sky 优化器横跨搜索空间利用计算池中动态变化的价格与可用性差异。统一接口的落地Task 的一次定义、随处运行在 SkyPilot 中这个统一接口的核心载体是 Task 与一份简单的 YAML 定义。以官方 Quickstart 中的 hello_sky.yaml 为例resources: # Optional; if left out, automatically pick the cheapest cloud. infra: k8s/coreweave # Or k8s/my-neocloud; aws; gcp; ... # 8x NVIDIA B200 GPU accelerators: B200:8 # Working directory (optional) containing the project codebase. # Its contents are synced to ~/sky_workdir/ on the cluster. workdir: . # Typical use: pip install -r requirements.txt # Invoked under the workdir (i.e., can use its files). setup: | uv pip install torch # Typical use: make use of resources, such as running training. # Invoked under the workdir (i.e., can use its files). run: | echo Hello, SkyPilot! nvidia-smi这份 YAML 定义了任务的四个核心组成部分resources任务必须运行在哪种云资源上如加速器、实例类型、workdir将被同步到实例上的工作目录、setup任务执行前需运行的命令在工作目录下执行、run实际执行任务的命令在工作目录下执行。注意所有字段都是可选的——当省略infra时SkyPilot 会自动挑选最便宜的云。这意味着同一个任务文件可以在 Kubernetes 集群、专用 GPU 云或超大规模云之间无缝迁移这正是统一接口的直接体现。通过sky launch -c mycluster hello_sky.yaml启动后SkyPilot 会自动完成根据资源约束选择云与虚拟机 → 在该云上开通或复用集群 → 同步 workdir → 执行 setup → 执行 run。同一任务还可以用sky exec mycluster hello_sky.yaml在已存在的集群上轻量执行跳过开通与 setup或用 Python SDK 的sky.Task/sky.launch等价完成。优化器的落地SkyPilot Optimizer 的源码实现Sky 优化器在 SkyPilot 中对应 sky/optimizer.py 中的Optimizer类。其入口方法Optimizer.optimize接收一个 DAG任务依赖图以成本或时间为优化目标为图中每个节点找到最佳执行计划见 sky/optimizer.pydef optimize(dag, minimizecost, blocked_resourcesNone, quietFalse): Find the best execution plan for the given DAG.优化过程会为 DAG 添加虚拟的 Source/Sink 节点以便统一处理多源/多汇场景随后通过动态规划_optimize_by_dp见 sky/optimizer.py或整数线性规划_optimize_by_ilp见 sky/optimizer.py求最优解在执行前_fill_in_launchable_resources见 sky/optimizer.py会补齐各任务在所有可用基础设施上的候选资源集合供优化器遍历。从源码结构可以推断这个优化器正是论文所述cut across the search space横跨搜索空间思想的工程化实现它把在哪朵云、哪个区域、哪种机型、哪种定价模型上跑这一系列决策交给算法而不是交给工程师手工拍板。使用 Sky 的三重收益借助统一接口与跨搜索空间的优化器云用户及其工作负载可以获得以下收益云更易用Cloud is easier to use统一接口简化了基础设施天然多云就绪成本更低Lower costs工程时间不再浪费在处理云基础设施差异上Sky 为每个工作负载优化成本大型组织由于可移植性而获得定价谈判筹码容量更高Higher capacity工作负载可以在更大的计算池上运行拥有丰富的位置、硬件与定价模型选择。为什么 AI 从 Sky Computing 中获益最大AI 是高度容量密集与成本密集的比以往的云工作负载高出若干个数量级。为了提升容量、降低成本AI 团队正在在任何地方、以任何可得的形式使用算力位置AI 团队混用超大规模云AWS/GCP/Azure 等、GPU 云CoreWeave/Lambda 等、单个云内的多个区域以及多个 Kubernetes 集群硬件不同任务使用不同 GPU 代际如 H100 用于训练、L4 用于推理AMD GPU超大规模云上的专用加速器如 TPU、Trainium、Inferentia定价模型团队混合使用预留、按需与 spot GPU 来节省成本。这些选择经常相互交织例如常见的做法是在云 X 上用预留 H100 做训练在云 Y 上用 spot L4 做大规模批量推理。因此AI 工作负载天然要求在这个复杂搜索空间中管理大量计算选择——Sky Computing 提供了自然解Sky 为 AI 团队提供统一接口方便且可移植地在异构算力上运行 AI同时智能编排团队的全部 AI 算力选择带来显著的成本节省与更高的计算容量。SkyPilotSky Computing 的第一个实现SkyPilot 诞生于提出 Sky Computing 的同一个 UC Berkeley 实验室sky.cs.berkeley.edu 相关团队。它是 Sky 的第一个实例化产品最初的使命是为最重要的一类工作负载——AI 与计算密集型工作负载——实现 Sky Computing。社区规模根据官方文档SkyPilot 已被约上百家领先公司与 AI 团队广泛采用最初的开发团队由 Berkeley 博士/研究员组成如今社区已成长为 100 贡献者来自众多组织。BYOC 模式SkyPilot 以 BYOCBring Your Own Cloud自带云模式运行——所有资源都开通在用户自己的云账户、VPC 与集群中云凭据与治理边界完全由用户掌控。开源许可SkyPilot 以宽松的 Apache 2.0 许可开源见仓库根目录 LICENSE并在持续活跃开发中。统一抽象在 docs/source/overview.rst 中SkyPilot 将这种统一池落地为三大核心抽象——集群Clusters、作业Jobs、服务Services覆盖 AI 生命周期中的批处理、开发、预训练、微调、超参搜索、批量推理与在线服务等全部场景。无论拥有多少个集群、云或区域用户都用同一套接口提交、运行和管理工作负载。BYOC 的落地接入已有基础设施与 BYOC 模型对应SkyPilot 通过各基础设施的原生认证方式kubeconfig、云凭据、SSH接入用户已有的 Kubernetes 集群含 EKS/GKE/AKS 等托管集群、Slurm 集群、云 VM 与裸机节点池。例如在 YAML 或 SDK 中通过infra字段即可声明使用范围resources: infra: k8s # 使用任意可用 Kubernetes context # infra: k8s/my-cluster1 # 或指定某个 context # infra: aws/us-east-1 # 或指定云与区域 # infra: ssh/my-node-pool # 或指定 SSH 节点池容错与恢复的落地面向 spot 与故障场景针对 AI 工作负载频繁使用 spot 实例、硬件可能故障的现实SkyPilot 的受管作业managed jobs内置了自动恢复能力。从 sky/jobs/README.md 的状态机可见作业进入RECOVERING状态可能对应三类触发原因FAILURE集群抢占/故障或用户代码失败、EMERGENCY控制器遭遇内部错误按预算与指数退避重试、RESTART主动重启。这为在 spot 实例上运行训练与推理并自动恢复提供了工程级保障也正是原文档中battle-tested job recovery所指的实现基础。什么是你的 SkySky Computing 的四级演进层次正如自动驾驶拥有不同的自动化等级Level 1-5团队也可以以递增的级别和收益来采用 Sky Computing 与 SkyPilot。从单集群到多云收益逐级放大级别一固定集群如 Kubernetes、Slurm面向 AI 用户习惯设计的、简单的作业提交与管理接口支持在你的集群上运行集群、作业与服务成本节省Autostop自动停机、队列queueing与更高的硬件利用率面向未来未来新增其他集群或云时无需重新改造工具链。级别二单个云的单一区域/可用区自动重试、自动回退的供给器provisioner指定多个硬件回退目标SkyPilot 会自动优化并自动重试以对抗 GPU 短缺久经考验的作业恢复能力包括在 spot 实例上的训练与服务简单的工作负载打包见 Quickstart把现有 AI 项目包装进一份简单的 SkyPilot YAML所有基础设施琐事全部交给 SkyPilot加上以上级别的全部收益。级别三单个云的多个区域单个作业可利用多个区域提升 GPU 可用性与恢复速度模型副本可跨区域分布提升可用性与成本节省加上以上级别的全部收益。级别四多云或多集群将所有基础设施合并为一个统一池你的Sky获得更高的利用率、成本节省与容量加上以上级别的全部收益。值得注意的是无论团队处于哪个级别其工作负载的描述方式都保持一致——这正是未来无忧future-proofness的关键级别之间的跃迁不需要重写任务定义只需要扩充 SkyPilot 可感知的infra搜索空间。生态系统Sky Computing 技术栈的后续延伸围绕 Sky Computing 这一范式UC Berkeley 的系统社区及更广范围已经产出了多个后续项目以扩展 Sky Computing 技术栈SkyServeSkyPilot 的跨区域、跨云 AI 推理服务库相关用户文档见 docs/source/serving/Cant Be Late面向 SkyPilot 的高级 spot 实例调度策略NSDI 24 最佳论文Skyplane快速且高性价比的跨云数据传输开源工具Cloudcast高吞吐、成本感知的跨区域与跨云组播multicastFogROS2基于 SkyPilot 利用 Sky Computing 的开源云机器人平台以及更多正在推进中的项目。此外SkyPilot 系统本身发表于 NSDI 2023论文与 talk其研究成果已接受学术界检验。如何参与与上手试用 SkyPilot通过 Quickstart 在 5 分钟内体验 Sky Computing——先完成 安装说明然后定义你的第一个 Task 并用sky launch启动之后可用sky status查看跨区域、跨云的全部集群用ssh cluster直连集群用sky jobs launch扩展到上百个受管作业并通过sky dashboard在一个面板中观察集群与作业状态。反馈与交流可通过项目 GitHub 仓库提交 issue 或在社区 Slack 中交流。贡献代码SkyPilot 欢迎社区贡献参与方式见仓库根目录的 CONTRIBUTING.md社区行为规范详见 CLAUDE.md 与 AGENTS.md 中的开发约定。更丰富的可运行示例分散在仓库 examples/覆盖分布式训练、批量推理、spot、serving、Kubernetes、TPU 等场景与 llm/覆盖 vLLM、SGLang、DeepSeek、Llama 系列等大模型工作负载目录中是理解统一接口 优化器范式的绝佳实战素材。结语Sky Computing 的价值主张清晰而有力面对组合爆炸的位置、硬件、定价模型搜索空间与其让工程师逐项适配不如用统一接口 全局优化器将碎片化的算力编织成一片天空。作为这一理念的开源实现SkyPilot 通过 BYOC 模式尊重用户的既有云账户与治理边界通过四级演进层次让任何规模的团队都能按需获益——无论你目前只拥有一台固定集群还是横跨多个云厂商与 GPU 云的庞大舰队。【免费下载链接】skypilotThe AI Compute Platform for frontier teams. SkyPilot turns fragmented AI compute into one AI supercomputer, so frontier AI teams build custom intelligence faster.项目地址: https://gitcode.com/GitHub_Trending/sk/skypilot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表