[ PROMPT_NODE_26816 ]
modal
[ SKILL_DOCUMENTATION ]
# Modal
## 概述
Modal 是一个无服务器平台,用于以极简配置在云端运行 Python 代码。在强大的 GPU 上执行函数,自动扩缩容至数千个容器,并仅为使用的计算资源付费。
Modal 特别适用于 AI/ML 工作负载、高性能批处理、定时任务、GPU 推理和无服务器 API。请访问 https://modal.com 免费注册并获取每月 30 美元的额度。
## 何时使用此技能
使用 Modal 进行:
- 部署和托管 ML 模型 (LLM、图像生成、嵌入模型)
- 运行 GPU 加速计算 (训练、推理、渲染)
- 并行批处理大规模数据集
- 调度计算密集型作业 (日常数据处理、模型训练)
- 构建需要自动扩缩容的无服务器 API
- 需要分布式计算或专用硬件的科学计算
## 身份验证与设置
Modal 需要通过 API 令牌进行身份验证。
### 初始设置
bash
# 安装 Modal
uv uv pip install modal
# 身份验证 (打开浏览器进行登录)
modal token new
这将创建一个存储在 `~/.modal.toml` 中的令牌。该令牌用于验证所有 Modal 操作。
### 验证设置
python
import modal
app = modal.App("test-app")
@app.function()
def hello():
print("Modal is working!")
运行命令:`modal run script.py`
## 核心能力
Modal 通过在容器中运行的函数提供无服务器 Python 执行环境。以声明式方式定义计算需求、依赖项和扩缩容行为。
### 1. 定义容器镜像
使用 Modal 镜像为函数指定依赖项和环境。
python
import modal
# 包含 Python 包的基础镜像
image = (
modal.Image.debian_slim(python_version="3.12")
.uv_pip_install("torch", "transformers", "numpy")
)
app = modal.App("ml-app", image=image)
**常见模式:**
- 安装 Python 包:`.uv_pip_install("pandas", "scikit-learn")`
- 安装系统包:`.apt_install("ffmpeg", "git")`
- 使用现有的 Docker 镜像:`modal.Image.from_registry("nvidia/cuda:12.1.0-base")`
- 添加本地代码:`.add_local_python_source("my_module")`
请参阅 `references/images.md` 获取完整的镜像构建文档。
### 2. 创建函数
使用 `@app.function()` 装饰器定义在云端运行的函数。
python
@app.function()
def process_data(file_path: str):
import pandas as pd
df = pd.read_csv(file_path)
return df.describe()
**调用函数