Hub Python 庫文件
推理端點
並獲得增強的文件體驗
開始使用
推理端點
推理端點提供了一個安全的生產解決方案,可以輕鬆地將模型部署在由 Hugging Face 管理的專用且自動擴充套件的基礎設施上。推理端點是從 Hub 中的模型構建的。本頁是 huggingface_hub
與推理端點整合功能的參考。有關推理端點產品的更多資訊,請檢視其 官方文件。
請檢視相關指南,瞭解如何使用 huggingface_hub
以程式設計方式管理您的推理端點。
推理端點可以透過 API 完全管理。這些端點在 Swagger 中有詳細文件。InferenceEndpoint 類是基於此 API 構建的一個簡單封裝。
方法
部分推理端點功能已在 HfApi 中實現
- get_inference_endpoint() 和 list_inference_endpoints() 用於獲取推理端點資訊
- create_inference_endpoint()、update_inference_endpoint() 和 delete_inference_endpoint() 用於部署和管理推理端點
- pause_inference_endpoint() 和 resume_inference_endpoint() 用於暫停和恢復推理端點
- scale_to_zero_inference_endpoint() 用於手動將端點縮放至 0 個副本
InferenceEndpoint
主要資料類是 InferenceEndpoint。它包含有關已部署的 InferenceEndpoint
的資訊,包括其配置和當前狀態。部署後,您可以使用 InferenceEndpoint.client 和 InferenceEndpoint.async_client 屬性在端點上執行推理,它們分別返回一個 InferenceClient 和一個 AsyncInferenceClient 物件。
class huggingface_hub.InferenceEndpoint
< 來源 >( 名稱空間: str 原始資料: typing.Dict _token: typing.Union[str, bool, NoneType] _api: HfApi )
引數
- name (
str
) — 推理端點的唯一名稱。 - namespace (
str
) — 推理端點所在的名稱空間。 - repository (
str
) — 部署在此推理端點上的模型倉庫名稱。 - status (InferenceEndpointStatus) — 推理端點的當前狀態。
- url (
str
, 可選) — 推理端點的 URL,如果可用。只有已部署的推理端點才有 URL。 - framework (
str
) — 模型所使用的機器學習框架。 - revision (
str
) — 部署在推理端點上的特定模型版本。 - task (
str
) — 與已部署模型相關的任務。 - created_at (
datetime.datetime
) — 推理端點建立的時間戳。 - updated_at (
datetime.datetime
) — 推理端點最後更新的時間戳。 - type (InferenceEndpointType) — 推理端點的型別(公共、受保護、私有)。
- raw (
Dict
) — 從 API 返回的原始字典資料。 - token (
str
或bool
, 可選) — 推理端點的身份驗證令牌,如果在請求 API 時設定。如果未提供,將預設為本地儲存的令牌。如果您不想將令牌傳送到伺服器,請傳遞token=False
。
包含有關已部署推理端點的資訊。
示例
>>> from huggingface_hub import get_inference_endpoint
>>> endpoint = get_inference_endpoint("my-text-to-image")
>>> endpoint
InferenceEndpoint(name='my-text-to-image', ...)
# Get status
>>> endpoint.status
'running'
>>> endpoint.url
'https://my-text-to-image.region.vendor.endpoints.huggingface.cloud'
# Run inference
>>> endpoint.client.text_to_image(...)
# Pause endpoint to save $$$
>>> endpoint.pause()
# ...
# Resume and wait for deployment
>>> endpoint.resume()
>>> endpoint.wait()
>>> endpoint.client.text_to_image(...)
from_raw
< 來源 >( 原始資料: typing.Dict 名稱空間: str 令牌: typing.Union[str, bool, NoneType] = None api: typing.Optional[ForwardRef('HfApi')] = None )
從原始字典初始化物件。
客戶端
< 來源 >( ) → InferenceClient
返回一個客戶端,用於對此推理端點進行預測。
async_client
< 來源 >( ) → AsyncInferenceClient
返回一個客戶端,用於對此推理端點進行預測。
刪除推理端點。
此操作不可逆。如果您不想為推理端點付費,最好使用 InferenceEndpoint.pause() 暫停它,或使用 InferenceEndpoint.scale_to_zero() 將其縮放至零。
獲取有關推理端點的最新資訊。
暫停推理端點。
暫停的推理端點將不收費。它可以使用 InferenceEndpoint.resume() 隨時恢復。這與使用 InferenceEndpoint.scale_to_zero() 將推理端點縮放至零不同,後者在收到請求時會自動重新啟動。
這是 HfApi.pause_inference_endpoint() 的別名。當前物件將使用伺服器的最新資料原地修改。
恢復推理端點。
這是 HfApi.resume_inference_endpoint() 的別名。當前物件將使用伺服器的最新資料原地修改。
將推理端點縮放至零。
縮放至零的推理端點將不收費。它會在下一次請求時恢復,但會有冷啟動延遲。這與使用 InferenceEndpoint.pause() 暫停推理端點不同,後者需要手動使用 InferenceEndpoint.resume() 恢復。
這是 HfApi.scale_to_zero_inference_endpoint() 的別名。當前物件將使用伺服器的最新資料原地修改。
更新
< 來源 >( 加速器: typing.Optional[str] = None 例項大小: typing.Optional[str] = None 例項型別: typing.Optional[str] = None 最小副本數: typing.Optional[int] = None 最大副本數: typing.Optional[int] = None 縮放至零超時: typing.Optional[int] = None 倉庫: typing.Optional[str] = None 框架: typing.Optional[str] = None 修訂: typing.Optional[str] = None 任務: typing.Optional[str] = None 自定義映象: typing.Optional[typing.Dict] = None 金鑰: typing.Optional[typing.Dict[str, str]] = None ) → InferenceEndpoint
引數
- accelerator (
str
, 可選) — 用於推理的硬體加速器(例如"cpu"
)。 - instance_size (
str
, 可選) — 用於託管模型的例項大小或型別(例如"x4"
)。 - instance_type (
str
, 可選) — 將部署推理端點的雲實例型別(例如"intel-icl"
)。 - min_replica (
int
, 可選) — 為推理端點保持執行的最小副本(例項)數量。 - max_replica (
int
, 可選) — 推理端點可擴充套件到的最大副本(例項)數量。 - scale_to_zero_timeout (
int
, 可選) — 非活動端點縮放至零前的持續時間(分鐘)。 - repository (
str
, 可選) — 與推理端點關聯的模型倉庫名稱(例如"gpt2"
)。 - framework (
str
, 可選) — 用於模型的機器學習框架(例如"custom"
)。 - revision (
str
, 可選) — 要部署在推理端點上的特定模型修訂版本(例如"6c0e6080953db56375760c0471a8c5f2929baf11"
)。 - task (
str
, 可選) — 部署模型的任務(例如"text-classification"
)。 - custom_image (
Dict
, 可選) — 用於推理端點的自定義 Docker 映象。如果您想部署執行在text-generation-inference
(TGI) 框架上的推理端點,這將非常有用(參見示例)。 - secrets (
Dict[str, str]
, 可選) — 要注入容器環境的機密值。
相同的推理端點,已用最新資料原地修改。
更新推理端點。
此方法允許更新計算配置、已部署的模型或兩者。所有引數都是可選的,但至少必須提供一個。
這是 HfApi.update_inference_endpoint() 的別名。當前物件將就地變異,幷包含來自伺服器的最新資料。
等待
< 源 >( timeout: typing.Optional[int] = None refresh_every: int = 5 ) → InferenceEndpoint
引數
- timeout (
int
, 可選) — 等待推理端點部署的最大時間,以秒為單位。如果為None
,將無限期等待。 - refresh_every (
int
, 可選) — 每次獲取推理端點狀態之間的等待時間,以秒為單位。預設為 5 秒。
相同的推理端點,已用最新資料原地修改。
引發
InferenceEndpointError 或 InferenceEndpointTimeoutError
- InferenceEndpointError — 如果推理端點最終處於失敗狀態。
InferenceEndpointTimeoutError
— 如果推理端點在timeout
秒後仍未部署。
等待推理端點部署。
伺服器資訊將每 1 秒獲取一次。如果推理端點在 timeout
秒後仍未部署,將引發 InferenceEndpointTimeoutError
異常。InferenceEndpoint 將就地變異,包含最新資料。
InferenceEndpointStatus
類 huggingface_hub.InferenceEndpointStatus
< 源 >( value names = None module = None qualname = None type = None start = 1 )
一個列舉。
InferenceEndpointType
類 huggingface_hub.InferenceEndpointType
< 源 >( value names = None module = None qualname = None type = None start = 1 )
一個列舉。
InferenceEndpointError
處理推理端點時發生的通用異常。