SkyPilot 计算平台概览:用 Cluster / Job / Service 三大抽象统一你的全部 AI 算力

发布时间:2026/9/16 1:44:16

SkyPilot 计算平台概览:用 Cluster / Job / Service 三大抽象统一你的全部 AI 算力 SkyPilot 计算平台概览用 Cluster / Job / Service 三大抽象统一你的全部 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/skypilotSkyPilot 将分散的云基础设施——Kubernetes 集群、Slurm 集群、各云厂商与区域的虚拟机以及已有的裸机/物理机器——聚合为一个统一的算力池并针对 AI 工作负载批量处理、开发、预训练、微调、超参搜索、批量推理、在线推理服务进行优化。读完本文你将掌握 SkyPilot 的三大核心抽象Cluster、Job、Service及与其对应的核心命令理解如何把自有基础设施BYOC接入 SkyPilot 实现统一管理并了解单机使用与团队集中部署两种形态。一图看懂SkyPilot 在算力管理中的位置SkyPilot 的上层是面向 AI 全生命周期的三大抽象底层则是它能够接入的异构基础设施。下图直观展示了这种“一个接口管所有算力”的结构从图中可以看到SkyPilot 处于上层 AI 工作负载与下层异构基础设施之间底层既包括 Kubernetes、Slurm、20 云厂商的 VM也包括本地服务器on-prem。这正是 SkyPilot 的核心定位——把碎片化的 AI 算力变成一台统一的“AI 超级计算机”。三大核心抽象Cluster、Job、ServiceSkyPilot 用三个核心抽象支撑 AI 全生命周期中的所有使用场景批量处理、开发、(预)训练、微调、超参扫描、批量推理和在线推理服务。抽象一句话定义对应入口典型用途Clusters位于同一位置的若干 VM 或 Kubernetes Podsky launch交互式开发、复用集群环境Jobs你想运行的一个程序sky exec/sky jobs launch单集群排队、大规模并行、容错恢复Services面向模型推理的服务带多副本与弹性伸缩sky serve在线模型服务在线推理这三类抽象在仓库中的源码组织上也清晰对应sky/cli.py 中的 CLI 命令由 sky/client/cli/command.py 承载其中launch、exec、queue、logs、cancel、stop、down、status、check、jobs、serve、dashboard等命令均在此定义任务执行逻辑位于 sky/execution.pyManaged Jobs 的控制器与状态管理位于 sky/jobs/ 目录如controller.py、state.pyService 的控制器、负载均衡与副本管理则位于 sky/serve/ 目录如controller.py、load_balancer.py、replica_managers.py。为什么用 SkyPilot 跑工作负载对应这套抽象SkyPilot 提供了四个核心价值每一项都直接作用于“在混合基础设施上跑 AI”这一场景任意集群、云或区域上的统一执行无论你手上有多少个集群、云或区域都能用同一套接口提交、运行和管理工作负载。你只需关注工作负载本身SkyPilot 帮你承担云基础设施的细节与差异。最大化 GPU 集群利用率启动工作负载时SkyPilot 会在你的搜索空间中自动寻找可用集群并通过 binpacking装箱和队列queueing进一步提升 GPU 利用率。当你在按需弹性资源VM上运行时还会额外按成本优化选择最便宜且可用的 zone/region/cloud。基础设施选择间的自动故障转移Auto-failover启动时你可以给 SkyPilot 一个基础设施搜索空间——可以非常宽泛也可以非常具体。当某个基础设施选项无容量时SkyPilot 会自动回退到搜索空间中的下一个最佳选择。无云锁定No cloud lock-in未来若增加新的基础设施选项如新的云、区域或集群现有工作负载可以很容易地在它们之上运行无需复杂迁移或工作流改动。这一设计理念与文档中的 Sky Computing 愿景一脉相承参见 docs/source/sky-computing.rst。Clusters核心资源单元一个cluster集群是 SkyPilot 的核心资源单元同一个位置的一台或多台 VM 或 Kubernetes Pod。使用sky launch即可启动一个集群CLI 与 Python API 两种方式等价$ sky launch $ sky launch --gpus L4:8 $ sky launch --num-nodes 10 --cpus 32 $ sky launch --down cluster.yaml $ sky launch --help # 查看全部 flags。import sky task sky.Task().set_resources(sky.Resources(acceleratorsL4:8)) sky.launch(task, cluster_namemy-cluster)在 quickstart 中可以看到sky launch -c mycluster hello_sky.yaml会自动完成选择满足资源约束的云与 VM → 在云上创建或复用集群 → 同步workdir→ 执行setup命令 → 执行run命令。这里的-c用于指定集群名若不指定会自动生成若集群名与sky status中已有集群一致则会复用该集群。拿到集群后你可以通过ssh mycluster登录任意节点多节点集群还支持ssh mycluster-worker1等将 VSCode/IDE 连接到集群SkyPilot 通过向~/.ssh/config写入条目暴露 SSH 访问在集群上提交并排队大量任务让集群自动停机autostop或手动sky stop以节省成本轻松启动和使用大量虚拟的、临时性的集群。启动时你可以选择携带自定义 Docker 或 VM 镜像也可以使用 SkyPilot 的默认配置它会为不同的 GPU 自动配置正确的 CUDA 版本。需要特别强调的是SkyPilot 集群是一个虚拟集合——它要么是云上实例的集合要么是构建在你自己接入的物理集群之上的 Pod 集合。这个物理集群可以是 Kubernetes 集群参见 docs/source/compute/kubernetes.rst 对应的 Kubernetes 文档也可以是已有机器existing machines。相关入门材料见 quickstart 与开发集群指南dev-cluster 章节。Jobs两种运行任务的形态一个job任务就是你想运行的一个程序。SkyPilot 支持两种任务类型维度集群上的 JobsManaged Jobs托管任务用法sky execsky jobs launch资源归属提交到已有集群复用该集群的 setup每个任务运行在自己的临时集群上带自动恢复适用场景在已有集群上做交互式开发与调试需要恢复能力或扩展到大量并行任务一个任务可以包含一个或多个tasks参见 pipeline 相关文档大多数情况下一个任务只有一个 task两者常可互换使用。Jobs on Clusters复用开发集群sky exec用于在已有集群上排队运行任务适合交互式开发因为可以复用集群的 setup仅同步workdir并执行run跳过 provisioning 与setup。sky exec my-cluster --gpus L4:1 --workdir. -- python train.py sky exec my-cluster train.yaml # 一切都可以写在 YAML 里。 # 支持分数 GPU。 sky exec my-cluster --gpus L4:0.5 -- python eval.py # 也支持多节点任务。 sky exec my-cluster --num-nodes 2 -- hostname# 假设 my-cluster 已经启动。 # 排队一个请求 1 张 GPU 的任务。 train sky.Task(runpython train.py).set_resources( sky.Resources(acceleratorsL4:1)) train sky.Task.from_yaml(train.yaml) # 或者从 YAML 加载。 sky.exec(train, cluster_namemy-cluster) # 排队一个请求 0.5 张 GPU 的任务。 eval sky.Task(runpython eval.py).set_resources( sky.Resources(acceleratorsL4:0.5)) sky.exec(eval, cluster_namemy-cluster)任务的排队、日志与取消在 CLI 中有专门命令支撑sky queue、sky logs、sky cancel定义于 sky/client/cli/command.py任务状态管理见 sky/jobs/state.py。Managed Jobs为规模化与容错而生Managed Jobs会为每个任务自动创建一个临时集群并负责自动恢复auto-recovery。用sky jobs launch启动。它尤其适合两类场景需要重试的任务例如处理抢占 preemption、运行在可能故障的硬件上以及需要扩展到大量并行任务的场景。建议的模式先用集群sky launch、sky exec交互式地开发和调试代码然后再用 managed jobssky jobs launch规模化运行。在 quickstart 的Scaling out小节可以看到典型的大规模用法——用循环一次性启动 100 个任务$ for i in $(seq 100) # 启动 100 个任务 do sky jobs launch --detach-run --async --yes -n hello-$i hello_sky.yaml donePython 等价写法import sky from sky import jobs as managed_jobs for i in range(100): resource sky.Resources(use_spotTrue) task sky.Task(resourcesresource, runecho Hello, SkyPilot!) managed_jobs.launch(task, namefhello-{i})SkyPilot 可同时支撑数千个 managed jobs 运行参见 docs/source/running-jobs/many-jobs.rst。底层实现上managed jobs 由 sky/jobs/controller.py 的控制器驱动状态机定义在 sky/jobs/state.py含ManagedJobStatus枚举调度与恢复逻辑分别位于 sky/jobs/scheduler.py 与 sky/jobs/recovery_strategy.py。Services面向在线推理一个service服务用于 AI 模型推理。一个服务可以有一个或多个副本replica副本可以跨越不同位置区域、云、集群、不同计费模式on-demand、spot 等甚至不同 GPU 类型。$ sky serve up -n my-serve service.yaml $ sky serve status $ sky serve down my-servesky serve命令组定义于 sky/client/cli/command.py服务规范如副本数、自动伸缩策略、请求路由方式见 sky/serve/service_spec.py。控制器、负载均衡器与副本管理器分别位于 sky/serve/controller.py、sky/serve/load_balancer.py 与 sky/serve/replica_managers.py。服务状态的集中管理在 sky/serve/serve_state.py。完整入门可阅读 docs/source/serving/sky-serve.rst仓库中还有大量可直接套用的服务示例例如 examples/serve/vllm.yamlvLLM 推理服务、examples/serve/minimal.yaml最小服务示例、examples/serve/stable_diffusion_service.yamlStable Diffusion 文生图服务等。Bring Your Own Compute接入你已有的基础设施SkyPilot 可以轻松连接到你已有的基础设施——Kubernetes 集群、Slurm 集群、云或本地机器——并使用各基础设施的原生认证方式kubeconfig、云凭证、SSH。Kubernetes 集群你可以把已有 Kubernetes 集群包括托管集群如 EKS、GKE、AKS或本地集群接入 SkyPilot并且支持在多个集群之间自动故障转移。$ sky launch --infra k8s # 使用任意可用的 Kubernetes context。 $ # 或者指定某个 context $ sky launch --infra k8s/my-cluster1 $ sky launch --infra k8s/my-cluster2import sky task sky.Task().set_resources(sky.Resources( infrak8s, # 使用任意可用的 Kubernetes context。 # 或者指定某个 context # infrak8s/my-cluster1, # infrak8s/my-cluster2, )) sky.launch(task)值得注意infra也可以直接写进任务的 YAML 中例如 quickstart 中的infra: k8s/coreweave表示将任务调度到 coreweave 的 Kubernetes 集群上。在 examples/minimal.yaml、examples/k8s_cloud_deploy/cloud_k8s.yaml 中可以看到更多实际用法。Slurm 集群通过 SSH 连接 Slurm 集群的登录节点即可在现有 Slurm 集群上运行 SkyPilot 任务。SkyPilot 允许你通过单一接口管理多个 Slurm 集群。详细说明见 Slurm 总览与入门文档。云 VMSkyPilot 可以在你有权访问的云与区域上启动 VM。运行sky check检查访问权限sky check命令定义于 sky/client/cli/command.py。SkyPilot 支持大多数主流云厂商账号设置参见云账号配置文档cloud-account-setup。默认情况下SkyPilot 复用你现有的云认证方式你也可以选择为 SkyPilot 配置特定的角色、权限或服务账号见 cloud-permissions 相关文档。$ sky launch --infra aws # 在该云内使用任意可用的 region/zone。 $ sky launch --infra gcp $ sky launch --infra azure $ sky launch --infra nebius $ sky launch --infra runpod $ sky launch --infra lambda # ... 或其他任意受支持的云。 # 指定 region $ sky launch --infra aws/us-east-1 $ sky launch --infra gcp/us-central1 # 指定 zone $ sky launch --infra aws/us-east-1/us-east-1aimport sky task sky.Task().set_resources(sky.Resources( infraaws, # 在该云内使用任意可用的 region/zone。 # infragcp, # infraazure, # infranebius, # infrarunpod, # infralambda, # ... 或其他任意受支持的云。 # 指定 region # infraaws/us-east-1, # infragcp/us-central1, # 指定 zone # infraaws/us-east-1/us-east-1a, )) sky.launch(task)已有机器Existing Machines如果你已经有一些机器——即一组可以通过 SSH 登录的 IP 地址——也可以把它们接入 SkyPilot。下图为接入工作流$ sky launch --infra ssh # 使用任意可用的 SSH node pool。 $ sky launch --infra ssh/my-node-pool # 使用特定的 SSH node pool。import sky task sky.Task().set_resources(sky.Resources( infrassh, # 使用任意可用的 SSH node pool。 # infrassh/my-node-pool, # 使用特定的 SSH node pool。 )) sky.launch(task)对应的 SSH 节点池管理代码位于 sky/ssh_node_pools/ 目录工作流文档见 Using Existing Machinesexisting-machines章节。单机使用还是团队集中部署SkyPilot 既可以本地使用也可以部署为面向团队的集中式 API Server。团队部署带来四方面的收益一次部署随处使用把 SkyPilot API Server 部署在 Kubernetes 或云 VM 上任意位置都能访问。团队内资源共享团队成员可以互相共享资源。新成员轻松上手用户无需配置本地云凭证即可运行 SkyPilot 命令。全局视角与控制管理员可以获得整个团队计算资源跨集群、跨区域的单一管理视图。在 docs/source/skypilot-platform.rst 中SkyPilot Platform 进一步提供了面向更大团队与更大算力规模的托管体验为加速 GPU 集群与 AI 工作负载提供更多新特性。上手路线图从本文出发推荐的探索路径是完成 安装指南跟着 quickstart 用sky launch启动第一个集群、跑通第一个任务再用sky status查看所有集群、用sky dashboard打开可视化管理界面交互式开发调试用sky exec规模化跑任务用sky jobs launch需要对外提供模型服务时使用sky serve up最后结合sky check确认各云厂商访问权限并把你的 Kubernetes/Slurm/已有机器通过--infra接入统一算力池。在仓库中examples/ 目录提供了覆盖训练、微调、推理、批量任务、作业组job groups、服务等上百个可直接运行的示例如 examples/managed_job.yaml、examples/resnet_app.yaml、examples/multi_hostname.yaml 等是快速理解三大抽象实际用法的第一手素材。【免费下载链接】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),仅供参考
延伸阅读

更多相关文章

2026/9/16 1:44:16

滑模控制SMC工程实战:从原理、抖振抑制到伺服电缸应用

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/16 3:34:20

Linux WiFi设备驱动开发实战:从架构到调试全解析

1. 项目背景与整体思路拆解1.1 为什么选WiFi驱动作为Linux驱动的综合练兵场做Linux驱动开发的人迟早会遇到WiFi设备,不管你是做嵌入式、做消费电子还是做工业网关,WiFi模块几乎成了标配。我之前接过不少项目,从最早用USB WiFi适配器做Linux开…

2026/9/16 3:34:20

基于Python的手语识别项目实战:从MediaPipe关键点到随机森林分类

我一直觉得,用 Python 做手语识别是进入“计算机视觉 深度学习”这条技术线最有趣的方式之一。因为它的需求足够具体、场景足够明确,又不像人脸识别那样被做烂了,从数据采集到模型训练再到实时推理,整套链路都能自己亲手走一遍。…

2026/9/16 3:34:20

构建可复现的Notebook科研工作流:从环境锁定到报告导出

做科研或者做数据分析的,一定都经历过这样的场景:跑完一个实验,结果图表当时看着没问题,三个月后想复现却发现脚本被改过、依赖版本记不清、中间变量早没了。Notebook工作流在很多人眼里只是“写代码顺便看图表”,但在…

2026/9/16 3:34:20

从PID到即热式恒温:自制86-88℃手冲咖啡温控出水装置全记录

86-88这个项目代号,听起来像一组门牌号,但其实是两个多月前我在工作台上写下的三个数字:目标出水温度区间86℃到88℃。那段时间我一直在折腾手冲咖啡,发现最烦的不是磨豆机也不是滤杯,而是水温。普通温控壶的控温逻辑大…

2026/9/16 3:34:20

Tornado安全防线:Cookie_secret弱密钥分析与加固实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/16 3:29:20

Ungoogled-Chromium 143绿色版:去谷歌化、免安装的纯净浏览器体验

如果你还在为浏览器卡顿、后台偷偷占内存、各种捆绑推广烦得不行,Ungoogled-Chromium 143.0.7499.169 绿色版可能是当前最该试一下的浏览器之一。它是 Chromium 内核的“去谷歌化”版本,没有账号绑定、没有后台更新组件、没有遥测上报,解压就…

2026/9/15 4:54:30

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/16 0:04:09

PHP源码部署实战:从环境配置到运行情侣游戏全攻略

简介:这是一套面向情侣互动场景的PHP完整源码,集成情侣飞行棋、真心话大冒险、情趣骰子等玩法,并内置完整分销制度,可自定义多种返佣比例,源码完全开源无加密,支持微信无感自动授权登录与第三方授权&#x…

2026/9/15 14:22:53

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/15 21:31:11

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/15 11:42:23

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码