使用 Inference Endpoints 實現極速 Whisper 轉錄

釋出於 2025 年 5 月 13 日
在 GitHub 上更新

今天,我們很高興地宣佈 Inference Endpoints 上新增了極速的 OpenAI Whisper 部署選項。與以前的版本相比,它提供了高達 8 倍的效能提升,使每個人都能透過一鍵部署專用的、強大的轉錄模型,以經濟高效的方式利用 AI 社群的卓越成果。

透過此次釋出,我們希望使 Inference Endpoints 更加以社群為中心,並允許任何人參與並貢獻,在 Hugging Face 平臺上建立令人難以置信的推理部署。我們將與社群一起,透過使用出色的現有開源技術,為各種任務提供最佳化的部署方案。

Hugging Face 獨特的地位在於,它身處開源 AI 社群的核心,與個人、機構和工業合作伙伴攜手合作,使其成為在各種硬體和軟體上部署 AI 模型進行推理時,最為異構的平臺。

推理棧

新的 Whisper 端點利用了出色的開源社群專案。推理由 vLLM 專案提供支援,該專案提供了在各種硬體系列(尤其是但不限於 NVIDIA GPU)上執行 AI 模型的有效方式。我們使用 vLLM 對 OpenAI Whisper 模型的實現,使我們能夠在軟體棧中實現更進一步的底層最佳化。

在此初始版本中,我們針對計算能力為 8.9 或更高(Ada Lovelace)的 NVIDIA GPU(如 L4 和 L40s),這解鎖了廣泛的軟體最佳化。

  • PyTorch 編譯 (torch.compile)
  • CUDA 圖
  • 使用 torch.compile 進行 float8 KV 快取編譯可以即時 (JIT) 生成最佳化的核心,它可以修改計算圖、重新排序操作、呼叫專用方法等。

CUDA 圖記錄了在 GPU 上發生的順序操作或核心的流程,並嘗試將它們作為更大的工作單元塊進行分組,以便在 GPU 上執行。這種分組操作透過執行單個更大的工作單元,而不是多個較小的工作單元,減少了資料移動、同步和 GPU 排程開銷。

最後但同樣重要的是,我們正在動態量化啟用,以減少 KV 快取所需的記憶體。計算以半精度(在本例中為 bfloat16)完成,輸出以降低的精度儲存(float8 為 1 位元組,而 bfloat16 為 2 位元組),這使我們能夠在 KV 快取中儲存更多元素,從而提高快取命中率。

有很多方法可以繼續推動這項工作,我們正準備與社群攜手合作,共同改進!

基準測試

Whisper Large V3 在 RTFx 方面實現了近 8 倍的改進,從而在不損失轉錄質量的情況下實現了更快的推理。

我們評估了幾種基於 Whisper 的模型——Whisper Large V3、Whisper Large V3-Turbo 和 Distil-Whisper Large V3.5 的轉錄質量和執行時效率,並將它們與 Transformers 庫上的實現進行了比較,以評估在相同條件下的準確性和解碼速度。

我們計算了 Open ASR 排行榜中 8 個標準資料集的詞錯誤率 (WER),包括 AMI、GigaSpeech、LibriSpeech (Clean 和 Other)、SPGISpeech、Tedlium、VoxPopuli 和 Earnings22。這些資料集涵蓋了不同的領域和錄音條件,確保了對泛化和實際轉錄質量的穩健評估。WER 透過計算錯誤預測的單詞百分比(透過插入、刪除或替換)來衡量轉錄準確性;WER 越低表示效能越好。所有三種 Whisper 變體都保持了與其 Transformer 基線相當的 WER 效能。詞錯誤率比較

為了評估推理效率,我們從 rev16 長格式資料集進行取樣,該資料集包含長度超過 45 分鐘的音訊片段——代表了會議、播客或採訪等實際轉錄工作負載。我們測量了即時因子 (RTFx),定義為音訊持續時間與轉錄時間的比率,並對樣本進行了平均。所有模型都在單個 L4 GPU 上以 bfloat16 格式進行評估,使用一致的解碼設定(語言、波束大小和批處理大小)。

Real-Time Factor comparison

如何部署

您可以透過 Hugging Face Endpoints 部署自己的 ASR 推理管道。Endpoints 允許任何希望將 AI 模型部署到生產就緒環境的人,只需填寫幾個引數即可實現。它還擁有市場上最完整的 AI 硬體艦隊,以滿足您對成本和效能的需求。所有這些都直接從 AI 社群的建立地獲取。要開始使用,沒有比這更簡單的了,只需選擇您要部署的模型:

推理

在已部署的模型端點上執行推理只需幾行 Python 程式碼即可完成,您也可以在 Javascript 或任何其他您熟悉的語言中使用相同的結構。

以下是一個快速測試已部署檢查點的小片段。

import requests

ENDPOINT_URL = "https://<your‑hf‑endpoint>.cloud/api/v1/audio/transcriptions"  # 🌐 replace with your URL endpoint
HF_TOKEN     = "hf_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"                              # 🔑 replace with your HF token
AUDIO_FILE   = "sample.wav"                                                    # 🔊 path to your local audio file

headers = {"Authorization": f"Bearer {HF_TOKEN}"}

with open(AUDIO_FILE, "rb") as f:
    files = {"file": f.read()}

response = requests.post(ENDPOINT_URL, headers=headers, files=files)
response.raise_for_status()

print("Transcript:", response.json()["text"])

FastRTC 演示

有了這個極速的端點,就可以構建即時轉錄應用程式。請嘗試這個使用 FastRTC 構建的示例。只需對著麥克風說話,即可即時看到您的語音被轉錄!

Spaces 可以輕鬆複製,因此請隨意複製。以上所有內容都在 Hugging Face Hub 中我們的專用 HF Endpoints 組織中提供給社群使用。提出問題、建議用例並在此處貢獻:hfendpoints-images (Inference Endpoints Images) 🚀

社群

文章作者

幹得好!🔥

🔥🔥🔥

出色的效能!👏👏

它支援 CrisperWhisper 嗎?

·
文章作者

我會在接下來的幾天裡嘗試一下!

各位幹得非常出色!這可以在本地部署嗎?

·
文章作者

如果您在本地拉取 Docker 映象並且您的計算機/伺服器有可用的 GPU,那應該可以 👌

這提供單詞級時間戳嗎?我上次檢查時,vLLM 不支援 Whisper 的時間戳。速度令人印象深刻。幹得好!

·
文章作者

謝謝 @vectorventures !單詞級時間戳尚未支援,據我所知,即使透過 OAI 平臺使用 Whisper,它也不完美。

我正在研究 @razhan 提到的 CrisperWhisper,它似乎開箱即用就能提供一些良好/更好的單詞級時間戳,所以也許這是我們可以在未來幾周內研究的東西?您想看看併為此開啟一個 PR 嗎?

VLLM 目前在 RTX 5090 上執行時遇到問題

https://github.com/vllm-project/vllm/issues/13306

有人能確認這項服務是否在此板上執行嗎?

註冊登入 以評論

© . This site is unofficial and not affiliated with Hugging Face, Inc.