Ollama 除了通过从支持模型列表中 pull 的下载模型方式,也支持手动导入GGUF模型。
关键是需要创建一个 Modelfile 文件,和将项目打包成docker image的过程有点类似。
Modelfile 内容的创建可以参考通过 ollama pull 命令拉取的模型对应的 Modelfile ,比如查看 llama3:70b 这个模型的 Modelfile,执行以下命令:

ollama show --modelfile llama3:70b

执行完命令后显示的 Modelfile 内容:

# Modelfile generated by "ollama show"
# To build a new Modelfile based on this, replace FROM with:
# FROM llama3:70b
FROM /usr/share/ollama/.ollama/models/blobs/sha256-0bd51f8f0c975ce910ed067dcb962a9af05b77bafcdc595ef02178387f10e51d
TEMPLATE "{{ if .System }}<|start_header_id|>system<|end_header_id|>

{{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|>

{{ .Prompt }}<|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|>

{{ .Response }}<|eot_id|>"
PARAMETER num_keep 24
PARAMETER stop <|start_header_id|>
PARAMETER stop <|end_header_id|>
PARAMETER stop <|eot_id|>

创建一个Modelfile(最好用模型名称命名)的空文件

nano Modelfile

并在其中添加FROM指令,用于指定要导入的模型的本地文件路径(下面的例子用的是相对路径),其他内容可参考ollama library已有模型的modelfile。

FROM ./vicuna-33b.Q4_0.gguf

名为 test 的Modelfile中的内容如下

FROM ./test.gguf
TEMPLATE """<|user|>
{{ .Prompt }}<|end|>
<|assistant|>"""

后续通过以下命令创建并运行模型:

# 通过Ollama命令创建该模型
ollama create [模型名称] -f Modelfile
# 运行模型
ollama run [模型名称]
# 拉取后的LLM所在位置
/usr/share/ollama/.ollama/models

详情可参考:modelfile创建官方文档

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐