Hugging Face Inference for PROs

Hugging Face 推出了 Inference for PRO,這是一項社群方案,為 PRO 用戶提供經過精選、超高速的 API 端點,用於高性能模型。這項服務旨在促進快速實驗與原型設計,而無需用戶自行管理基礎設施。

加速存取尖端模型

Inference for PROs 為一系列精選的高效能模型提供由 text-generation-inference (TGI) 驅動的專屬 API 端點。雖然免費版 Inference API 仍開放給所有用戶測試超過 200,000 個模型,但 PRO 用戶將獲得更高的速率限制(rate limits)以及特定高性能模型的存取權限。

支援的模型與功能

模型 規模 上下文長度 主要用途
Meta Llama 3 Instruct 8B, 70B 8k tokens 聊天
Mixtral 8x7B Instruct 45B MOE 32k tokens 高性能聊天
Nous Hermes 2 Mixtral 8x7B DPO 45B MOE 32k tokens 進階 Mixtral 微調
Zephyr 7B β 7B 4k tokens 聊天 (7B weight)
Llama 2 Chat 7B, 13B 4k tokens 對話式 AI
Mistral 7B Instruct v0.2 7B 4k tokens 聊天 (7B weight)
Code Llama Base 7B, 13B 4k tokens 程式碼自動補全/填充
Code Llama Instruct 34B 16k tokens 對話式程式碼助手
Stable Diffusion XL 3B UNet - 圖像生成
Bark 0.9B - 文字轉音訊生成

技術實作與整合

整合是透過向模型的 API 端點發送 HTTP POST 請求來完成的,並需使用 PRO 帳戶的身份驗證令牌(authentication token)。開發者可以使用 curlhuggingface_hub Python 函式庫中的 InferenceClient 工具來實現流暢的存取。

Messages API 與 OpenAI 相容性

所有文本生成模型現在都支援 Messages API,使其與 OpenAI 客戶端函式庫以及 LangChain 和 LlamaIndex 等框架相容。這允許開發者透過將 base_url 指向 https://api-inference.huggingface.co/v1/ 來使用 openai Python 客戶端。

進階生成控制

用戶可以使用多個生成參數來微調模型輸出:

  • **文本生成:
    • do_sample:在確定性貪婪搜尋 (False) 與機率採樣 (True) 之間切換。
    • temperature:控制變異性;程式碼建議使用較低值,開放式文本建議使用較高值。
    • top_ktop_p:將採樣池限制在機率最高的 token。
    • repetition_penalty:降低重複單詞出現的可能性。
    • max_new_tokens:設定生成序列的最大長度。
  • **圖像生成 (SDXL):
    • negative_prompt:定義要從圖像中排除的內容。
    • guidance_scale:控制模型對提示詞(prompt)的遵循程度。
    • num_inference_steps:決定去噪步驟的數量(通常為 20-50)。

專門的推論任務

程式碼填充 (Code Infilling)

使用 Code Llama,用戶可以透過提供前綴(prefix)和後綴(suffix)序列來執行「填充」。模型會使用以下格式預測應填入其中的內容:<PRE> {prefix} <SUF>{suffix} <MID>

Token 串流 (Token Streaming)

為了降低感知延遲並提升用戶體驗,API 支援 token 串流。透過在 InferenceClient 中傳遞 stream=True 或在 curl 中使用 -N 旗標,token 會在生成時逐個返回。

快取 (Caching)

最近的結果預設會被快取以提高效能。若要無視採樣設定強制進行全新生成,用戶可以在請求中加入 HTTP 標頭 x-use-cache: 0

使用建議

Inference for PROs 旨在用於實驗與原型設計。對於重型生產應用,Hugging Face 建議使用 Inference Endpoints,這提供專用的基礎設施。

Sources