Hub Python Library documentation
نقاط نهاية الاستدلال
نقاط نهاية الاستدلال
توفّر نقاط الاستدلال (Inference Endpoints) حلاً إنتاجياً آمناً لنشر النماذج بسهولة على بنية تحتية مخصصة وقابلة للتوسع التلقائي تديرها Hugging Face. يُبنى كل نقطة استدلال من نموذج موجود على Hub. هذه الصفحة هي مرجع لتكامل huggingface_hub مع نقاط الاستدلال. لمزيد من المعلومات حول منتج نقاط الاستدلال، راجع وثائقه الرسمية.
اطّلع على الدليل ذي الصلة لمعرفة كيفية استخدام
huggingface_hubلإدارة نقاط الاستدلال الخاصة بك برمجياً.
يمكن إدارة نقاط الاستدلال (Inference Endpoints) بالكامل عبر واجهة برمجة التطبيقات (API). وقد وُثّقت هذه النقاط باستخدام Swagger. أما فئة InferenceEndpoint فهي غلاف بسيط مبني فوق هذه الواجهة.
الطرق
تم تنفيذ مجموعة فرعية من ميزات نقطة الاستدلال في HfApi:
- استخدم get_inference_endpoint() و list_inference_endpoints() للحصول على معلومات حول نقاط الاستدلال الخاصة بك
- list_inference_endpoints_hardware() لعرض العتاد الذي يمكنك نشر نقطة استنتاج عليه
- create_inference_endpoint() و update_inference_endpoint() و delete_inference_endpoint() لنشر نقاط الاستدلال وإدارتها
- list_inference_catalog() و create_inference_endpoint_from_catalog() لاستعراض ونشر كتالوج النماذج المُعدّ
- استخدم pause_inference_endpoint() و resume_inference_endpoint() لإيقاف واستئناف نقطة استنتاج
- scale_to_zero_inference_endpoint() لتقليص عدد النسخ من نقطة النهاية إلى صفر يدويًا
InferenceEndpoint
الفئة الرئيسية للبيانات هي InferenceEndpoint. تحتوي على معلومات حول InferenceEndpoint المُنفَّذ، بما في ذلك تكوينه وحالته الحالية. بعد التنفيذ، يمكنك تشغيل الاستدلال على نقطة النهاية باستخدام خاصيتي 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) — المجال الذي يقع فيه نقطة الاستدلال. - repository (
str) — اسم مستودع النموذج المُنفَّذ على هذا نقطة الاستدلال. - status (InferenceEndpointStatus) — الحالة الحالية لنقطة الاستدلال.
- url (
str، اختياري) — رابط نقطة الاستدلال (Inference Endpoint)، إن كان متاحًا. لن يكون لنقطة استدلال URL إلا إذا كانت مُنفَّذة (deployed). - framework (
str) — إطار التعلم الآلي المستخدم للنموذج. - revision (
str) — مراجعة النموذج المحددة التي تم نشرها على نقطة الاستدلال. - task (
str) — المهمة المرتبطة بالنموذج المُنفَّذ. - created_at (
datetime.datetime) — الطابع الزمني الذي تم فيه إنشاء نقطة الاستدلال. - updated_at (
datetime.datetime) — طابع الوقت الخاص بآخر تحديث لنقطة الاستدلال (Inference Endpoint). - type (InferenceEndpointType) — نوع نقطة الاستدلال (عام، مصادَق، خاص).
- raw (
dict) — بيانات القاموس الخام المُعادَة من واجهة برمجة التطبيقات. - token (
strأوbool، اختياري) — رمز المصادقة الخاص بنقطة الاستدلال (Inference Endpoint)، إذا تم ضبطه عند طلب الواجهة البرمجية. سيُستخدم الرمز المحفوظ محليًا افتراضيًا إذا لم يُقدَّم. مرّر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) بعد.
يعيد عميلاً لإجراء تنبؤات على نقطة الاستدلال هذه.
async_client
< source >( ) → AsyncInferenceClient
يعيد
عميل استدلال متوافق مع asyncio يشير إلى نقطة النهاية المنفَّذة.
- InferenceEndpointError — إذا لم يتم نشر نقطة الاستدلال (Inference Endpoint) بعد.
يعيد عميلاً لإجراء تنبؤات على نقطة الاستدلال هذه.
احذف نقطة الاستدلال.
This operation is not reversible. If you don’t want to be charged for an Inference Endpoint, it is preferable to pause it with InferenceEndpoint.pause() or scale it to zero with InferenceEndpoint.scale_to_zero().
هذا اسم مستعار لـ HfApi.delete_inference_endpoint().
fetch
< source >( ) → InferenceEndpoint
يعيد
نقطة الاستدلال (Inference Endpoint) نفسها، مع تعديلها في مكانها باستخدام أحدث البيانات.
جلب أحدث المعلومات حول نقطة الاستدلال.
إيقاف مؤقت
< source >( ) → InferenceEndpoint
يعيد
نقطة الاستدلال (Inference Endpoint) نفسها، مع تعديلها في مكانها باستخدام أحدث البيانات.
أوقف نقطة الاستدلال.
لن يتم فرض رسوم على نقطة استنتاج (Inference Endpoint) في حالة الإيقاف المؤقت. يمكن استئنافها في أي وقت باستخدام InferenceEndpoint.resume(). يختلف هذا عن تصفير نقطة الاستنتاج باستخدام InferenceEndpoint.scale_to_zero()، حيث يتم إعادة تشغيلها تلقائياً عند إرسال طلب إليها.
هذا اسم مستعار لـ HfApi.pause_inference_endpoint(). يتم تعديل الكائن الحالي في مكانه باستخدام أحدث البيانات من الخادم.
استئناف
< source >( running_ok: bool = True ) → InferenceEndpoint
استئناف نقطة الاستدلال.
هذا اسم مستعار لـ HfApi.resume_inference_endpoint(). يتم تعديل الكائن الحالي في مكانه باستخدام أحدث البيانات من الخادم.
scale_to_zero
< source >( ) → InferenceEndpoint
يعيد
نقطة الاستدلال (Inference Endpoint) نفسها، مع تعديلها في مكانها باستخدام أحدث البيانات.
قم بتقليص نقطة نهاية الاستدلال إلى صفر.
لن يتم فرض رسوم على نقطة استنتاج (Inference Endpoint) تم تصغيرها إلى صفر. ستُستأنف عند الطلب التالي الموجّه إليها، مع تأخير بدء بارد (cold start). وهذا يختلف عن إيقاف نقطة الاستنتاج مؤقتًا باستخدام 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، اختياري) — الحد الأدنى لعدد النسخ (المهام) التي يجب إبقاؤها قيد التشغيل لنقطة الاستدلال. - max_replica (
int، اختياري) — الحد الأقصى لعدد النسخ (المهام) التي يمكن التوسع إليها لنقطة الاستدلال. - 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في حمولة الواجهة البرمجية). يعمل مع صور محركات مُدارة (مثل vLLM وSGLang) والصور المخصصة. - container_args (
list[str]، اختياري) — الحُجج المُلحَقة بنقطة دخول الحاوية (تتوافق معmodel.argsفي حمولة الواجهة البرمجية). تعمل مع صور المحركات المُدارة (مثل vLLM وSGLang) والصور المخصصة. - tensor_parallel_size (
int, اختياري) — عدد المعالِجات التي تُقسَّم عليها نسخة واحدة من النموذج (صور vLLM و SGLang). عند عدم تقديمcustom_image، يتم جلب الصورة المُهيأة حاليًا على نقطة النهاية وتحديثها في مكانها، لأن واجهة برمجة التطبيقات تتطلبmodel.imageكوحدة كاملة. - data_parallel_size (
int، اختياري) — عدد نسخ النموذج التي سيتم تشغيلها، نسخة واحدة لكل معجّل (صور vLLM). - secrets (
dict[str, str]، اختياري) — قيم سرية تُحقن في بيئة الحاوية.
يعيد
نقطة الاستدلال (Inference Endpoint) نفسها، مع تعديلها في مكانها باستخدام أحدث البيانات.
تحديث نقطة الاستدلال.
تتيح هذه الطريقة تحديث إعدادات الحساب أو النموذج المُنفَّذ أو كليهما. جميع المعاملات اختيارية، لكن يجب تقديم واحد على الأقل.
هذا اسم مستعار لـ HfApi.update_inference_endpoint(). يتم تعديل الكائن الحالي في مكانه باستخدام أحدث البيانات من الخادم.
انتظار
< source >( timeout: int | None = Nonerefresh_every: int = 5 ) → InferenceEndpoint
المعاملات
- timeout (
int، اختياري) — الحد الأقصى للوقت الذي يجب انتظاره حتى يتم نشر نقطة الاستدلال (Inference Endpoint)، بالثواني. إذا كانتNone، فسيتم الانتظار إلى ما لا نهاية. - refresh_every (
int, اختياري) — المدة التي يجب انتظارها بين كل عملية جلب لحالة نقطة الاستدلال، بالثواني. القيمة الافتراضية هي 5 ثوانٍ.
يعيد
نقطة الاستدلال (Inference Endpoint) نفسها، مع تعديلها في مكانها باستخدام أحدث البيانات.
يرفع
InferenceEndpointError أو InferenceEndpointTimeoutError
- InferenceEndpointError — إذا انتهى Inference Endpoint في حالة فشل.
InferenceEndpointTimeoutError— إذا لم يتم نشر نقطة الاستدلال (Inference Endpoint) بعدtimeoutثانية.
انتظر حتى يتم نشر نقطة الاستدلال (Inference Endpoint).
سيتم جلب المعلومات من الخادم كل ثانية واحدة. إذا لم يتم نشر نقطة الاستدلال (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، اختياري) — عدد وحدات المعالجة الافتراضية لكل نسخة. - 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) — عدد المعالجات من هذا النوع المستخدمة حاليًا بواسطة مساحة الاسم.
تحتوي على معلومات حول تكوين العتاد المتاح لنقاط الاستدلال.
الحقول 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', ...)تهيئة كائن من قاموس حساب خام، مُتداخِل تحت مُورّد ومنطقة في استجابة الواجهة البرمجية.
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]) — طرق النشر المُختبَرة لهذا النموذج.
تحتوي على معلومات حول نموذج متاح في كتالوج الاستدلال.
مثال:
>>> 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 Endpoints) لنموذج معين. عادةً ما يكون للنموذج وصفة واحدة، لكن يمكن أن يحتوي على عدة وصفات (مثل وصفة للوحات معالجة الرسوميات GPU وأخرى للوحات Neuron، أو وصفة لكل كميّة GGUF).
تهيئة الكائن من قاموس وصفة خام، متداخل تحت نموذج في استجابة الواجهة البرمجية.
InferenceEndpointStatus
فئة huggingface_hub.InferenceEndpointStatus
< source >( valuenames = Nonemodule = Nonequalname = Nonetype = Nonestart = 1 )
تعداد.
InferenceEndpointType
فئة huggingface_hub.InferenceEndpointType
< source >( valuenames = Nonemodule = Nonequalname = Nonetype = Nonestart = 1 )
تعداد.
InferenceEndpointError
استثناء عام عند التعامل مع نقاط الاستدلال.