使用 Hugging Face Inference Endpoints 部署嵌入模型
Hugging Face 已將 Text Embeddings Inference (TEI) 整合到其 Inference Endpoints 服務中,使開發者能夠以高吞吐量且顯著低於專有替代方案的成本部署開源嵌入模型。此整合專門設計用於優化檢索增強生成(RAG)工作流程,其中快速且高效的數據向量表示對生成品質至關重要。
Text Embeddings Inference (TEI) 功能
Text Embeddings Inference (TEI) 是一個專門為提供開源文本嵌入模型而構建的解決方案。它針對高效能提取進行了優化,並支援 Massive Text Embedding Benchmark (MTEB) 排行榜前 10 名的模型,包括 E5、GTE、Ember 和 FlagEmbedding。
為了實現業界領先的吞吐量和成本效益,TEI 實施了以下幾項技術優化:
- 推理優化: 使用 Flash Attention、cuBLASLt 和 Candle 框架來優化 transformers 代碼。
- 高效載入: 使用 Safetensors 進行權重載入,並消除模型圖編譯步驟。
- 運營效率: 提供小型 Docker 镜像以實現快速啟動時間(支援無伺服器模式)和基於 token 的動態批處理。
- 生產就緒: 包含 Prometheus 指標及透過 Open Telemetry 進行的分散式追蹤。
效能與成本基準測試
透過 TEI 部署開源模型相比於封閉源 API 可顯著降低成本。在使用 Nvidia A10G Inference Endpoint 上的 BAAI/bge-base-en-v1.5 模型進行基準測試時,批次大小為 32,序列長度為 512 個 token,Hugging Face 達成了:
- 吞吐量: 每秒 450+ 個請求。
- 成本: $0.00000156 每 1k token($0.00156 每 1M token)。
根據 Hugging Face 的說法,這相較於 OpenAI Embeddings(每 1k token 價格為 $0.0001)可節省 64 倍成本。
透過 Hugging Face Inference Endpoints 部署
Inference Endpoints 提供一個受管理的 SaaS 環境,免除手動基礎設施管理或 MLOps 的需求。主要功能包括:
- 簡化部署: 模型可透過幾次點擊部署為生產就緒的 API。
- 擴縮與成本控制: 支援自動縮減至零,以在不活躍期間降低成本。
- 企業安全: 提供 SOC2 Type 2 認證、GDPR 資料處理協議、BAA,以及透過直接 VPC 連線的安全離線端點。
- 廣泛支援: 預設相容於 Sentence-Transformers、Diffusers 和 🤗 Transformers。
部署工作流程
要部署嵌入模型,使用者會選擇一個模型儲存庫(例如 BAAI/bge-base-en-v1.5),選擇雲端供應商和區域,然後選擇實例類型。儘管系統會根據模型大小建議實例類型,但高效能基準測試是透過使用如 Nvidia A10G 的 GPU 實例來達成的。部署過程通常需要 1 到 3 分鐘。
使用嵌入端點
端點上線後,可透過 Inference Widget 進行手動測試,或使用 cURL、Python 或 JavaScript 透過 API 請求存取。
批次處理與截斷
TEI 支援批次請求,允許將多個文件在單一請求中發送以提高端點利用率。使用者應注意,TEI 不會自動截斷輸入;必須在請求載荷中明確設置 truncate: true 來啟用截斷。
import requests
API_URL = "https://your-endpoint-url.huggingface.cloud"
headers = {
"Authorization": "Bearer YOUR TOKEN",
"Content-Type": "application/json"
}
output = requests.post(API_URL, headers=headers, json={
"inputs": ["sentence 1", "sentence 2", "sentence 3"],
"truncate": True
}).json()