Home
Login
mistralai/mistral-inference

مكتبة الاستدلال الرسمية لنموذج ميسترال، تحتوي على الحد الأدنى من التعليمات البرمجية لتشغيل نماذج ميسترال للذكاء الاصطناعي.

Apache-2.0Jupyter Notebook 10.3kmistralai Last Updated: 2025-03-20
https://github.com/mistralai/mistral-inference

مقدمة إلى مكتبة الاستدلال Mistral (mistral-inference)

نظرة عامة على المشروع

mistral-inference هي مكتبة استدلال نماذج Mistral تم تطويرها رسميًا بواسطة Mistral AI، وتوفر الحد الأدنى من تنفيذ التعليمات البرمجية لتشغيل نماذج Mistral المختلفة. يوفر هذا المشروع للمستخدمين طريقة فعالة وموجزة لنشر واستخدام سلسلة نماذج اللغة الكبيرة Mistral.

سلسلة النماذج المدعومة

النماذج الأساسية

  • Mistral 7B: الإصدارات الأساسية والإرشادية، تدعم استدعاء الوظائف
  • Mixtral 8x7B: نموذج الخبراء المختلط، استدلال عالي الأداء
  • Mixtral 8x22B: نموذج خبراء مختلط أكبر
  • Mistral Nemo 12B: نموذج متوسط الحجم وفعال
  • Mistral Large 2: أحدث نموذج واسع النطاق
  • Mistral Small 3.1 24B: نموذج متوسط الحجم يدعم الوسائط المتعددة

النماذج المتخصصة

  • Codestral 22B: متخصص في إنشاء التعليمات البرمجية ومهام البرمجة
  • Codestral Mamba 7B: نموذج تعليمات برمجية يعتمد على بنية Mamba
  • Mathstral 7B: نموذج متخصص في الاستدلال الرياضي
  • Pixtral 12B: نموذج لغة بصرية متعدد الوسائط

الميزات والوظائف الأساسية

1. أوضاع الاستدلال المتعددة

  • واجهة سطر الأوامر (CLI): اختبار وتفاعل سريع من خلال أوامر mistral-demo و mistral-chat
  • واجهة برمجة تطبيقات Python: واجهة برمجة كاملة، تدعم التكامل المخصص
  • دعم متعدد لوحدات معالجة الرسومات (GPU): يدعم الاستدلال الموزع للنماذج الكبيرة من خلال torchrun

2. سيناريوهات التطبيق الغنية

اتباع التعليمات (Instruction Following)

from mistral_inference.transformer import Transformer
from mistral_inference.generate import generate
from mistral_common.tokens.tokenizers.mistral import MistralTokenizer
from mistral_common.protocol.instruct.messages import UserMessage
from mistral_common.protocol.instruct.request import ChatCompletionRequest

# تحميل النموذج والمقسم
tokenizer = MistralTokenizer.from_file("./mistral-nemo-instruct-v0.1/tekken.json")
model = Transformer.from_folder("./mistral-nemo-instruct-v0.1")

# إنشاء استجابة
prompt = "How expensive would it be to ask a window cleaner to clean all windows in Paris?"
completion_request = ChatCompletionRequest(messages=[UserMessage(content=prompt)])
tokens = tokenizer.encode_chat_completion(completion_request).tokens
out_tokens, _ = generate([tokens], model, max_tokens=1024, temperature=0.35)

الاستدلال متعدد الوسائط

يدعم الاستدلال المشترك للصور والنصوص، ويمكنه تحليل محتوى الصورة والإجابة على الأسئلة ذات الصلة:

# معالجة محتوى متعدد الوسائط
user_content = [ImageURLChunk(image_url=url), TextChunk(text=prompt)]
tokens, images = tokenizer.instruct_tokenizer.encode_user_content(user_content, False)
out_tokens, _ = generate([tokens], model, images=[images], max_tokens=256)

استدعاء الوظائف (Function Calling)

تدعم جميع النماذج وظيفة استدعاء الوظائف، والتي يمكن دمجها مع الأدوات وواجهات برمجة التطبيقات الخارجية:

# تعريف وظائف الأدوات
tools=[Tool(function=Function(
    name="get_current_weather",
    description="Get the current weather",
    parameters={...}
))]

# تنفيذ استدعاء الوظيفة
completion_request = ChatCompletionRequest(tools=tools, messages=[...])

إكمال التعليمات البرمجية (Fill-in-the-middle)

مصمم خصيصًا لسيناريوهات تحرير التعليمات البرمجية، ويدعم إنشاء التعليمات البرمجية من النوع المملوء في المنتصف:

prefix = "def add("
suffix = " return sum"
request = FIMRequest(prompt=prefix, suffix=suffix)
tokens = tokenizer.encode_fim(request).tokens

3. خيارات النشر المرنة

النشر المحلي

  • نشر وحدة معالجة رسومات واحدة (GPU): مناسب للنماذج الأصغر (7B، 12B)
  • نشر وحدات معالجة رسومات متعددة (GPU): يدعم الاستدلال الموزع للنماذج الكبيرة (8x7B، 8x22B)
  • حاويات Docker: توفر صور Docker مدمجة مع vLLM

النشر السحابي

  • واجهة برمجة تطبيقات Mistral AI الرسمية: خدمة La Plateforme السحابية
  • مقدمو الخدمات السحابية: يدعم العديد من المنصات السحابية الرئيسية

التثبيت والتكوين

متطلبات النظام

  • دعم وحدة معالجة الرسومات (GPU): يتطلب بيئة وحدة معالجة الرسومات، لأنه يعتمد على مكتبة xformers
  • بيئة Python: يدعم إصدارات Python الحديثة
  • مساحة التخزين: يتطلب مساحة قرص كافية وفقًا لحجم النموذج

طرق التثبيت

التثبيت عبر pip

pip install mistral-inference

التثبيت من المصدر

cd $HOME && git clone https://github.com/mistralai/mistral-inference
cd $HOME/mistral-inference && poetry install .

تنزيل النموذج وتكوينه

# إنشاء دليل تخزين النموذج
export MISTRAL_MODEL=$HOME/mistral_models
mkdir -p $MISTRAL_MODEL

# تنزيل النموذج (باستخدام Mistral Nemo كمثال)
export 12B_DIR=$MISTRAL_MODEL/12B_Nemo
wget https://models.mistralcdn.com/mistral-nemo-2407/mistral-nemo-instruct-2407.tar
mkdir -p $12B_DIR
tar -xf mistral-nemo-instruct-2407.tar -C $12B_DIR

أمثلة الاستخدام

تفاعل الدردشة الأساسي

# نموذج وحدة معالجة رسومات واحدة (GPU)
mistral-chat $12B_DIR --instruct --max_tokens 1024 --temperature 0.35

# نموذج كبير متعدد وحدات معالجة الرسومات (GPU)
torchrun --nproc-per-node 2 --no-python mistral-chat $M8x7B_DIR --instruct

استخدام النماذج المتخصصة

مساعد التعليمات البرمجية Codestral

mistral-chat $M22B_CODESTRAL --instruct --max_tokens 256

يمكنه التعامل مع طلبات البرمجة مثل "Write me a function that computes fibonacci in Rust".

الاستدلال الرياضي Mathstral

mistral-chat $7B_MATHSTRAL --instruct --max_tokens 256

قادر على حل مسائل الحساب الرياضي المعقدة.

الترخيص والامتثال

تراخيص النماذج المختلفة

  • النماذج مفتوحة المصدر: تعتمد معظم النماذج الأساسية على تراخيص مفتوحة المصدر
  • Codestral 22B: يستخدم ترخيص Mistral AI Non-Production (MNPL)، مخصص للاستخدام غير التجاري فقط
  • Mistral Large: يستخدم ترخيص Mistral AI Research (MRL)، يستخدم بشكل أساسي لأغراض البحث

نصائح الامتثال

عند الاستخدام في بيئة تجارية، يرجى التحقق بعناية من شروط ترخيص النموذج المقابل للتأكد من الاستخدام المتوافق.

المزايا التقنية

تحسين الأداء

  • استدلال فعال: تم تحسينه خصيصًا لبنية نموذج Mistral
  • إدارة الذاكرة: استراتيجية ذكية لاستخدام الذاكرة، تدعم استدلال النماذج الكبيرة
  • المعالجة المتوازية: يدعم التوازي متعدد وحدات معالجة الرسومات (GPU)، مما يحسن سرعة الاستدلال

سهولة الاستخدام

  • واجهة برمجة تطبيقات موجزة: يوفر واجهة Python بسيطة وبديهية
  • وثائق غنية: أمثلة استخدام كاملة ودعم الوثائق
  • دعم المجتمع: مجتمع مطورين نشط وقناة Discord

قابلية التوسع

  • تصميم معياري: سهل الدمج في المشاريع الحالية
  • تكوين مخصص: يدعم التكوين المرن لمعلمات الاستدلال المختلفة
  • تكامل الأدوات: يدعم التكامل مع الأدوات والخدمات الخارجية المختلفة

سيناريوهات التطبيق

تطبيقات على مستوى المؤسسات

  • خدمة العملاء الذكية: بناء أنظمة حوار عالية الجودة
  • إنشاء المحتوى: أتمتة إنشاء المحتوى وتحريره
  • مساعدة التعليمات البرمجية: إنشاء التعليمات البرمجية ومراجعتها في بيئات التطوير

البحث والتطوير

  • البحث الأكاديمي: بحث وتجريب نماذج اللغة
  • تطوير النماذج الأولية: بناء نماذج أولية لتطبيقات الذكاء الاصطناعي بسرعة
  • اختبار الأداء: تقييم ومقارنة أداء النموذج

الأفراد والتعليم

  • مساعد التعلم: أدوات التعلم والتدريس الشخصية
  • الكتابة الإبداعية: المساعدة في إنشاء محتوى إبداعي
  • التعلم التقني: دعم تعلم البرمجة والمفاهيم التقنية

ملخص

مكتبة استدلال Mistral هي إطار عمل قوي وسهل الاستخدام لاستدلال نماذج اللغة الكبيرة. لا توفر فقط دعمًا كاملاً لسلسلة نماذج Mistral، ولكنها تتضمن أيضًا ميزات ووظائف غنية، من إنشاء النصوص الأساسية إلى الاستدلال المتقدم متعدد الوسائط واستدعاء الوظائف. سواء كان النشر على مستوى المؤسسات أو الاستخدام البحثي الشخصي، يمكن لهذه المكتبة توفير حلول فعالة وموثوقة.