Skip to content

ملف النموذج (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.

لاستخدام هذا:

  1. احفظه كملف (مثلًا Modelfile)
  2. ollama create choose-a-model-name -f <location of the file e.g. ./Modelfile>
  3. ollama run choose-a-model-name
  4. ابدأ في استخدام النموذج!

لعرض 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 }}&lt;|start_header_id|&gt;system&lt;|end_header_id|&gt;

{{ .System }}&lt;|eot_id|&gt;{{ end }}{{ if .Prompt }}&lt;|start_header_id|&gt;user&lt;|end_header_id|&gt;

{{ .Prompt }}&lt;|eot_id|&gt;{{ end }}&lt;|start_header_id|&gt;assistant&lt;|end_header_id|&gt;

{{ .Response }}&lt;|eot_id|&gt;"""
PARAMETER stop "&lt;|start_header_id|&gt;"
PARAMETER stop "&lt;|end_header_id|&gt;"
PARAMETER stop "&lt;|eot_id|&gt;"
PARAMETER stop "&lt;|reserved_special_token"

التعليمات

FROM (مطلوب)

تعليمية FROM تحدد النموذج الأساسي المراد استخدامه عند إنشاء نموذج.

FROM <model name>:<tag>

الإنشاء من نموذج موجود

FROM llama3.2
Base Models

قائمة بالنماذج الأساسية المتاحة

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)intnum_ctx 4096
repeat_last_nيضبط مدى الارتداد للخلف الذي يبحث عنه النموذج لمنع التكرار. (الافتراضي: 64، 0 = معطل، -1 = num_ctx)intrepeat_last_n 64
repeat_penaltyيضبط قوة عقاب التكرار. القيمة الأعلى (مثلًا 1.5) تعاقب التكرار بشكل أقوى، بينما القيمة الأقل (مثلًا 0.9) تكون أكثر تساهلاً. (الافتراضي: 1.1)floatrepeat_penalty 1.1
temperatureدرجة حرارة النموذج. زيادة درجة الحرارة تجعل النموذج يجيب بشكل أكثر إبداعًا. (الافتراضي: 0.8)floattemperature 0.7
seedيضبط بذرة الرقم العشوائي المستخدمة للتوليد. تعيين هذه القيمة لرقم معين يجعل النموذج يولد نفس النص لنفس الموجه. (الافتراضي: 0)intseed 42
stopيضبط تسلسلات الإيقاف المراد استخدامها. عند مواجهة هذا النمط، يتوقف نموذج اللغة الكبير (LLM) عن توليد النص ويعيد النتيجة. يمكن تعيين أنماط إيقاف متعددة بتحديد معلمات stop منفصلة متعددة في ملف النموذج.stringstop "AI assistant:"
num_predictالحد الأقصى لعدد الرموز (tokens) المراد توقعها عند توليد النص. (الافتراضي: -1، توليد لانهائي)intnum_predict 42
draft_num_predictالحد الأقصى لعدد رموز المسودة الاستشرافية المراد توقعها في كل خطوة عند توفر نموذج مسودة. النماذج المنفصلة للمسودة لها قيمة افتراضية 4؛ تتطلب موترات MTP المدمجة تعيين هذه المعلمة. عيّن القيمة إلى 0 لتعطيل التخمين الاستشرافي.intdraft_num_predict 4
top_kيقلل من احتمال توليد محتوى غير منطقي. القيمة الأعلى (مثلًا 100) تعطي إجابات أكثر تنوعًا، بينما القيمة الأقل (مثلًا 10) تكون أكثر تحفظًا. (الافتراضي: 40)inttop_k 40
top_pيعمل مع معامل top-k. القيمة الأعلى (مثلًا 0.95) تؤدي إلى نص أكثر تنوعًا، بينما القيمة الأقل (مثلًا 0.5) تولد نصًا أكثر تركيزًا وتحفظًا. (الافتراضي: 0.9)floattop_p 0.9
min_pبديل لمعامل top-p، ويهدف إلى ضمان توازن بين الجودة والتنوع. تمثل المعلمة _p* الحد الأدنى لاحتمالية اعتبار الرمز، بالنسبة لاحتمالية الرمز الأكثر احتمالاً. على سبيل المثال، مع p=0.05 والرمز الأكثر احتمالاً له احتمال 0.9، يتم تصفية قيم logits الأقل من 0.045. (الافتراضي: 0.0)floatmin_p 0.05

TEMPLATE

يحدد TEMPLATE قالب الموجه الكامل الذي سيتم تمريره إلى النموذج. يمكن أن يتضمن (اختياريًا) رسالة نظام، ورسالة المستخدم، والاستجابة من النموذج. ملاحظة: قد يكون بناء الجملة خاصًا بنموذج معين. تستخدم القوالب بناء جملة القوالب في Go.

متغيرات القالب

المتغيرالوصف
&#123;&#123;.System&#125;&#125;رسالة النظام المستخدمة لتحديد سلوك مخصص.
&#123;&#123;.Prompt&#125;&#125;رسالة الموجه من المستخدم.
&#123;&#123;.Response&#125;&#125;الاستجابة من النموذج. عند توليد استجابة، يتم حذف النص بعد هذا المتغير.
TEMPLATE """{{ if .System }}&lt;|im_start|&gt;system
{{ .System }}&lt;|im_end|&gt;
{{ end }}{{ if .Prompt }}&lt;|im_start|&gt;user
{{ .Prompt }}&lt;|im_end|&gt;
{{ end }}&lt;|im_start|&gt;assistant
"""

SYSTEM

تعليمية SYSTEM تحدد رسالة النظام التي سيتم استخدامها في القالب، إن أمكن.

SYSTEM """&lt;system message&gt;"""

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.gguf

LICENSE

تسمح لك تعليمية LICENSE بتحديد الرخصة القانونية التي يتم بموجبها مشاركة أو توزيع النموذج المستخدم مع هذا Modelfile.

LICENSE """
&lt;license text&gt;
"""

MESSAGE

تسمح لك تعليمية MESSAGE بتحديد سجل رسائل يستخدمه النموذج عند الرد. استخدم تكرارات متعددة لأمر MESSAGE لبناء محادثة ستوجه النموذج للإجابة بطريقة مشابهة.

txt
MESSAGE &lt;role&gt; &lt;message&gt;

الأدوار الصالحة

الدورالوصف
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 yes

REQUIRES

تسمح لك تعليمية REQUIRES بتحديد الحد الأدنى لإصدار Ollama المطلوب من قبل النموذج.

REQUIRES <version>

يجب أن يكون الإصدار إصدارًا صالحًا من Ollama (مثلًا 0.14.0).

ملاحظات

  • Modelfile لا يفرق بين الأحرف الكبيرة والصغيرة. في الأمثلة، يتم استخدام التعليمات بأحرف كبيرة لتسهيل التمييز بينها وبين الوسائط.
  • يمكن ترتيب التعليمات بأي ترتيب. في الأمثلة، تأتي تعليمية FROM أولاً للحفاظ على سهولة القراءة.