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 导入
对于那些使用
PyTorch
或Safetensors
格式的模型,Ollama 同样提供了导入支持。你可以参考 Ollama的导入指南 来了解详细的导入步骤和需要的配置。
导入 Safetensors
如果导入的模型是以下架构之一,则可以通过 Modelfile 直接导入 Ollama:
- LlamaForCausalLM
- MistralForCausalLM
- GemmaForCausalLM
FROM /path/to/safetensors/directory
说明:对于无法直接通过 Ollama 转换的架构,请参阅 llama.cpp 的转换指南。转换后,请参阅导入 GGUF。
自动量化
注意:自动量化需要 Ollama v0.1.35 或更高版本。
Ollama 能够使用-q/--quantize
中的标志将 FP16
或 FP32
模型量化为任何支持的量化 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-11-21 01:00