diff --git a/docs/modelfile.md b/docs/modelfile.md new file mode 100644 index 00000000..f1155103 --- /dev/null +++ b/docs/modelfile.md @@ -0,0 +1,80 @@ +# Ollama Model File Reference + +Ollama can build models automatically by reading the instructions from a Modelfile. A Modelfile is a text document that represents the complete configuration of the Model. You can see that a Modelfile is very similar to a Dockerfile. + +## Format + +Here is the format of the Modelfile: + +```modelfile +# comment +INSTRUCTION arguments +``` + +Nothing in the file is case-sensitive. However, the convention is for instructions to be uppercase to make it easier to distinguish from the arguments. + +A Modelfile can include instructions in any order. But the convention is to start the Modelfile with the FROM instruction. + +Although the example above shows a comment starting with a hash character, any instruction that is not recognized is seen as a comment. + +## FROM + +```modelfile +FROM [:] +``` + +This defines the base model to be used. An image can be a known image on the Ollama Hub, or a fully-qualified path to a model file on your system + +## PARAMETER + +The PARAMETER instruction defines a parameter that can be set when the model is run. + +```modelfile +PARAMETER +``` + +### Valid Parameters and Values + +| Parameter | Description | Value Type | Value Range | +| ---------------- | ------------------------------------------------------------------------------------------- | ---------- | ----------- | +| NumCtx | | int | | +| NumGPU | | int | | +| MainGPU | | int | | +| LowVRAM | | bool | | +| F16KV | | bool | | +| LogitsAll | | bool | | +| VocabOnly | | bool | | +| UseMMap | | bool | | +| EmbeddingOnly | | bool | | +| RepeatLastN | | int | | +| RepeatPenalty | | float | | +| FrequencyPenalty | | float | | +| PresencePenalty | | float | | +| temperature | The temperature of the model. Higher temperatures result in more creativity in the response | float | 0 - 1 | +| TopK | | int | | +| TopP | | float | | +| TFSZ | | float | | +| TypicalP | | float | | +| Mirostat | | int | | +| MirostatTau | | float | | +| MirostatEta | | float | | +| NumThread | | int | | + + +## PROMPT + +Prompt is a multiline instruction that defines the prompt to be used when the model is run. Typically there are 3-4 components to a prompt: System, context, user, and response. + +```modelfile +PROMPT """ +{{- if not .Context }} +### System: +You are a content marketer who needs to come up with a short but succinct tweet. Make sure to include the appropriate hashtags and links. Sometimes when appropriate, describe a meme that can be includes as well. All answers should be in the form of a tweet which has a max size of 280 characters. Every instruction will be the topic to create a tweet about. +{{- end }} +### Instruction: +{{ .Prompt }} + +### Response: +""" + +``` \ No newline at end of file