Ollama是一个流行的LLM本地部署推理软件,从其Github仓库可以下载安装程式或直接运行其Docker映像。
本文介绍将HuggingFace上的模型导入离线环境中的Ollama部署推理的3种方法。
导入GGUF格式
创建一个modelfile文档,尽量和模型文档在同一个文档夹。
格式分为三部分:
- 模型权重文档路径,以FROM开头,多模态可以有多行。
- 对话模板,以TEMPLATE开头用引号包裹,配置提示词等。
- 参数,以PARAMETER开头每行1个,配置温度、停止词等。
模板和参数建议使用Ollama官方同名模型的配置,通常不同尺寸和量化精度的配置是一样的。
例如Google的Gemma3模型12b尺寸的配置文档:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
FROM gemma-3-12b-it-q4_0.gguf
FROM mmproj-google_gemma-3-12b-it-qat-f16.gguf
TEMPLATE "{{- range $i, $_ := .Messages }}
{{- $last := eq (len (slice $.Messages $i)) 1 }}
{{- if or (eq .Role "user") (eq .Role "system") }}<start_of_turn>user
{{ .Content }}<end_of_turn>
{{ if $last }}<start_of_turn>model
{{ end }}
{{- else if eq .Role "assistant" }}<start_of_turn>model
{{ .Content }}{{ if not $last }}<end_of_turn>
{{ end }}
{{- end }}
{{- end }}
"
PARAMETER stop <end_of_turn>
PARAMETER temperature 1
PARAMETER top_k 64
PARAMETER top_p 0.95
|
执行命令 ollama create 模型名 -f 配置文档.modelfile
ollama就会将GGUF格式的模型文档导入成内部数据。
迁移已有模型
Ollama存储模型分为配置索引和数据块两部分。
将已经下载部署好的模型迁移到新安装环境,只需要复制配置文档和数据块即可。
模型配置文档根据路径可以看出保存在 .ollama/models/manifests/registry.ollama.ai/library/模型名:参数
中,其中模型名如gemma3,参数如12b-it-qat,也就是run时冒号前后的部分。
打开配置文档是json格式,找到其中的sha256:xxx...
就是对应的数据块,在 .ollama/models/blobs/
中找到相应的文档便是该模型的数据块。
1
|
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","digest":"sha256:505f8883abf333a307ed4120ef5f3116f442e6c537e5c4332d9044492e2d637c","size":414},"layers":[{"mediaType":"application/vnd.ollama.image.model","digest":"sha256:1fb99eda86dc48a736567406253769fdc75f01e65cde7c65fa5563e4bdf156e0","size":8928674496,"from":"/Users/pdevine/.ollama/models/blobs/sha256-1fb99eda86dc48a736567406253769fdc75f01e65cde7c65fa5563e4bdf156e0"},{"mediaType":"application/vnd.ollama.image.template","digest":"sha256:5be6630b666f007a127a456fb3958da5fbd7cf547204188bc4690fedc837af0b","size":359},{"mediaType":"application/vnd.ollama.image.params","digest":"sha256:3116c52250752e00dd06b16382e952bd33c34fd79fc4fe3a5d2c77cf7de1b14b","size":77}]}
|
将配置文档和数据块复制到新安装环境即可正常使用之前下载好的模型。
数据块有大有小,大的就是下载的LLM参数文档,小的可以打开看,通常是模板和参数,所以复制后模板等配置也原封不动。
离线下载模型文档
有时候需要下载Ollama的官方模型,但并不便于安装一个Ollama,就需要直接通过URL下载模型配置和权重文档。
虽然目前官方没有在文档中说明下载链接格式,但是对于run时的 模型名:参数
可以根据规则推测其直链。
- 配置文档如
https://registry.ollama.ai/v2/library/模型名/manifests/参数
。
- 权重数据块文档如
https://registry.ollama.ai/v2/library/模型名/blobs/sha256:配置文档中的数据块散列值
。
Gholamreza Dar制作了提取Ollama直链的网页
下载好配置文档和权重数据块后,按照规律放到个人文档夹中 .ollama/models/
相应位置即可被Ollama运行时调用。
- 配置文档如
.ollama/models/manifests/registry.ollama.ai/library/模型名:参数
。
- 权重数据块文档如
.ollama/models/blobs/sha256:配置文档中的数据块散列值
。