Ollama 快速入门:自定义模型(Customize Model)

Ollama 不仅提供了丰富的预训练模型库,还支持高度的模型自定义和扩展能力。这意味着开发者可以根据特定的需求调整模型参数,或者导入已有的模型,以此来创建更加个性化的AI应用。以下是几种自定义模型的方法。

从 GGUF 导入模型

Ollama 支持在 Modelfile 中导入 GGUF(一种常见的模型格式) 模型:

  • 首先,下载模型的GGUF格式的文件;

  • 然后,创建一个名为Modelfile的文件,该文件包含指向你想要导入模型的本地文件路径的FROM指令。例如:

      FROM ./your-model-path.gguf

    (可选)很多聊天模型为了能够正确回答问题,需要一个预设的提示模板。您可以通过在模型文件中添加 TEMPLATE 指令来设定一个默认的提示模板:

      FROM ./your-model-path.gguf
      TEMPLATE "[INST] {{ .Prompt }} [/INST]"
  • 其次,执行命令,在 Ollama 中创建模型

      ollama create example -f Modelfile
  • 最后,运行自定义模型,检查是否创建成功

      ollama run example

    说明:当看到对话的输入提示,说明GGUF格式的大模型在Ollama安装成功。

从 PyTorch 或 Safetensors 导入

对于那些使用 PyTorchSafetensors 格式的模型,Ollama 同样提供了导入支持。你可以参考 Ollama的导入指南 来了解详细的导入步骤和需要的配置。

导入 Safetensors

如果导入的模型是以下架构之一,则可以通过 Modelfile 直接导入 Ollama:

  • LlamaForCausalLM
  • MistralForCausalLM
  • GemmaForCausalLM
FROM /path/to/safetensors/directory

说明:对于无法直接通过 Ollama 转换的架构,请参阅 llama.cpp 的转换指南。转换后,请参阅导入 GGUF

自动量化

注意:自动量化需要 Ollama v0.1.35 或更高版本。

Ollama 能够使用-q/--quantize 中的标志将 FP16FP32 模型量化为任何支持的量化 ollama create。

FROM /path/to/my/gemma/f16/model
$ ollama create -q Q4_K_M mymodel
transferring model data
quantizing F16 model to Q4_K_M
creating new layer sha256:735e246cc1abfd06e9cdcf95504d6789a6cd1ad7577108a70d9902fef503c1bd
creating new layer sha256:0853f0ad24e5865173bbf9ffcc7b0f5d56b66fd690ab1009867e45e7d2c4db0f
writing manifest
success

支持的量化

  • Q4_0
  • Q4_1
  • Q5_0
  • Q5_1
  • Q8_0

K 均值量化

  • Q3_K_S
  • Q3_K_M
  • Q3_K_L
  • Q4_K_S
  • Q4_K_M
  • Q5_K_S
  • Q5_K_M
  • Q6_K

模板检测

注意:模板检测需要 Ollama v0.1.42 或更高版本。

Ollama 使用模型元数据,特别是 tokenizer.chat_template 来自动创建适合您导入的模型的模板。

FROM /path/to/my/gemma/model
$ ollama create mymodel
transferring model data
using autodetected template gemma-instruct
creating new layer sha256:baa2a0edc27d19cc6b7537578a9a7ba1a4e3214dc185ed5ae43692b319af7b84
creating new layer sha256:ba66c3309914dbef07e5149a648fd1877f030d337a4f240d444ea335008943cb
writing manifest
success

在 Modelfile 中定义模板将禁用此功能,如果您想使用与自动检测的模板不同的模板,这可能会很有用。

自定义提示词

可以 自定义 Ollama 库中的模型的 prompt 。例如,自定义llama3模型:

ollama pull llama3

创建一个 Modelfile:

FROM llama3

# set the temperature to 1 [higher is more creative, lower is more coherent]
# 将温度设置为 1 [越高越有创意,越低越连贯]
PARAMETER temperature 1

# set the system message
# 设置自定义系统消息来指定模型的SYSTEM行为;
SYSTEM """
You are Mario from Super Mario Bros. Answer as Mario, the assistant, only.
"""

接下来创建并运行模型:

ollama create mario -f ./Modelfile
ollama run mario
>>> hi
Hello! It's your friend Mario.
作者:Jeebiz  创建时间:2024-05-12 21:45
最后编辑:Jeebiz  更新时间:2024-11-21 01:00