Hub Python Library documentation
Endpoint Inferensi
Endpoint Inferensi
Inference Endpoints menyediakan solusi produksi yang aman untuk dengan mudah mendeploy model pada infrastruktur khusus dan autoscaling yang dikelola oleh Hugging Face. Sebuah Inference Endpoint dibangun dari model di Hub. Halaman ini adalah referensi untuk integrasi huggingface_hub dengan Inference Endpoints. Untuk informasi lebih lanjut tentang produk Inference Endpoints, lihat dokumentasi resminya.
Lihat panduan terkait untuk mempelajari cara menggunakan
huggingface_hubuntuk mengelola Inference Endpoints Anda secara programatik.
Inference Endpoints dapat dikelola sepenuhnya melalui API. Endpoint didokumentasikan dengan Swagger. Kelas InferenceEndpoint adalah pembungkus sederhana yang dibangun di atas API ini.
Metode
Sebagian fitur Inference Endpoint diimplementasikan di HfApi:
- get_inference_endpoint() dan list_inference_endpoints() untuk mendapatkan informasi tentang Inference Endpoints Anda
- list_inference_endpoints_hardware() untuk menampilkan daftar hardware tempat Anda dapat mendeploy Inference Endpoint
- create_inference_endpoint(), update_inference_endpoint() dan delete_inference_endpoint() untuk mendeploy dan mengelola Inference Endpoints
- list_inference_catalog() dan create_inference_endpoint_from_catalog() untuk menelusuri dan mendeploy Model Catalog yang terkurasi
- pause_inference_endpoint() dan resume_inference_endpoint() untuk menjeda dan melanjutkan Inference Endpoint
- scale_to_zero_inference_endpoint() untuk secara manual menskalakan Endpoint menjadi 0 replika
InferenceEndpoint
Dataclass utama adalah InferenceEndpoint. Dataclass ini berisi informasi tentang InferenceEndpoint yang telah di-deploy, termasuk konfigurasinya dan status saat ini. Setelah di-deploy, Anda dapat menjalankan inferensi pada Endpoint menggunakan properti InferenceEndpoint.client dan InferenceEndpoint.async_client yang masing-masing mengembalikan objek InferenceClient dan AsyncInferenceClient.
kelas huggingface_hub.InferenceEndpoint
< source >( namespace: strraw: dict_token: str | bool | None_api: HfApi )
Parameter
- name (
str) — Nama unik dari Inference Endpoint. - namespace (
str) — Namespace tempat Inference Endpoint berada. - repository (
str) — Nama repositori model yang di-deploy pada Inference Endpoint ini. - status (InferenceEndpointStatus) — Status saat ini dari Inference Endpoint.
- url (
str, opsional) — URL dari Inference Endpoint, jika tersedia. Hanya Inference Endpoint yang telah di-deploy yang memiliki URL. - framework (
str) — Framework machine learning yang digunakan untuk model. - revision (
str) — Revisi model spesifik yang di-deploy pada Inference Endpoint. - task (
str) — Tugas yang terkait dengan model yang di-deploy. - created_at (
datetime.datetime) — Stempel waktu saat Inference Endpoint dibuat. - updated_at (
datetime.datetime) — Stempel waktu dari pembaruan terakhir Inference Endpoint. - type (InferenceEndpointType) — Jenis Inference Endpoint (public, authenticated, private).
- raw (
dict) — Data kamus mentah yang dikembalikan dari API. - token (
strataubool, opsional) — Token autentikasi untuk Inference Endpoint, jika diset saat meminta API. Akan menggunakan token yang disimpan secara lokal jika tidak disediakan. Berikantoken=Falsejika Anda tidak ingin mengirim token Anda ke server.
Berisi informasi tentang Inference Endpoint yang telah di-deploy.
Contoh:
>>> 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 )
Inisialisasi objek dari kamus mentah.
klien
< source >( ) → InferenceClient
Mengembalikan
klien inferensi yang menunjuk ke endpoint yang telah di-deploy.
Membuang
- InferenceEndpointError — Jika Inference Endpoint belum di-deploy.
Mengembalikan klien untuk membuat prediksi pada Inference Endpoint ini.
async_client
< source >( ) → AsyncInferenceClient
Mengembalikan
klien inferensi yang kompatibel dengan asyncio yang mengarah ke endpoint yang telah di-deploy.
Membuang
- InferenceEndpointError — Jika Inference Endpoint belum di-deploy.
Mengembalikan klien untuk membuat prediksi pada Inference Endpoint ini.
Hapus Inference Endpoint.
Operasi ini tidak dapat dibatalkan. Jika Anda tidak ingin dikenakan biaya untuk Inference Endpoint, sebaiknya Anda menjeda endpoint tersebut dengan InferenceEndpoint.pause() atau menolaknya hingga nol dengan InferenceEndpoint.scale_to_zero().
Ini adalah alias untuk HfApi.delete_inference_endpoint().
fetch
< source >( ) → InferenceEndpoint
Mengembalikan
Inference Endpoint yang sama, dimutasi di tempatnya dengan data terbaru.
Ambil informasi terbaru tentang Inference Endpoint.
jeda
< source >( ) → InferenceEndpoint
Mengembalikan
Inference Endpoint yang sama, dimutasi di tempatnya dengan data terbaru.
Jeda Endpoint Inferensi.
Inference Endpoint yang dijeda tidak akan dikenakan biaya. Endpoint ini dapat dilanjutkan kapan saja menggunakan InferenceEndpoint.resume(). Hal ini berbeda dengan menskalakan Inference Endpoint menjadi nol menggunakan InferenceEndpoint.scale_to_zero(), yang akan dimulai ulang secara otomatis ketika ada permintaan yang dikirim ke endpoint tersebut.
Ini adalah alias untuk HfApi.pause_inference_endpoint(). Objek saat ini dimutasi di tempat dengan data terbaru dari server.
lanjutkan
< source >( running_ok: bool = True ) → InferenceEndpoint
Lanjutkan Endpoint Inferensi.
Ini adalah alias untuk HfApi.resume_inference_endpoint(). Objek saat ini dimutasi di tempat dengan data terbaru dari server.
scale_to_zero
< source >( ) → InferenceEndpoint
Mengembalikan
Inference Endpoint yang sama, dimutasi di tempatnya dengan data terbaru.
Skalakan Endpoint Inferensi ke nol.
Inference Endpoint yang diskalakan ke nol tidak akan dikenakan biaya. Endpoint ini akan dilanjutkan pada permintaan berikutnya, dengan penundaan cold start. Hal ini berbeda dengan menjeda Inference Endpoint menggunakan InferenceEndpoint.pause(), yang akan memerlukan pengaktifan manual dengan InferenceEndpoint.resume().
Ini adalah alias untuk HfApi.scale_to_zero_inference_endpoint(). Objek saat ini dimutasi di tempat dengan data terbaru dari server.
perbarui
< 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
Parameter
- accelerator (
str, opsional) — Akselerator perangkat keras yang akan digunakan untuk inferensi (mis."cpu"). - instance_size (
str, opsional) — Ukuran atau tipe instance yang akan digunakan untuk hosting model (mis."x4"). - instance_type (
str, opsional) — Jenis instance cloud tempat Inference Endpoint akan di-deploy (mis."intel-icl"). - min_replica (
int, opsional) — Jumlah minimum replika (instans) yang harus tetap berjalan untuk Inference Endpoint. - max_replica (
int, opsional) — Jumlah maksimum replika (instans) untuk diskalakan pada Inference Endpoint. - scale_to_zero_timeout (
int, opsional) — Durasi dalam menit sebelum endpoint yang tidak aktif diskalakan menjadi nol. - repository (
str, opsional) — Nama repositori model yang terkait dengan Inference Endpoint (misalnya"gpt2"). - framework (
str, opsional) — Framework machine learning yang digunakan untuk model (misalnya"custom"). - revision (
str, opsional) — Revisi model spesifik yang akan di-deploy pada Inference Endpoint (mis."6c0e6080953db56375760c0471a8c5f2929baf11"). - task (
str, opsional) — Tugas di mana model akan di-deploy (misalnya"text-classification"). - custom_image (
dict, opsional) — Gambar container yang akan dijalankan. Bisa berupa dict yang dikey berdasarkan varian gambar (mis.{"vLLM": {"url": "vllm/vllm-openai:v0.23.0", "port": 8000}}, jugasGLang,tgi,tei,llamacpp,hfServe, …), yang diteruskan apa adanya, atau dict datar yang menggambarkan container kustom (mis.{"url": ..., "port": ...}), yang dikirim sebagai{"custom": ...}. - container_command (
list[str], opsional) — Timpa perintah entrypoint kontainer (dipetakan kemodel.commanddalam payload API). Berfungsi dengan baik pada gambar mesin yang dikelola (mis. vLLM, SGLang) maupun gambar kustom. - container_args (
list[str], opsional) — Argumen yang ditambahkan ke entrypoint container (dipetakan kemodel.argsdalam payload API). Berfungsi dengan baik pada gambar engine yang dikelola (misalnya vLLM, SGLang) maupun gambar kustom. - tensor_parallel_size (
int, opsional) — Jumlah akselerator untuk membagi satu salinan model (gambar vLLM dan SGLang). Ketikacustom_imagetidak diberikan, gambar yang saat ini dikonfigurasi pada endpoint akan diambil dan diperbarui di tempatnya, karena API membutuhkanmodel.imagesecara utuh. - data_parallel_size (
int, opsional) — Jumlah salinan model yang dijalankan, satu per akselerator (citra vLLM). - secrets (
dict[str, str], opsional) — Nilai rahasia untuk disuntikkan ke lingkungan container.
Mengembalikan
Inference Endpoint yang sama, dimutasi di tempatnya dengan data terbaru.
Perbarui Inference Endpoint.
Metode ini memungkinkan pembaruan konfigurasi komputasi, model yang di-deploy, atau keduanya. Semua argumen bersifat opsional, tetapi setidaknya satu harus disediakan.
Ini adalah alias untuk HfApi.update_inference_endpoint(). Objek saat ini dimutasi di tempat dengan data terbaru dari server.
tunggu
< source >( timeout: int | None = Nonerefresh_every: int = 5 ) → InferenceEndpoint
Parameter
- timeout (
int, opsional) — Waktu maksimum untuk menunggu Inference Endpoint hingga selesai di-deploy, dalam detik. JikaNone, akan menunggu tanpa batas waktu. - refresh_every (
int, opsional) — Waktu tunggu antara setiap pengambilan status Inference Endpoint, dalam detik. Bawaan 5 detik.
Mengembalikan
Inference Endpoint yang sama, dimutasi di tempatnya dengan data terbaru.
Membuang
InferenceEndpointError atau InferenceEndpointTimeoutError
- InferenceEndpointError — Jika Inference Endpoint berakhir dalam keadaan gagal.
InferenceEndpointTimeoutError— Jika Inference Endpoint tidak berhasil di-deploy setelahtimeoutdetik.
Tunggu hingga Inference Endpoint selesai di-deploy.
Informasi dari server akan diambil setiap 1 detik. Jika Inference Endpoint tidak terdeploy setelah timeout detik, sebuah InferenceEndpointTimeoutError akan dilempar. InferenceEndpoint akan dimutasi di tempatnya dengan data terbaru.
InferenceEndpointHardware
kelas 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 )
Parameter
- id (
str) — Pengenal perangkat keras unik, misalnya"aws-us-east-1-nvidia-l4-x1". - vendor (
str) — Penyedia cloud yang menampung perangkat keras, misalnya"aws". - region (
str) — Wilayah cloud tempat perangkat keras tersedia, misalnya"us-east-1". - accelerator (
str) — Jenis akselerator perangkat keras, misalnya"cpu","gpu"atau"neuron". - instance_type (
str) — Jenis instance cloud, misalnya"nvidia-l4". - instance_size (
str) — Pengali ukuran instance, misalnya"x1". - architecture (
str) — Deskripsi perangkat keras yang dapat dibaca manusia, misalnya"Nvidia L4". - num_accelerators (
int) — Jumlah unit akselerator per replika. - num_cpus (
int, opsional) — Jumlah vCPU per replika. - memory_gb (
float) — RAM per replika, dalam GB. - gpu_memory_gb (
int, opsional) — Total memori GPU per replika, dalam GB (yaitu dijumlahkan di seluruhnum_accelerators).Noneuntuk perangkat keras non-GPU. - price_per_hour (
float) — Biaya per replika per jam, dalam USD. - status (
str) — Ketersediaan perangkat keras:"available","low_availability","not_available","reserved"atau"deprecated". - max_accelerators (
int) — Jumlah maksimum akselerator dari tipe ini yang diizinkan untuk dijalankan oleh namespace. - used_accelerators (
int) — Jumlah akselerator dari tipe ini yang saat ini digunakan oleh namespace.
Berisi informasi tentang konfigurasi perangkat keras yang tersedia untuk Inference Endpoints.
Bidang vendor, region, accelerator, instance_type, dan instance_size adalah nilai yang tepat untuk diteruskan ke create_inference_endpoint() (atau hf endpoints deploy) untuk melakukan deployment pada perangkat keras ini.
Contoh:
>>> 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', ...)Inisialisasi objek dari kamus komputasi mentah, yang bersarang di bawah vendor dan region dalam respons API.
InferenceCatalogModel
kelas huggingface_hub.InferenceCatalogModel
< source >( repo_id: strname: strauthor: strlicense: strtask: strcreated_at: datetimerecipes: list )
Parameter
- repo_id (
str) — ID dari repositori model di Hub, misalnya"meta-llama/Llama-3.1-8B-Instruct". - name (
str) — Nama model, yaitu bagian darirepo_idsetelah nama penulis, misalnya"Llama-3.1-8B-Instruct". - author (
str) — Penulis dari repositori model, misalnya"meta-llama". - license (
str) — Lisensi model, misalnya"Apache 2.0". - task (
str) — Tugas tempat model di-deploy, misalnya"text-generation". - created_at (
datetime) — Tanggal model ditambahkan ke katalog. - recipes (
list[InferenceCatalogRecipe]) — Cara-cara yang telah diuji untuk mendeploy model ini.
Berisi informasi tentang model yang tersedia di Inference Catalog.
Contoh:
>>> 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', ...)Inisialisasi objek dari kamus item katalog mentah.
InferenceCatalogRecipe
kelas huggingface_hub.InferenceCatalogRecipe
< source >( id: straccelerator: strengine: strgguf_file: str | Nonerevision: str | None )
Parameter
- id (
str) — ID resep publik, untuk diteruskan ke create_inference_endpoint_from_catalog() sebagairecipe_id. - accelerator (
str) — Jenis akselerator perangkat keras tempat resep dijalankan, misalnya"cpu","gpu"atau"neuron". - engine (
str) — Mesin inferensi yang dijalankan oleh resep, misalnya"vllm","llamacpp","tei"atau"sglang". - gguf_file (
str, opsional) — File GGUF yang di-deploy oleh resep. Hanya diset untuk resep"llamacpp". - revision (
str, opsional) — Revisi model yang direferensikan oleh resep, jika ada.
Berisi informasi tentang cara yang telah diuji sebelumnya untuk mendeploy model dari Inference Catalog.
Resep adalah kombinasi perangkat keras dan mesin yang telah diuji oleh tim Inference Endpoints untuk model tertentu. Sebuah model biasanya memiliki satu resep, tetapi dapat memiliki beberapa (misalnya satu untuk GPU dan satu untuk Neuron, atau satu untuk setiap kuantisasi GGUF).
Inisialisasi objek dari kamus resep mentah, yang bersarang di bawah model dalam respons API.
InferenceEndpointStatus
kelas huggingface_hub.InferenceEndpointStatus
< source >( valuenames = Nonemodule = Nonequalname = Nonetype = Nonestart = 1 )
Sebuah enumerasi.
InferenceEndpointType
kelas huggingface_hub.InferenceEndpointType
< source >( valuenames = Nonemodule = Nonequalname = Nonetype = Nonestart = 1 )
Sebuah enumerasi.
InferenceEndpointError
Pengecualian umum saat berurusan dengan Inference Endpoints.