मॉडेलफाइल 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.इसका उपयोग करने के लिए:
- इसे एक फाइल के रूप में सेव करें (उदाहरण के लिए
Modelfile) ollama create choose-a-model-name -f <फाइल का स्थान उदाहरण के लिए ./Modelfile>ollama run choose-a-model-name- मॉडल का उपयोग शुरू करें!
किसी दिए गए मॉडल की 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 }}<|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उपलब्ध बेस मॉडलों की सूची
बेस मॉडलअतिरिक्त मॉडल यहां मिल सकते हैं
सफटेंसर मॉडल से बिल्ड करें
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.ggufGGUF फाइल का स्थान पूर्ण पथ के रूप में या Modelfile के स्थान के सापेक्ष निर्दिष्ट किया जाना चाहिए।
पैरामीटर
मॉडल को चलाने के समय सेट किया जा सकने वाला पैरामीटर परिभाषित करता है 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 | टेक्स्ट जनरेट करते समय पूर्वानुमानित करने के लिए टोकनों की अधिकतम संख्या। (डिफॉल्ट: -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 | टॉप-के के साथ काम करता है। उच्च मान (उदाहरण के लिए, 0.95) अधिक विविध टेक्स्ट लाएगा, जबकि कम मान (उदाहरण के लिए, 0.5) अधिक फोकस्ड और रूढ़िवादी टेक्स्ट जनरेट करेगा। (डिफॉल्ट: 0.9) | float | top_p 0.9 |
| min_p | टॉप-प का विकल्प है, और इसका उद्देश्य गुणवत्ता और विविधता के संतुलन सुनिश्चित करना है। पैरामीटर p सबसे अधिक संभाव्य टोकन की संभावना के सापेक्ष, विचार के लिए टोकन की न्यूनतम संभावना का प्रतिनिधित्व करता है। उदाहरण के लिए, p=0.05 के साथ और सबसे अधिक संभाव्य टोकन की संभावना 0.9 होने पर, 0.045 से कम मान वाले लॉजिट्स को फिल्टर कर दिया जाता है। (डिफॉल्ट: 0.0) | float | min_p 0.05 |
टेम्पलेट
मॉडल में पास करने के लिए पूरे प्रॉम्प्ट टेम्पलेट का 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 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 yesREQUIRES
मॉडल द्वारा आवश्यक Ollama की न्यूनतम संस्करण निर्दिष्ट करने की अनुमति देता है REQUIRES निर्देश।
REQUIRES <version>संस्करण एक वैध Ollama संस्करण होना चाहिए (उदाहरण के लिए 0.14.0)।
नोट्स
Modelfileकेस सेंसिटिव नहीं है। उदाहरणों में, इसे आर्ग्यूमेंट से अलग करने में आसानी बनाने के लिए अपरकेस निर्देशों का उपयोग किया गया है।- निर्देश किसी भी क्रम में हो सकते हैं। उदाहरणों में, इसे आसानी से पढ़ने योग्य रखने के लिए पहले
FROMनिर्देश का उपयोग किया गया है।