update model file docs
This commit is contained in:
commit
0345070dfa
3 changed files with 82 additions and 19 deletions
|
@ -85,6 +85,8 @@ Hello! It's your friend Mario.
|
||||||
|
|
||||||
For more examples, see the [examples](./examples) directory.
|
For more examples, see the [examples](./examples) directory.
|
||||||
|
|
||||||
|
For more information on creating a Modelfile, see the [Modelfile](./docs/modelfile.md) documentation.
|
||||||
|
|
||||||
### Pull a model from the registry
|
### Pull a model from the registry
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -4,6 +4,22 @@
|
||||||
|
|
||||||
A model file is the blueprint to create and share models with Ollama.
|
A model file is the blueprint to create and share models with Ollama.
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
|
||||||
|
- [Format](#format)
|
||||||
|
- [Examples](#examples)
|
||||||
|
- [Instructions](#instructions)
|
||||||
|
- [FROM (Required)](#from-required)
|
||||||
|
- [Build from llama2](#build-from-llama2)
|
||||||
|
- [Build from a bin file](#build-from-a-bin-file)
|
||||||
|
- [PARAMETER](#parameter)
|
||||||
|
- [Valid Parameters and Values](#valid-parameters-and-values)
|
||||||
|
- [TEMPLATE](#template)
|
||||||
|
- [Template Variables](#template-variables)
|
||||||
|
- [SYSTEM](#system)
|
||||||
|
- [LICENSE](#license)
|
||||||
|
- [Notes](#notes)
|
||||||
|
|
||||||
## Format
|
## Format
|
||||||
|
|
||||||
The format of the Modelfile:
|
The format of the Modelfile:
|
||||||
|
@ -14,12 +30,12 @@ INSTRUCTION arguments
|
||||||
```
|
```
|
||||||
|
|
||||||
| Instruction | Description |
|
| Instruction | Description |
|
||||||
| ----------------- | ----------------------------------------------------- |
|
| ----------------------------------- | ------------------------------------------------------------- |
|
||||||
| `FROM` (required) | Defines the base model to use |
|
| [`FROM`](#from-required) (required) | Defines the base model to use. |
|
||||||
| `PARAMETER` | Sets the parameters for how Ollama will run the model |
|
| [`PARAMETER`](#parameter) | Sets the parameters for how Ollama will run the model. |
|
||||||
| `SYSTEM` | Specifies the system prompt that will set the context |
|
| [`TEMPLATE`](#template) | The full prompt template to be sent to the model. |
|
||||||
| `TEMPLATE` | The full prompt template to be sent to the model |
|
| [`SYSTEM`](#system) | Specifies the system prompt that will be set in the template. |
|
||||||
| `LICENSE` | Specifies the legal license |
|
| [`LICENSE`](#license) | Specifies the legal license. |
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
|
@ -28,11 +44,11 @@ An example of a model file creating a mario blueprint:
|
||||||
```
|
```
|
||||||
FROM llama2
|
FROM llama2
|
||||||
# sets the temperature to 1 [higher is more creative, lower is more coherent]
|
# sets the temperature to 1 [higher is more creative, lower is more coherent]
|
||||||
# sets the context size to 4096
|
|
||||||
PARAMETER temperature 1
|
PARAMETER temperature 1
|
||||||
|
# sets the context window size to 4096, this controls how many tokens the LLM can use as context to generate the next token
|
||||||
PARAMETER num_ctx 4096
|
PARAMETER num_ctx 4096
|
||||||
|
|
||||||
# Overriding the system prompt
|
# sets a custom system prompt to specify the behavior of the chat assistant
|
||||||
SYSTEM You are Mario from super mario bros, acting as an assistant.
|
SYSTEM You are Mario from super mario bros, acting as an assistant.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -43,7 +59,11 @@ To use this:
|
||||||
3. `ollama run NAME`
|
3. `ollama run NAME`
|
||||||
4. Start using the model!
|
4. Start using the model!
|
||||||
|
|
||||||
## FROM (Required)
|
More examples are available in the [examples directory](../examples).
|
||||||
|
|
||||||
|
## Instructions
|
||||||
|
|
||||||
|
### FROM (Required)
|
||||||
|
|
||||||
The FROM instruction defines the base model to use when creating a model.
|
The FROM instruction defines the base model to use when creating a model.
|
||||||
|
|
||||||
|
@ -51,7 +71,7 @@ The FROM instruction defines the base model to use when creating a model.
|
||||||
FROM <model name>:<tag>
|
FROM <model name>:<tag>
|
||||||
```
|
```
|
||||||
|
|
||||||
### Build from llama2
|
#### Build from llama2
|
||||||
|
|
||||||
```
|
```
|
||||||
FROM llama2
|
FROM llama2
|
||||||
|
@ -60,13 +80,15 @@ FROM llama2
|
||||||
A list of available base models:
|
A list of available base models:
|
||||||
<https://github.com/jmorganca/ollama#model-library>
|
<https://github.com/jmorganca/ollama#model-library>
|
||||||
|
|
||||||
### Build from a bin file
|
#### Build from a bin file
|
||||||
|
|
||||||
```
|
```
|
||||||
FROM ./ollama-model.bin
|
FROM ./ollama-model.bin
|
||||||
```
|
```
|
||||||
|
|
||||||
## PARAMETER (Optional)
|
This bin file location should be specified as an absolute path or relative to the Modelfile location.
|
||||||
|
|
||||||
|
### PARAMETER
|
||||||
|
|
||||||
The `PARAMETER` instruction defines a parameter that can be set when the model is run.
|
The `PARAMETER` instruction defines a parameter that can be set when the model is run.
|
||||||
|
|
||||||
|
@ -78,12 +100,12 @@ PARAMETER <parameter> <parametervalue>
|
||||||
|
|
||||||
| Parameter | Description | Value Type | Example Usage |
|
| Parameter | Description | Value Type | Example Usage |
|
||||||
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ------------------ |
|
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ------------------ |
|
||||||
| num_ctx | Sets the size of the prompt context size length model. (Default: 2048) | int | num_ctx 4096 |
|
| num_ctx | Sets the size of the context window used to generate the next token. (Default: 2048) | int | num_ctx 4096 |
|
||||||
| temperature | The temperature of the model. Increasing the temperature will make the model answer more creatively. (Default: 0.8) | float | temperature 0.7 |
|
| temperature | The temperature of the model. Increasing the temperature will make the model answer more creatively. (Default: 0.8) | float | temperature 0.7 |
|
||||||
| top_k | Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative. (Default: 40) | int | top_k 40 |
|
| top_k | Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative. (Default: 40) | int | top_k 40 |
|
||||||
| top_p | Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text. (Default: 0.9) | float | top_p 0.9 |
|
| top_p | Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text. (Default: 0.9) | float | top_p 0.9 |
|
||||||
| num_gpu | The number of GPUs to use. On macOS it defaults to 1 to enable metal support, 0 to disable. | int | num_gpu 1 |
|
| num_gpu | The number of GPUs to use. On macOS it defaults to 1 to enable metal support, 0 to disable. | int | num_gpu 1 |
|
||||||
| repeat_last_n | Sets how far back for the model to look back to prevent repetition. (Default: 64, 0 = disabled, -1 = ctx-size) | int | repeat_last_n 64 |
|
| repeat_last_n | Sets how far back for the model to look back to prevent repetition. (Default: 64, 0 = disabled, -1 = num_ctx) | int | repeat_last_n 64 |
|
||||||
| repeat_penalty | Sets how strongly to penalize repetitions. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. (Default: 1.1) | float | repeat_penalty 1.1 |
|
| repeat_penalty | Sets how strongly to penalize repetitions. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. (Default: 1.1) | float | repeat_penalty 1.1 |
|
||||||
| tfs_z | Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1) | float | tfs_z 1 |
|
| tfs_z | Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1) | float | tfs_z 1 |
|
||||||
| mirostat | Enable Mirostat sampling for controlling perplexity. (default: 0, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0) | int | mirostat 0 |
|
| mirostat | Enable Mirostat sampling for controlling perplexity. (default: 0, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0) | int | mirostat 0 |
|
||||||
|
@ -91,13 +113,51 @@ PARAMETER <parameter> <parametervalue>
|
||||||
| mirostat_eta | Influences how quickly the algorithm responds to feedback from the generated text. A lower learning rate will result in slower adjustments, while a higher learning rate will make the algorithm more responsive. (Default: 0.1) | float | mirostat_eta 0.1 |
|
| mirostat_eta | Influences how quickly the algorithm responds to feedback from the generated text. A lower learning rate will result in slower adjustments, while a higher learning rate will make the algorithm more responsive. (Default: 0.1) | float | mirostat_eta 0.1 |
|
||||||
| num_thread | Sets the number of threads to use during computation. By default, Ollama will detect this for optimal performance. It is recommended to set this value to the number of physical CPU cores your system has (as opposed to the logical number of cores). | int | num_thread 8 |
|
| num_thread | Sets the number of threads to use during computation. By default, Ollama will detect this for optimal performance. It is recommended to set this value to the number of physical CPU cores your system has (as opposed to the logical number of cores). | int | num_thread 8 |
|
||||||
|
|
||||||
## Prompt
|
### TEMPLATE
|
||||||
|
|
||||||
When building on top of the base models supplied by Ollama, it comes with the prompt template predefined. To override the supplied system prompt, simply add `SYSTEM insert system prompt` to change the system prompt.
|
`TEMPLATE` of the full prompt template to be passed into the model. It may include (optionally) a system prompt and a user's prompt. This is used to create a full custom prompt, and syntax may be model specific.
|
||||||
|
|
||||||
### Prompt Template
|
#### Template Variables
|
||||||
|
|
||||||
`TEMPLATE` the full prompt template to be passed into the model. It may include (optionally) a system prompt, user prompt, and assistant prompt. This is used to create a full custom prompt, and syntax may be model specific.
|
| Variable | Description |
|
||||||
|
| --------------- | ------------------------------------------------------------------------------------------------------------ |
|
||||||
|
| `{{ .System }}` | The system prompt used to specify custom behavior, this must also be set in the Modelfile as an instruction. |
|
||||||
|
| `{{ .Prompt }}` | The incoming prompt, this is not specified in the model file and will be set based on input. |
|
||||||
|
| `{{ .First }}` | A boolean value used to render specific template information for the first generation of a session. |
|
||||||
|
|
||||||
|
```
|
||||||
|
TEMPLATE """
|
||||||
|
{{- if .First }}
|
||||||
|
### System:
|
||||||
|
{{ .System }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
### User:
|
||||||
|
{{ .Prompt }}
|
||||||
|
|
||||||
|
### Response:
|
||||||
|
"""
|
||||||
|
|
||||||
|
SYSTEM """<system message>"""
|
||||||
|
```
|
||||||
|
|
||||||
|
### SYSTEM
|
||||||
|
|
||||||
|
The `SYSTEM` instruction specifies the system prompt to be used in the template, if applicable.
|
||||||
|
|
||||||
|
```
|
||||||
|
SYSTEM """<system message>"""
|
||||||
|
```
|
||||||
|
|
||||||
|
### LICENSE
|
||||||
|
|
||||||
|
The `LICENSE`` instruction allows you to specify the legal license under which the model used with this Modelfile is shared or distributed.
|
||||||
|
|
||||||
|
```
|
||||||
|
LICENSE """
|
||||||
|
<license text>
|
||||||
|
"""
|
||||||
|
```
|
||||||
|
|
||||||
## Notes
|
## Notes
|
||||||
|
|
||||||
|
|
|
@ -286,6 +286,7 @@ func CreateModel(name string, path string, fn func(resp api.ProgressResponse)) e
|
||||||
layer.MediaType = mediaType
|
layer.MediaType = mediaType
|
||||||
layers = append(layers, layer)
|
layers = append(layers, layer)
|
||||||
default:
|
default:
|
||||||
|
// runtime parameters
|
||||||
params[c.Name] = c.Args
|
params[c.Name] = c.Args
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue