先把名字理清楚。NeMo 不是一个模型,是 NVIDIA 的语音框架,Apache 2.0;你真正下载的权重叫 Parakeet、Canary、Nemotron ASR。它也不是 Mistral NeMo——那是 Mistral 与 NVIDIA 合作的 12B 文本大模型,同名不同物。更要注意的是仓库本身拆过一次:最后一个拆分前版本是 v2.7.3,之后 NVIDIA/NeMo 转向音频、语音与多模态 LLM,现在跟着走的是 NeMo Speech v3.0.0(对应 26.07.00 NGC 容器)。环境要求也随之抬高了:Python 3.12 以上、PyTorch 2.7 以上,官方实际在测的栈是 Python 3.13 + PyTorch 2.12 + CUDA 13.2。照着两年前的教程装,第一步就会卡住。
第二件事,也是选卡时最容易算错的:NeMo 的 ASR 显存需求跟音频长度走,不跟参数量走。模型卡写得很直白——parakeet-tdt-0.6b-v3「至少 2GB 显存即可加载模型,显存越大能吃的音频越长」,canary-1b-v2 是「至少 6GB」。听起来一张老卡就够了,但真正的边界在下一句:Parakeet v3 用全注意力时,在 A100 80GB 上支持到 24 分钟音频;换成局部注意力才能顶到 3 小时。所以 Hugging Face 讨论区里出现频率最高的报错就是长音频 CUDA out of memory,跟模型大小一点关系都没有。选卡要按你手上最长的那条录音选。
第三件事,中文用户必须先看:旗舰两个型号都不支持中文。parakeet-tdt-0.6b-v3 和 canary-1b-v2 覆盖的都是 25 种欧洲语言,列表里没有中文。要中文只有三条路——用 nemotron-3.5-asr-streaming-0.6b,它覆盖 40 个 language-locale,其中 zh-CN 落在第二档 broad-coverage 而不是第一档 transcription-ready,能用但别按英文精度去预期;或者拿 NeMo 自己在中文数据上微调,NVIDIA 官方放过 parakeet-tdt_ctc-0.6b-ja、parakeet-ctc-0.6b-Vietnamese 这类单语版本,说明这条路是通的;或者换模型。第二条路正好是租卡的典型场景。NexGPU 上 RTX 3090 24GB $0.193/卡·时、A10 24GB $0.414/卡·时、A100 SXM4 80GB $1.088/卡·时,按秒计费,把你最长的那条音频和最难的那批数据先跑一遍,比买卡试错便宜太多。
01 —
NeMo 现役语音模型与显存对照
官方模型卡给出的最低加载显存、音频长度边界与许可证,一栏看完。
| 版本 | 参数量 | 显存 | 上下文 | 说明 |
|---|---|---|---|---|
| nvidia/parakeet-tdt-0.6b-v3 | 600M(FastConformer-TDT) | 官方最低 2GB 加载;全注意力 24 分钟音频需 A100 80GB | 全注意力 24 分钟/局部注意力 3 小时 | 批量转写主力。25 种欧洲语言、自动语种识别,Open ASR Leaderboard 平均 WER 6.34%、RTFx 3,332.74,自带标点大小写与词级、段级时间戳。CC-BY-4.0。 |
| nvidia/canary-1b-v2 | 978M(32 层 FastConformer 编码器 + 8 层 Transformer 解码器) | 官方最低 6GB 加载 | 超过 40 秒自动动态分块,块间 1 秒重叠,需 batch_size=1 | 转写加翻译双活:X→英、英→X 都能做。MLS 六语 WER 7.27%、RTFx 749。模型卡只验证到 Ampere / Hopper / Blackwell,别往 Volta 上放。CC-BY-4.0。 |
| nvidia/canary-qwen-2.5b | 2.5B(SALM:FastConformer 编码器 + Transformer 解码器) | 官方未给最低值;按 2.5B 参数推算 bf16 权重在 5GB 量级,实操留到 16GB 以上稳妥 | 训练时最长音频 40 秒、最长序列 1024 token | 英文精度天花板:Open ASR Leaderboard 平均 WER 5.63%,代价是 RTFx 掉到 418。支持 ASR 与 LLM 双模式,需 NeMo 2.5.0 以上。CC-BY-4.0。 |
| nvidia/parakeet-unified-en-0.6b | 600M(Unified-FastConformer-RNNT,24 层编码器) | 与 Parakeet v3 同量级,按最长音频而不是按参数量留余量 | 离线与流式共用一份权重,延迟档位 2.08s / 1.12s / 0.56s / 0.40s / 0.32s / 0.24s / 0.16s / 0.08s | 英文语音应用一套权重两种模式,最低延迟 160ms,编码器、predictor、joint 三部分参数共享。LibriSpeech test-clean 1.63%、test-other 3.11%。NVIDIA Open Model License。 |
| nvidia/nemotron-3.5-asr-streaming-0.6b | 600M(FastConformer-CacheAware-RNNT with Prompt) | 官方未给最低值;同为 0.6B 量级,吞吐测试是在单张 H100 上做的 | 分块 80ms 到 1,120ms 连续可调 | 多语流式唯一解:40 个 language-locale,分三档——19 个 transcription-ready(含 ja-JP、ko-KR、ar-AR)、13 个 broad-coverage(zh-CN 在这一档)、8 个 adaptation-ready。OpenMDW-1.1。 |
| nvidia/parakeet_realtime_eou_120m-v1 | 120M(FastConformer-RNNT,17 层编码器,注意力上下文 [70,1]) | 全系最小的一档,显存不是瓶颈;支持 Volta / Ampere / Hopper / Blackwell | 端到端延迟 80ms–160ms,输入需 16kHz 单声道、最短 160ms | 语音 Agent 专用:边转写边吐 <EOU> token 判断用户说完没有。EOU 检测延迟 p50 160ms、p90 280ms、p95 320ms,平均 WER 9.30%。需 NeMo 2.5.3 以上。NVIDIA Open Model License。 |
02 —
按场景选卡:NeMo ASR 显卡配置建议
显存按你最长的那条音频留,不是按参数量留——每一档都对应 NexGPU 上真实可租的卡与价格。
Parakeet TDT 0.6B v3 批量转写,音频切成片段处理
RTX 3090 24GB$0.193/卡·时
0.6B 权重官方只要 2GB 就能加载,剩下的 22GB 全部拿去堆 batch 和音频长度;3090 是 Ampere,在 Parakeet 的支持架构列表里,也是我们最便宜的 24GB 卡。想要 NVIDIA 亲测过的具体机型,Tesla T4 16GB($0.298/卡·时)就在模型卡的测试清单上。
Canary-1B-v2 做转写加语音翻译
A10 24GB$0.414/卡·时
官方最低 6GB 才能加载,且模型卡明确只在 Ampere / Hopper / Blackwell 上验证过,Volta 不在列。A10 正好是 NVIDIA 自己列出的实测机型之一,24GB 给 40 秒以上音频的动态分块留足了余量。
长音频要全注意力原生精度,一次吃下 24 分钟不切片
A100 PCIE 80GB$0.824/卡·时
模型卡里那个 24 分钟全注意力的数字,就是在 A100 80GB 上给出来的。改成局部注意力可以顶到 3 小时,但要不切片、不改注意力配置的原生效果,这张卡是门槛。
中文或多语流式识别,语音 Agent 常驻在线
RTX 4090 24GB$0.540/卡·时
nemotron-3.5-asr-streaming-0.6b 的支持架构列表里 Lovelace 在列,40 个 language-locale 含 zh-CN。流式吃的是低延迟而不是大显存,单请求算力占用很小,一张 4090 能同时扛多路 80ms–1,120ms 的会话。
03 —
四步把 NeMo 跑起来
从开机到第一条转写,外加上线前必须补的那一行。
- 01
开一台实例,先对版本
NeMo Speech v3.0.0 要求 Python 3.12 以上、PyTorch 2.7 以上,官方持续在测的栈是 Python 3.13 + PyTorch 2.12 + CUDA 13.2。在 NexGPU 控制台的 2,000+ 预置镜像里直接选 PyTorch 镜像,省掉自己配 CUDA 的一晚上。SSH 或网页终端进去先确认一遍——版本对不上,后面加载 .nemo 检查点时才报错,那时候你已经付了半小时的卡钱。
nvidia-smi && python -c "import torch; print(torch.__version__, torch.version.cuda)" - 02
只装 asr 这一支,别装全量
ASR 不需要整套 NeMo,模型卡给的就是这一行 extra。装完第一次 from_pretrained 会自动从 Hugging Face 把 .nemo 检查点拉到本地缓存。留意落盘位置:NexGPU 存储中位价 $0.414/GB·月,实例停了存储还在计费,权重和数据集记得挑对卷放。
pip install -U "nemo_toolkit[asr]" - 03
加载模型,跑第一条音频
Parakeet 系列一行加载一行转写,输出自带标点、大小写和时间戳。Canary 要额外给 source_lang 和 target_lang——这两个参数是「转写」还是「翻译」的唯一开关,讨论区里最常见的困惑就是没给参数、结果拿到了一段译文。也可以走 transformers 路线,Parakeet 已经有原生的 AutoModelForTDT / AutoModelForRNNT / AutoModelForCTC 支持。
python -c "import nemo.collections.asr as nemo_asr; m = nemo_asr.models.ASRModel.from_pretrained('nvidia/parakeet-tdt-0.6b-v3'); print(m.transcribe(['audio.wav'])[0].text)" - 04
长音频先切到局部注意力,别等 OOM
讨论区出现频率最高的报错就是长音频 CUDA out of memory。Parakeet v3 全注意力在 A100 80GB 上到 24 分钟为止,切成局部注意力能顶到 3 小时。上线前把这行加上,比事后一格一格调 batch 便宜得多。跑通了再决定要不要把这套流水线往 A100 或 H100 上搬。
asr_model.change_attention_model(self_attention_model="rel_pos_local_attn", att_context_size=[256, 256])
跑一次 NeMo 到底要花多少钱
从最常见的一档算起:Parakeet TDT 0.6B v3 在 RTX 3090 24GB 上批量转写,$0.193/卡·时,通宵跑 8 小时是 0.193 × 8 = $1.544。要 Canary-1B-v2 的转写加翻译,A10 24GB $0.414/卡·时,同样 8 小时是 0.414 × 8 = $3.312。长音频要全注意力原生精度,A100 PCIE 80GB $0.824/卡·时,连跑一整天是 0.824 × 24 = $19.776。流式语音 Agent 想常驻,按 RTX 4090 24GB 算一整月:0.540 × 24 × 30 = $388.80——比买一张 4090 再配一台机器便宜得多,何况不用的时候停掉就不再计算力费。想用中文数据微调一版属于自己的 ASR,A100 SXM4 80GB $1.088/卡·时,单卡一轮 12 小时是 1.088 × 12 = $13.056;四卡并行一轮 3 小时是 1.088 × 4 × 3 = $13.056,同样的钱换四分之一的墙钟时间。存储另算:一份 0.6B 的 .nemo 检查点加上几十 GB 音频数据集,按 50GB 计是 50 × 0.414 = $20.70/月,实例停了存储仍在计费,不用的记得销毁。全程按秒计量、按小时计价,没有最低消费、没有开通费、不用申请配额。
04 —
