ملف النموذج (Modelfile) هو المخطط الأساسي لإنشاء ومشاركة النماذج المخصصة باستخدام Ollama.
جدول المحتويات
التنسيق
تنسيق Modelfile:
# تعليق
INSTRUCTION arguments| التعليمية | الوصف |
|---|---|
FROM (مطلوب) | يحدد النموذج الأساسي المراد استخدامه. |
PARAMETER | يضبط المعلمات التي سيستخدمها Ollama لتشغيل النموذج. |
TEMPLATE | قالب الموجه الكامل الذي سيتم إرساله إلى النموذج. |
SYSTEM | يحدد رسالة النظام التي سيتم تعيينها في القالب. |
ADAPTER | يحدد محولات (Q)LoRA التي سيتم تطبيقها على النموذج. |
LICENSE | يحدد الرخصة القانونية. |
MESSAGE | يحدد سجل الرسائل. |
REQUIRES | يحدد الحد الأدنى لإصدار Ollama المطلوب من قبل النموذج. |
الأمثلة
Modelfile أساسي
مثال على Modelfile ينشئ مخططًا لنموذج ماريو:
FROM llama3.2
# يضبط درجة الحرارة إلى 1 [الأعلى يعني أكثر إبداعًا، الأدنى يعني أكثر تماسكًا]
PARAMETER temperature 1
# يضبط حجم نافذة السياق إلى 4096، هذا يتحكم في عدد الرموز (tokens) التي يمكن لنموذج اللغة الكبير (LLM) استخدامها كسياق لتوليد الرمز التالي
PARAMETER num_ctx 4096
# يضبط رسالة نظام مخصصة لتحديد سلوك مساعد الدردشة
SYSTEM You are Mario from super mario bros, acting as an assistant.لاستخدام هذا:
- احفظه كملف (مثلًا
Modelfile) ollama create choose-a-model-name -f <location of the file e.g. ./Modelfile>ollama run choose-a-model-name- ابدأ في استخدام النموذج!
لعرض Modelfile لنموذج معين، استخدم الأمر ollama show --modelfile.
shell
ollama show --modelfile llama3.2# Modelfile generated by "ollama show"
# To build a new Modelfile based on this one, replace the FROM line with:
# FROM llama3.2:latest
FROM /Users/pdevine/.ollama/models/blobs/sha256-00e1317cbf74d901080d7100f57580ba8dd8de57203072dc6f668324ba545f29
TEMPLATE """{{ if .System }}<|start_header_id|>system<|end_header_id|>
{{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|>
{{ .Prompt }}<|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|>
{{ .Response }}<|eot_id|>"""
PARAMETER stop "<|start_header_id|>"
PARAMETER stop "<|end_header_id|>"
PARAMETER stop "<|eot_id|>"
PARAMETER stop "<|reserved_special_token"التعليمات
FROM (مطلوب)
تعليمية FROM تحدد النموذج الأساسي المراد استخدامه عند إنشاء نموذج.
FROM <model name>:<tag>الإنشاء من نموذج موجود
FROM llama3.2قائمة بالنماذج الأساسية المتاحة
Base Modelsيمكن العثور على نماذج إضافية هنا
الإنشاء من نموذج Safetensors
FROM <model directory>يجب أن يحتوي دليل النموذج على أوزان Safetensors لهندسة معتمدة.
الهندسات المعتمدة حاليًا للنماذج:
- Llama (بما في ذلك Llama 2 و Llama 3 و Llama 3.1 و Llama 3.2)
- Mistral (بما في ذلك Mistral 1 و Mistral 2 و Mixtral)
- Gemma (بما في ذلك Gemma 1 و Gemma 2)
- Phi3
الإنشاء من ملف GGUF
FROM ./ollama-model.ggufيجب تحديد مسار ملف GGUF كمسار مطلق أو نسبي بالنسبة لموقع Modelfile.
PARAMETER
تعليمية PARAMETER تحدد معلمة يمكن ضبطها عند تشغيل النموذج.
PARAMETER <parameter> <parametervalue>المعلمات والقيم الصالحة
| المعامل | الوصف | نوع القيمة | مثال على الاستخدام |
|---|---|---|---|
| num_ctx | يضبط حجم نافذة السياق المستخدمة لتوليد الرمز التالي. (الافتراضي: 2048) | int | num_ctx 4096 |
| repeat_last_n | يضبط مدى الارتداد للخلف الذي يبحث عنه النموذج لمنع التكرار. (الافتراضي: 64، 0 = معطل، -1 = num_ctx) | int | repeat_last_n 64 |
| repeat_penalty | يضبط قوة عقاب التكرار. القيمة الأعلى (مثلًا 1.5) تعاقب التكرار بشكل أقوى، بينما القيمة الأقل (مثلًا 0.9) تكون أكثر تساهلاً. (الافتراضي: 1.1) | float | repeat_penalty 1.1 |
| temperature | درجة حرارة النموذج. زيادة درجة الحرارة تجعل النموذج يجيب بشكل أكثر إبداعًا. (الافتراضي: 0.8) | float | temperature 0.7 |
| seed | يضبط بذرة الرقم العشوائي المستخدمة للتوليد. تعيين هذه القيمة لرقم معين يجعل النموذج يولد نفس النص لنفس الموجه. (الافتراضي: 0) | int | seed 42 |
| stop | يضبط تسلسلات الإيقاف المراد استخدامها. عند مواجهة هذا النمط، يتوقف نموذج اللغة الكبير (LLM) عن توليد النص ويعيد النتيجة. يمكن تعيين أنماط إيقاف متعددة بتحديد معلمات stop منفصلة متعددة في ملف النموذج. | string | stop "AI assistant:" |
| num_predict | الحد الأقصى لعدد الرموز (tokens) المراد توقعها عند توليد النص. (الافتراضي: -1، توليد لانهائي) | int | num_predict 42 |
| draft_num_predict | الحد الأقصى لعدد رموز المسودة الاستشرافية المراد توقعها في كل خطوة عند توفر نموذج مسودة. النماذج المنفصلة للمسودة لها قيمة افتراضية 4؛ تتطلب موترات MTP المدمجة تعيين هذه المعلمة. عيّن القيمة إلى 0 لتعطيل التخمين الاستشرافي. | int | draft_num_predict 4 |
| top_k | يقلل من احتمال توليد محتوى غير منطقي. القيمة الأعلى (مثلًا 100) تعطي إجابات أكثر تنوعًا، بينما القيمة الأقل (مثلًا 10) تكون أكثر تحفظًا. (الافتراضي: 40) | int | top_k 40 |
| top_p | يعمل مع معامل top-k. القيمة الأعلى (مثلًا 0.95) تؤدي إلى نص أكثر تنوعًا، بينما القيمة الأقل (مثلًا 0.5) تولد نصًا أكثر تركيزًا وتحفظًا. (الافتراضي: 0.9) | float | top_p 0.9 |
| min_p | بديل لمعامل top-p، ويهدف إلى ضمان توازن بين الجودة والتنوع. تمثل المعلمة _p* الحد الأدنى لاحتمالية اعتبار الرمز، بالنسبة لاحتمالية الرمز الأكثر احتمالاً. على سبيل المثال، مع p=0.05 والرمز الأكثر احتمالاً له احتمال 0.9، يتم تصفية قيم logits الأقل من 0.045. (الافتراضي: 0.0) | float | min_p 0.05 |
TEMPLATE
يحدد TEMPLATE قالب الموجه الكامل الذي سيتم تمريره إلى النموذج. يمكن أن يتضمن (اختياريًا) رسالة نظام، ورسالة المستخدم، والاستجابة من النموذج. ملاحظة: قد يكون بناء الجملة خاصًا بنموذج معين. تستخدم القوالب بناء جملة القوالب في Go.
متغيرات القالب
| المتغير | الوصف |
|---|---|
{{.System}} | رسالة النظام المستخدمة لتحديد سلوك مخصص. |
{{.Prompt}} | رسالة الموجه من المستخدم. |
{{.Response}} | الاستجابة من النموذج. عند توليد استجابة، يتم حذف النص بعد هذا المتغير. |
TEMPLATE """{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
"""SYSTEM
تعليمية SYSTEM تحدد رسالة النظام التي سيتم استخدامها في القالب، إن أمكن.
SYSTEM """<system message>"""ADAPTER
تعليمية ADAPTER تحدد محول LoRA المدرب بدقة الذي يجب تطبيقه على النموذج الأساسي. يجب أن تكون قيمة المحول مسارًا مطلقًا أو مسارًا نسبيًا بالنسبة لملف Modelfile. يجب تحديد النموذج الأساسي باستخدام تعليمية FROM. إذا كان النموذج الأساسي مختلفًا عن النموذج الأساسي الذي تم تدريب المحول منه، فسيكون السلوك غير منتظم.
محول Safetensor
ADAPTER <path to safetensor adapter>محولات Safetensor المعتمدة حاليًا:
- Llama (بما في ذلك Llama 2 و Llama 3 و Llama 3.1)
- Mistral (بما في ذلك Mistral 1 و Mistral 2 و Mixtral)
- Gemma (بما في ذلك Gemma 1 و Gemma 2)
محول GGUF
ADAPTER ./ollama-lora.ggufLICENSE
تسمح لك تعليمية LICENSE بتحديد الرخصة القانونية التي يتم بموجبها مشاركة أو توزيع النموذج المستخدم مع هذا Modelfile.
LICENSE """
<license text>
"""MESSAGE
تسمح لك تعليمية MESSAGE بتحديد سجل رسائل يستخدمه النموذج عند الرد. استخدم تكرارات متعددة لأمر MESSAGE لبناء محادثة ستوجه النموذج للإجابة بطريقة مشابهة.
txt
MESSAGE <role> <message>الأدوار الصالحة
| الدور | الوصف |
|---|---|
| system | طريقة بديلة لتوفير رسالة SYSTEM للنموذج. |
| user | رسالة مثال لما قد يسأله المستخدم. |
| assistant | رسالة مثال لكيفية رد النموذج. |
مثال على محادثة
MESSAGE user Is Toronto in Canada?
MESSAGE assistant yes
MESSAGE user Is Sacramento in Canada?
MESSAGE assistant no
MESSAGE user Is Ontario in Canada?
MESSAGE assistant yesREQUIRES
تسمح لك تعليمية REQUIRES بتحديد الحد الأدنى لإصدار Ollama المطلوب من قبل النموذج.
REQUIRES <version>يجب أن يكون الإصدار إصدارًا صالحًا من Ollama (مثلًا 0.14.0).
ملاحظات
Modelfileلا يفرق بين الأحرف الكبيرة والصغيرة. في الأمثلة، يتم استخدام التعليمات بأحرف كبيرة لتسهيل التمييز بينها وبين الوسائط.- يمكن ترتيب التعليمات بأي ترتيب. في الأمثلة، تأتي تعليمية
FROMأولاً للحفاظ على سهولة القراءة.