Ollama加载GGUF模型,如何支持分片分享式大模型?
发布于 作者:苏南大叔 来源:程序如此灵动~
苏南大叔在本文中,将对ollama加载.gguf格式的大模型文件的方式,进行详细的说明。ollama官方网站和huggingface网站,都提供普通及gguf格式的大模型以供下载。目前,ollama可以拉取特殊的.gguf格式模型,但是依然【无法处理】特殊中的特殊【分片分享式的gguf格式】。本文将针对如何使用这种guff模型文件,展开讨论。

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。本文测试环境:win10@22H2,ollama@0.6.8,deepseek-r1:7b。先说一下结论:gguf格式是可以加载的。但是,不支持分片版本的gguf。所以,最终的结论就是:ollama支持最普通的非分片的gguf格式文件加载。
前文回顾
本地还没有安装好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经验文字,请点击: