推理端点
推理端点提供了一种安全的生产解决方案,可以轻松地在 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
推理终端
主要的 dataclass 是 InferenceEndpoint。它包含有关已部署的 InferenceEndpoint
的信息,包括其配置和当前状态。部署后,您可以使用 InferenceEndpoint.client 和 InferenceEndpoint.async_client 属性在终端上运行推理,这些属性分别返回一个 InferenceClient 和一个 AsyncInferenceClient 对象。
类 huggingface_hub.InferenceEndpoint
< 源代码 >( 命名空间: str 原始数据: Dict _token: Union _api: HfApi )
参数
- 名称 (
str
) — 推理终端的唯一名称。 - 命名空间 (
str
) — 推理终端所在的命名空间。 - 仓库 (
str
) — 部署在此推理终端上的模型仓库的名称。 - 状态 (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(...)
从原始字典初始化对象。
client
< 源代码 >( ) → 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() 的别名。当前对象会使用来自服务器的最新数据进行原地修改。
更新
< 源代码 >( accelerator: Optional = None instance_size: Optional = None instance_type: Optional = None min_replica: Optional = None max_replica: Optional = None scale_to_zero_timeout: Optional = None repository: Optional = None framework: Optional = None revision: Optional = None task: Optional = None custom_image: Optional = None secrets: Optional = 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() 的别名。当前对象将使用来自服务器的最新数据进行原地修改。
等待
< source >( timeout: Optional = 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
处理推理终端时的通用异常。