Key Takeaways
- يقدّم Xinference أكثر من 30 عائلة نماذج عبر واجهة API واحدة — Llama 3 وQwen 3 وChatGLM4 وMistral ونماذج embeddings وrerankers تشترك في نقطة النهاية نفسها على localhost:9997/v1.
- pip install واحد، أمر CLI واحد — `pip install "xinference[all]"` ثم `xinference-local` يبدأ الخادم بواجهة ويب؛ و`xinference launch --model-name <الاسم>` ينشر أي نموذج.
- ثلاث خلفيات قابلة للاختيار — `transformers` (GPU، دقة كاملة)، و`llama.cpp` (CPU + GGUF مكمَّم، بلا GPU)، و`vllm` (إنتاجية عالية، متعدد GPU). قابلة للتكوين لكل نموذج.
- Qwen 3 وChatGLM4 هما أفضل خياري Xinference لمهام CJK — كلاهما يعمل بـ ~6–7 GB من VRAM ويتفوقان على نماذج إنجليزية فقط مكافئة في معايير الصينية واليابانية.
- اختر Xinference على Ollama عندما تحتاج خدمة متعددة النماذج، أو embedding + إعادة ترتيب، أو دعم عنقود GPU — Ollama أفضل لبساطة سطح المكتب لمستخدم واحد.
ما هو Xinference وكيف يعمل
Xinference (github.com/xorbitsai/inference) هو إطار مفتوح المصدر لتقديم نماذج LLM والنماذج متعددة الوسائط، طوّرته Xorbits. بدأ كمنصة استدلال مؤسسية للعناقيد الموزّعة ونُشر كمصدر مفتوح في 2023. الفكرة الأساسية: تسجّل نموذجًا بالاسم، فينزّل Xinference الأوزان، ويختار الخلفية المناسبة، ويعرض واجهة REST API. لا تضطر أبدًا إلى لمس شيفرة تحميل النموذج مباشرة.
Xinference هو خادم استدلال مفتوح المصدر يدعم أصليًا Llama 3 وQwen 3 وChatGLM4 وMistral وأكثر من 30 عائلة نماذج عبر واجهة API واحدة متوافقة مع OpenAI.
فكّر في Xinference كلوحة تحكم لنماذج الذكاء الاصطناعي المحلية. تخبره بأي نموذج يحمّل بالاسم، فيُنزّله ويبدأه، ويتواصل تطبيقك معه بالطريقة نفسها التي يتواصل بها مع واجهة API الخاصة بـ OpenAI — بلا تغييرات في الشيفرة.
- سجل النماذج: أكثر من 200 نموذج مسجّل مسبقًا. تشير إليها بالاسم (`llama-3.1-instruct`، `qwen2.5-instruct`، `chatglm4`) بدلًا من إدارة مسارات الأوزان يدويًا.
- تجريد الخلفية: أمر واحد يبدّل بين خلفيات transformers وllama.cpp وvLLM — واجهة API نفسها بغض النظر عن الخلفية.
- التزامن متعدد النماذج: شغّل Llama 3 لتوليد النص ونموذج embedding من BGE لـ RAG في وقت واحد على وحدة GPU نفسها.
- واجهة الويب: لوحة تحكم React على localhost:9997 تتيح لك إطلاق النماذج وفحصها وإنهاءها دون كتابة شيفرة.
- وضع العنقود: بنية مشرف + عمّال تتوسّع عبر عدة عُقد GPU بـ `xinference start --host 0.0.0.0` على العمّال.
عائلات النماذج المدعومة: Llama 3 وQwen وChatGLM وMistral
يُظهر الجدول التالي أكثر سبعة تكوينات نماذج طلبًا في Xinference والحد الأدنى من VRAM المطلوب لكلٍّ منها. تشترك السبعة في نمط أمر الإطلاق نفسه — تتغيّر فقط `--model-name` و`--model-size-in-billions` واختياريًا `--quantization`.
يدعم Xinference أصليًا Llama 3.3 (8B/70B)، وQwen 3 (7B/72B)، وChatGLM4 9B، وMistral Small v0.3، وMixtral 8x22B — كلٌّ قابل للإطلاق بأمر CLI واحد.
VRAM هي ذاكرة وحدة GPU لديك. نموذج يحتاج 6 GB من VRAM يتطلب GPU بهذا القدر على الأقل — مثل RTX 3060 (12 GB) أو RTX 4060 (8 GB). إذا كانت GPU لديك أصغر، استخدم خلفية llama.cpp بتكميم Q4 الذي يخفض استخدام الذاكرة إلى النصف تقريبًا.
| النموذج | العائلة | VRAM (Q4) | أفضل خلفية | الأفضل لـ |
|---|---|---|---|---|
| — | — | ~6 GB | — | — |
| — | — | ~40 GB | — | — |
| — | — | ~6 GB | — | — |
| — | — | ~40 GB | — | — |
| — | — | ~7 GB | — | — |
| — | — | ~5 GB | — | — |
| — | — | ~26 GB | — | — |
هل يدعم Xinference نموذج Llama 3.3؟
نعم. استخدم `--model-name llama-3.1-instruct` مع `--model-size-in-billions 8` لنسخة 8B أو `70` لنسخة 70B. بدّل إلى llama.cpp بـ `--model-engine llama.cpp` و`--quantization q4_k_m` لـ CPU أو VRAM المنخفض.
هل يدعم Xinference نموذج Qwen 3؟
نعم. Qwen 3 Instruct مسجّل باسم `qwen2.5-instruct`. الأحجام 0.5B و1.5B و3B و7B و14B و32B و72B متاحة. تعمل نسخة 7B بـ ~6 GB من VRAM وتتعامل مع الصينية واليابانية والكورية والإنجليزية بجودة مماثلة لـ Llama 3.3 8B.
هل يدعم Xinference نموذج ChatGLM؟
نعم. ChatGLM3 (`chatglm3`)، وChatGLM4 (`chatglm4`)، ونسخة الرؤية ChatGLM4-Vision (`chatglm4v`) جميعها مسجّلة. ChatGLM4 9B هو الخيار الموصى به للمهام بالصينية في 2026.
هل يدعم Xinference نموذج Mistral؟
نعم. `mistral-instruct-v0.3` (7B) و`mixtral-instruct-v0.1` (8x7B MoE) كلاهما مسجّل. لاستدعاء الدوال ومخرجات JSON، Mistral Small v0.3 هو أفضل خيار نموذج صغير في Xinference.
تثبيت Xinference: pip وبدء الخادم
يتطلب Xinference بايثون 3.9+ وpip. يثبّت الإضافي `[all]` دعم CUDA، وخلفية llama.cpp، وخلفية transformers دفعة واحدة. على الأجهزة بلا GPU، استخدم `pip install xinference` (دون `[all]`) وأضف `--model-engine llama.cpp` عند إطلاق النماذج.
ثبّت Xinference بـ `pip install "xinference[all]"` وابدأ الخادم بـ `xinference-local` — تُفتح واجهة الويب على http://localhost:9997.
# Instalación completa — backends CUDA + transformers + llama.cpp
pip install "xinference[all]"
# Instalación solo CPU (sin GPU)
pip install xinference
# Iniciar el servidor local (interfaz web en http://localhost:9997)
xinference-local
# O vincular a un host específico para acceso por LAN
xinference-local --host 0.0.0.0 --port 9997هل يحتاج Xinference إلى GPU؟
لا. استخدم خلفية llama.cpp (`--model-engine llama.cpp`) لتشغيل نماذج GGUF المكمَّمة على CPU بالكامل. الأداء أبطأ من الاستدلال بـ GPU، لكنه يعمل على أي جهاز ببايثون 3.9+.
كيف أحدّث Xinference؟
شغّل `pip install --upgrade xinference`. راجع صفحة الإصدارات على GitHub لاكتشاف التغييرات غير المتوافقة قبل التحديث، خاصةً إذا كنت تستخدم وضع العنقود.
إطلاق Llama 3 وQwen وChatGLM وMistral
استخدم `xinference launch` لنشر أي نموذج مسجّل. النمط ثابت دائمًا: `--model-name` يحدد عائلة النموذج، و`--model-size-in-billions` عدد المعاملات، و`--model-engine` يختار الخلفية. بمجرد الإطلاق، يعيد Xinference معرّف UID للنموذج تستخدمه في استدعاءات API.
أطلِق أي نموذج في Xinference بـ `xinference launch --model-name <الاسم> --model-engine transformers --model-size-in-billions <الحجم>` — يصبح النموذج متاحًا على localhost:9997/v1 بعد ثوانٍ من التنزيل.
# Llama 3.3 8B Instruct (GPU, backend transformers)
xinference launch \
--model-name llama-3.1-instruct \
--model-engine transformers \
--model-size-in-billions 8
# Llama 3.3 8B Instruct (CPU, cuantización Q4_K_M)
xinference launch \
--model-name llama-3.1-instruct \
--model-engine llama.cpp \
--model-size-in-billions 8 \
--quantization q4_k_m
# Qwen 3 7B Instruct (GPU)
xinference launch \
--model-name qwen2.5-instruct \
--model-engine transformers \
--model-size-in-billions 7
# ChatGLM4 9B (GPU)
xinference launch \
--model-name chatglm4 \
--model-engine transformers \
--model-size-in-billions 9
# Mistral Small Instruct v0.3 (GPU)
xinference launch \
--model-name mistral-instruct-v0.3 \
--model-engine transformers \
--model-size-in-billions 7
# Mixtral 8x22B Instruct (backend vLLM, requiere 26+ GB VRAM)
xinference launch \
--model-name mixtral-instruct-v0.1 \
--model-engine vllm \
--model-size-in-billions 46كيف أسرد كل النماذج التي يدعمها Xinference؟
شغّل `xinference registrations --model-type LLM` لرؤية جميع عائلات LLM المسجّلة، أو افتح واجهة الويب على http://localhost:9997 وتصفّح مكتبة النماذج.
هل يمكنني تشغيل نموذجين في الوقت نفسه في Xinference؟
نعم — شغّل `xinference launch` مرتين بأسماء نماذج مختلفة. يحصل كل نموذج على UID ونقطة نهاية خاصين به. يجب أن تغطي ميزانية VRAM الإجمالية لديك كلا النموذجين في وقت واحد.
استخدام واجهة API المتوافقة مع OpenAI
واجهة API الخاصة بـ Xinference بديل مباشر لواجهة API الخاصة بـ OpenAI. وجّه أي عميل OpenAI إلى `http://localhost:9997/v1`، اضبط `api_key` بأي سلسلة غير فارغة، واستخدم UID النموذج (المُعاد من `xinference launch`) كمعامل `model`. تعمل الشيفرة الموجودة من LangChain أو LlamaIndex أو عميل OpenAI المخصص دون تغييرات.
وصّل أي عميل متوافق مع OpenAI بـ Xinference بضبط base_url على http://localhost:9997/v1 واستخدام اسم النموذج كمعرّف للنموذج.
واجهة API متوافقة مع OpenAI تعني أن شيفرتك لا تحتاج إلى تغيير. شيفرة بايثون نفسها التي تستدعي GPT-4 يمكنها استدعاء Llama 3 عبر Xinference — تغيّر فقط عنوان URL الأساسي واسم النموذج.
from openai import OpenAI
client = OpenAI(
api_key="not-required", # Xinference accepts any non-empty string
base_url="http://localhost:9997/v1"
)
# Chat completion — works for Llama 3, Qwen, ChatGLM, Mistral
response = client.chat.completions.create(
model="llama-3.1-instruct", # use the model name as the UID
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Summarise the GDPR in 3 bullet points."}
]
)
print(response.choices[0].message.content)
# Embedding model (run a separate xinference launch for bge-base-en-v1.5 first)
embedding = client.embeddings.create(
model="bge-base-en-v1.5",
input="Local LLMs preserve data privacy."
)
print(embedding.data[0].embedding[:5])هل يدعم Xinference الاستجابات المتدفقة (streaming)؟
نعم. اضبط `stream=True` في استدعاء `chat.completions.create`. يبث Xinference token في الوقت الفعلي لجميع الخلفيات المدعومة.
هل يمكنني استخدام LangChain مع Xinference؟
نعم. استخدم `ChatOpenAI(base_url="http://localhost:9997/v1", api_key="x", model="llama-3.1-instruct")` من `langchain_openai`. لا تلزم أي مكتبة إضافية خاصة بـ Xinference.
Xinference مقابل Ollama مقابل vLLM: متى تختار كلًّا منها
أكثر ثلاثة أطر استدلال محلية شيوعًا موجّهة لملفات مستخدمين مختلفة. اختر حسب قيدك الأساسي.
اختر Xinference عندما تحتاج إلى تقديم أنواع نماذج متعددة في وقت واحد (LLM + embeddings + reranker) أو دعمًا أصليًا لـ ChatGLM — اختر Ollama لراحة سطح المكتب لمستخدم واحد.
| المعيار | Xinference | Ollama | vLLM |
|---|---|---|---|
| — | الفرق، متعدد النماذج، embeddings + LLM | سطح مكتب لمستخدم واحد، سير عمل بـ Modelfile | خدمة GPU عالية الإنتاجية |
| — | لا (خلفية llama.cpp) | لا (وضع CPU متاح) | نعم (CUDA/ROCm) |
| — | عدة نماذج تعمل في وقت واحد | نموذج واحد في كل مرة (تبديل) | نموذج واحد لكل نسخة خادم |
| — | نعم (BGE، E5، إلخ) | نعم (محدود) | لا (خادم embeddings منفصل) |
| — | مدمجة على localhost:9997 | لا شيء (استخدم Open WebUI) | لا شيء |
| — | أصلي (chatglm4) | محدود | محدود |
هل Xinference أصعب في الإعداد من Ollama؟
قليلًا. Ollama تنزيل ثنائي واحد؛ بينما يتطلب Xinference بايثون وpip. لكن كليهما جاهز في أقل من 5 دقائق. يقدّم Xinference بيئة متعددة النماذج أغنى بمجرد تشغيله.
هل يمكن لـ Xinference أن يحل محل vLLM؟
للخدمة على جهاز واحد، نعم — يمكن لـ Xinference استخدام vLLM كخلفية (`--model-engine vllm`) ويضيف واجهة ويب وسجل نماذج. لأقصى إنتاجية خام عبر عدة عُقد GPU، تبقى عمليات نشر vLLM المخصصة أسرع.
الأسئلة الشائعة
ما هو Xinference؟
Xinference (Xorbits Inference) هو إطار مفتوح المصدر لتقديم النماذج يشغّل Llama 3 وQwen وChatGLM وMistral وأكثر من 30 عائلة محليًا عبر واجهة API متوافقة مع OpenAI. يدعم عمليات النشر على GPU، وCPU (عبر llama.cpp)، وعناقيد متعددة GPU.
أي نماذج يدعم Xinference في 2026؟
يسجّل Xinference أكثر من 200 تكوين نماذج. الأكثر شيوعًا في 2026 هي Llama 3.3 8B/70B Instruct، وQwen 3 7B/72B Instruct، وChatGLM4 9B، وMistral Small Instruct v0.3، وMixtral 8x22B Instruct. شغّل `xinference registrations --model-type LLM` لرؤية القائمة الكاملة.
كيف ينزّل Xinference أوزان النموذج؟
عند أول `xinference launch` لكل نموذج، ينزّل Xinference الأوزان من Hugging Face أو ModelScope (قابل للتكوين). تُخزّن الأوزان مؤقتًا محليًا، لذا فالإطلاقات اللاحقة فورية. اضبط `XINFERENCE_HOME` للتحكم في دليل التخزين المؤقت.
هل يعمل Xinference على Windows؟
نعم، عبر pip على بايثون 3.9+. تعمل خلفية llama.cpp على CPU في Windows دون اعتماديات إضافية. لدعم GPU على Windows، ثبّت CUDA 12.x وwheel PyTorch المقابل قبل تثبيت Xinference.
هل يمكنني استخدام Xinference لـ RAG؟
نعم. أطلِق نموذج embedding من BGE أو E5 (`xinference launch --model-name bge-base-en-v1.5 --model-type embedding`) جنبًا إلى جنب مع LLM لديك. يشترك كلاهما في نقطة نهاية API نفسها — يستدعي مسار RAG نقطة نهاية embedding للفهرسة ونقطة نهاية الدردشة للتوليد.