您是一名 AI 初创公司创始人。您刚刚完成一轮融资。现在,您正争分夺秒地训练模型或构建 AI 应用。谈到基础设施,有好消息也有坏消息。

好消息是,如果操作得当,您可以从 3 家以上的云服务商那里获得高达 100 万美元的积分。坏消息是,如何在多个云平台高效使用这些积分——同时最大限度提高 GPU 利用率并管理计算资源——可能是一项相当繁重的基础设施负担。

在本指南中,我们将向您介绍以下内容,希望能让您的工作更轻松:

  • 如何为 AI 初创公司争取到价值 100 万美元的云积分;
  • 利用积分获取 GPU 配额的经验;
  • 轻松经济地使用这些积分,同时让您的团队专注于 AI 而非基础设施的技巧。

获取约 100 万美元云积分

截至本文撰写之时,以下是您可以从三大云服务商获得的积分明细:

云服务商项目名称积分有效期
Google Cloud面向初创企业的 Google Cloud 项目$25万 + $10万1年,随后1年以返利形式
Amazon Web ServicesAWS 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% 返利。

申请步骤

  1. (可选;可能有用)与您的孵化器、加速器或属于 Google 合作伙伴网络的风险投资公司沟通,以便联系到 Google Cloud 代表。
  2. 面向初创企业的 Google 页面上完成申请。
  3. 联系 Google 代表,发送您的 Google Cloud 账号详细信息以供批准。
  4. 您可以向代表申请不同资源类型(包括 GPU 和 TPU)的额外配额。

Amazon Web Services (AWS)

AWS 为初创公司提供高达约 100 万美元的积分。您可以申请加入两个项目:AWS Activate 提供 10 万美元或20 万美元积分(1年或3年有效期),以及AWS 生成式 AI 加速器提供高达 100 万美元积分。

AWS Activate 申请步骤

  1. 您可以从创始人层级开始,获得最初的 1000 美元积分,但如果您有风险投资公司,请联系您的风险投资公司获取用于投资组合层级organization ID,后者可以解锁超过 10 万美元积分。
  2. 注册 AWS Builder ID 和一个 AWS 账户——这是两个不同的账户。
  3. 使用 organization ID 申请投资组合层级的 AWS Activate(请注意,不同的 organization ID 可能对应不同金额的积分)。
  4. 批准后,您的积分将直接应用到您的 AWS 账户,您可以开始使用 AWS Activate 的 10 万美元积分。

AWS 生成式 AI 加速器项目提供高达 100 万美元积分,但有特定的申请窗口期。您可以考虑先使用 AWS Activate 积分,然后再申请此积分项目。

Microsoft Azure

面向初创企业的 Microsoft 提供最高 15 万美元的 Azure 积分。您可以直接申请,或通过 Microsoft 合作伙伴提名(向您的风险投资公司确认他们是否是合作伙伴)。

申请步骤

  1. 访问 面向初创企业的 Microsoft,使用您的领英账户注册该项目。
  2. 填写您的公司信息,当被询问到 Microsoft 合作伙伴时,选择您的风险投资公司。
  3. 批准后,您应访问 面向初创企业的 Microsoft Founders Hub 并在 Azure 上激活您的积分。
  4. Azure 积分可能分批次发放。一旦您提供更多公司信息并使用了超过 50% 的已发放积分,您可以获得更多积分。

其他云服务商

还有一些其他云积分项目可供您的初创公司申请:

除了积分,还有一些 AI 云提供 3-4 倍更便宜的 GPU。例如,8x H100 GPU 在 Google 上每小时花费 88 美元,在 AWS 上每小时 98 美元,而在 Lambda Cloud 上每小时 24 美元(容量更好)。作为参考,一些常见的 GPU 云包括(非详尽列表):Lambda CloudRunPodPaperspaceFluidstackCUDO

获取配额

积分批准后,下一步是为您想要的硬件和位置申请配额。

我们积累了一些经验(也踩了不少坑),以下是申请增加配额的一些重要技巧。

在多个区域申请配额:虽然不同云服务商的某些区域以高于平均水平的容量而闻名(例如 AWS us-east-1;GCP us-central1),但您应始终尝试在不同区域申请配额,以最大限度提高可使用的总配额。不用担心使用多个区域的复杂性;我们将在下面的部分中解决这个问题。

务必联系您的销售/客户团队:配额申请在很大程度上是一个有人参与的过程。(尽管 AI 代理备受关注,您仍应联系…人类代理。目前而言。)您的销售/客户代表可以帮助您升级配额申请。

上一代 GPU 配额更容易获取:最新一代 GPU 总是需求量最大,其配额可能比上一代 GPU(对于很多用例来说已经足够好)更难获取(例如目前是 H100 GPU)。如果您的工作负载不需要最新一代 GPU,可以先申请其他 GPU 的配额。

即使在配额批准之前就开始使用积分:尽早使用 CPU 或上一代 GPU 实例运行一些工作负载,这样您的账户就有了活动或支付历史记录。这有助于配额获得批准。

与不同用户共享账户/项目/订阅以共享配额:您可能有多个团队成员 使用云服务。在用户之间共享配额的最佳方式是共享分配配额的同一实体,即 AWS 账户、GCP 项目或 Azure 订阅。您可以在这些实体下创建 IAM 以区分不同用户。

尽管云服务商有官方的配额申请说明:AWSGCPAzure,但仍有一些重要事项需要分享。

  • 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 进行设置的示例:

  1. 从 AWS 云控制台获取您的凭证,点击右上角账户下拉菜单中的“安全凭证”。
  2. 创建一个“访问密钥”
  3. 在本地运行 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 审阅和编辑本文的早期草稿。