SuperAPI AI 工具集

modal-serverless-gpu

部署与运维

查看项目

更新于 10-21 16:21

技能介绍

Modal Serverless GPU 是一份关于在 Modal 无服务器 GPU 云平台上运行机器学习工作负载的综合指南。

用途

当需要在不管理基础设施的情况下运行 GPU 密集型 ML 工作负载、将 ML 模型部署为自动扩缩 API、运行批处理作业(训练、推理、数据处理)、需要按秒计费且无空闲成本的 GPU、快速原型化 ML 应用,或运行定时任务(类 cron 工作负载)时,可使用 Modal。

资料同时列出替代方案:RunPod 适合需要持久状态的长时间运行 pod;Lambda Labs 适合预留 GPU 实例;SkyPilot 适合多云编排与成本优化;Kubernetes 适合复杂多服务架构。

主要能力

  • 无服务器 GPU:按需提供 T4、L4、A10G、L40S、A100、H100、H200、B200。
  • Python 原生:用 Python 代码定义基础设施,无需 YAML。
  • 自动扩缩:可缩容至零,也可瞬间扩展到 100+ GPU。
  • 亚秒级冷启动:基于 Rust 的基础设施实现快速容器启动。
  • 容器缓存:镜像层缓存以加快迭代。
  • Web 端点:将函数部署为 REST API,支持零停机更新。

使用方式

安装:

pip install modal modal setup # Opens browser for authentication

执行模式:modal run script.py 执行后退出;modal serve script.py 开发时实时重载;modal deploy script.py 持久化云端部署。

核心概念包括 App(函数与资源的容器)、Function(带计算规格的无服务器函数)、Cls(带生命周期钩子的类函数)、Image(容器镜像定义)、Volume(模型/数据的持久化存储)、Secret(安全凭据存储)。

GPU 配置支持单 GPU(如 gpu="A100")、指定显存变体(gpu="A100-80GB")、多 GPU(gpu="H100:4",最多 8 个)、回退列表(gpu=["H100", "A100", "L40S"])以及任意可用 GPU(gpu="any")。

容器镜像可通过 modal.Image.debian_slim().pip_install(...) 构建,也可从 CUDA 基础镜像或注册表镜像构建,并支持 apt_install 安装系统包。

持久化存储使用 modal.Volume.from_name(...),通过 volumes 参数挂载,修改后调用 volume.commit() 持久化。

Web 端点支持 @modal.fastapi_endpoint()(简单函数转 API)、@modal.asgi_app()(完整 FastAPI/Starlette 应用)、@modal.wsgi_app()(Django/Flask 应用)、@modal.web_server(port)(任意 HTTP 服务器)。

其他能力包括动态批处理(@modal.batched)、密钥管理(modal secret create)、定时调度(modal.Cron、modal.Period)、性能优化(container_idle_timeout、allow_concurrent_inputs、@modal.enter() 预热加载模型)、并行处理(.map() 扇出到并行容器)以及调试(.local() 本地测试、modal app logs 查看日志)。

适用场景

GPU 密集型 ML 工作负载、模型 API 部署、批处理训练与推理、数据处理、快速原型、定时任务等。

限制与注意事项

资料中的版本相关细节可能已过时,需对照所安装版本的官方文档确认。不得编造结果、参数、标识符、引用或统计数据;无法运行或验证时应如实说明。不要公开暴露服务或凭据;在配置前确认云成本。涉及花钱、占用共享 GPU 或云配额、触碰个人或患者数据、或不可撤销的操作前应先询问。若服务器启动失败或 OOM,应检查模型大小与内存、量化及并行设置;若指令中的函数、标志或端点在已安装版本中缺失,应查阅该版本自身文档并告知用户,切勿臆造 API。

资源

文档:https://modal.com/docs 示例:https://github.com/modal-labs/modal-examples 定价:https://modal.com/pricing Discord:https://discord.gg/modal