Hub Python Library documentation
Точки вывода
Точки вывода
Inference Endpoints — это безопасное решение для продакшена, позволяющее легко развертывать модели на выделенной инфраструктуре с автоматическим масштабированием, управляемой Hugging Face. Inference Endpoint создается на основе модели из Hub. Эта страница является справочным руководством по интеграции huggingface_hub с Inference Endpoints. Для получения дополнительной информации о продукте Inference Endpoints обратитесь к его официальной документации.
Ознакомьтесь с соответствующим руководством, чтобы узнать, как использовать
huggingface_hubдля программного управления вашими Inference Endpoints.
Inference Endpoints можно полностью управлять через API. Эндпоинты задокументированы с помощью Swagger. Класс InferenceEndpoint представляет собой простую обёртку, построенную на основе этого API.
Методы
Подмножество функций Inference Endpoint реализовано в HfApi:
- get_inference_endpoint() и list_inference_endpoints() для получения информации о ваших Inference Endpoints
- list_inference_endpoints_hardware() — для получения списка оборудования, на котором можно развернуть Inference Endpoint
- create_inference_endpoint(), update_inference_endpoint() и delete_inference_endpoint() для развертывания и управления Inference Endpoints
- list_inference_catalog() и create_inference_endpoint_from_catalog() для просмотра и развертывания отобранного каталога моделей
- pause_inference_endpoint() и resume_inference_endpoint() для приостановки и возобновления работы Inference Endpoint
- scale_to_zero_inference_endpoint() to manually scale an Endpoint to 0 replicas
InferenceEndpoint
Основным dataclass является InferenceEndpoint. Он содержит информацию о развернутом InferenceEndpoint, включая его конфигурацию и текущее состояние. После развертывания вы можете выполнять инференс на Endpoint с помощью свойств InferenceEndpoint.client и InferenceEndpoint.async_client, которые возвращают объекты InferenceClient и AsyncInferenceClient соответственно.
класс huggingface_hub.InferenceEndpoint
< source >( namespace: strraw: dict_token: str | bool | None_api: HfApi )
Параметры
- name (
str) — Уникальное имя Inference Endpoint. - namespace (
str) — Пространство имён, в котором находится Inference Endpoint. - repository (
str) — Название репозитория модели, развернутой на этом Inference Endpoint. - status (InferenceEndpointStatus) — Текущий статус Inference Endpoint.
- url (
str, необязательный) — URL точки вывода (Inference Endpoint), если она доступна. URL есть только у развернутой точки вывода. - framework (
str) — Фреймворк машинного обучения, используемый для модели. - revision (
str) — Конкретная ревизия модели, развернутая на Inference Endpoint. - task (
str) — Задача, связанная с развернутой моделью. - created_at (
datetime.datetime) — Метка времени создания Inference Endpoint. - updated_at (
datetime.datetime) — Метка времени последнего обновления Inference Endpoint. - type (InferenceEndpointType) — Тип Inference Endpoint (public, authenticated, private).
- raw (
dict) — Сырые данные в формате словаря, возвращаемые из API. - token (
strилиbool, необязательный) — Токен аутентификации для Inference Endpoint, если он был указан при запросе к API. Если не передан, по умолчанию используется локально сохранённый токен. Передайтеtoken=False, если не хотите отправлять свой токен на сервер.
Содержит информацию о развернутом Inference Endpoint.
Пример:
>>> 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
< source >( raw: dictnamespace: strtoken: str | bool | None = Noneapi: typing.Optional[ForwardRef('HfApi')] = None )
Инициализация объекта из исходного словаря.
клиент
< source >( ) → InferenceClient
Возвращает
клиент для инференса, указывающий на развернутый конечный пункт.
Исключения
- InferenceEndpointError — если Inference Endpoint ещё не развёрнут.
Возвращает клиент для выполнения предсказаний на этом Inference Endpoint.
async_client
< source >( ) → AsyncInferenceClient
Возвращает
асинхронный клиент для вывода, совместимый с asyncio, указывающий на развернутый конечный пункт.
Исключения
- InferenceEndpointError — если Inference Endpoint ещё не развёрнут.
Возвращает клиент для выполнения предсказаний на этом Inference Endpoint.
Удалите Inference Endpoint.
Эта операция необратима. Если вы не хотите платить за Inference Endpoint, лучше приостановить его с помощью InferenceEndpoint.pause() или масштабировать до нуля с помощью InferenceEndpoint.scale_to_zero().
Это псевдоним для HfApi.delete_inference_endpoint().
fetch
< source >( ) → InferenceEndpoint
Возвращает
тот же самый Inference Endpoint, изменённый на месте с последними данными.
Получить актуальную информацию об Inference Endpoint.
пауза
< source >( ) → InferenceEndpoint
Возвращает
тот же самый Inference Endpoint, изменённый на месте с последними данными.
Приостановьте Inference Endpoint.
Запущенный Inference Endpoint в режиме паузы не тарифицируется. Его можно возобновить в любой момент с помощью InferenceEndpoint.resume(). Это отличается от масштабирования Inference Endpoint до нуля с помощью InferenceEndpoint.scale_to_zero(), при котором он автоматически перезапускается при поступлении запроса.
Это псевдоним для HfApi.pause_inference_endpoint(). Текущий объект изменяется на месте с использованием последних данных с сервера.
resume
< source >( running_ok: bool = True ) → InferenceEndpoint
Возобновите работу конечной точки вывода.
Это псевдоним для HfApi.resume_inference_endpoint(). Текущий объект изменяется на месте с использованием последних данных с сервера.
scale_to_zero
< source >( ) → InferenceEndpoint
Возвращает
тот же самый Inference Endpoint, изменённый на месте с последними данными.
Масштабируйте конечную точку вывода до нуля.
Inference Endpoint, масштабированный до нуля, не тарифицируется. Он возобновит работу при следующем запросе к нему, но с задержкой холодного запуска. Это отличается от приостановки Inference Endpoint с помощью InferenceEndpoint.pause(), которая потребует ручного возобновления с помощью InferenceEndpoint.resume().
This is an alias for HfApi.scale_to_zero_inference_endpoint(). The current object is mutated in place with the latest data from the server.
обновление
< source >( 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
Параметры
- accelerator (
str, необязательный) — Аппаратный ускоритель, используемый для вывода (например,"cpu"). - instance_size (
str, необязательный) — Размер или тип экземпляра, используемого для размещения модели (например,"x4"). - instance_type (
str, необязательный) — Тип облачного инстанса, на котором будет развернут Inference Endpoint (например,"intel-icl"). - min_replica (
int, необязательный) — Минимальное количество реплик (экземпляров), которое следует держать запущенными для Inference Endpoint. - max_replica (
int, необязательный) — Максимальное количество реплик (экземпляров), до которого можно масштабировать Inference Endpoint. - scale_to_zero_timeout (
int, необязательный) — Длительность в минутах, по истечении которой неактивный конечный пункт масштабируется до нуля. - repository (
str, необязательный) — Имя репозитория модели, связанного с Inference Endpoint (например,"gpt2"). - framework (
str, необязательный) — Фреймворк машинного обучения, используемый для модели (например,"custom"). - revision (
str, необязательный) — Конкретная ревизия модели для развертывания на Inference Endpoint (например,"6c0e6080953db56375760c0471a8c5f2929baf11"). - task (
str, необязательный) — Задача, для которой разворачивается модель (например,"text-classification"). - custom_image (
dict, необязательный) — Образ контейнера для запуска. Либо словарь с ключами по вариантам образа (например,{"vLLM": {"url": "vllm/vllm-openai:v0.23.0", "port": 8000}}, такжеsGLang,tgi,tei,llamacpp,hfServe, …), который передаётся как есть, либо плоский словарь, описывающий кастомный контейнер (например,{"url": ..., "port": ...}), который отправляется как{"custom": ...}. - container_command (
list[str], необязательный) — Заменяет команду точки входа контейнера (соответствуетmodel.commandв API-запросе). Работает как с управляемыми образами движков (например, vLLM, SGLang), так и с пользовательскими образами. - container_args (
list[str], необязательный) — Аргументы, добавляемые к точке входа контейнера (соответствуетmodel.argsв API-запросе). Работает как с управляемыми образами движков (например, vLLM, SGLang), так и с пользовательскими образами. - tensor_parallel_size (
int, необязательный) — Количество ускорителей, на которые распределяется одна копия модели (образы vLLM и SGLang). Еслиcustom_imageне указан, то образ, в данный момент настроенный на эндпоинте, извлекается и обновляется на месте, поскольку API требует передаватьmodel.imageцеликом. - data_parallel_size (
int, необязательный) — Количество копий модели для запуска, по одной на каждый ускоритель (образы vLLM). - secrets (
dict[str, str], необязательный) — Секретные значения для внедрения в переменные окружения контейнера.
Возвращает
тот же самый Inference Endpoint, изменённый на месте с последними данными.
Обновите конечную точку вывода.
Этот метод позволяет обновить конфигурацию вычислений, развёрнутую модель или оба параметра. Все аргументы являются необязательными, но необходимо указать как минимум один.
Это псевдоним для HfApi.update_inference_endpoint(). Текущий объект изменяется на месте с использованием последних данных с сервера.
wait
< source >( timeout: int | None = Nonerefresh_every: int = 5 ) → InferenceEndpoint
Параметры
- timeout (
int, необязательный) — Максимальное время ожидания развёртывания Inference Endpoint, в секундах. ЕслиNone, ожидание будет бесконечным. - refresh_every (
int, необязательный) — Время ожидания между каждым запросом статуса Inference Endpoint, в секундах. По умолчанию — 5 секунд.
Возвращает
тот же самый Inference Endpoint, изменённый на месте с последними данными.
Исключения
InferenceEndpointError или InferenceEndpointTimeoutError
- InferenceEndpointError — Если Inference Endpoint перешёл в состояние ошибки.
InferenceEndpointTimeoutError— Если Inference Endpoint не был развернут в течениеtimeoutсекунд.
Дождитесь развертывания Inference Endpoint.
Информация с сервера будет запрашиваться каждые 1 с. Если Inference Endpoint не будет развернут в течение timeout секунд, будет выброшено исключение InferenceEndpointTimeoutError. Объект InferenceEndpoint будет изменен на месте с использованием последних данных.
InferenceEndpointHardware
класс huggingface_hub.InferenceEndpointHardware
< source >( 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 )
Параметры
- id (
str) — Уникальный идентификатор оборудования, например,"aws-us-east-1-nvidia-l4-x1". - vendor (
str) — Поставщик облачных услуг, на оборудовании которого выполняется работа, например"aws". - region (
str) — Облачная область, в которой доступно оборудование, например"us-east-1". - accelerator (
str) — Тип аппаратного ускорителя, например"cpu","gpu"или"neuron". - instance_type (
str) — Тип облачного инстанса, например"nvidia-l4". - instance_size (
str) — Множитель размера экземпляра, например"x1". - architecture (
str) — Человекочитаемое описание аппаратной части, например"Nvidia L4". - num_accelerators (
int) — Количество ускорителей на реплику. - num_cpus (
int, необязательный) — Количество vCPU на реплику. - memory_gb (
float) — объём ОЗУ на реплику, в ГБ. - gpu_memory_gb (
int, необязательный) — Общий объём памяти GPU на реплику, в ГБ (т. е. сумма по всемnum_accelerators).Noneдля не-GPU оборудования. - price_per_hour (
float) — Стоимость одного реплики в час, в долларах США. - status (
str) — Доступность оборудования:"available","low_availability","not_available","reserved"или"deprecated". - max_accelerators (
int) — Максимальное количество ускорителей этого типа, которые разрешено запускать в данном пространстве имён. - used_accelerators (
int) — Количество ускорителей этого типа, используемых в настоящее время в пространстве имён.
Содержит информацию о конфигурации оборудования, доступной для Inference Endpoints.
Поля vendor, region, accelerator, instance_type и instance_size — это именно те значения, которые нужно передать в create_inference_endpoint() (или hf endpoints deploy) для развертывания на этом оборудовании.
Пример:
>>> 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', ...)Инициализирует объект из исходного словаря вычислений, вложенного в ответ API под ключами вендора и региона.
InferenceCatalogModel
класс huggingface_hub.InferenceCatalogModel
< source >( repo_id: strname: strauthor: strlicense: strtask: strcreated_at: datetimerecipes: list )
Параметры
- repo_id (
str) — Идентификатор репозитория модели на Hub, например"meta-llama/Llama-3.1-8B-Instruct". - name (
str) — Имя модели, то есть частьrepo_idпосле имени автора, например"Llama-3.1-8B-Instruct". - author (
str) — Автор репозитория модели, например"meta-llama". - license (
str) — Лицензия модели, например"Apache 2.0". - task (
str) — Задача, для которой развернута модель, например"text-generation". - created_at (
datetime) — Дата добавления модели в каталог. - recipes (
list[InferenceCatalogRecipe]) — Проверенные способы развертывания этой модели.
Содержит информацию о модели, доступной в Inference Catalog.
Пример:
>>> 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', ...)Инициализация объекта из словаря исходного элемента каталога.
InferenceCatalogRecipe
класс huggingface_hub.InferenceCatalogRecipe
< source >( id: straccelerator: strengine: strgguf_file: str | Nonerevision: str | None )
Параметры
- id (
str) — Публичный идентификатор рецепта, который нужно передать в create_inference_endpoint_from_catalog() в качествеrecipe_id. - accelerator (
str) — Тип аппаратного ускорителя, на котором выполняется рецепт, например"cpu","gpu"или"neuron". - engine (
str) — Движок инференса, на котором выполняется рецепт, например"vllm","llamacpp","tei"или"sglang". - gguf_file (
str, необязательный) — GGUF-файл, развёрнутый рецептом. Устанавливается только для рецептов"llamacpp". - revision (
str, необязательный) — Ревизия модели, к которой закреплён рецепт, если таковая имеется.
Содержит информацию о предварительно протестированном способе развертывания модели из Inference Catalog.
Рецепт — это комбинация аппаратного обеспечения и движка, протестированная командой Inference Endpoints для конкретной модели. Как правило, у модели есть один рецепт, но их может быть несколько (например, один для GPU и один для Neuron, или по одному для каждого квантования GGUF).
Инициализация объекта из исходного словаря рецепта, вложенного под модель в ответе API.
InferenceEndpointStatus
класс huggingface_hub.InferenceEndpointStatus
< source >( valuenames = Nonemodule = Nonequalname = Nonetype = Nonestart = 1 )
Перечисление.
InferenceEndpointType
класс huggingface_hub.InferenceEndpointType
< source >( valuenames = Nonemodule = Nonequalname = Nonetype = Nonestart = 1 )
Перечисление.
InferenceEndpointError
Общее исключение при работе с Inference Endpoints.