在 WebGPU 上, Whisper ASR 流程每 30 秒段丢失约 650 MB 的 GPU 内存(两种 `return_timestamps` 模式)

作者: maboa创建于 2026年8月3日更新于 2026年8月3日

QQ 系统信息

@huggingface/译者 4.2.0
1.26.0(被钉住)
浏览器 Chrome 150, macOS 15, 苹果硅 (24 GB 统一内存)
在Chrome 150/151、Windows 11(Iris Xe)和Linux上也观察到了这一点。
(RTX 3060 12 GB,驱动器580,Vulkan)——参见下游报告.
型号为 onx- community/ whisper- small  timestamped 的
设备"WebGPU", dtype {encoder model:"fp32",decoder model commerd:"q4"}

说明

通过ASR管道转录长音频,单调地增长出GPU内存——大约为650 MB每30秒块,并带有 " 低声小声 " ,只有在页面被关闭或重新装入时才恢复。 采样Chrome的GPU-进程内存脚印,在下面的最小回放中每3 s: 1.6 GB在输入后 ~ + 8.1 GB在转录了300 s的音频** (10块,134 s的墙钟)后,仍然7.8 GB在后休. 在12 GB RTX 3060上,一个较长的文件以"未能呼叫OrtRun...[无效缓冲]"(下游:hyperautio/hyperautio-lite-editor#462)而中途失效.

‘回回-时间戳':"字'和‘回回-时间戳:真实'以同样的速度漏出,所以这并非具体到符号-时间戳/DTW路径.

  • 复制

自足的一页——漏出发生在单个"管子"(())内调用:

时间轴 :

(简体中文)

(任何~5分钟的演讲录音都会复制. 在macOS上,观看Chrome GPU过程的*memory film *——平地RSS没有显示这些分配. ).

与#1734的关系

看上去是同一个家族——GPU从一代开始的缓冲器从未被处理过,但那里"keepCacheAlive"机制只覆盖了""字"模式(chunk模式取去非字迹路径,其"past key values.disppose ()"确实运行),两种模式都同样被泄露出,因此似乎还有另外一种机制. PR #1737只修复了Chatterbox的包装.

4.2.0(未经核实)

- 在以下2seq路径中, " 编码器-输出 " 按 " 基因() " 调用生成,从未以两种方式处理。
- 在`GetPastKeyValues' (`modeling utils.js')中,在`is encoder pkv &&' 过KeyValues'再利用路径上,每一步骤重新返回的`decoderResults[name]'缓冲器被丢弃,而不再为缓存的缓冲器。
. . . . . . .

内容来源: huggingface/transformers.js