Modal — 无服务器 GPU 平台,写 Python 函数就能用 GPU
> 一句话版本:你写一个 Python 函数,加个 @app.function(gpu="L4") 装饰器,Modal 自动帮你找 GPU 跑,跑完就销毁。不用买服务器、不用装驱动、按秒计费。每月 $30 免费额度。
| 项目 | 信息 |
|---|---|
| 官网 | https://modal.com |
| 创建时间 | 2021 |
| 创始人 | Erik Bernhardsson(前 Spotify CTO)、Akshat Bubna |
| 融资 | Series A $16M(2023-10,$138M 估值)+ $25M(2024-04),总计 $41M+ |
| 总部 | 纽约 |
| 类别 | 无服务器 GPU 云平台 |
核心内容
一句话理解
传统方式:租一台 GPU 服务器 → 装 CUDA → 装 PyTorch → 部署代码 → 盯着它跑 → 不用时还得花钱
Modal:写 Python 函数 → 加装饰器 → 调用 → 自动跑 → 自动销毁 → 按秒计费
基本用法
import modal
app = modal.App("my-app")
@app.function(gpu="L4")
def process_audio(file_url):
import torch
# 这段代码跑在 Modal 的 GPU 上
# 你本地电脑不需要 GPU
model = load_model()
result = model(file_url)
return result
# 本地调用,远程执行
with app.run():
result = process_audio.remote("https://example.com/audio.mp3")
GPU 价格
| GPU | 显存 | 价格/小时 | 适合 |
|---|---|---|---|
| T4 | 16GB | $0.40 | 轻量推理 |
| **L4** | 24GB | $0.80 | 推理(性价比最高) |
| A10G | 24GB | $1.10 | 通用 |
| A100-40GB | 40GB | $2.60 | 大模型 |
| A100-80GB | 80GB | $3.80 | 大模型 |
| H100 | 80GB | $3.50+ | 大模型训练/推理 |
CPU:$0.00003942/核/秒(约 $0.14/核/小时)
内存:$0.00000672/GiB/秒(约 $0.024/GiB/小时)
定价计划
| 计划 | 月费 | 免费额度 | 并发 | 座位 |
|---|---|---|---|---|
| **Starter** | $0 | $30/月 | 100 容器 + 10 GPU | 3 |
| **Team** | $250 | $100/月 | 1000 容器 + 50 GPU | 无限 |
| **Enterprise** | 定制 | 折扣 | 更高 GPU 并发 | 无限 |
额外福利:
- 早期创业公司:最高 $25K 免费算力
- 学术研究:最高 $10K 免费算力
- 可通过 AWS/GCP Marketplace 用 committed spend
核心特性
无服务器:
- 自动扩缩,按需启动,空闲自动销毁
- 不用时零成本(不像 EC2/GPU 实例 24 小时计费)
- 冷启动 10-30 秒(首次),之后秒级
持久化:
- Modal Volume:持久存储(S3 级别)
- Modal Image:自定义 Docker 镜像,预装依赖
- Modal Secret:密钥管理
Web 端点:
- 把函数变成 HTTP API
@app.web_endpoint()装饰器- 自动 HTTPS,自动扩缩
定时任务:
@app.function(schedule=modal.Period(hours=1))- 内置 cron 支持
Sandbox + Notebooks:
- 交互式开发环境,类似 Jupyter 但在云端 GPU 上跑
和传统 GPU 云对比
| 维度 | Modal | AWS EC2 (GPU) | Lambda |
|---|---|---|---|
| GPU 支持 | ✅ 多种 | ✅ 多种 | ❌ |
| 计费方式 | 按秒 | 按小时(最低1小时) | 按毫秒 |
| 冷启动 | 10-30s | 分钟级 | 毫秒级 |
| 自动扩缩 | ✅ | ❌ 手动 | ✅ |
| 运维负担 | 零 | 高 | 低 |
| 长时间任务 | ✅ | ✅ | ❌ 15分钟限制 |
实际成本对比
Modal 官方例子:
- 传统云:75 GPU × 24 小时 × $3 = $5,400
- Modal:平均 50 GPU × 24 小时 × $3.95 = $4,740(节省 12%,因为不用时自动缩到 0)
Q&A
IndexTTS2(B站开源 TTS)能跑在 Modal 上吗?
完全可行,而且成本极低。
- 硬件:T4 16GB ($0.40/hr) 或 L4 24GB ($0.80/hr),IndexTTS2 需要 ≥8GB 显存
- 单次调用成本:≈$0.003(生成 10 秒音频,GPU 时间 5-10 秒)
- $30 免费额度 ≈ 10,000 次调用
- 模型文件几 GB,用 Modal Volume 持久化避免重复下载
- 冷启动首次 30-60 秒(加载模型到 GPU),之后秒级
IndexTTS2 20K stars,3 秒音频克隆声音 + 8 种情绪控制 + 毫秒级时长控制(世界首创),效果接近 ElevenLabs。
详细报告:https://temp.jaylab.io/indextts2-report.html
分析
为什么 Modal 重要:
- 降低了 GPU 使用门槛:不需要懂 DevOps、不需要管理服务器,Python 开发者直接用 GPU
- 成本结构合理:按秒计费对间歇性工作负载(如音频处理、批量推理)非常友好
- $30 免费额度:对个人开发者很慷慨,一个人月的使用量基本够用
- Erik Bernhardsson:前 Spotify CTO,技术圈知名度高(还做了 Annoy、 Huck 等开源项目)
竞争格局:
| 平台 | 特点 | 价格 |
|---|---|---|
| **Modal** | Python 原生,无服务器 | $30/月免费 |
| **Replicate** | API 优先,一行调用 | 按次计费 |
| **RunPod** | 传统 GPU 租赁 + Serverless | 较便宜 |
| **Lambda Labs** | 便宜 GPU 实例 | 最便宜之一 |
| **Beam** | 类似 Modal | 有免费额度 |
| **Banana** | Serverless GPU API | 按次计费 |
局限:
- 锁定:代码必须用 Modal SDK 写,迁移到其他平台需要改代码
- 冷启动:首次 10-30 秒,不适合低延迟 API
- Python 为主:支持其他语言但不那么原生
- 不透明:GitHub 仓库不公开(
modal-labs/modal返回 null),闭源 - 网络 I/O:大量数据传输可能成为瓶颈
与 Jay 的关联:
- OpenClaw exec 工具:Modal 可以作为 OpenClaw 的远程 GPU 执行后端,跑需要 GPU 的任务(音频处理、图像生成等)
- 播客处理流水线:speech2srt 的三个 skill 就跑在 Modal 上,Jay 的 67 集播客可以用 Modal 批量处理
- $30 免费额度:个人实验完全够用
- 和 Cloudflare 的关系:Modal 是计算层(GPU),Cloudflare 是网络层(路由/CDN),互补
评分
| 维度 | 评分 (1-10) | 说明 |
|---|---|---|
| 产品完成度 | 9 | 成熟的无服务器 GPU 平台,功能齐全 |
| 易用性 | 9 | Python 装饰器一行搞定,学习成本极低 |
| 成本效益 | 8 | 按秒计费 + $30 免费额度,间歇性工作负载最佳 |
| 竞争力 | 7 | Replicate/RunPod 等竞争激烈 |
| 开放性 | 4 | 闭源,代码锁定 |
| 与 Jay 的关联 | 7 | GPU 后端 + 播客处理,有用但不是刚需 |
| **总分** | **7.3** | GPU 无服务器化的最佳选择之一,个人开发者友好 |