Hub Python Library documentation

Puntos de inferencia

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Puntos de inferencia

Inference Endpoints ofrece una solución de producción segura para desplegar modelos fácilmente en una infraestructura dedicada y con escalado automático gestionada por Hugging Face. Un Inference Endpoint se crea a partir de un modelo del Hub. Esta página es una referencia para la integración de huggingface_hub con Inference Endpoints. Para obtener más información sobre el producto Inference Endpoints, consulta su documentación oficial.

Consulta la guía relacionada para aprender a usar huggingface_hub para gestionar tus Inference Endpoints de forma programática.

Los Inference Endpoints pueden gestionarse por completo mediante la API. Los endpoints están documentados con Swagger. La clase InferenceEndpoint es un envoltorio simple construido sobre esta API.

Métodos

Un subconjunto de las funciones de Inference Endpoint se implementa en HfApi:

InferenceEndpoint

La dataclass principal es InferenceEndpoint. Contiene información sobre un InferenceEndpoint desplegado, incluida su configuración y su estado actual. Una vez desplegado, puede ejecutar inferencia en el Endpoint utilizando las propiedades InferenceEndpoint.client y InferenceEndpoint.async_client, que devuelven respectivamente un objeto InferenceClient y un objeto AsyncInferenceClient.

clase huggingface_hub.InferenceEndpoint

< >

( namespace: strraw: dict_token: str | bool | None_api: HfApi )

Parámetros

  • name (str) — El nombre único del Inference Endpoint.
  • namespace (str) — El espacio de nombres donde se encuentra el Inference Endpoint.
  • repository (str) — El nombre del repositorio de modelos desplegado en este Inference Endpoint.
  • status (InferenceEndpointStatus) — El estado actual del Inference Endpoint.
  • url (str, opcional) — La URL del Inference Endpoint, si está disponible. Solo un Inference Endpoint desplegado tendrá una URL.
  • framework (str) — El framework de machine learning utilizado para el modelo.
  • revision (str) — La revisión específica del modelo desplegada en el Inference Endpoint.
  • task (str) — La tarea asociada con el modelo desplegado.
  • created_at (datetime.datetime) — La marca de tiempo en la que se creó el Inference Endpoint.
  • updated_at (datetime.datetime) — La marca de tiempo de la última actualización del Inference Endpoint.
  • type (InferenceEndpointType) — El tipo del Inference Endpoint (público, autenticado, privado).
  • raw (dict) — Los datos de diccionario en bruto devueltos por la API.
  • token (str o bool, opcional) — Token de autenticación para el Inference Endpoint, si se estableció al solicitar la API. Si no se proporciona, se usará el token guardado localmente. Pasa token=False si no deseas enviar tu token al servidor.

Contiene información sobre un Inference Endpoint desplegado.

Ejemplo:

>>> 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://68a0f3b5c6ee5c9dcc0e0a01.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

< >

( raw: dictnamespace: strtoken: str | bool | None = Noneapi: typing.Optional[ForwardRef('HfApi')] = None )

Inicializar objeto desde un diccionario en bruto.

client

< >

( ) → InferenceClient

Devuelve

InferenceClient

un cliente de inferencia que apunta al punto de acceso desplegado.

Devuelve un cliente para realizar predicciones en este Inference Endpoint.

async_client

< >

( ) → AsyncInferenceClient

un cliente de inferencia compatible con asyncio que apunta al punto de acceso desplegado.

Devuelve un cliente para realizar predicciones en este Inference Endpoint.

eliminar

< >

( )

Eliminar el Inference Endpoint.

Esta operación no es reversible. Si no desea ser cobrado por un Inference Endpoint, es preferible pausarlo con InferenceEndpoint.pause() o escalarlo a cero con InferenceEndpoint.scale_to_zero().

Este es un alias de HfApi.delete_inference_endpoint().

fetch

< >

( ) → InferenceEndpoint

el mismo Inference Endpoint, mutado in situ con los datos más recientes.

Obtener la información más reciente sobre el Inference Endpoint.

pausa

< >

( ) → InferenceEndpoint

el mismo Inference Endpoint, mutado in situ con los datos más recientes.

Pausa el Inference Endpoint.

Un Inference Endpoint en pausa no genera cargos. Puede reanudarse en cualquier momento mediante InferenceEndpoint.resume(). Esto es diferente de escalar el Inference Endpoint a cero con InferenceEndpoint.scale_to_zero(), lo que haría que se reiniciara automáticamente cuando se le enviara una solicitud.

Este es un alias de HfApi.pause_inference_endpoint(). El objeto actual se modifica in situ con los datos más recientes del servidor.

reanudar

< >

( running_ok: bool = True ) → InferenceEndpoint

Parámetros

  • running_ok (bool, opcional) — Si True, el método no lanzará un error si el Inference Endpoint ya está en ejecución. El valor predeterminado es True.

el mismo Inference Endpoint, mutado in situ con los datos más recientes.

Resume el punto de inferencia.

Este es un alias de HfApi.resume_inference_endpoint(). El objeto actual se modifica in situ con los datos más recientes del servidor.

scale_to_zero

< >

( ) → InferenceEndpoint

el mismo Inference Endpoint, mutado in situ con los datos más recientes.

Escalar el punto de inferencia a cero.

Un Inference Endpoint escalado a cero no se facturará. Se reanudará en la siguiente solicitud, con un retraso de arranque en frío. Esto es diferente de pausar el Inference Endpoint con InferenceEndpoint.pause(), lo cual requeriría una reanudación manual con InferenceEndpoint.resume().

Este es un alias de HfApi.scale_to_zero_inference_endpoint(). El objeto actual se modifica in situ con los datos más recientes del servidor.

actualizar

< >

( accelerator: str | None = Noneinstance_size: str | None = Noneinstance_type: str | None = Nonemin_replica: int | None = Nonemax_replica: int | None = Nonescale_to_zero_timeout: int | None = Nonerepository: str | None = Noneframework: str | None = Nonerevision: str | None = Nonetask: str | None = Nonecustom_image: dict | None = Nonecontainer_command: list[str] | None = Nonecontainer_args: list[str] | None = Nonetensor_parallel_size: int | None = Nonedata_parallel_size: int | None = Nonesecrets: dict[str, str] | None = None ) → InferenceEndpoint

Parámetros

  • accelerator (str, opcional) — El acelerador de hardware que se utilizará para la inferencia (p. ej. "cpu").
  • instance_size (str, opcional) — El tamaño o tipo de la instancia que se utilizará para alojar el modelo (p. ej. "x4").
  • instance_type (str, opcional) — El tipo de instancia en la nube donde se desplegará el Inference Endpoint (p. ej. "intel-icl").
  • min_replica (int, opcional) — El número mínimo de réplicas (instancias) que deben mantenerse en ejecución para el Inference Endpoint.
  • max_replica (int, opcional) — El número máximo de réplicas (instancias) al que escalar el Inference Endpoint.
  • scale_to_zero_timeout (int, opcional) — La duración en minutos antes de que un punto de acceso inactivo se escale a cero.
  • repository (str, opcional) — El nombre del repositorio de modelos asociado con el Inference Endpoint (p. ej. "gpt2").
  • framework (str, opcional) — El framework de aprendizaje automático utilizado para el modelo (p. ej. "custom").
  • revision (str, opcional) — La revisión específica del modelo que se desplegará en el Inference Endpoint (p. ej. "6c0e6080953db56375760c0471a8c5f2929baf11").
  • task (str, opcional) — La tarea en la que se desplegará el modelo (p. ej. "text-classification").
  • custom_image (dict, opcional) — La imagen de contenedor que se va a ejecutar. Puede ser un diccionario con claves según la variante de imagen (p. ej. {"vLLM": {"url": "vllm/vllm-openai:v0.23.0", "port": 8000}‌}, también sGLang, tgi, tei, llamacpp, hfServe, …), que se reenvía tal cual, o un diccionario plano que describe un contenedor personalizado (p. ej. {"url": ..., "port": ...}), que se envía como {"custom": ...}.
  • container_command (list[str], opcional) — Sobrescribe el comando de punto de entrada del contenedor (se corresponde con model.command en la carga de la API). Funciona tanto con las imágenes de motor administradas (p. ej., vLLM, SGLang) como con imágenes personalizadas.
  • container_args (list[str], opcional) — Argumentos añadidos al punto de entrada del contenedor (se corresponde con model.args en la carga de la API). Funciona tanto con imágenes de motor gestionadas (p. ej. vLLM, SGLang) como con imágenes personalizadas.
  • tensor_parallel_size (int, opcional) — Número de aceleradores en los que dividir una copia única del modelo (imágenes de vLLM y SGLang). Cuando no se proporciona custom_image, se obtiene la imagen configurada actualmente en el punto de acceso y se actualiza in situ, ya que la API requiere model.image como un todo.
  • data_parallel_size (int, opcional) — Número de copias del modelo que se ejecutarán, una por acelerador (imágenes de vLLM).
  • secrets (dict[str, str], opcional) — Valores secretos para inyectar en el entorno del contenedor.

el mismo Inference Endpoint, mutado in situ con los datos más recientes.

Actualice el punto de inferencia.

Este método permite actualizar la configuración de cómputo, el modelo desplegado o ambos. Todos los argumentos son opcionales, pero se debe proporcionar al menos uno.

Este es un alias de HfApi.update_inference_endpoint(). El objeto actual se modifica in situ con los datos más recientes del servidor.

esperar

< >

( timeout: int | None = Nonerefresh_every: int = 5 ) → InferenceEndpoint

Parámetros

  • timeout (int, opcional) — El tiempo máximo de espera para que el Inference Endpoint se despliegue, en segundos. Si es None, se esperará indefinidamente.
  • refresh_every (int, opcional) — Tiempo de espera entre cada consulta del estado del Inference Endpoint, en segundos. El valor predeterminado es 5 s.

el mismo Inference Endpoint, mutado in situ con los datos más recientes.

Lanza

InferenceEndpointError o InferenceEndpointTimeoutError

  • InferenceEndpointError — Si el Inference Endpoint terminó en un estado de error.
  • InferenceEndpointTimeoutError — Si el Inference Endpoint no se despliega después de timeout segundos.

Espera a que el Inference Endpoint se haya desplegado.

La información del servidor se obtendrá cada 1s. Si el Inference Endpoint no se ha desplegado después de timeout segundos, se lanzará un InferenceEndpointTimeoutError. El InferenceEndpoint se mutará in situ con los datos más recientes.

InferenceEndpointHardware

clase huggingface_hub.InferenceEndpointHardware

< >

( id: strvendor: strregion: straccelerator: strinstance_type: strinstance_size: strarchitecture: strnum_accelerators: intnum_cpus: int | Nonememory_gb: floatgpu_memory_gb: int | Noneprice_per_hour: floatstatus: strmax_accelerators: intused_accelerators: int )

Parámetros

  • id (str) — Identificador de hardware único, p. ej. "aws-us-east-1-nvidia-l4-x1".
  • vendor (str) — El proveedor de la nube que aloja el hardware, p. ej. "aws".
  • region (str) — La región de la nube en la que está disponible el hardware, p. ej. "us-east-1".
  • accelerator (str) — El tipo de acelerador de hardware, por ejemplo, "cpu", "gpu" o "neuron".
  • instance_type (str) — El tipo de instancia en la nube, p. ej. "nvidia-l4".
  • instance_size (str) — El multiplicador del tamaño de la instancia, p. ej. "x1".
  • architecture (str) — Descripción del hardware legible por humanos, p. ej. "Nvidia L4".
  • num_accelerators (int) — Número de unidades de acelerador por réplica.
  • num_cpus (int, opcional) — Número de vCPUs por réplica.
  • memory_gb (float) — RAM por réplica, en GB.
  • gpu_memory_gb (int, opcional) — Memoria total de GPU por réplica, en GB (es decir, sumada sobre num_accelerators). None para hardware que no es GPU.
  • price_per_hour (float) — Costo por réplica por hora, en USD.
  • status (str) — Disponibilidad del hardware: "available", "low_availability", "not_available", "reserved" o "deprecated".
  • max_accelerators (int) — Número máximo de aceleradores de este tipo que el espacio de nombres puede ejecutar.
  • used_accelerators (int) — Número de aceleradores de este tipo que se están utilizando actualmente en el espacio de nombres.

Contiene información sobre una configuración de hardware disponible para los Inference Endpoints.

Los campos vendor, region, accelerator, instance_type y instance_size son exactamente los valores que se deben pasar a create_inference_endpoint() (o hf endpoints deploy) para desplegar en este hardware.

Ejemplo:

>>> from huggingface_hub import list_inference_endpoints_hardware
>>> hardware = list_inference_endpoints_hardware()
>>> hardware[0]
InferenceEndpointHardware(id='aws-us-east-1-nvidia-l4-x1', vendor='aws', region='us-east-1', ...)

from_raw

< >

( raw: dictvendor: strregion: str )

Inicializa un objeto desde un diccionario de cálculo en bruto, anidado bajo un proveedor y una región en la respuesta de la API.

InferenceCatalogModel

clase huggingface_hub.InferenceCatalogModel

< >

( repo_id: strname: strauthor: strlicense: strtask: strcreated_at: datetimerecipes: list )

Parámetros

  • repo_id (str) — El id del repositorio del modelo en el Hub, p. ej. "meta-llama/Llama-3.1-8B-Instruct".
  • name (str) — El nombre del modelo, es decir, la parte de repo_id que sigue al autor, por ejemplo "Llama-3.1-8B-Instruct".
  • author (str) — El autor del repositorio del modelo, p. ej. "meta-llama".
  • license (str) — La licencia del modelo, por ejemplo, "Apache 2.0".
  • task (str) — La tarea en la que se despliega el modelo, p. ej. "text-generation".
  • created_at (datetime) — La fecha en que el modelo se añadió al catálogo.
  • recipes (list[InferenceCatalogRecipe]) — Las formas probadas de desplegar este modelo.

Contiene información sobre un modelo disponible en el Catálogo de Inferencia.

Ejemplo:

>>> from huggingface_hub import list_inference_catalog
>>> catalog = list_inference_catalog(engine="vllm")
>>> catalog[0]
InferenceCatalogModel(repo_id='Qwen/Qwen2.5-Coder-7B-Instruct', name='Qwen2.5-Coder-7B-Instruct', ...)

from_raw

< >

( raw: dict )

Inicializa un objeto desde un diccionario de elemento de catálogo sin procesar.

InferenceCatalogRecipe

clase huggingface_hub.InferenceCatalogRecipe

< >

( id: straccelerator: strengine: strgguf_file: str | Nonerevision: str | None )

Parámetros

  • id (str) — El id de la receta pública, para pasar a create_inference_endpoint_from_catalog() como recipe_id.
  • accelerator (str) — El tipo de acelerador de hardware en el que se ejecuta la receta, por ejemplo, "cpu", "gpu" o "neuron".
  • engine (str) — El motor de inferencia que ejecuta la receta, por ejemplo "vllm", "llamacpp", "tei" o "sglang".
  • gguf_file (str, opcional) — El archivo GGUF desplegado por la receta. Solo se establece para las recetas "llamacpp".
  • revision (str, opcional) — La revisión del modelo a la que está fijada la receta, si la hay.

Contiene información sobre una forma preprobada de desplegar un modelo del Inference Catalog.

Una receta es una combinación de hardware y motor que el equipo de Inference Endpoints ha probado para un modelo dado. Un modelo suele tener una receta, pero puede tener varias (p. ej., una para GPU y otra para Neuron, o una por cada cuantización GGUF).

from_raw

< >

( raw: dict )

Inicializa un objeto desde un diccionario de receta en bruto, anidado bajo un modelo en la respuesta de la API.

InferenceEndpointStatus

clase huggingface_hub.InferenceEndpointStatus

< >

( valuenames = Nonemodule = Nonequalname = Nonetype = Nonestart = 1 )

Una enumeración.

InferenceEndpointType

clase huggingface_hub.InferenceEndpointType

< >

( valuenames = Nonemodule = Nonequalname = Nonetype = Nonestart = 1 )

Una enumeración.

InferenceEndpointError

clase huggingface_hub.InferenceEndpointError

< >

( )

Excepción genérica al trabajar con Inference Endpoints.

Update on GitHub