Hub Python Library documentation
Điểm cuối suy luận
Điểm cuối suy luận
Inference Endpoints cung cấp giải pháp sản xuất an toàn để triển khai mô hình một cách dễ dàng trên hạ tầng chuyên dụng và tự động mở rộng do Hugging Face quản lý. Một Inference Endpoint được xây dựng từ một mô hình trên Hub. Trang này là tài liệu tham khảo cho tích hợp của huggingface_hub với Inference Endpoints. Để biết thêm thông tin về sản phẩm Inference Endpoints, hãy xem tài liệu chính thức của nó.
Xem hướng dẫn liên quan để tìm hiểu cách sử dụng
huggingface_hubđể quản lý Inference Endpoints của bạn theo cách lập trình.
Inference Endpoints có thể được quản lý hoàn toàn qua API. Các endpoint được tài liệu hóa bằng Swagger. Lớp InferenceEndpoint là một lớp bọc đơn giản được xây dựng dựa trên API này.
Phương thức
Một tập con các tính năng của Inference Endpoint được triển khai trong HfApi:
- get_inference_endpoint() và list_inference_endpoints() để lấy thông tin về các Inference Endpoint của bạn
- list_inference_endpoints_hardware() để liệt kê phần cứng mà bạn có thể triển khai Inference Endpoint
- create_inference_endpoint(), update_inference_endpoint() và delete_inference_endpoint() để triển khai và quản lý Inference Endpoints
- list_inference_catalog() và create_inference_endpoint_from_catalog() để xem và triển khai Model Catalog được tuyển chọn
- pause_inference_endpoint() và resume_inference_endpoint() để tạm dừng và tiếp tục một Inference Endpoint
- scale_to_zero_inference_endpoint() để tự động scale Endpoint về 0 replicas
InferenceEndpoint
Dataclass chính là InferenceEndpoint. Nó chứa thông tin về một InferenceEndpoint đã được triển khai, bao gồm cấu hình và trạng thái hiện tại của nó. Sau khi triển khai, bạn có thể chạy suy luận trên Endpoint bằng cách sử dụng các thuộc tính InferenceEndpoint.client và InferenceEndpoint.async_client, lần lượt trả về một đối tượng InferenceClient và một đối tượng AsyncInferenceClient.
lớp huggingface_hub.InferenceEndpoint
< source >( namespace: strraw: dict_token: str | bool | None_api: HfApi )
Tham số
- name (
str) — Tên duy nhất của Inference Endpoint. - namespace (
str) — Namespace nơi Inference Endpoint được đặt. - repository (
str) — Tên của kho mô hình được triển khai trên Inference Endpoint này. - status (InferenceEndpointStatus) — Trạng thái hiện tại của Inference Endpoint.
- url (
str, tùy chọn) — URL của Inference Endpoint, nếu có. Chỉ Inference Endpoint đã triển khai mới có URL. - framework (
str) — Khung machine learning được sử dụng cho mô hình. - revision (
str) — Phiên bản mô hình cụ thể được triển khai trên Inference Endpoint. - task (
str) — Nhiệm vụ liên quan đến mô hình đã triển khai. - created_at (
datetime.datetime) — Thời điểm Inference Endpoint được tạo. - updated_at (
datetime.datetime) — Thời gian cập nhật cuối cùng của Inference Endpoint. - type (InferenceEndpointType) — Loại của Inference Endpoint (public, authenticated, private).
- raw (
dict) — Dữ liệu từ điển thô được trả về từ API. - token (
strhoặcbool, tùy chọn) — Token xác thực cho Inference Endpoint, nếu được đặt khi yêu cầu API. Nếu không được cung cấp, sẽ mặc định dùng token đã lưu cục bộ. Truyềntoken=Falsenếu bạn không muốn gửi token của mình đến máy chủ.
Chứa thông tin về một Inference Endpoint đã triển khai.
Ví dụ:
>>> 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 )
Khởi tạo đối tượng từ từ điển thô.
client
< source >( ) → InferenceClient
Trả về
một client suy luận trỏ đến endpoint đã triển khai.
Gây ra
- InferenceEndpointError — Nếu Inference Endpoint chưa được triển khai.
Trả về một client để thực hiện dự đoán trên Inference Endpoint này.
async_client
< source >( ) → AsyncInferenceClient
Trả về
một client suy luận tương thích với asyncio, trỏ đến endpoint đã triển khai.
Gây ra
- InferenceEndpointError — Nếu Inference Endpoint chưa được triển khai.
Trả về một client để thực hiện dự đoán trên Inference Endpoint này.
Xóa Inference Endpoint.
Thao tác này không thể đảo ngược. Nếu bạn không muốn bị tính phí cho một Inference Endpoint, cách tốt hơn là tạm dừng nó bằng InferenceEndpoint.pause() hoặc thu nhỏ nó về không bằng InferenceEndpoint.scale_to_zero().
Đây là một alias cho HfApi.delete_inference_endpoint().
fetch
< source >( ) → InferenceEndpoint
Trả về
cùng một Inference Endpoint, được thay đổi tại chỗ bằng dữ liệu mới nhất.
Lấy thông tin mới nhất về Inference Endpoint.
tạm dừng
< source >( ) → InferenceEndpoint
Trả về
cùng một Inference Endpoint, được thay đổi tại chỗ bằng dữ liệu mới nhất.
Tạm dừng Inference Endpoint.
Inference Endpoint ở trạng thái tạm dừng sẽ không bị tính phí. Bạn có thể tiếp tục sử dụng nó bất cứ lúc nào bằng InferenceEndpoint.resume(). Điều này khác với việc scale Inference Endpoint về 0 bằng InferenceEndpoint.scale_to_zero(), khi đó nó sẽ được khởi động lại tự động khi có yêu cầu được gửi đến.
Đây là một alias cho HfApi.pause_inference_endpoint(). Đối tượng hiện tại sẽ được thay đổi tại chỗ bằng dữ liệu mới nhất từ máy chủ.
tiếp tục
< source >( running_ok: bool = True ) → InferenceEndpoint
Tiếp tục Inference Endpoint.
Đây là một alias cho HfApi.resume_inference_endpoint(). Đối tượng hiện tại sẽ được thay đổi tại chỗ bằng dữ liệu mới nhất từ máy chủ.
scale_to_zero
< source >( ) → InferenceEndpoint
Trả về
cùng một Inference Endpoint, được thay đổi tại chỗ bằng dữ liệu mới nhất.
Thang đo điểm cuối suy luận về không.
Inference Endpoint được scale về 0 sẽ không bị tính phí. Nó sẽ được khởi động lại ở lần yêu cầu tiếp theo, kèm theo độ trễ khởi động lạnh. Điều này khác với việc tạm dừng Inference Endpoint bằng InferenceEndpoint.pause(), khi đó sẽ cần khởi động lại thủ công bằng InferenceEndpoint.resume().
Đây là một alias cho HfApi.scale_to_zero_inference_endpoint(). Đối tượng hiện tại sẽ bị thay đổi tại chỗ bằng dữ liệu mới nhất từ máy chủ.
cập nhật
< 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
Tham số
- accelerator (
str, tùy chọn) — Bộ tăng tốc phần cứng được sử dụng cho suy luận (ví dụ:"cpu"). - instance_size (
str, tùy chọn) — Kích thước hoặc loại instance được sử dụng để lưu trữ model (ví dụ:"x4"). - instance_type (
str, tùy chọn) — Loại instance trên cloud nơi Inference Endpoint sẽ được triển khai (ví dụ:"intel-icl"). - min_replica (
int, tùy chọn) — Số lượng tối thiểu các bản sao (instance) cần duy trì hoạt động cho Inference Endpoint. - max_replica (
int, tùy chọn) — Số lượng bản sao (instance) tối đa để mở rộng cho Inference Endpoint. - scale_to_zero_timeout (
int, tùy chọn) — Thời lượng tính bằng phút trước khi một endpoint không hoạt động bị thu về mức không. - repository (
str, tùy chọn) — Tên của kho mô hình liên quan đến Inference Endpoint (ví dụ:"gpt2"). - framework (
str, tùy chọn) — Khung machine learning được sử dụng cho mô hình (ví dụ:"custom"). - revision (
str, tùy chọn) — Phiên bản cụ thể của mô hình cần triển khai trên Inference Endpoint (ví dụ:"6c0e6080953db56375760c0471a8c5f2929baf11"). - task (
str, tùy chọn) — Nhiệm vụ để triển khai mô hình (ví dụ:"text-classification"). - custom_image (
dict, tùy chọn) — Ảnh container để chạy. Có thể là một dict có khóa là biến thể của ảnh (ví dụ{"vLLM": {"url": "vllm/vllm-openai:v0.23.0", "port": 8000}}, cũng nhưsGLang,tgi,tei,llamacpp,hfServe, …), được chuyển tiếp nguyên vẹn, hoặc một dict phẳng mô tả một container tùy chỉnh (ví dụ{"url": ..., "port": ...}), được gửi dưới dạng{"custom": ...}. - container_command (
list[str], tùy chọn) — Ghi đè lệnh entrypoint của container (tương ứng vớimodel.commandtrong API payload). Hoạt động với cả các image engine được quản lý (ví dụ: vLLM, SGLang) và các image tùy chỉnh. - container_args (
list[str], tùy chọn) — Các đối số được thêm vào entrypoint của container (tương ứng vớimodel.argstrong API payload). Hoạt động với cả các image engine được quản lý (ví dụ: vLLM, SGLang) và các image tùy chỉnh. - tensor_parallel_size (
int, tùy chọn) — Số lượng bộ tăng tốc để chia nhỏ một bản sao mô hình duy nhất (ảnh vLLM và SGLang). Khicustom_imagekhông được cung cấp, ảnh hiện đang được cấu hình trên endpoint sẽ được lấy về và cập nhật tại chỗ, vì API yêu cầumodel.imagenhư một tổng thể. - data_parallel_size (
int, tùy chọn) — Số lượng bản sao mô hình cần chạy, mỗi bản sao trên một bộ tăng tốc (ảnh vLLM). - secrets (
dict[str, str], tùy chọn) — Các giá trị bí mật để tiêm vào môi trường của container.
Trả về
cùng một Inference Endpoint, được thay đổi tại chỗ bằng dữ liệu mới nhất.
Cập nhật Inference Endpoint.
Phương pháp này cho phép cập nhật cấu hình tính toán, mô hình đã triển khai, hoặc cả hai. Tất cả các đối số đều là tùy chọn nhưng ít nhất một đối số phải được cung cấp.
Đây là một alias cho HfApi.update_inference_endpoint(). Đối tượng hiện tại sẽ được thay đổi tại chỗ bằng dữ liệu mới nhất từ máy chủ.
chờ
< source >( timeout: int | None = Nonerefresh_every: int = 5 ) → InferenceEndpoint
Tham số
- timeout (
int, tùy chọn) — Thời gian tối đa để chờ Inference Endpoint được triển khai, tính bằng giây. Nếu làNone, sẽ chờ vô thời hạn. - refresh_every (
int, tùy chọn) — Thời gian chờ giữa mỗi lần lấy trạng thái của Inference Endpoint, tính bằng giây. Mặc định là 5 giây.
Trả về
cùng một Inference Endpoint, được thay đổi tại chỗ bằng dữ liệu mới nhất.
Gây ra
InferenceEndpointError hoặc InferenceEndpointTimeoutError
- InferenceEndpointError — Nếu Inference Endpoint rơi vào trạng thái thất bại.
InferenceEndpointTimeoutError— Nếu Inference Endpoint không được triển khai sautimeoutgiây.
Chờ cho đến khi Inference Endpoint được triển khai.
Thông tin từ máy chủ sẽ được lấy mỗi 1 giây. Nếu Inference Endpoint không được triển khai sau timeout giây, một InferenceEndpointTimeoutError sẽ được ném ra. InferenceEndpoint sẽ được thay đổi tại chỗ với dữ liệu mới nhất.
InferenceEndpointHardware
lớp 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 )
Tham số
- id (
str) — Định danh phần cứng duy nhất, ví dụ:"aws-us-east-1-nvidia-l4-x1". - vendor (
str) — Nhà cung cấp đám mây lưu trữ phần cứng, ví dụ"aws". - region (
str) — Khu vực đám mây mà phần cứng có sẵn, ví dụ"us-east-1". - accelerator (
str) — Loại bộ tăng tốc phần cứng, ví dụ"cpu","gpu"hoặc"neuron". - instance_type (
str) — Loại instance trên cloud, ví dụ"nvidia-l4". - instance_size (
str) — Hệ số nhân kích thước instance, ví dụ"x1". - architecture (
str) — Mô tả phần cứng dễ đọc, ví dụ"Nvidia L4". - num_accelerators (
int) — Số lượng đơn vị tăng tốc trên mỗi bản sao. - num_cpus (
int, tùy chọn) — Số lượng vCPU cho mỗi bản sao. - memory_gb (
float) — RAM cho mỗi bản sao, tính bằng GB. - gpu_memory_gb (
int, tùy chọn) — Tổng bộ nhớ GPU trên mỗi bản sao, tính bằng GB (tức là tổng trênnum_accelerators).Nonecho phần cứng không phải GPU. - price_per_hour (
float) — Chi phí cho mỗi bản sao (replica) mỗi giờ, tính bằng USD. - status (
str) — Trạng thái khả dụng của phần cứng:"available","low_availability","not_available","reserved"hoặc"deprecated". - max_accelerators (
int) — Số lượng tối đa các bộ tăng tốc thuộc loại này mà namespace được phép chạy. - used_accelerators (
int) — Số lượng bộ tăng tốc của loại này hiện đang được namespace sử dụng.
Chứa thông tin về một cấu hình phần cứng có sẵn cho Inference Endpoints.
Các trường vendor, region, accelerator, instance_type và instance_size chính là các giá trị cần truyền vào create_inference_endpoint() (hoặc hf endpoints deploy) để triển khai trên phần cứng này.
Ví dụ:
>>> 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', ...)Khởi tạo đối tượng từ một từ điển tính toán thô, nằm lồng nhau dưới một nhà cung cấp và một khu vực trong phản hồi API.
InferenceCatalogModel
lớp huggingface_hub.InferenceCatalogModel
< source >( repo_id: strname: strauthor: strlicense: strtask: strcreated_at: datetimerecipes: list )
Tham số
- repo_id (
str) — ID của kho mô hình trên Hub, ví dụ"meta-llama/Llama-3.1-8B-Instruct". - name (
str) — Tên mô hình, tức là phần củarepo_idsau tác giả, ví dụ"Llama-3.1-8B-Instruct". - author (
str) — Tác giả của kho lưu trữ mô hình, ví dụ"meta-llama". - license (
str) — Giấy phép của mô hình, ví dụ"Apache 2.0". - task (
str) — Nhiệm vụ mà mô hình được triển khai, ví dụ"text-generation". - created_at (
datetime) — Ngày mô hình được thêm vào danh mục. - recipes (
list[InferenceCatalogRecipe]) — Các cách triển khai đã được kiểm thử cho mô hình này.
Chứa thông tin về một mô hình có sẵn trong Inference Catalog.
Ví dụ:
>>> 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', ...)Khởi tạo đối tượng từ một từ điển mục danh mục thô.
InferenceCatalogRecipe
lớp huggingface_hub.InferenceCatalogRecipe
< source >( id: straccelerator: strengine: strgguf_file: str | Nonerevision: str | None )
Tham số
- id (
str) — ID công thức công khai, để truyền vào create_inference_endpoint_from_catalog() dưới dạngrecipe_id. - accelerator (
str) — Loại bộ tăng tốc phần cứng mà công thức chạy trên đó, ví dụ"cpu","gpu"hoặc"neuron". - engine (
str) — Engine suy luận mà công thức chạy, ví dụ"vllm","llamacpp","tei"hoặc"sglang". - gguf_file (
str, tùy chọn) — Tệp GGUF được triển khai bởi công thức. Chỉ được đặt cho các công thức"llamacpp". - revision (
str, tùy chọn) — Phiên bản mô hình mà công thức được cố định vào, nếu có.
Chứa thông tin về một cách triển khai mô hình đã được kiểm tra trước từ Inference Catalog.
Một recipe là sự kết hợp giữa phần cứng và engine mà nhóm Inference Endpoints đã kiểm tra cho một model nhất định. Một model thường có một recipe, nhưng cũng có thể có nhiều (ví dụ: một recipe cho GPU và một recipe cho Neuron, hoặc một recipe cho mỗi mức lượng tử hóa GGUF).
Khởi tạo đối tượng từ một từ điển công thức thô, nằm lồng bên dưới một mô hình trong phản hồi API.
InferenceEndpointStatus
lớp huggingface_hub.InferenceEndpointStatus
< source >( valuenames = Nonemodule = Nonequalname = Nonetype = Nonestart = 1 )
Một kiểu liệt kê.
InferenceEndpointType
lớp huggingface_hub.InferenceEndpointType
< source >( valuenames = Nonemodule = Nonequalname = Nonetype = Nonestart = 1 )
Một kiểu liệt kê.
InferenceEndpointError
Lỗi ngoại lệ chung khi làm việc với Inference Endpoints.