Skip to content

[v1.28.0] Hardware discovery and managed engine images for Inference Endpoints and more

Latest

Choose a tag to compare

@github-actions github-actions released this 18 Aug 12:03
· 1 commit to main since this release

🔎 Discover deployable hardware with hf endpoints hardware

Deploying an Inference Endpoint requires five hardware flags (--vendor, --region, --accelerator, --instance-type, --instance-size) whose valid values depend on each other, and until now there was no way to learn them from the CLI. The new hf endpoints hardware command lists the valid combinations along with the price per replica per hour and your namespace's accelerator quota, filtered by default to the hardware you can deploy on right now. The same data is available in the SDK via list_inference_endpoints_hardware(), which flattens the API response into InferenceEndpointHardware objects you can filter programmatically.

>>> hf endpoints hardware --vendor aws --region eu-west-1
VENDOR REGION    ACCELERATOR INSTANCE_TYPE INSTANCE_SIZE MEMORY_GB GPU_MEMORY_GB PRICE_PER_HOUR QUOTA STATUS
------ --------- ----------- ------------- ------------- --------- ------------- -------------- ----- ---------
aws    eu-west-1 cpu         intel-spr     x1                  2.0                        0.033 0/60  available
aws    eu-west-1 cpu         intel-spr     x2                  4.0                        0.067 0/60  available
aws    eu-west-1 gpu         nvidia-a10g   x1                 30.0            24            1.0 0/16  available
aws    eu-west-1 gpu         nvidia-t4     x1                 15.0            16            0.5 1/30  available
  • [Inference Endpoints] Add hf endpoints hardware to list available instances by @hanouticelina in #4672

🚀 Managed engine images and multi-accelerator parallelism for Inference Endpoints

custom_image now accepts the engine-specific container types supported by the API: key the dictionary with the engine name (vLLM, sGLang, tgi, tei, llamacpp, hfServe, ...) instead of leaving it flat, and each engine takes the usual container fields plus its own tuning options. Any dict without a top-level url is forwarded to the API untouched, so engines added to the API later will work without upgrading huggingface_hub, and update_inference_endpoint now handles the same payload shapes as create_inference_endpoint. On the CLI, hf endpoints deploy and hf endpoints update gain --engine, --tensor-parallel-size and --data-parallel-size, and update also accepts --custom-image, --health-route and --port. This matters because vLLM and SGLang default to a single accelerator while an endpoint is allocated every accelerator of its instance — the API now rejects that misconfiguration, and these flags are how you set things right.

$ hf endpoints deploy gpt-oss-120b-vllm --repo openai/gpt-oss-120b --framework custom \
    --accelerator gpu --instance-size x8 --instance-type nvidia-h200 --region us-east-1 --vendor aws \
    --engine vllm --custom-image vllm/vllm-openai:v0.23.0 --tensor-parallel-size 8

# Retune a running endpoint
$ hf endpoints update gpt-oss-120b-vllm --tensor-parallel-size 4 --data-parallel-size 2

💔 Breaking change: huggingface_hub.constants.INFERENCE_ENDPOINT_IMAGE_KEYS is removed. It was never exported at the package root nor documented, but code reading it directly will now get an AttributeError.

  • [Inference Endpoints] Support managed engine images in custom_image by @hanouticelina in #4671
  • [CLI] Add --tensor-parallel-size / --data-parallel-size to hf endpoints deploy and update by @moon-bot-app[bot] in #4661

🤖 Inference

  • [Inference Providers] deepinfra: add text-to-speech support by @ovuruska in #4559
  • [Inference Providers] deepinfra: add feature-extraction support by @ovuruska in #4656

🖥️ CLI

🐛 Bug and typo fixes

  • [CLI] Fix scheduled upload of a single file in a subfolder by @dfedoryshchev in #4619
  • [Download] Fix tqdm_class ignored by the Xet transfer bar by @bharadwaj-pendyala in #4647
  • [CLI] Fix duplicated GPU rows in hf jobs stats by @dfedoryshchev in #4660
  • Don't report a 429 as a window rate limit when the window isn't exhausted by @moon-bot-app[bot] in #4662
  • [Download] Fix ResolvedRevision string value after pickle/copy by @hanouticelina in #4692
  • Do not use a redirect's Content-Length as file size in get_hf_file_metadata by @assafvayner in #4699
  • [Inference Endpoints] Omit model.task instead of sending null on create by @hanouticelina in #4701

📖 Documentation

🏗️ Internal

  • Post-release: bump version to 1.28.0.dev0 by @huggingface-hub-bot[bot] in #4643
  • Bump the actions group with 4 updates by @dependabot[bot] in #4652