Modal AI 基础设施:完整设置指南
面向 AI 工作负载的无服务器 GPU 基础设施
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 modalapp = 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 类型和伸缩策略都位于它们所服务的函数旁边——基础设施即实际代码。
它真正擅长的领域
@app.function + web 端点装饰器为你提供一个自动伸缩的 HTTPS 服务;缩到零意味着演示或内部工具在不使用时无需花费任何成本。fn.map(items) 将任务分布到多个容器——处理“在 50 个 GPU 上处理 10K 文档,耗时 10 分钟”的任务,这在其他地方调度起来非常痛苦。重要的生产旋钮
keep_warm=1(重新引入空闲成本),内存快照以加快 Python 启动速度,以及Volumes 来缓存模型权重,这样冷启动就不需要重新下载 15GB。modal.Volume),内置环境变量风格的 secrets 管理——这两个原语使真正的应用成为可能。max_containers / 批处理设置可防止队列峰值意外配置 200 个 GPU。Modal 不合适的场景
同一赛道的竞争对手:RunPod(更便宜的原始 GPU 小时,较差的开发者体验),Replicate(模型动物园优先),云原生无服务器 GPU 产品。Modal 的护城河是 Python 开发者体验;如果你的团队认为“基础设施即装饰器”是“它应该工作的方式”,那就是契合的信号。
常见问题
成本可预测性? 按秒计费加缩到零非常适合突发负载,但对失控循环来说很危险——第一天就设置 max_containers 和预算警报。
我可以在上面服务开放 LLM 吗? 可以——在 Modal 函数内使用 vLLM 加 web 端点是一个有文档记录的模式;权重放在 Volume 上,keep_warm 用于延迟。在持续负载下,重新审视上面的临界点计算。
本地开发? 相同的代码在本地(.local())和远程(.remote())运行——开发循环确实是卖点。
*最后更新:2026 年 6 月。GPU 系列和定价会变化——请在 modal.com 上验证。*
相关工具
相关教程
使用 Modal 实现 AI 驱动的基础设施工作流的分步指南
使用 WhyLabs 实现实时数据和 AI 监控
使用 Vellum 编排 LLM 工作流
学习 Stability AI API:Stable Diffusion 图像生成
让 AI 访问并管理你的 GitHub 仓库——GitHub MCP 服务器逐步指南
Transformers.js 与 ONNX Runtime 浏览器端 AI 推理详细对比