Ollama Modelfile Sample

From Coolscript
Jump to navigation Jump to search

Ollama Modelfile Cheat Sheet

Basic Structure

A Modelfile is a recipe for building a model.

FROM <base_model>

# Optional settings
PARAMETER <key> <value>

SYSTEM <text>

TEMPLATE <text>

ADAPTER <path>

LICENSE <text>

MESSAGE <role> <text>

FROM (Required)

Base model you build on.

FROM llama3
FROM mistral
FROM ./local-model.gguf

PARAMETER

Controls runtime behavior.

Common Parameters

PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER top_k 40
PARAMETER num_ctx 4096
PARAMETER repeat_penalty 1.1
PARAMETER seed 42
PARAMETER num_predict 128

Description

  • temperature – randomness (0 = deterministic, 1 = highly random)
  • top_p – nucleus sampling probability cutoff
  • top_k – limits token selection pool
  • num_ctx – context window size
  • repeat_penalty – reduces repetition
  • num_predict – max tokens to generate

SYSTEM

Defines assistant behavior.

SYSTEM You are a helpful assistant that explains things simply.

TEMPLATE

Controls prompt formatting.

TEMPLATE """
{{ if .System }}<|system|>
{{ .System }}
{{ end }}

<|user|>
{{ .Prompt }}

<|assistant|>
"""

MESSAGE

Few-shot examples.

MESSAGE user What is 2+2?
MESSAGE assistant 4

ADAPTER

Attach LoRA adapters.

ADAPTER ./my-lora

LICENSE

Attach a license.

LICENSE MIT

Full Example

FROM llama3

PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER num_ctx 4096

SYSTEM You are a precise and concise coding assistant.

TEMPLATE """
{{ if .System }}<|system|>
{{ .System }}
{{ end }}

<|user|>
{{ .Prompt }}

<|assistant|>
"""

MESSAGE user Write a Python function to add two numbers.
MESSAGE assistant def add(a, b): return a + b

Build and Run

ollama create mymodel -f Modelfile
ollama run mymodel

Common Pitfalls

  • Missing FROM → build fails
  • Too large num_ctx → high memory usage
  • Incorrect TEMPLATE → broken responses
  • High temperature → hallucinations
  • Low temperature → overly rigid output

Mental Model

  • FROM = base model
  • SYSTEM = behavior
  • TEMPLATE = prompt structure
  • PARAMETER = tuning
  • MESSAGE = examples
  • ADAPTER = extensions