您是一名 AI 初创公司创始人。您刚刚完成一轮融资。现在,您正争分夺秒地训练模型或构建 AI 应用。谈到基础设施,有好消息也有坏消息。
好消息是,如果操作得当,您可以从 3 家以上的云服务商那里获得高达 100 万美元的积分。坏消息是,如何在多个云平台高效使用这些积分——同时最大限度提高 GPU 利用率并管理计算资源——可能是一项相当繁重的基础设施负担。
在本指南中,我们将向您介绍以下内容,希望能让您的工作更轻松:
- 如何为 AI 初创公司争取到价值 100 万美元的云积分;
- 利用积分获取 GPU 配额的经验;
- 轻松经济地使用这些积分,同时让您的团队专注于 AI 而非基础设施的技巧。
获取约 100 万美元云积分
截至本文撰写之时,以下是您可以从三大云服务商获得的积分明细:
云服务商 | 项目名称 | 积分 | 有效期 |
---|---|---|---|
Google Cloud | 面向初创企业的 Google Cloud 项目 | $25万 + $10万 | 1年,随后1年以返利形式 |
Amazon Web Services | AWS Activate AWS 生成式 AI 加速器 | $10万或 $20万 高达 $100万 | 1年或3年 未明确 |
Microsoft Azure | 面向初创企业的 Microsoft | $15万 | 1年 |
请注意:
- 一些云服务商会分批次发放积分。您必须先用完第一批积分,才能解锁下一批。
- 有些积分可能以返利形式发放(例如,您消费 N 美元,账单可享受 20% 折扣,有最高返利金额限制)。
- 积分都有到期日期。
我们与许多 AI 创始人的交流经验总结的技巧:
- 谈判:以上信息来自云服务商的公开网站。与我们交流过的创始人成功让云服务商之间竞争,从而获得更长的积分有效期和/或更多积分。不要害怕利用您的选择权。
- 阶梯式使用积分:不要一次性在所有云服务商使用所有积分——采用阶梯式使用方式(用完一家云服务商的积分后再开始使用下一家)!请注意,这也会带来云迁移的挑战,我们将在下文讨论。
即使有这些限制,如果您确实需要消耗如此多的云/GPU 计算资源,这仍然可以从您的银行账户节省高达约 100 万美元的实实在在的费用。
Google Cloud Platform (GCP)
通过面向初创企业的 Google Cloud 项目,AI 公司可以获得最高 25 万美元、有效期为 1 年的积分,以及之后一年最高 10 万美元的 20% 返利。
申请步骤
- (可选;可能有用)与您的孵化器、加速器或属于 Google 合作伙伴网络的风险投资公司沟通,以便联系到 Google Cloud 代表。
- 在面向初创企业的 Google 页面上完成申请。
- 联系 Google 代表,发送您的 Google Cloud 账号详细信息以供批准。
- 您可以向代表申请不同资源类型(包括 GPU 和 TPU)的额外配额。
Amazon Web Services (AWS)
AWS 为初创公司提供高达约 100 万美元的积分。您可以申请加入两个项目:AWS Activate 提供 10 万美元或20 万美元积分(1年或3年有效期),以及AWS 生成式 AI 加速器提供高达 100 万美元积分。
AWS Activate 申请步骤
- 您可以从创始人层级开始,获得最初的 1000 美元积分,但如果您有风险投资公司,请联系您的风险投资公司获取用于投资组合层级的 organization ID,后者可以解锁超过 10 万美元积分。
- 注册 AWS Builder ID 和一个 AWS 账户——这是两个不同的账户。
- 使用 organization ID 申请投资组合层级的 AWS Activate(请注意,不同的 organization ID 可能对应不同金额的积分)。
- 批准后,您的积分将直接应用到您的 AWS 账户,您可以开始使用 AWS Activate 的 10 万美元积分。
AWS 生成式 AI 加速器项目提供高达 100 万美元积分,但有特定的申请窗口期。您可以考虑先使用 AWS Activate 积分,然后再申请此积分项目。
Microsoft Azure
面向初创企业的 Microsoft 提供最高 15 万美元的 Azure 积分。您可以直接申请,或通过 Microsoft 合作伙伴提名(向您的风险投资公司确认他们是否是合作伙伴)。
申请步骤
- 访问 面向初创企业的 Microsoft,使用您的领英账户注册该项目。
- 填写您的公司信息,当被询问到 Microsoft 合作伙伴时,选择您的风险投资公司。
- 批准后,您应访问 面向初创企业的 Microsoft Founders Hub 并在 Azure 上激活您的积分。
- Azure 积分可能分批次发放。一旦您提供更多公司信息并使用了超过 50% 的已发放积分,您可以获得更多积分。
其他云服务商
还有一些其他云积分项目可供您的初创公司申请:
- 面向初创企业的 IBM,提供一年最高 12 万美元积分。
- 面向初创企业的 Oracle Cloud 基础设施,提供 70% 折扣。
除了积分,还有一些 AI 云提供 3-4 倍更便宜的 GPU。例如,8x H100 GPU 在 Google 上每小时花费 88 美元,在 AWS 上每小时 98 美元,而在 Lambda Cloud 上每小时 24 美元(容量更好)。作为参考,一些常见的 GPU 云包括(非详尽列表):Lambda Cloud、RunPod、Paperspace、Fluidstack 和 CUDO。
获取配额
积分批准后,下一步是为您想要的硬件和位置申请配额。
我们积累了一些经验(也踩了不少坑),以下是申请增加配额的一些重要技巧。
在多个区域申请配额:虽然不同云服务商的某些区域以高于平均水平的容量而闻名(例如 AWS us-east-1;GCP us-central1),但您应始终尝试在不同区域申请配额,以最大限度提高可使用的总配额。不用担心使用多个区域的复杂性;我们将在下面的部分中解决这个问题。
务必联系您的销售/客户团队:配额申请在很大程度上是一个有人参与的过程。(尽管 AI 代理备受关注,您仍应联系…人类代理。目前而言。)您的销售/客户代表可以帮助您升级配额申请。
上一代 GPU 配额更容易获取:最新一代 GPU 总是需求量最大,其配额可能比上一代 GPU(对于很多用例来说已经足够好)更难获取(例如目前是 H100 GPU)。如果您的工作负载不需要最新一代 GPU,可以先申请其他 GPU 的配额。
即使在配额批准之前就开始使用积分:尽早使用 CPU 或上一代 GPU 实例运行一些工作负载,这样您的账户就有了活动或支付历史记录。这有助于配额获得批准。
与不同用户共享账户/项目/订阅以共享配额:您可能有多个团队成员 使用云服务。在用户之间共享配额的最佳方式是共享分配配额的同一实体,即 AWS 账户、GCP 项目或 Azure 订阅。您可以在这些实体下创建 IAM 以区分不同用户。
尽管云服务商有官方的配额申请说明:AWS、GCP 和 Azure,但仍有一些重要事项需要分享。
- GCP:(1) 响应迅速的销售代表对于配额申请非常重要。尝试通过您的网络找到联系方式。(2) 记住首先增加
GPUs All Regions
配额,这是一个“全局”配额,限制了您可以在 GCP 区域中创建的 GPU 总数。 - AWS:(1) 每个区域只能同时发起两个配额申请。因此,为了加快整个流程,请务必并行在多个区域申请配额。(2) 与您的销售代表进行通话是个不错的主意。
- Azure:如果您的配额申请被拒绝,您应提交支持工单。在搜索栏中搜索“帮助 + 支持”,点击页面中的“创建支持请求”,并为工单选择“计算-VM (核心-vCPU) 订阅限制增加的配额请求”。您将通过电子邮件或电话联系到代表。
(多)云积分的挑战
一旦您获得了云积分并批准了配额,困难的部分就开始了:明智地使用它们。困难之处在于:
- 多云和阶梯式使用的复杂性:不同的云服务商在创建实例和运行工作负载方面有不同的界面。如果您采用阶梯式使用积分,即先用完一家云服务商的积分再添加另一家,那么每家云服务商将需要数周的集成工作,才能让您的 AI 正常运行。
- 资源不可用:GPU 资源的可用性随时间和不同区域/云服务商而变化。对于 AI 初创公司来说,您需要在需要时快速获取 GPU,以加快迭代速度。
- 在空闲计算资源上过度支出:云是弹性的,您可以在机器空闲时终止它,但这也意味着如果管理不善,空闲机器可能会让您花费大量资金。
这些挑战正是 SkyPilot 解决的问题所在。
SkyPilot:在不同云上运行 AI 的统一系统
SkyPilot 是一个开源框架,它抽象化了在不同云上运行 AI 工作负载的基础设施差异,同时自动为您的工作负载找到最具成本效益的资源。
通过 SkyPilot,您可以使用统一的接口,以 BYOC(在您自己的云账户中启动)的方式,在任何基础设施(12 家以上的云服务商和 Kubernetes)上运行 AI 和批量工作负载。让我们来试用一下,解决多云积分的问题。
步骤 0:1 分钟安装 SkyPilot
pip install 'skypilot[all]' # You can put cloud names here too.
如果您需要,请查看此处的文档。
步骤 1:在一个地方设置所有云服务商账户
要开始使用您的积分,只需使用其原生凭证/认证(例如 ~/.aws/credentials
或 SSO)设置您想要使用的云服务商。SkyPilot 将依赖原生认证自动检测访问权限。
以下是使用 AWS 进行设置的示例:
- 从 AWS 云控制台获取您的凭证,点击右上角账户下拉菜单中的“安全凭证”。
- 创建一个“访问密钥”
- 在本地运行
aws configure
并输入您刚刚生成的访问密钥。
还支持 AWS SSO 等更安全的认证方式。
运行 sky check
命令查看您可以访问哪些云服务商:
$ sky check
🎉 Enabled clouds 🎉
✔ AWS
✔ Azure
✔ Cudo
✔ Fluidstack
✔ GCP
✔ Lambda
✔ RunPod
✔ Kubernetes
现在,您可以使用 SkyPilot 提供的统一界面与不同的云服务商(以及本地 GPU 集群)进行交互了。
步骤 2:一次编写,随处运行
首先,在 SkyPilot YAML 文件中声明您的项目(用于训练)或模型(用于服务)。
该 YAML 文件有点像“云环境的 Dockerfile”。它打包了您项目的依赖项、入口点以及任何资源要求:
resources:
accelerators: A100
cloud: gcp # Suppose GCP is the first cloud you got some credits on.
# Optionally, launch a serving deployment:
# service: ...
workdir: .
run: |
python my_entrypoint.py
您可以通过运行以下命令来实现:
sky launch task.yaml
现在,假设几个月后您想切换到其他云服务商以利用您在那里的积分——您只需切换一个标志即可:
sky launch --cloud gcp task.yaml # Or aws, azure, oci, kubernetes, …
请注意,从云 X 切换到云 Y 时,无需更改任何工作流程或工作负载。您的 AI 工作流程现在具有可移植性,这使得阶梯式使用积分变得更加容易。
步骤 3:在单一视图中观察和管理多云资源
既然我们可以在多个云服务商上启动任务,下一个问题是:如何查看和管理我的团队分布在 N 家云服务商和 M 个区域的任务?
您可以使用 SkyPilot 的 CLI 或 API 管理不同云服务商上的资源:
sky status
:显示在不同云服务商上创建的所有资源、任务和服务sky stop / down
:当资源空闲时停止或销毁您的资源sky jobs
:提交具有自动故障恢复和生命周期管理的任务sky serve
:启动具有跨云、跨区域能力的自动扩缩容服务
换句话说,无需在特定于云服务商的 API 之上构建自定义工具。
以下是您基础设施状态的示例,可在 sky status
中查看。您可能在 Azure 上有一些训练任务,在 GCP 上有一些数据处理任务,在 AWS 上有一些开发节点。
常见问题
处理配额和容量短缺
敏锐的读者可能会问到 GPU 不可用的问题。GPU 容量在不同区域/云服务商以及不同时间点差异很大。配额也众所周知地难以申请。
为了解决这些问题,SkyPilot 内置了自动故障转移配置器,它会遍历您有权访问的所有区域和云服务商的资源,从而提高 GPU 可用性:
此外,您可以要求 SkyPilot 利用不同的定价模型:按需实例、 Spot 实例和长期/短期预留实例。这进一步扩大了您的总资源池。
例如,根据经验,我们发现 Google Cloud 上的 Spot GPU 比按需 GPU 更易获得,您可以使用 SkyPilot 轻松利用 Spot 实例。
是否能进一步节省成本?
最后一个问题是:如何最大限度地延长我的云积分使用时间?
SkyPilot 为此提供了三个关键的成本节省功能:
成本优化器:在大多数云服务商上,相同硬件的价格因区域或可用区而异,并可能随时间变化。为了充分利用您从云服务商获得的积分,SkyPilot 在您启动新云资源时,会自动在您的云账户中找到最便宜的资源。
自动停止:为避免过度支出,您可以通过简单运行 sky autostop <cluster-name>
命令,配置 SkyPilot 自动停止或销毁空闲资源。
Spot 实例支持:最后,SkyPilot 使您能够通过在 Spot 实例上运行任务并自动从中断中恢复,从而节省 3 倍以上的成本。为此,请使用 sky jobs launch --use-spot
命令。请查看此处的文档。
跨云数据传输/出口费用怎么办?
这绝对是 AI 基础设施负责人应该考虑的问题。如果我的团队的 AI 任务在不同的云服务商上启动,出口费用岂不是会疯涨?我应该把数据存储在哪里?
幸运的是,业界正在提供零出口费用对象存储。例如,Cloudflare R2 是一种与 S3 兼容的零出口费用对象存储。 Tigris Data 是另一家提供此类存储的服务商。
S3 兼容性意味着您无需修改代码即可在 SkyPilot 中使用这些对象存储。我们建议的模式是(以 R2 为例):
- 将您的大型数据集(训练 worker 需要读取的数据)存储在 R2 中
- 让您的训练任务 worker 从该存储桶读取数据
要让您的训练任务从 R2 存储桶读取数据,请添加一个 file_mounts
字段,并将路径传递给您的训练程序:
resources:
...
file_mounts:
/train_data:
source: r2://my-bucket/
mode: MOUNT # Either MOUNT (stream) or COPY (copy to VMs first)
run: |
python my_entrypoint.py --input-path=/train_data
这确保了读取训练数据集时不会产生出口费用,无论您在哪里启动 GPU 计算资源!
总结
云服务商为 AI 初创公司提供高达 100 万美元的积分,但跨多个云平台有效管理这些积分可能是一项巨大挑战。
SkyPilot 简化了在任何(和多个)云上运行 AI 工作负载的过程。它提供了一个单一界面来管理 AWS、GCP、Azure 等云服务商上的任务,同时优化成本并确保可用性。
停止在空闲资源上浪费积分(这是云过度支出的一个主要因素),开始利用 SkyPilot 的自动化成本节省功能,最大限度发挥您的云积分的价值。
要使用您的云积分,请在此处开始使用 SkyPilot,只需 5 分钟。
感谢 Justin Gage 审阅和编辑本文的早期草稿。