EN

Modal AI 基础设施:完整设置指南

面向 AI 工作负载的无服务器 GPU 基础设施

返回教程列表🌐 Read in English
进阶10 分钟

Modal AI 基础设施:完整设置指南

面向 AI 工作负载的无服务器 GPU 基础设施

Modal AI 工作负载指南(2026):Python 装饰器即基础设施,实现无服务器 GPU——四大适用场景(突发任务、尖峰端点、并行扇出、定时管道),冷启动缓解(keep_warm/Volume 权重缓存),GPU 选择,以及转向自托管 vLLM 的临界点。

Modal 用于 AI 工作负载:完整设置指南

Modal 是具有 Python 原生开发者体验的无服务器 GPU:你装饰函数,在代码中声明容器镜像和 GPU,Modal 负责配置、伸缩(包括缩到零)以及按秒计费。对于 AI 团队来说,它占据了一个甜区——比调用托管 API 更重,但比管理 GPU Kubernetes 轻得多——并且已成为“我有时需要 GPU,但并非总是需要一个集群”的默认答案。

心智模型

一切都是代码——没有 YAML,没有控制台点击:

python
import modal

app = modal.App('embeddings-service')

image = (modal.Image.debian_slim() .pip_install('sentence-transformers', 'torch'))

@app.function(image=image, gpu='A10G', timeout=600) def embed(texts: list[str]) -> list[list[float]]: from sentence_transformers import SentenceTransformer model = SentenceTransformer('BAAI/bge-m3') return model.encode(texts).tolist()

@app.local_entrypoint() def main(): print(len(embed.remote(['hello world']))) # 在云端的 A10G 上运行

modal run script.py 使该函数在云 GPU 上执行;modal deploy 使其成为持久端点。容器镜像、依赖项、GPU 类型和伸缩策略都位于它们所服务的函数旁边——基础设施即实际代码。

它真正擅长的领域

  • 突发 GPU 任务:夜间嵌入回填、批量转录/OCR、定期微调运行——按分钟付费,空闲时为零。
  • 流量尖峰的模型推理端点@app.function + web 端点装饰器为你提供一个自动伸缩的 HTTPS 服务;缩到零意味着演示或内部工具在不使用时无需花费任何成本。
  • 并行扇出fn.map(items) 将任务分布到多个容器——处理“在 50 个 GPU 上处理 10K 文档,耗时 10 分钟”的任务,这在其他地方调度起来非常痛苦。
  • 定时 AI 管道:cron 装饰器将数据丰富/去重/报告任务转化为带有日志的已部署调度任务。
  • 重要的生产旋钮

  • 冷启动是缩到零的代价。缓解措施:对延迟敏感的端点使用 keep_warm=1(重新引入空闲成本),内存快照以加快 Python 启动速度,以及Volumes 来缓存模型权重,这样冷启动就不需要重新下载 15GB。
  • Volumes 和 Secrets:用于权重/数据集的持久化存储(modal.Volume),内置环境变量风格的 secrets 管理——这两个原语使真正的应用成为可能。
  • GPU 选择:T4/A10G 用于小模型和嵌入;L4/A100/H100 级别用于严肃的推理和训练。在这里合理选择大小就是你的账单——从小开始,分析性能,再升级。
  • 并发控制:每个函数的 max_containers / 批处理设置可防止队列峰值意外配置 200 个 GPU。
  • Modal 不合适的场景

  • 稳定的高容量 LLM 服务:在持续利用率下,预留容量或自管理的 vLLM 优于按秒的无服务器定价——无服务器溢价购买的是你未使用的弹性。临界点计算与托管开放模型 API 的买 vs 租计算相同(对于*标准*模型,这比运行你自己的任何东西都简单)。
  • 仅调用托管的 LLM API:不需要 GPU——普通的无服务器/容器更便宜、更简单。
  • 严格的数据驻留/VPC 要求:这是一个托管云——根据你的需求检查当前的企业/网络选项(合规视角)。
  • 同一赛道的竞争对手:RunPod(更便宜的原始 GPU 小时,较差的开发者体验),Replicate(模型动物园优先),云原生无服务器 GPU 产品。Modal 的护城河是 Python 开发者体验;如果你的团队认为“基础设施即装饰器”是“它应该工作的方式”,那就是契合的信号。

    常见问题

    成本可预测性? 按秒计费加缩到零非常适合突发负载,但对失控循环来说很危险——第一天就设置 max_containers 和预算警报。

    我可以在上面服务开放 LLM 吗? 可以——在 Modal 函数内使用 vLLM 加 web 端点是一个有文档记录的模式;权重放在 Volume 上,keep_warm 用于延迟。在持续负载下,重新审视上面的临界点计算。

    本地开发? 相同的代码在本地(.local())和远程(.remote())运行——开发循环确实是卖点。


    *最后更新:2026 年 6 月。GPU 系列和定价会变化——请在 modal.com 上验证。*

    相关工具

    modalpython