Ollama加载GGUF模型,如何支持分片分享式大模型?
发布于 作者:苏南大叔 来源:程序如此灵动~

苏南大叔在本文中,将对ollama
加载.gguf
格式的大模型文件的方式,进行详细的说明。ollama
官方网站和huggingface
网站,都提供普通及gguf
格式的大模型以供下载。目前,ollama
可以拉取特殊的.gguf
格式模型,但是依然无法处理特殊中的特殊【分享式的gguf
格式】。本文将针对如何使用这种guff
模型文件,展开讨论。
苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。本文测试环境:win10@22H2
,ollama@0.6.8
,deepseek-r1:7b
。
前文回顾
本地还没有安装好ollama
的小伙伴,可以参考文章:
- https://newsn.net/say/ollama-deepseek.html
- https://newsn.net/say/ollama-host.html
- https://newsn.net/say/ollama-mac.html
本文中提及的modelfile
导入大模型的方法,在下面文章里面也有提及:
通用加载方式
仅仅使用ollama run
就可以应付大多数情况。对于GGUF
文件,也是可以使用的。
ollama
可以拉取并运行ollama
官方上的大模型。例如:
ollama run deepseek-r1:7b
加载网络GGUF库【独立非共享】
ollama
也支持加载huggingface
网站上的GGUF
格式的大模型。但是,一个库地址里面有很多个GGUF
文件,它会选择其中的一个或多个下载并运行,下载评判标准未知。
下面的代码选了一个单库多文件,并且模型很小的作为例子。下面这几条指令,是等效的。
ollama run hf.co/ggml-org/SmolVLM-500M-Instruct-GGUF
ollama run hf.co/ggml-org/SmolVLM-500M-Instruct-GGUF:Q8_0
ollama run hf-mirror.com/ggml-org/SmolVLM-500M-Instruct-GGUF
ollama run hf-mirror.com/ggml-org/SmolVLM-500M-Instruct-GGUF:Q8_0
也就是说,网络gguf
采取的似乎并不是url
地址,而是貌似某种作用域。并且如果代表的实际文件,不是gguf
格式的话,也会报错。
D:\>ollama run hf-mirror.com/deepseek-ai/DeepSeek-R1
pulling manifest
Error: pull model manifest: 400: {"error":"Repository is not GGUF or is not compatible with llama.cpp"}
直接传递网络gguf
文件地址,是不能运行的。需要下载回来后,采用接下来的modelfile
的from
方案进行加载。
加载本地GGUF库【独立非共享】
可以通过modelfile
的FROM
命令加载。加载的目标,是本地下载好的模型(不局限于GGUF
)。不支持加载远程地址。参考的modelfile
内容如下:
# 注意使用绝对路径,相对路径会报错
FROM d:\gguf\<gguf>.gguf
通过下面的命令,加载对应新模型。
ollama create <your_name> -f modelfile
modelfile
的from
,可以加载任何形式的大模型。但是,gguf
格式的单文件,只能通过这种方式加载。
处理分享式GGUF【分片gguf】
在huggingface
网站上,存在着把一个大模型切分成多个小文件的情况。ollama
明确表示,不支持这种“分享式”大模型。ollama
明确表示并不支持这种为了便于分享而做分割处理的模型文件。参考下图:
D:\>ollama run hf-mirror.com/unsloth/DeepSeek-R1-GGUF
pulling manifest
Error: pull model manifest: 400: {"error":"The specified repository contains sharded GGUF. Ollama does not support this yet. Follow this issue for more info: https://github.com/ollama/ollama/issues/5245"}
官方讨论帖子:
官方给出的解决方案是:先下载llama.cpp
[名字略显怪异],然后执行--merge
命令。
./llama-gguf-split --merge mymodel-00001-of-00002.gguf out_file_name.gguf
合并成一个大文件之后,再通过modelfile
的from
方式进行加载即可。
结语
这里有来自苏南大叔的温馨提示:modelfile
除了可以加载大模型外,还可以通过system
命令对大模型进行微调。
更多苏南大叔的ollama
经验文字,请点击:


