skypilot-nightly 1.0.0.dev2024053101__py3-none-any.whl → 1.0.0.dev2025022801__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. sky/__init__.py +64 -32
  2. sky/adaptors/aws.py +23 -6
  3. sky/adaptors/azure.py +432 -15
  4. sky/adaptors/cloudflare.py +5 -5
  5. sky/adaptors/common.py +19 -9
  6. sky/adaptors/do.py +20 -0
  7. sky/adaptors/gcp.py +3 -2
  8. sky/adaptors/kubernetes.py +122 -88
  9. sky/adaptors/nebius.py +100 -0
  10. sky/adaptors/oci.py +39 -1
  11. sky/adaptors/vast.py +29 -0
  12. sky/admin_policy.py +101 -0
  13. sky/authentication.py +117 -98
  14. sky/backends/backend.py +52 -20
  15. sky/backends/backend_utils.py +669 -557
  16. sky/backends/cloud_vm_ray_backend.py +1099 -808
  17. sky/backends/local_docker_backend.py +14 -8
  18. sky/backends/wheel_utils.py +38 -20
  19. sky/benchmark/benchmark_utils.py +22 -23
  20. sky/check.py +76 -27
  21. sky/cli.py +1586 -1139
  22. sky/client/__init__.py +1 -0
  23. sky/client/cli.py +5683 -0
  24. sky/client/common.py +345 -0
  25. sky/client/sdk.py +1765 -0
  26. sky/cloud_stores.py +283 -19
  27. sky/clouds/__init__.py +7 -2
  28. sky/clouds/aws.py +303 -112
  29. sky/clouds/azure.py +185 -179
  30. sky/clouds/cloud.py +115 -37
  31. sky/clouds/cudo.py +29 -22
  32. sky/clouds/do.py +313 -0
  33. sky/clouds/fluidstack.py +44 -54
  34. sky/clouds/gcp.py +206 -65
  35. sky/clouds/ibm.py +26 -21
  36. sky/clouds/kubernetes.py +345 -91
  37. sky/clouds/lambda_cloud.py +40 -29
  38. sky/clouds/nebius.py +297 -0
  39. sky/clouds/oci.py +129 -90
  40. sky/clouds/paperspace.py +22 -18
  41. sky/clouds/runpod.py +53 -34
  42. sky/clouds/scp.py +28 -24
  43. sky/clouds/service_catalog/__init__.py +19 -13
  44. sky/clouds/service_catalog/aws_catalog.py +29 -12
  45. sky/clouds/service_catalog/azure_catalog.py +33 -6
  46. sky/clouds/service_catalog/common.py +95 -75
  47. sky/clouds/service_catalog/constants.py +3 -3
  48. sky/clouds/service_catalog/cudo_catalog.py +13 -3
  49. sky/clouds/service_catalog/data_fetchers/fetch_aws.py +36 -21
  50. sky/clouds/service_catalog/data_fetchers/fetch_azure.py +31 -4
  51. sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +8 -117
  52. sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +197 -44
  53. sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +224 -36
  54. sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +44 -24
  55. sky/clouds/service_catalog/data_fetchers/fetch_vast.py +147 -0
  56. sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +1 -1
  57. sky/clouds/service_catalog/do_catalog.py +111 -0
  58. sky/clouds/service_catalog/fluidstack_catalog.py +2 -2
  59. sky/clouds/service_catalog/gcp_catalog.py +16 -2
  60. sky/clouds/service_catalog/ibm_catalog.py +2 -2
  61. sky/clouds/service_catalog/kubernetes_catalog.py +192 -70
  62. sky/clouds/service_catalog/lambda_catalog.py +8 -3
  63. sky/clouds/service_catalog/nebius_catalog.py +116 -0
  64. sky/clouds/service_catalog/oci_catalog.py +31 -4
  65. sky/clouds/service_catalog/paperspace_catalog.py +2 -2
  66. sky/clouds/service_catalog/runpod_catalog.py +2 -2
  67. sky/clouds/service_catalog/scp_catalog.py +2 -2
  68. sky/clouds/service_catalog/vast_catalog.py +104 -0
  69. sky/clouds/service_catalog/vsphere_catalog.py +2 -2
  70. sky/clouds/utils/aws_utils.py +65 -0
  71. sky/clouds/utils/azure_utils.py +91 -0
  72. sky/clouds/utils/gcp_utils.py +5 -9
  73. sky/clouds/utils/oci_utils.py +47 -5
  74. sky/clouds/utils/scp_utils.py +4 -3
  75. sky/clouds/vast.py +280 -0
  76. sky/clouds/vsphere.py +22 -18
  77. sky/core.py +361 -107
  78. sky/dag.py +41 -28
  79. sky/data/data_transfer.py +37 -0
  80. sky/data/data_utils.py +211 -32
  81. sky/data/mounting_utils.py +182 -30
  82. sky/data/storage.py +2118 -270
  83. sky/data/storage_utils.py +126 -5
  84. sky/exceptions.py +179 -8
  85. sky/execution.py +158 -85
  86. sky/global_user_state.py +150 -34
  87. sky/jobs/__init__.py +12 -10
  88. sky/jobs/client/__init__.py +0 -0
  89. sky/jobs/client/sdk.py +302 -0
  90. sky/jobs/constants.py +49 -11
  91. sky/jobs/controller.py +161 -99
  92. sky/jobs/dashboard/dashboard.py +171 -25
  93. sky/jobs/dashboard/templates/index.html +572 -60
  94. sky/jobs/recovery_strategy.py +157 -156
  95. sky/jobs/scheduler.py +307 -0
  96. sky/jobs/server/__init__.py +1 -0
  97. sky/jobs/server/core.py +598 -0
  98. sky/jobs/server/dashboard_utils.py +69 -0
  99. sky/jobs/server/server.py +190 -0
  100. sky/jobs/state.py +627 -122
  101. sky/jobs/utils.py +615 -206
  102. sky/models.py +27 -0
  103. sky/optimizer.py +142 -83
  104. sky/provision/__init__.py +20 -5
  105. sky/provision/aws/config.py +124 -42
  106. sky/provision/aws/instance.py +130 -53
  107. sky/provision/azure/__init__.py +7 -0
  108. sky/{skylet/providers → provision}/azure/azure-config-template.json +19 -7
  109. sky/provision/azure/config.py +220 -0
  110. sky/provision/azure/instance.py +1012 -37
  111. sky/provision/common.py +31 -3
  112. sky/provision/constants.py +25 -0
  113. sky/provision/cudo/__init__.py +2 -1
  114. sky/provision/cudo/cudo_utils.py +112 -0
  115. sky/provision/cudo/cudo_wrapper.py +37 -16
  116. sky/provision/cudo/instance.py +28 -12
  117. sky/provision/do/__init__.py +11 -0
  118. sky/provision/do/config.py +14 -0
  119. sky/provision/do/constants.py +10 -0
  120. sky/provision/do/instance.py +287 -0
  121. sky/provision/do/utils.py +301 -0
  122. sky/provision/docker_utils.py +82 -46
  123. sky/provision/fluidstack/fluidstack_utils.py +57 -125
  124. sky/provision/fluidstack/instance.py +15 -43
  125. sky/provision/gcp/config.py +19 -9
  126. sky/provision/gcp/constants.py +7 -1
  127. sky/provision/gcp/instance.py +55 -34
  128. sky/provision/gcp/instance_utils.py +339 -80
  129. sky/provision/gcp/mig_utils.py +210 -0
  130. sky/provision/instance_setup.py +172 -133
  131. sky/provision/kubernetes/__init__.py +1 -0
  132. sky/provision/kubernetes/config.py +104 -90
  133. sky/provision/kubernetes/constants.py +8 -0
  134. sky/provision/kubernetes/instance.py +680 -325
  135. sky/provision/kubernetes/manifests/smarter-device-manager-daemonset.yaml +3 -0
  136. sky/provision/kubernetes/network.py +54 -20
  137. sky/provision/kubernetes/network_utils.py +70 -21
  138. sky/provision/kubernetes/utils.py +1370 -251
  139. sky/provision/lambda_cloud/__init__.py +11 -0
  140. sky/provision/lambda_cloud/config.py +10 -0
  141. sky/provision/lambda_cloud/instance.py +265 -0
  142. sky/{clouds/utils → provision/lambda_cloud}/lambda_utils.py +24 -23
  143. sky/provision/logging.py +1 -1
  144. sky/provision/nebius/__init__.py +11 -0
  145. sky/provision/nebius/config.py +11 -0
  146. sky/provision/nebius/instance.py +285 -0
  147. sky/provision/nebius/utils.py +318 -0
  148. sky/provision/oci/__init__.py +15 -0
  149. sky/provision/oci/config.py +51 -0
  150. sky/provision/oci/instance.py +436 -0
  151. sky/provision/oci/query_utils.py +681 -0
  152. sky/provision/paperspace/constants.py +6 -0
  153. sky/provision/paperspace/instance.py +4 -3
  154. sky/provision/paperspace/utils.py +2 -0
  155. sky/provision/provisioner.py +207 -130
  156. sky/provision/runpod/__init__.py +1 -0
  157. sky/provision/runpod/api/__init__.py +3 -0
  158. sky/provision/runpod/api/commands.py +119 -0
  159. sky/provision/runpod/api/pods.py +142 -0
  160. sky/provision/runpod/instance.py +64 -8
  161. sky/provision/runpod/utils.py +239 -23
  162. sky/provision/vast/__init__.py +10 -0
  163. sky/provision/vast/config.py +11 -0
  164. sky/provision/vast/instance.py +247 -0
  165. sky/provision/vast/utils.py +162 -0
  166. sky/provision/vsphere/common/vim_utils.py +1 -1
  167. sky/provision/vsphere/instance.py +8 -18
  168. sky/provision/vsphere/vsphere_utils.py +1 -1
  169. sky/resources.py +247 -102
  170. sky/serve/__init__.py +9 -9
  171. sky/serve/autoscalers.py +361 -299
  172. sky/serve/client/__init__.py +0 -0
  173. sky/serve/client/sdk.py +366 -0
  174. sky/serve/constants.py +12 -3
  175. sky/serve/controller.py +106 -36
  176. sky/serve/load_balancer.py +63 -12
  177. sky/serve/load_balancing_policies.py +84 -2
  178. sky/serve/replica_managers.py +42 -34
  179. sky/serve/serve_state.py +62 -32
  180. sky/serve/serve_utils.py +271 -160
  181. sky/serve/server/__init__.py +0 -0
  182. sky/serve/{core.py → server/core.py} +271 -90
  183. sky/serve/server/server.py +112 -0
  184. sky/serve/service.py +52 -16
  185. sky/serve/service_spec.py +95 -32
  186. sky/server/__init__.py +1 -0
  187. sky/server/common.py +430 -0
  188. sky/server/constants.py +21 -0
  189. sky/server/html/log.html +174 -0
  190. sky/server/requests/__init__.py +0 -0
  191. sky/server/requests/executor.py +472 -0
  192. sky/server/requests/payloads.py +487 -0
  193. sky/server/requests/queues/__init__.py +0 -0
  194. sky/server/requests/queues/mp_queue.py +76 -0
  195. sky/server/requests/requests.py +567 -0
  196. sky/server/requests/serializers/__init__.py +0 -0
  197. sky/server/requests/serializers/decoders.py +192 -0
  198. sky/server/requests/serializers/encoders.py +166 -0
  199. sky/server/server.py +1106 -0
  200. sky/server/stream_utils.py +141 -0
  201. sky/setup_files/MANIFEST.in +2 -5
  202. sky/setup_files/dependencies.py +159 -0
  203. sky/setup_files/setup.py +14 -125
  204. sky/sky_logging.py +59 -14
  205. sky/skylet/autostop_lib.py +2 -2
  206. sky/skylet/constants.py +183 -50
  207. sky/skylet/events.py +22 -10
  208. sky/skylet/job_lib.py +403 -258
  209. sky/skylet/log_lib.py +111 -71
  210. sky/skylet/log_lib.pyi +6 -0
  211. sky/skylet/providers/command_runner.py +6 -8
  212. sky/skylet/providers/ibm/node_provider.py +2 -2
  213. sky/skylet/providers/scp/config.py +11 -3
  214. sky/skylet/providers/scp/node_provider.py +8 -8
  215. sky/skylet/skylet.py +3 -1
  216. sky/skylet/subprocess_daemon.py +69 -17
  217. sky/skypilot_config.py +119 -57
  218. sky/task.py +205 -64
  219. sky/templates/aws-ray.yml.j2 +37 -7
  220. sky/templates/azure-ray.yml.j2 +27 -82
  221. sky/templates/cudo-ray.yml.j2 +7 -3
  222. sky/templates/do-ray.yml.j2 +98 -0
  223. sky/templates/fluidstack-ray.yml.j2 +7 -4
  224. sky/templates/gcp-ray.yml.j2 +26 -6
  225. sky/templates/ibm-ray.yml.j2 +3 -2
  226. sky/templates/jobs-controller.yaml.j2 +46 -11
  227. sky/templates/kubernetes-ingress.yml.j2 +7 -0
  228. sky/templates/kubernetes-loadbalancer.yml.j2 +7 -0
  229. sky/templates/{kubernetes-port-forward-proxy-command.sh.j2 → kubernetes-port-forward-proxy-command.sh} +51 -7
  230. sky/templates/kubernetes-ray.yml.j2 +292 -25
  231. sky/templates/lambda-ray.yml.j2 +30 -40
  232. sky/templates/nebius-ray.yml.j2 +79 -0
  233. sky/templates/oci-ray.yml.j2 +18 -57
  234. sky/templates/paperspace-ray.yml.j2 +10 -6
  235. sky/templates/runpod-ray.yml.j2 +26 -4
  236. sky/templates/scp-ray.yml.j2 +3 -2
  237. sky/templates/sky-serve-controller.yaml.j2 +12 -1
  238. sky/templates/skypilot-server-kubernetes-proxy.sh +36 -0
  239. sky/templates/vast-ray.yml.j2 +70 -0
  240. sky/templates/vsphere-ray.yml.j2 +8 -3
  241. sky/templates/websocket_proxy.py +64 -0
  242. sky/usage/constants.py +10 -1
  243. sky/usage/usage_lib.py +130 -37
  244. sky/utils/accelerator_registry.py +35 -51
  245. sky/utils/admin_policy_utils.py +147 -0
  246. sky/utils/annotations.py +51 -0
  247. sky/utils/cli_utils/status_utils.py +81 -23
  248. sky/utils/cluster_utils.py +356 -0
  249. sky/utils/command_runner.py +452 -89
  250. sky/utils/command_runner.pyi +77 -3
  251. sky/utils/common.py +54 -0
  252. sky/utils/common_utils.py +319 -108
  253. sky/utils/config_utils.py +204 -0
  254. sky/utils/control_master_utils.py +48 -0
  255. sky/utils/controller_utils.py +548 -266
  256. sky/utils/dag_utils.py +93 -32
  257. sky/utils/db_utils.py +18 -4
  258. sky/utils/env_options.py +29 -7
  259. sky/utils/kubernetes/create_cluster.sh +8 -60
  260. sky/utils/kubernetes/deploy_remote_cluster.sh +243 -0
  261. sky/utils/kubernetes/exec_kubeconfig_converter.py +73 -0
  262. sky/utils/kubernetes/generate_kubeconfig.sh +336 -0
  263. sky/utils/kubernetes/gpu_labeler.py +4 -4
  264. sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +4 -3
  265. sky/utils/kubernetes/kubernetes_deploy_utils.py +228 -0
  266. sky/utils/kubernetes/rsync_helper.sh +24 -0
  267. sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +1 -1
  268. sky/utils/log_utils.py +240 -33
  269. sky/utils/message_utils.py +81 -0
  270. sky/utils/registry.py +127 -0
  271. sky/utils/resources_utils.py +94 -22
  272. sky/utils/rich_utils.py +247 -18
  273. sky/utils/schemas.py +284 -64
  274. sky/{status_lib.py → utils/status_lib.py} +12 -7
  275. sky/utils/subprocess_utils.py +212 -46
  276. sky/utils/timeline.py +12 -7
  277. sky/utils/ux_utils.py +168 -15
  278. skypilot_nightly-1.0.0.dev2025022801.dist-info/METADATA +363 -0
  279. skypilot_nightly-1.0.0.dev2025022801.dist-info/RECORD +352 -0
  280. {skypilot_nightly-1.0.0.dev2024053101.dist-info → skypilot_nightly-1.0.0.dev2025022801.dist-info}/WHEEL +1 -1
  281. sky/clouds/cloud_registry.py +0 -31
  282. sky/jobs/core.py +0 -330
  283. sky/skylet/providers/azure/__init__.py +0 -2
  284. sky/skylet/providers/azure/azure-vm-template.json +0 -301
  285. sky/skylet/providers/azure/config.py +0 -170
  286. sky/skylet/providers/azure/node_provider.py +0 -466
  287. sky/skylet/providers/lambda_cloud/__init__.py +0 -2
  288. sky/skylet/providers/lambda_cloud/node_provider.py +0 -320
  289. sky/skylet/providers/oci/__init__.py +0 -2
  290. sky/skylet/providers/oci/node_provider.py +0 -488
  291. sky/skylet/providers/oci/query_helper.py +0 -383
  292. sky/skylet/providers/oci/utils.py +0 -21
  293. sky/utils/cluster_yaml_utils.py +0 -24
  294. sky/utils/kubernetes/generate_static_kubeconfig.sh +0 -137
  295. skypilot_nightly-1.0.0.dev2024053101.dist-info/METADATA +0 -315
  296. skypilot_nightly-1.0.0.dev2024053101.dist-info/RECORD +0 -275
  297. {skypilot_nightly-1.0.0.dev2024053101.dist-info → skypilot_nightly-1.0.0.dev2025022801.dist-info}/LICENSE +0 -0
  298. {skypilot_nightly-1.0.0.dev2024053101.dist-info → skypilot_nightly-1.0.0.dev2025022801.dist-info}/entry_points.txt +0 -0
  299. {skypilot_nightly-1.0.0.dev2024053101.dist-info → skypilot_nightly-1.0.0.dev2025022801.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,363 @@
1
+ Metadata-Version: 2.2
2
+ Name: skypilot-nightly
3
+ Version: 1.0.0.dev2025022801
4
+ Summary: SkyPilot: An intercloud broker for the clouds
5
+ Author: SkyPilot Team
6
+ License: Apache 2.0
7
+ Project-URL: Homepage, https://github.com/skypilot-org/skypilot
8
+ Project-URL: Issues, https://github.com/skypilot-org/skypilot/issues
9
+ Project-URL: Discussion, https://github.com/skypilot-org/skypilot/discussions
10
+ Project-URL: Documentation, https://docs.skypilot.co/
11
+ Classifier: Programming Language :: Python :: 3.7
12
+ Classifier: Programming Language :: Python :: 3.8
13
+ Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: License :: OSI Approved :: Apache Software License
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
19
+ Classifier: Topic :: System :: Distributed Computing
20
+ Description-Content-Type: text/markdown
21
+ License-File: LICENSE
22
+ Requires-Dist: wheel
23
+ Requires-Dist: cachetools
24
+ Requires-Dist: click>=7.0
25
+ Requires-Dist: colorama
26
+ Requires-Dist: cryptography
27
+ Requires-Dist: jinja2>=3.0
28
+ Requires-Dist: jsonschema
29
+ Requires-Dist: networkx
30
+ Requires-Dist: pandas>=1.3.0
31
+ Requires-Dist: pendulum
32
+ Requires-Dist: PrettyTable>=2.0.0
33
+ Requires-Dist: python-dotenv
34
+ Requires-Dist: rich
35
+ Requires-Dist: tabulate
36
+ Requires-Dist: typing_extensions
37
+ Requires-Dist: filelock>=3.6.0
38
+ Requires-Dist: packaging
39
+ Requires-Dist: psutil
40
+ Requires-Dist: pulp
41
+ Requires-Dist: pyyaml!=5.4.*,>3.13
42
+ Requires-Dist: requests
43
+ Requires-Dist: fastapi
44
+ Requires-Dist: uvicorn[standard]
45
+ Requires-Dist: pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3,>2
46
+ Requires-Dist: python-multipart
47
+ Requires-Dist: aiofiles
48
+ Requires-Dist: httpx
49
+ Requires-Dist: setproctitle
50
+ Provides-Extra: aws
51
+ Requires-Dist: urllib3<2; extra == "aws"
52
+ Requires-Dist: awscli>=1.27.10; extra == "aws"
53
+ Requires-Dist: botocore>=1.29.10; extra == "aws"
54
+ Requires-Dist: boto3>=1.26.1; extra == "aws"
55
+ Requires-Dist: colorama<0.4.5; extra == "aws"
56
+ Provides-Extra: azure
57
+ Requires-Dist: azure-cli>=2.65.0; extra == "azure"
58
+ Requires-Dist: azure-core>=1.31.0; extra == "azure"
59
+ Requires-Dist: azure-identity>=1.19.0; extra == "azure"
60
+ Requires-Dist: azure-mgmt-network>=27.0.0; extra == "azure"
61
+ Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "azure"
62
+ Requires-Dist: azure-storage-blob>=12.23.1; extra == "azure"
63
+ Requires-Dist: msgraph-sdk; extra == "azure"
64
+ Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "azure"
65
+ Provides-Extra: gcp
66
+ Requires-Dist: google-api-python-client>=2.69.0; extra == "gcp"
67
+ Requires-Dist: google-cloud-storage; extra == "gcp"
68
+ Provides-Extra: ibm
69
+ Requires-Dist: ibm-cloud-sdk-core; extra == "ibm"
70
+ Requires-Dist: ibm-vpc; extra == "ibm"
71
+ Requires-Dist: ibm-platform-services; extra == "ibm"
72
+ Requires-Dist: ibm-cos-sdk; extra == "ibm"
73
+ Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "ibm"
74
+ Provides-Extra: docker
75
+ Requires-Dist: docker; extra == "docker"
76
+ Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "docker"
77
+ Provides-Extra: lambda
78
+ Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "lambda"
79
+ Provides-Extra: cloudflare
80
+ Requires-Dist: urllib3<2; extra == "cloudflare"
81
+ Requires-Dist: awscli>=1.27.10; extra == "cloudflare"
82
+ Requires-Dist: botocore>=1.29.10; extra == "cloudflare"
83
+ Requires-Dist: boto3>=1.26.1; extra == "cloudflare"
84
+ Requires-Dist: colorama<0.4.5; extra == "cloudflare"
85
+ Provides-Extra: scp
86
+ Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "scp"
87
+ Provides-Extra: oci
88
+ Requires-Dist: oci; extra == "oci"
89
+ Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "oci"
90
+ Provides-Extra: kubernetes
91
+ Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "kubernetes"
92
+ Provides-Extra: remote
93
+ Requires-Dist: grpcio!=1.48.0,>=1.32.0; python_version < "3.10" and extra == "remote"
94
+ Requires-Dist: grpcio!=1.48.0,>=1.42.0; python_version >= "3.10" and extra == "remote"
95
+ Requires-Dist: protobuf!=3.19.5,>=3.15.3; extra == "remote"
96
+ Provides-Extra: runpod
97
+ Requires-Dist: runpod>=1.6.1; extra == "runpod"
98
+ Provides-Extra: fluidstack
99
+ Provides-Extra: cudo
100
+ Requires-Dist: cudo-compute>=0.1.10; extra == "cudo"
101
+ Provides-Extra: paperspace
102
+ Provides-Extra: do
103
+ Requires-Dist: pydo>=0.3.0; extra == "do"
104
+ Requires-Dist: azure-core>=1.24.0; extra == "do"
105
+ Requires-Dist: azure-common; extra == "do"
106
+ Provides-Extra: vast
107
+ Requires-Dist: vastai-sdk>=0.1.12; extra == "vast"
108
+ Provides-Extra: vsphere
109
+ Requires-Dist: pyvmomi==8.0.1.0.2; extra == "vsphere"
110
+ Provides-Extra: nebius
111
+ Requires-Dist: nebius>=0.2.0; extra == "nebius"
112
+ Provides-Extra: all
113
+ Requires-Dist: urllib3<2; extra == "all"
114
+ Requires-Dist: awscli>=1.27.10; extra == "all"
115
+ Requires-Dist: botocore>=1.29.10; extra == "all"
116
+ Requires-Dist: boto3>=1.26.1; extra == "all"
117
+ Requires-Dist: colorama<0.4.5; extra == "all"
118
+ Requires-Dist: azure-cli>=2.65.0; extra == "all"
119
+ Requires-Dist: azure-core>=1.31.0; extra == "all"
120
+ Requires-Dist: azure-identity>=1.19.0; extra == "all"
121
+ Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
122
+ Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "all"
123
+ Requires-Dist: azure-storage-blob>=12.23.1; extra == "all"
124
+ Requires-Dist: msgraph-sdk; extra == "all"
125
+ Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "all"
126
+ Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
127
+ Requires-Dist: google-cloud-storage; extra == "all"
128
+ Requires-Dist: ibm-cloud-sdk-core; extra == "all"
129
+ Requires-Dist: ibm-vpc; extra == "all"
130
+ Requires-Dist: ibm-platform-services; extra == "all"
131
+ Requires-Dist: ibm-cos-sdk; extra == "all"
132
+ Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "all"
133
+ Requires-Dist: docker; extra == "all"
134
+ Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "all"
135
+ Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "all"
136
+ Requires-Dist: urllib3<2; extra == "all"
137
+ Requires-Dist: awscli>=1.27.10; extra == "all"
138
+ Requires-Dist: botocore>=1.29.10; extra == "all"
139
+ Requires-Dist: boto3>=1.26.1; extra == "all"
140
+ Requires-Dist: colorama<0.4.5; extra == "all"
141
+ Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "all"
142
+ Requires-Dist: oci; extra == "all"
143
+ Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "all"
144
+ Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
145
+ Requires-Dist: grpcio!=1.48.0,>=1.32.0; python_version < "3.10" and extra == "all"
146
+ Requires-Dist: grpcio!=1.48.0,>=1.42.0; python_version >= "3.10" and extra == "all"
147
+ Requires-Dist: protobuf!=3.19.5,>=3.15.3; extra == "all"
148
+ Requires-Dist: runpod>=1.6.1; extra == "all"
149
+ Requires-Dist: cudo-compute>=0.1.10; extra == "all"
150
+ Requires-Dist: pydo>=0.3.0; extra == "all"
151
+ Requires-Dist: azure-core>=1.24.0; extra == "all"
152
+ Requires-Dist: azure-common; extra == "all"
153
+ Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
154
+ Requires-Dist: pyvmomi==8.0.1.0.2; extra == "all"
155
+ Requires-Dist: nebius>=0.2.0; extra == "all"
156
+ Dynamic: author
157
+ Dynamic: classifier
158
+ Dynamic: description
159
+ Dynamic: description-content-type
160
+ Dynamic: license
161
+ Dynamic: project-url
162
+ Dynamic: provides-extra
163
+ Dynamic: requires-dist
164
+ Dynamic: summary
165
+
166
+ <p align="center">
167
+ <img alt="SkyPilot" src="https://raw.githubusercontent.com/skypilot-org/skypilot/master/docs/source/images/skypilot-wide-light-1k.png" width=55%>
168
+ </p>
169
+
170
+ <p align="center">
171
+ <a href="https://docs.skypilot.co/">
172
+ <img alt="Documentation" src="https://img.shields.io/badge/docs-gray?logo=readthedocs&logoColor=f5f5f5">
173
+ </a>
174
+
175
+ <a href="https://github.com/skypilot-org/skypilot/releases">
176
+ <img alt="GitHub Release" src="https://img.shields.io/github/release/skypilot-org/skypilot.svg">
177
+ </a>
178
+
179
+ <a href="http://slack.skypilot.co">
180
+ <img alt="Join Slack" src="https://img.shields.io/badge/SkyPilot-Join%20Slack-blue?logo=slack">
181
+ </a>
182
+
183
+ <a href="https://github.com/skypilot-org/skypilot/releases">
184
+ <img alt="Downloads" src="https://img.shields.io/pypi/dm/skypilot">
185
+ </a>
186
+
187
+ </p>
188
+
189
+ <h3 align="center">
190
+ Run AI on Any Infra — Unified, Faster, Cheaper
191
+ </h3>
192
+
193
+ ----
194
+ :fire: *News* :fire:
195
+ - [Feb 2025] Prepare and serve **Retrieval Augmented Generation (RAG) with DeepSeek-R1**: [**blog post**](https://blog.skypilot.co/deepseek-rag), [**example**](./llm/rag/)
196
+ - [Feb 2025] Run and serve **DeepSeek-R1 671B** using SkyPilot and SGLang with high throughput: [**example**](./llm/deepseek-r1/)
197
+ - [Feb 2025] Prepare and serve large-scale image search with **vector databases**: [**blog post**](https://blog.skypilot.co/large-scale-vector-database/), [**example**](./examples/vector_database/)
198
+ - [Jan 2025] Launch and serve distilled models from **[DeepSeek-R1](https://github.com/deepseek-ai/DeepSeek-R1)** and **[Janus](https://github.com/deepseek-ai/DeepSeek-Janus)** on Kubernetes or any cloud: [**R1 example**](./llm/deepseek-r1-distilled/) and [**Janus example**](./llm/deepseek-janus/)
199
+ - [Oct 2024] :tada: **SkyPilot crossed 1M+ downloads** :tada:: Thank you to our community! [**Twitter/X**](https://x.com/skypilot_org/status/1844770841718067638)
200
+ - [Sep 2024] Point, launch and serve **Llama 3.2** on Kubernetes or any cloud: [**example**](./llm/llama-3_2/)
201
+ - [Sep 2024] Run and deploy [**Pixtral**](./llm/pixtral), the first open-source multimodal model from Mistral AI.
202
+ - [Jun 2024] Reproduce **GPT** with [llm.c](https://github.com/karpathy/llm.c/discussions/481) on any cloud: [**guide**](./llm/gpt-2/)
203
+ - [Apr 2024] Serve [**Qwen-110B**](https://qwenlm.github.io/blog/qwen1.5-110b/) on your infra: [**example**](./llm/qwen/)
204
+ - [Apr 2024] Host [**Ollama**](https://github.com/ollama/ollama) on the cloud to deploy LLMs on CPUs and GPUs: [**example**](./llm/ollama/)
205
+
206
+
207
+ **LLM Finetuning Cookbooks**: Finetuning Llama 2 / Llama 3.1 in your own cloud environment, privately: Llama 2 [**example**](./llm/vicuna-llama-2/) and [**blog**](https://blog.skypilot.co/finetuning-llama2-operational-guide/); Llama 3.1 [**example**](./llm/llama-3_1-finetuning/) and [**blog**](https://blog.skypilot.co/finetune-llama-3_1-on-your-infra/)
208
+
209
+ ----
210
+
211
+ SkyPilot is a framework for running AI and batch workloads on any infra, offering unified execution, high cost savings, and high GPU availability.
212
+
213
+ SkyPilot **abstracts away infra burdens**:
214
+ - Launch [clusters](https://docs.skypilot.co/en/latest/examples/interactive-development.html), [jobs](https://docs.skypilot.co/en/latest/examples/managed-jobs.html), and [serving](https://docs.skypilot.co/en/latest/serving/sky-serve.html) on any infra
215
+ - Easy job management: queue, run, and auto-recover many jobs
216
+
217
+ SkyPilot **supports multiple clusters, clouds, and hardware** ([the Sky](https://arxiv.org/abs/2205.07147)):
218
+ - Bring your reserved GPUs, Kubernetes clusters, or 12+ clouds
219
+ - [Flexible provisioning](https://docs.skypilot.co/en/latest/examples/auto-failover.html) of GPUs, TPUs, CPUs, with auto-retry
220
+
221
+ SkyPilot **cuts your cloud costs & maximizes GPU availability**:
222
+ * [Autostop](https://docs.skypilot.co/en/latest/reference/auto-stop.html): automatic cleanup of idle resources
223
+ * [Managed Spot](https://docs.skypilot.co/en/latest/examples/managed-jobs.html): 3-6x cost savings using spot instances, with preemption auto-recovery
224
+ * [Optimizer](https://docs.skypilot.co/en/latest/examples/auto-failover.html): 2x cost savings by auto-picking the cheapest & most available infra
225
+
226
+ SkyPilot supports your existing GPU, TPU, and CPU workloads, with no code changes.
227
+
228
+ Install with pip:
229
+ ```bash
230
+ # Choose your clouds:
231
+ pip install -U "skypilot[kubernetes,aws,gcp,azure,oci,lambda,runpod,fluidstack,paperspace,cudo,ibm,scp,nebius]"
232
+ ```
233
+ To get the latest features and fixes, use the nightly build or [install from source](https://docs.skypilot.co/en/latest/getting-started/installation.html):
234
+ ```bash
235
+ # Choose your clouds:
236
+ pip install "skypilot-nightly[kubernetes,aws,gcp,azure,oci,lambda,runpod,fluidstack,paperspace,cudo,ibm,scp,nebius]"
237
+ ```
238
+
239
+
240
+ [Current supported infra](https://docs.skypilot.co/en/latest/getting-started/installation.html) (Kubernetes; AWS, GCP, Azure, OCI, Lambda Cloud, Fluidstack, RunPod, Cudo, Digital Ocean, Paperspace, Cloudflare, Samsung, IBM, Vast.ai, VMware vSphere, Nebius):
241
+ <p align="center">
242
+ <img alt="SkyPilot" src="https://raw.githubusercontent.com/skypilot-org/skypilot/master/docs/source/images/cloud-logos-light.png" width=85%>
243
+ </p>
244
+
245
+
246
+ ## Getting Started
247
+ You can find our documentation [here](https://docs.skypilot.co/).
248
+ - [Installation](https://docs.skypilot.co/en/latest/getting-started/installation.html)
249
+ - [Quickstart](https://docs.skypilot.co/en/latest/getting-started/quickstart.html)
250
+ - [CLI reference](https://docs.skypilot.co/en/latest/reference/cli.html)
251
+
252
+ ## SkyPilot in 1 Minute
253
+
254
+ A SkyPilot task specifies: resource requirements, data to be synced, setup commands, and the task commands.
255
+
256
+ Once written in this [**unified interface**](https://docs.skypilot.co/en/latest/reference/yaml-spec.html) (YAML or Python API), the task can be launched on any available cloud. This avoids vendor lock-in, and allows easily moving jobs to a different provider.
257
+
258
+ Paste the following into a file `my_task.yaml`:
259
+
260
+ ```yaml
261
+ resources:
262
+ accelerators: A100:8 # 8x NVIDIA A100 GPU
263
+
264
+ num_nodes: 1 # Number of VMs to launch
265
+
266
+ # Working directory (optional) containing the project codebase.
267
+ # Its contents are synced to ~/sky_workdir/ on the cluster.
268
+ workdir: ~/torch_examples
269
+
270
+ # Commands to be run before executing the job.
271
+ # Typical use: pip install -r requirements.txt, git clone, etc.
272
+ setup: |
273
+ pip install "torch<2.2" torchvision --index-url https://download.pytorch.org/whl/cu121
274
+
275
+ # Commands to run as a job.
276
+ # Typical use: launch the main program.
277
+ run: |
278
+ cd mnist
279
+ python main.py --epochs 1
280
+ ```
281
+
282
+ Prepare the workdir by cloning:
283
+ ```bash
284
+ git clone https://github.com/pytorch/examples.git ~/torch_examples
285
+ ```
286
+
287
+ Launch with `sky launch` (note: [access to GPU instances](https://docs.skypilot.co/en/latest/cloud-setup/quota.html) is needed for this example):
288
+ ```bash
289
+ sky launch my_task.yaml
290
+ ```
291
+
292
+ SkyPilot then performs the heavy-lifting for you, including:
293
+ 1. Find the lowest priced VM instance type across different clouds
294
+ 2. Provision the VM, with auto-failover if the cloud returned capacity errors
295
+ 3. Sync the local `workdir` to the VM
296
+ 4. Run the task's `setup` commands to prepare the VM for running the task
297
+ 5. Run the task's `run` commands
298
+
299
+ <p align="center">
300
+ <img src="https://i.imgur.com/TgamzZ2.gif" alt="SkyPilot Demo"/>
301
+ </p>
302
+
303
+
304
+ Refer to [Quickstart](https://docs.skypilot.co/en/latest/getting-started/quickstart.html) to get started with SkyPilot.
305
+
306
+ ## More Information
307
+ To learn more, see [SkyPilot Overview](https://docs.skypilot.co/en/latest/overview.html), [SkyPilot docs](https://docs.skypilot.co/en/latest/), and [SkyPilot blog](https://blog.skypilot.co/).
308
+
309
+ <!-- Keep this section in sync with index.rst in SkyPilot Docs -->
310
+ Runnable examples:
311
+ - [**AI Gallery**](https://docs.skypilot.co/en/latest/gallery/index.html)
312
+ - LLMs on SkyPilot
313
+ - [DeepSeek-R1](./llm/deepseek-r1/)
314
+ - [DeepSeek-Janus](./llm/deepseek-janus/)
315
+ - [Llama 3.2: lightweight and vision models](./llm/llama-3_2/)
316
+ - [Pixtral](./llm/pixtral/)
317
+ - [Llama 3.1 finetuning](./llm/llama-3_1-finetuning/) and [serving](./llm/llama-3_1/)
318
+ - [GPT-2 via `llm.c`](./llm/gpt-2/)
319
+ - [Llama 3](./llm/llama-3/)
320
+ - [Qwen](./llm/qwen/)
321
+ - [Databricks DBRX](./llm/dbrx/)
322
+ - [Gemma](./llm/gemma/)
323
+ - [Mixtral 8x7B](./llm/mixtral/); [Mistral 7B](https://docs.mistral.ai/self-deployment/skypilot/) (from official Mistral team)
324
+ - [Code Llama](./llm/codellama/)
325
+ - [vLLM: Serving LLM 24x Faster On the Cloud](./llm/vllm/) (from official vLLM team)
326
+ - [SGLang: Fast and Expressive LLM Serving On the Cloud](./llm/sglang/) (from official SGLang team)
327
+ - [Vicuna chatbots: Training & Serving](./llm/vicuna/) (from official Vicuna team)
328
+ - [Train your own Vicuna on Llama-2](./llm/vicuna-llama-2/)
329
+ - [Self-Hosted Llama-2 Chatbot](./llm/llama-2/)
330
+ - [Ollama: Quantized LLMs on CPUs](./llm/ollama/)
331
+ - [LoRAX](./llm/lorax/)
332
+ - [QLoRA](https://github.com/artidoro/qlora/pull/132)
333
+ - [LLaMA-LoRA-Tuner](https://github.com/zetavg/LLaMA-LoRA-Tuner#run-on-a-cloud-service-via-skypilot)
334
+ - [Tabby: Self-hosted AI coding assistant](https://github.com/TabbyML/tabby/blob/bed723fcedb44a6b867ce22a7b1f03d2f3531c1e/experimental/eval/skypilot.yaml)
335
+ - [LocalGPT](./llm/localgpt)
336
+ - [Falcon](./llm/falcon)
337
+ - Add yours here & see more in [`llm/`](./llm)!
338
+ - Framework examples: [Vector Database](./examples/vector_database/), [PyTorch DDP](https://github.com/skypilot-org/skypilot/blob/master/examples/resnet_distributed_torch.yaml), [DeepSpeed](./examples/deepspeed-multinode/sky.yaml), [JAX/Flax on TPU](https://github.com/skypilot-org/skypilot/blob/master/examples/tpu/tpuvm_mnist.yaml), [Stable Diffusion](https://github.com/skypilot-org/skypilot/tree/master/examples/stable_diffusion), [Detectron2](https://github.com/skypilot-org/skypilot/blob/master/examples/detectron2_docker.yaml), [Distributed](https://github.com/skypilot-org/skypilot/blob/master/examples/resnet_distributed_tf_app.py) [TensorFlow](https://github.com/skypilot-org/skypilot/blob/master/examples/resnet_app_storage.yaml), [Ray Train](examples/distributed_ray_train/ray_train.yaml), [NeMo](https://github.com/skypilot-org/skypilot/blob/master/examples/nemo/), [programmatic grid search](https://github.com/skypilot-org/skypilot/blob/master/examples/huggingface_glue_imdb_grid_search_app.py), [Docker](https://github.com/skypilot-org/skypilot/blob/master/examples/docker/echo_app.yaml), [Cog](https://github.com/skypilot-org/skypilot/blob/master/examples/cog/), [Unsloth](https://github.com/skypilot-org/skypilot/blob/master/examples/unsloth/unsloth.yaml), [Ollama](https://github.com/skypilot-org/skypilot/blob/master/llm/ollama), [llm.c](https://github.com/skypilot-org/skypilot/tree/master/llm/gpt-2), [Airflow](./examples/airflow/training_workflow) and [many more (`examples/`)](./examples).
339
+
340
+ Case Studies and Integrations: [Community Spotlights](https://blog.skypilot.co/community/)
341
+
342
+ Follow updates:
343
+ - [Twitter](https://twitter.com/skypilot_org)
344
+ - [Slack](http://slack.skypilot.co)
345
+ - [SkyPilot Blog](https://blog.skypilot.co/) ([Introductory blog post](https://blog.skypilot.co/introducing-skypilot/))
346
+
347
+ Read the research:
348
+ - [SkyPilot paper](https://www.usenix.org/system/files/nsdi23-yang-zongheng.pdf) and [talk](https://www.usenix.org/conference/nsdi23/presentation/yang-zongheng) (NSDI 2023)
349
+ - [Sky Computing whitepaper](https://arxiv.org/abs/2205.07147)
350
+ - [Sky Computing vision paper](https://sigops.org/s/conferences/hotos/2021/papers/hotos21-s02-stoica.pdf) (HotOS 2021)
351
+ - [Policy for Managed Spot Jobs](https://www.usenix.org/conference/nsdi24/presentation/wu-zhanghao) (NSDI 2024)
352
+
353
+ SkyPilot was initially started at the [Sky Computing Lab](https://sky.cs.berkeley.edu) at UC Berkeley and has since gained many industry contributors. To read about the project's origin and vision, see [Concept: Sky Computing](https://docs.skypilot.co/en/latest/sky-computing.html).
354
+
355
+ ## Support and Questions
356
+ We are excited to hear your feedback!
357
+ * For issues and feature requests, please [open a GitHub issue](https://github.com/skypilot-org/skypilot/issues/new).
358
+ * For questions, please use [GitHub Discussions](https://github.com/skypilot-org/skypilot/discussions).
359
+
360
+ For general discussions, join us on the [SkyPilot Slack](http://slack.skypilot.co).
361
+
362
+ ## Contributing
363
+ We welcome all contributions to the project! See [CONTRIBUTING](CONTRIBUTING.md) for how to get involved.