搜「ollama如何加载本地模型」的人,通常卡的地方不是不会敲命令,而是分不清自己手里的东西是「一个名字」还是「一个模型文件」。前者一条 pull 就完事,后者要写 Modelfile 才能进 Ollama。这篇按这两条路分开讲,每步都给出该看到的回显,跑不通时按顺序往下查,不用来回猜。
搜这个问题的人,多数不是不会敲命令,而是没分清手里的东西到底是「一个名字」还是「一个模型文件」。这两件事在 Ollama 里走的是完全不同的两条路:前者一条命令就完事,后者得先写个 Modelfile 把它包一层。分不清就开始试,试错成本全花在猜上了。
下面按这两条路分开讲,每一步都说清楚该看到什么回显,跑不通的时候按什么顺序往下查。别急着复制命令,先看清楚自己属于哪种情况。
先分清你手里是哪一种模型
分界线其实只有一句话:这个模型有没有在 ollama list 里出现过。出现过就别重复加载,直接 run 就行;没出现过,再看你手上是名字还是文件。
- 路径一:只有名字
- 你知道模型叫什么、哪个标签,让 Ollama 自己去仓库拉,全程一条命令解决。
- 路径二:手上是文件
- 别人给你的 GGUF 或 safetensors,Ollama 不会顺着文件路径去读,必须先写 Modelfile 导入本地库。
容易误判的地方在于:很多人拿到一个 .gguf 文件,直接 ollama run 加文件路径,命令当场报错,然后开始怀疑是 Ollama 装坏了。其实它压根没打算这么用。反过来,有人手上只有模型名字,却满网找下载链接手动下文件,也是白绕一圈。
路径一:拉下来、跑起来、确认它真的在答
- 先 pull,不要直接 runpull 拉的是名字加标签,标签不写就用默认档。同名不同标签在本地是两份独立文件,各占一份磁盘。命令回显会一行行报进度,最后出现 success 才算完整。
- 再 run,等提示符出来只敲 run 不先 pull 也会自动拉,但出错信息混在一起更难读,新手不推荐。首次 run 会先加载再进对话,看到对话提示符才算真的起来了。
- 问一句短的做验证别一上来就丢长问题。先问一句短的,重点不看答得好不好,而是看首字延迟正不正常、有没有冒出内存不足的报错。这一步是确认服务链路通了。
- 退出后再看一眼状态退出对话不等于模型卸载,它可能还驻留在显存里。用 ollama ps 看一眼哪些还在跑、占了多少,比凭感觉判断准。
磁盘吃紧的机器,拉之前先去站内的模型资料库看这个档位的体积大概在什么量级,别拉到一半发现空间不够。具体数字到 /models 核对当时的记录,不同标签之间差得不少。
路径二:手上有模型文件,得先包一层壳
Ollama 不认任意路径下的模型文件,它要的是「建进自己库里的一个名字」。所以中间这一步 Modelfile 不能省。写起来不难,难在细节。
- FROM 后面跟文件的绝对路径,相对路径和写错目录都会直接报找不到文件。
- 单文件 GGUF 最省事;分片的要把 FROM 指向第一片,其余分片放同一目录,文件名别改。
- TEMPLATE 和参数不是必填,但对话模型不写模板,回答格式容易怪,建议先抄同系列现成的模板来改。
- ollama create 起个名字把它建进本地库,之后只认这个名字,和原来的文件路径再没关系。
- 建完用 ollama list 确认出现在列表里,再 run,顺序别反。
分片文件这块我踩过一次:只把第一片拷进目录,create 阶段居然过了,run 的时候才报错,回头翻日志才发现是缺片。所以建完不等于能用,一定跑一轮对话验证。
| 现象 | 大概率原因 | 先查什么 |
|---|---|---|
| create 报找不到文件 | FROM 路径不对或用了相对路径 | 把路径改成绝对路径再试 |
| 能建成功,run 就报错 | 文件不完整,或缺了分片 | 核对文件大小和分片数量 |
| 回答格式乱七八糟 | 没写 TEMPLATE 或模板不匹配 | 换成同系列现成模板 |
| 聊两句就断 | 加载时显存或内存不够被挤出 | 关掉其他占显存的进程再试 |
跑不通时,按这个顺序查而不是乱试
排查最忌讳东试一下西试一下。按下面的顺序走,每一步都能排除掉一整类原因,比反复重装省时间。
- 先确认 Ollama 服务本身活着:服务没起,pull 和 run 都会以连接失败收场,这时候查模型纯属浪费。
- 再确认文件完整性:下载中断的 GGUF 能建成功却加载失败,这类问题最难从表面看出来。
- 第三看显存和内存余量:能建进去但答两句就断,多半是加载过程中被别的进程挤了出去。
- 最后才怀疑模型本身不兼容。把报错原文里的关键词拿去站内术语页对一遍,再决定要不要换模型。
还有一种情况是环境混装:同时装了桌面版和命令行版,两个进程抢同一个端口,表现就是时好时坏。这种先停掉一个再测,别在模型上找原因。
下一步想先确认这台机器跑得动多大的模型,去站内速度测试页实测一轮,再回头决定拉哪个标签,比盲目下拉省事。→常见问题
Ollama 能不能直接指定硬盘上某个文件夹里的模型跑?
不能。Ollama 的模型都以「名字」存在于自己的库里,硬盘上的文件必须先通过 Modelfile 导入成条目。你想反复用同一份文件,就在导入时起个容易记的名字,以后 run 名字即可,别再想着传路径。
拉下来的模型和导入的模型,之后管理方式一样吗?
一样。两者都会出现在 ollama list 里,占同一份存储空间,删除、查看、导出都用同一套命令。区别只在来源,导入的模型不会随官方更新而变,拉取的可以重新拉一次覆盖。
加载成功了但回答特别慢,是加载错了吗?
多数不是加载错,是跑在了不该跑的设备上。模型加载本身很快,慢出在生成阶段。先看是不是退回了 CPU 计算,再看模型档位是不是超出了可用显存,把档位降一档往往立刻正常。