医疗健康

在 Amazon EC2 上使用 NVIDIA MPS 将 ASR 推理基础设施成本降低 75%

收录时间:2026年8月29日查看来源

问题

单个 ASR 推理请求仅使用 GPU 15-20% 计算容量,默认 CUDA 时间切片导致约 80% 硬件空闲;Heidi Health 为维持亚秒级转录延迟在高峰流量下需要运行 16 个 GPU 实例。

解决方案

使用 NVIDIA CUDA Multi-Process Service(MPS)实现 GPU 并发执行,结合 NVIDIA Triton Inference Server 动态批处理和 ONNX Runtime/TensorRT 模型优化,在 Amazon EC2 g6e.4xlarge/g7e.4xlarge 实例上部署 FastAPI 网关 + Triton + MPS daemon 三层推理管道,通过并发分区提高 GPU 利用率。

结果

基础设施需求降低 75%(从 16 个 GPU 实例降至 4 个),在 g7e.4xlarge 上每 GPU 达到 92.1 RPS,平均延迟 352ms,p99 769ms;采用 TensorRT+ONNX+MPS 进一步降低 88%(至 2 个 GPU)。

成本

成本信息待确认。

案例分析

使用场景:在 Amazon EC2 GPU 实例上优化自动语音识别(ASR)推理,降低临床咨询转录的基础设施成本并维持亚秒级延迟

实施证据:Heidi Health 目前的生产部署需要 16 个 GPU 实例,本文展示了通过 Triton + MPS 在 Amazon EC2 g7e.4xlarge 上实现每 GPU 92.1 RPS,推荐 4 个 GPU(减少 75%),并提供了完整开源仓库(Dockerfiles、Triton 模型配置、FastAPI 网关、CUDA 图安全补丁、健康监控和基准脚本),可部署到任何 EC2 GPU 实例。

指标:GPU 基础设施减少 75%(从 16 个 GPU 实例降至 4 个);Triton + MPS 配置在 g7e.4xlarge 上实现 92.1 RPS/GPU,平均延迟 352ms,p99 延迟 769ms;TensorRT+ONNX+MPS 配置达到 111.6 RPS/GPU,基础设施减少 88%(从 16 个 GPU 降至 2 个);基线 g6e.4xlarge 最大并发 20,吞吐量 62.3 RPS,平均延迟 606ms,p99 788ms;Diarization 模型 TensorRT 引擎预热优化:平均延迟从 309.04ms 降至 238.73ms(降低 23%),p99 从 499.45ms 降至 389.21ms(降低 22%);单个 MPS 实例处理 45 秒音频约 160ms;CUDA 图预热包络内回放约 165ms,超出形状回退约 500ms

经验:直接调用 model.forward() 代替 model.transcribe() 可消除约 50ms 框架开销,结合 bfloat16 自动混合精度和专用 CUDA 流,单实例处理 45 秒音频约 160ms。;序列化模型加载(文件锁 fcntl.flock)避免多个进程同时加载 600M 参数模型导致 GPU 显存溢出。;CUDA 图预热包络覆盖常见生产形状(5/15/30/45/60 秒),形状内回放约 165ms,超限仅该次调用回退到 eager 执行(约 500ms),避免整体性能退化。;在 MPS 下 CUDA 图重捕获可能被兄弟实例破坏,导致非法地址崩溃,因此实现了 MPS-safe 回退机制。;通过 wedge sentinel 健康监控(CUDA 流探针失败写入 sentinel 文件)检测不可恢复实例,保障服务稳定性。;Triton 动态批处理(首选批量 4/8/16,最大队列延迟 50ms)平衡延迟与吞吐量;序列批处理用于流式 diarization,每个录音 correlation ID 路由并自动过期(600 秒)。;网关侧音频解码(torchcodec 支持 WAV/WebM/Opus/MP3/M4A/FLAC)保持 Triton 输入为原始 float32 张量,网关可运行在 CPU 节点。;该优化模式模型无关,已验证适用于 NVIDIA Canary 和 OpenAI Whisper large-v3 等编码器-解码器模型。