使用 Inference Endpoints 實現極速 Whisper 轉錄
今天,我們很高興地宣佈 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
格式進行評估,使用一致的解碼設定(語言、波束大小和批處理大小)。

如何部署
您可以透過 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) 🚀