Skip to content

मॉडेलफाइल Ollama का उपयोग करके कस्टमाइज़्ड मॉडल बनाने और साझा करने के लिए ब्लूप्रिंट है।

सूची

प्रारूप

Modelfile का प्रारूप:

# comment
INSTRUCTION arguments
निर्देशविवरण
FROM (आवश्यक)उपयोग करने के लिए बेस मॉडल को परिभाषित करता है।
पैरामीटरOllama मॉडल को कैसे चलाएगा उसके लिए पैरामीटर सेट करता है।
टेम्पलेटमॉडल को भेजने के लिए पूरा प्रॉम्प्ट टेम्पलेट।
सिस्टमटेम्पलेट में सेट होने वाला सिस्टम संदेश निर्दिष्ट करता है।
एडाप्टरमॉडल पर लागू करने के लिए (Q)LoRA एडाप्टर को परिभाषित करता है।
लाइसेंसकानूनी लाइसेंस निर्दिष्ट करता है।
संदेशसंदेश इतिहास निर्दिष्ट करें।
REQUIRESमॉडल द्वारा आवश्यक Ollama की न्यूनतम संस्करण निर्दिष्ट करें।

उदाहरण

बुनियादी Modelfile

एक Modelfile का उदाहरण जो मारियो ब्लूप्रिंट बना रहा है:

FROM llama3.2
# तापमान को 1 पर सेट करता है [उच्च होने पर अधिक रचनात्मक, कम होने पर अधिक सुसंगत]
PARAMETER temperature 1
# कॉन्टेक्स्ट विंडो का आकार 4096 पर सेट करता है, यह नियंत्रित करता है कि 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 <फाइल का स्थान उदाहरण के लिए ./Modelfile>
  3. ollama run choose-a-model-name
  4. मॉडल का उपयोग शुरू करें!

किसी दिए गए मॉडल की Modelfile देखने के लिए, ollama show --modelfile कमांड का उपयोग करें।

shell
ollama show --modelfile llama3.2
# "ollama show" द्वारा जनरेट की गई Modelfile
# इस पर आधारित नई Modelfile बनाने के लिए, FROM लाइन को इसे बदल दें:
# 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
बेस मॉडल

उपलब्ध बेस मॉडलों की सूची

बेस मॉडल

अतिरिक्त मॉडल यहां मिल सकते हैं

सफटेंसर मॉडल से बिल्ड करें

FROM <model directory>

मॉडल डायरेक्टरी में समर्थित आर्किटेक्चर के लिए सफटेंसर वेट होने चाहिए।

वर्तमान में समर्थित मॉडल आर्किटेक्चर:

  • 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> <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टेक्स्ट जनरेट करते समय पूर्वानुमानित करने के लिए टोकनों की अधिकतम संख्या। (डिफॉल्ट: -1, अनंत जनरेशन)intnum_predict 42
draft_num_predictजब ड्राफ्ट मॉडल उपलब्ध हो तो प्रत्येक स्टेप के लिए पूर्वानुमानित करने के लिए स्पेकुलेटिव ड्राफ्ट टोकनों की अधिकतम संख्या। अलग ड्राफ्ट मॉडल का डिफॉल्ट मान 4 होता है; एम्बेडेड MTP टेंसर के लिए इस पैरामीटर को सेट करना आवश्यक है। स्पेकुलेटिव ड्राफ्टिंग को अक्षम करने के लिए इसे 0 पर सेट करें।intdraft_num_predict 4
top_kबकवास जनरेट करने की संभावना कम करता है। उच्च मान (उदाहरण के लिए 100) अधिक विविध जवाब देगा, जबकि कम मान (उदाहरण के लिए 10) अधिक रूढ़िवादी होगा। (डिफॉल्ट: 40)inttop_k 40
top_pटॉप-के के साथ काम करता है। उच्च मान (उदाहरण के लिए, 0.95) अधिक विविध टेक्स्ट लाएगा, जबकि कम मान (उदाहरण के लिए, 0.5) अधिक फोकस्ड और रूढ़िवादी टेक्स्ट जनरेट करेगा। (डिफॉल्ट: 0.9)floattop_p 0.9
min_pटॉप-प का विकल्प है, और इसका उद्देश्य गुणवत्ता और विविधता के संतुलन सुनिश्चित करना है। पैरामीटर p सबसे अधिक संभाव्य टोकन की संभावना के सापेक्ष, विचार के लिए टोकन की न्यूनतम संभावना का प्रतिनिधित्व करता है। उदाहरण के लिए, p=0.05 के साथ और सबसे अधिक संभाव्य टोकन की संभावना 0.9 होने पर, 0.045 से कम मान वाले लॉजिट्स को फिल्टर कर दिया जाता है। (डिफॉल्ट: 0.0)floatmin_p 0.05

टेम्पलेट

मॉडल में पास करने के लिए पूरे प्रॉम्प्ट टेम्पलेट का 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 message>"""

एडाप्टर

बेस मॉडल पर लागू किया जाने वाला फाइन ट्यून किया गया LoRA एडाप्टर निर्दिष्ट करता है ADAPTER निर्देश। एडाप्टर का मान पूर्ण पथ या Modelfile के सापेक्ष पथ होना चाहिए। बेस मॉडल को FROM निर्देश के साथ निर्दिष्ट किया जाना चाहिए। यदि बेस मॉडल उस बेस मॉडल के समान नहीं है जिससे एडाप्टर को ट्यून किया गया है तो व्यवहार अनियंत्रित हो जाएगा।

सफटेंसर एडाप्टर

ADAPTER <path to safetensor adapter>

वर्तमान में समर्थित सफटेंसर एडाप्टर:

  • Llama (Llama 2, Llama 3 और Llama 3.1 सहित)
  • Mistral (Mistral 1, Mistral 2 और Mixtral सहित)
  • Gemma (Gemma 1 और Gemma 2 सहित)

GGUF एडाप्टर

ADAPTER ./ollama-lora.gguf

लाइसेंस

इस Modelfile के साथ उपयोग किए जाने वाले मॉडल को साझा या वितरित करने के लिए कानूनी लाइसेंस निर्दिष्ट करने की अनुमति देता है LICENSE निर्देश।

LICENSE """
<license text>
"""

संदेश

जवाब देते समय मॉडल द्वारा उपयोग करने के लिए संदेश इतिहास निर्दिष्ट करने की अनुमति देता है MESSAGE निर्देश। मॉडल को इसी तरह जवाब देने के लिए मार्गदर्शित करने वाला बातचीत बनाने के लिए MESSAGE कमांड के कई इटरेशन का उपयोग करें।

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 yes

REQUIRES

मॉडल द्वारा आवश्यक Ollama की न्यूनतम संस्करण निर्दिष्ट करने की अनुमति देता है REQUIRES निर्देश।

REQUIRES <version>

संस्करण एक वैध Ollama संस्करण होना चाहिए (उदाहरण के लिए 0.14.0)।

नोट्स

  • Modelfile केस सेंसिटिव नहीं है। उदाहरणों में, इसे आर्ग्यूमेंट से अलग करने में आसानी बनाने के लिए अपरकेस निर्देशों का उपयोग किया गया है।
  • निर्देश किसी भी क्रम में हो सकते हैं। उदाहरणों में, इसे आसानी से पढ़ने योग्य रखने के लिए पहले FROM निर्देश का उपयोग किया गया है।