Modal与AWS Lambda GPU推理方案选型
Modal明确支持为Function绑定GPU,而AWS Lambda配额页未声明GPU能力;正文据此给出部署边界、伸缩方法、费用核算与验收清单。
做 Modal 与 AWS Lambda 的 GPU 推理选型,先看平台是否在大模型部署文档中明确提供 GPU,而不是只看接口是否“无服务器”。Modal 的 GPU 加速文档明确支持为 Function 绑定 GPU;AWS Lambda 的配额文档只列出普通 Function 的内存、CPU、时限和部署限制,未声明 GPU 型号或显存,因此不能据此确认 Lambda 原生 GPU 推理路径。
大模型部署的选型结论
若验收条件是“当前官方文档能明确证明 GPU 可配置”,Modal 是已核实路径;AWS Lambda 在本文所列文档中仍是“GPU 能力待确认”。这不等于断言 AWS 永远不支持,而是不能把普通 Lambda 限额改写成 GPU 规格。
如果 GPU 实际位于另一服务,应把 Lambda 作为远程调用层另行核实,不能据此归类为原生 GPU 部署。选型时至少记录模型权重与显存需求、运行时、区域、请求大小、超时、并发方式和费用项,避免用接口调用成功代替资源能力确认。
部署前准备
Modal 侧先准备有效付款方式、推理代码和容器镜像,再确定 GPU 型号、每容器卡数、回退顺序及容器数量策略。AWS Lambda 侧应先找到明确列出 GPU 型号、显存、运行时、适用区域和限制的当前官方说明。
现有 Lambda 配额页没有提供可核验的 GPU 命令、运行时标识或推理端点,因此不应编造启动命令。模型文件能否放入部署包、临时目录或外部存储,也应分别核对,不能用 Function 内存代替 GPU 显存。
Modal:配置 GPU 与多卡请求
Modal 文档建议推理先从 L40S 开始,该卡提供 48 GB GPU RAM。对应的基础配置为:
@app.function(gpu="L40S")
也可以按偏好顺序配置回退列表:
@app.function(gpu=["H100", "A100-40GB:2"])
Modal 会先尝试列表中的首选类型,再尝试后续类型。:n 表示每个容器的 GPU 数量;多数类型最多支持 8 张,A10 最多支持 4 张。请求超过 2 张 GPU 通常会增加等待时间,而且同一容器中的 GPU 始终位于同一物理机器。
请求值也不是固定硬件保证。gpu="H100" 可能被自动升级为 H200,H100! 可阻止这项升级;B300 要求 CUDA 13.1 或更高版本。涉及固定型号比较时,应记录实际配置及可能发生的升级。
伸缩与冷启动
Modal 的伸缩文档说明,每个 Function 都有自己的自动伸缩容器池,无输入时默认缩到零。已部署的 Function 可以调用:
f.update_autoscaler(min_containers=2, max_containers=10)
示例中的 min_containers 用于保留保温容器,max_containers 设置容器上限,buffer_containers 为活跃流量保留额外容器,scaledown_window 设置空闲缩容前的最长等待秒数。这些运行期修改会在下次部署时恢复为装饰器中的配置。
Modal 的冷启动文档称,容器启动约需一秒,但全局代码、导入操作和 modal.enter 方法执行完成后,容器才算 warm。模型权重应提前下载,避免首次调用时才获取。
费用按什么核算
Modal 定价页按秒计量 CPU、内存和 GPU 时间。应用加载、输入处理以及最后一次输入后的保活都会计费;默认保活时间为 60 秒,缩到零个容器后不再收费。CPU 和内存按请求量与实际用量中的较高者计费。
从当前定价页读取适用于自己的单价,再按实际计费时长填写:
Modal_estimate = SUM(RATE_YOUR_VALUE * METERED_SECONDS_YOUR_VALUE)
Lambda 侧,预置并发文档说明预置并发会持续运行,并与初始化、调用费用分开计算;即使环境没有处理请求,初始化仍可能收费。可按账单或报价填写:
Lambda_estimate = INVOCATION_COST_YOUR_VALUE
+ INITIALIZATION_COST_YOUR_VALUE
+ PROVISIONED_CONCURRENCY_COST_YOUR_VALUE
未启用预置并发时不要添加对应项;若还调用外部 GPU 服务,应把该服务费用单列,不能用普通 Lambda 费用代表完整架构成本。
AWS Lambda 的限制与验收
前述 Lambda 配额页规定,Function 内存可在 128 MB 到 10,240 MB 之间按 1 MB 调整,CPU 按内存比例分配,1,769 MB 对应一个 vCPU;执行超时最多为 900 秒。这些都是普通 Function 资源限制,不是 GPU 显存或 GPU 执行时间。
部署包同样需要提前核对:.zip 文件压缩后最多 50 MB、解压后最多 250 MB;容器镜像解压后最多 10 GB;/tmp 可配置为 512 MB 到 10,240 MB。同步请求和响应各限 6 MB,流式响应限 200 MB。
验收 Lambda GPU 路径前,必须取得明确说明 GPU 型号和适用边界的当前官方文档,再核对运行时、区域、模型加载位置、请求限制和实际响应。若只有这些通用配额,应把方案标为“GPU 能力未确认”,而不是继续假定其支持原生 GPU 推理。
本文步骤依据正文所链接的官方文档整理,未进行运行或测量;使用前请按当前版本复核。