docs/GPU_DOCKER_DEPLOYMENT.md
本文档介绍如何使用 GPU 加速 faster-whisper 字幕生成,大幅提升处理速度。
MoneyPrinterTurbo 中唯一的深度学习环节是 faster-whisper 语音识别(将音频转为带时间戳的字幕)。
large-v3 模型生成字幕较慢注意:项目的其他环节(脚本生成、音频合成、视频剪辑)不涉及深度学习,GPU 只加速字幕生成。
本项目提供两种 Docker 部署方式,默认 CPU 部署不受任何影响:
docker compose up -d
使用原有的 Dockerfile(python:3.11-slim-bullseye),无需 GPU。
docker compose -f docker-compose.yml -f docker-compose.gpu.yml up -d
使用 Dockerfile.gpu(nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04)并为 api 服务挂载 GPU。
large-v3 模型在 GPU 上 float16 精度约占用 1.5GB 显存nvidia-smi 确认docker info 查看 Runtimes 列表中是否有 nvidia# 确认 NVIDIA 驱动正常
nvidia-smi
# 确认 Docker 支持 GPU(Runtimes 中应包含 nvidia)
docker info | findstr nvidia
如果没有 nvidia runtime,需要先安装 NVIDIA Container Toolkit。
在 config.toml 中设置:
subtitle_provider = "whisper"
[whisper]
model_size = "large-v3"
device = "cuda" # 使用 GPU(CPU 用户设为 "cpu")
compute_type = "float16" # GPU 推荐 float16(CPU 用户设为 "int8")
| 文件 | 用途 |
|---|---|
Dockerfile | 默认 CPU 镜像(原有,未修改) |
Dockerfile.gpu | GPU 镜像(新增,基于 NVIDIA CUDA) |
docker-compose.yml | 默认 CPU 部署配置(原有,未修改) |
docker-compose.gpu.yml | GPU 部署覆盖配置(新增) |
docker pull nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04
如果使用了阿里云等镜像加速源,可能对
nvidia/cuda返回 403。请确保能从 Docker Hub 直接拉取。
按上文说明设置 subtitle_provider = "whisper" 和 device = "cuda"。
docker compose -f docker-compose.yml -f docker-compose.gpu.yml up -d --build
docker exec -it moneyprinterturbo-api nvidia-smi
如果能看到 GPU 信息,说明 GPU 挂载成功。
| GPU 显存 | 建议最大并发任务数 |
|---|---|
| 4GB | 1-2 |
| 6GB | 2-3 |
| 8GB | 3-4 |
| 12GB+ | 5 |
可通过 config.toml 中的 max_concurrent_tasks 控制并发数。
阿里云镜像加速对 nvidia/cuda 返回 403。解决方法:
docker pull nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04Cannot uninstall blinkerUbuntu 22.04 系统自带的 blinker 通过 distutils 安装,pip 无法卸载。Dockerfile.gpu 已通过 apt-get remove -y python3-blinker 处理。
nvidia-smi 找不到 GPUdocker info 中 Runtimes 包含 nvidiadocker compose -f docker-compose.yml -f docker-compose.gpu.yml up -dconfig.toml 中 device = "cuda"(大小写敏感,不是 "CPU")compute_type = "float16"subtitle_provider = "whisper"