Ollama建立模型副本并修改模型的默认加载选项

Ollama提供了一个管理大语言模型的便捷接口,但在部分情况下,从Ollama仓库拉取的模型可能无法满足运行需求(例如,上下文大小或卸载到GPU的层数)。此时,可以通过建立副本模型的方法,修改模型的默认加载参数。

在Ollama中下载模型

您可以从 https://ollama.com/models 获取您需要的模型的名称(以下表示为“MODEL_NAME”),然后使用ollama pull命令下载模型到本地计算机:

ollama pull MODEL_NAME

您也可以使用ollama run命令下载模型并运行:

ollama run MODEL_NAME

通过在启动Ollama前配置OLLAMA_MODELS环境变量,您可以指定Ollama模型文件的存储路径。

导出基底模型的模型描述文件

Ollama通过Modelfile模型描述文件控制模型的加载选项,您可以使用下面的命令导出模型的Modelfile:

ollama show --modelfile MODEL_NAME > Path/To/Modelfile

修改模型描述文件

您可以使用任意文本编辑器打开模型描述文件,随后您即可开始修改模型的默认加载选项。

开始前,请遵照模型描述文件头部“# To build a new Modelfile based on this, replace FROM with:”一行下方以“#”开头的FROM命令,将模型描述文件中以“FROM”开头的行后指向模型文件的路径改为基底模型的名称。例如,若您导出的模型描述文件头部结构为:

# Modelfile generated by "ollama show"
# To build a new Modelfile based on this, replace FROM with:
# FROM base-model:24b

FROM Path/To/BaseModel/File

那么您需要将其改为:

# Modelfile generated by "ollama show"
# To build a new Modelfile based on this, replace FROM with:
# FROM base-model:25b

FROM base-model:25b

接下来,您可以在文件尾部的“LICENSE”行前,添加以“PARAMETER”命令起始的行,以指定模型的默认选项。“PARAMETER”行的结构类似:

PARAMETER ParamName ParamValue

其中,ParamName为参数名称,ParamValue为参数的值。支持的参数包括:

seed <int>             Random number seed
num_predict <int>      Max number of tokens to predict
top_k <int>            Pick from top k num of tokens
top_p <float>          Pick token based on sum of probabilities
min_p <float>          Pick token based on top token probability * min_p
num_ctx <int>          Set the context size
temperature <float>    Set creativity level
repeat_penalty <float> How strongly to penalize repetitions
repeat_last_n <int>    Set how far back to look for repetitions
num_gpu <int>          The number of layers to send to the GPU
stop <string> <string> ...   Set the stop parameters

完成后,即可保存模型描述文件,并关闭文本编辑器。

从模型描述文件建立模型

使用ollama create命令,可以从模型描述文件建立新的模型:

ollama create NEW_MODEL_NAME -f Path/To/Modelfile

如果模型建立成功,您可以通过ollama list命令查看当前已注册的模型。

运行新的模型

准备就绪后,您可以使用ollama run运行新的模型副本:

ollama run NEW_MODEL_NAME

参考资料

https://www.llamafactory.cn/ollama-docs/modelfile.html

https://github.com/ollama/ollama/issues/8597#issuecomment-2614533288

https://github.com/ollama/ollama/issues/6950#issuecomment-2373663650

it
除非特别注明,本页内容采用以下授权方式: Creative Commons Attribution-ShareAlike 3.0 License