mistral-inference هي مكتبة استدلال نماذج Mistral تم تطويرها رسميًا بواسطة Mistral AI، وتوفر الحد الأدنى من تنفيذ التعليمات البرمجية لتشغيل نماذج Mistral المختلفة. يوفر هذا المشروع للمستخدمين طريقة فعالة وموجزة لنشر واستخدام سلسلة نماذج اللغة الكبيرة Mistral.
mistral-demo
و mistral-chat
torchrun
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)
تدعم جميع النماذج وظيفة استدعاء الوظائف، والتي يمكن دمجها مع الأدوات وواجهات برمجة التطبيقات الخارجية:
# تعريف وظائف الأدوات
tools=[Tool(function=Function(
name="get_current_weather",
description="Get the current weather",
parameters={...}
))]
# تنفيذ استدعاء الوظيفة
completion_request = ChatCompletionRequest(tools=tools, messages=[...])
مصمم خصيصًا لسيناريوهات تحرير التعليمات البرمجية، ويدعم إنشاء التعليمات البرمجية من النوع المملوء في المنتصف:
prefix = "def add("
suffix = " return sum"
request = FIMRequest(prompt=prefix, suffix=suffix)
tokens = tokenizer.encode_fim(request).tokens
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
mistral-chat $M22B_CODESTRAL --instruct --max_tokens 256
يمكنه التعامل مع طلبات البرمجة مثل "Write me a function that computes fibonacci in Rust".
mistral-chat $7B_MATHSTRAL --instruct --max_tokens 256
قادر على حل مسائل الحساب الرياضي المعقدة.
عند الاستخدام في بيئة تجارية، يرجى التحقق بعناية من شروط ترخيص النموذج المقابل للتأكد من الاستخدام المتوافق.
مكتبة استدلال Mistral هي إطار عمل قوي وسهل الاستخدام لاستدلال نماذج اللغة الكبيرة. لا توفر فقط دعمًا كاملاً لسلسلة نماذج Mistral، ولكنها تتضمن أيضًا ميزات ووظائف غنية، من إنشاء النصوص الأساسية إلى الاستدلال المتقدم متعدد الوسائط واستدعاء الوظائف. سواء كان النشر على مستوى المؤسسات أو الاستخدام البحثي الشخصي، يمكن لهذه المكتبة توفير حلول فعالة وموثوقة.