ollama 加载本地模型文件

模型与算力

讲清怎么把已经下好的本地模型文件导进 Ollama 并正常加载调用,含导入路径、Modelfile 写法与加载失败排查顺序。

你手里已经有一个下好的模型文件,可能是别人拷给你的 GGUF,也可能是从别处拉下来的权重目录,想直接用 Ollama 跑起来,结果 ollama list 里空空如也,ollama run 一个自造的名字又报找不到模型。这篇就把导入这两条路的判断标准、动手步骤和加载失败时的排查顺序讲清楚,顺便说清哪些格式根本导不进去。

你手里已经有一个下好的模型文件,可能是别人拷给你的单个 GGUF,也可能是从别处拉下来的一堆权重分片,想直接用 Ollama 跑起来,结果列表命令里空空如也,运行一个自造的名字又报找不到模型。这事卡人的地方通常不在 Ollama 本身,而在你没分清手里的文件属于哪一类,以及没把它注册成一个 Ollama 认得的模型名。

下面按四件事讲:先判断文件能不能被吃下,再用 Modelfile 把它挂成一个模型,然后给出加载不上时的排查顺序,最后说跑通之后怎么确认它真的可用。全程只讲判断标准和动手动作,具体参数取值和资源数字请到站内对应页面按当时的情况核对。

先判断手里的文件到底能不能被 Ollama 吃下

这一步判断错了,后面所有操作都是白费。Ollama 直接认的是 GGUF 单文件,或者它自己从仓库拉下来的分片目录。原生 safetensors、PyTorch 的 bin、以及各种量化框架产出的权重,都不属于能直接导入的范畴,硬塞只会得到格式不兼容的报错。

你手里的东西能不能直接导该怎么办
单个 .gguf 文件能直接写 Modelfile 注册
仓库分片目录能确认索引文件齐全,按原样引用
散装 .safetensors不能先做格式转换,或换推理框架
只有 config.json 加权重通常不能补齐缺失文件或先转换
带量化后缀的框架权重不能换到支持该格式的推理框架

用 Modelfile 把本地文件注册成一个 Ollama 模型

Modelfile 就是一个纯文本文件,作用是告诉 Ollama「这个模型叫什么、从哪个文件来、带什么参数」。放在模型文件同级目录最省心,写路径时相对路径和绝对路径都行,重点是路径里有空格或中文字符要处理好,这类问题排起来最费时间。

  1. 建文件在模型文件同级目录新建一个纯文本文件,命名随意但要自己记得住,内容先只写来源那一行,指向你的模型文件
  2. 补参数需要控制上下文长度、温度这类行为时再加参数行,含义去 /ai-dict/category/tips 查清楚再填,不要照抄别人的数值
  3. 执行创建用创建命令把它注册成一个模型名,命令走完后立刻用列表命令确认这个名字已经出现
  4. 试跑一次用运行命令做一次短问答,确认是能出字并且回答结束,而不是加载完卡着不回话
# 目录里准备一个 Modelfile,FROM 指向你的本地模型文件
# 然后执行创建,再列表确认,最后运行试一句
ollama create my-local-model -f ./Modelfile
ollama list
ollama run my-local-model

模型默认存在哪个目录、想换到别的盘该改什么,站内已经有两篇把结论讲透了,去 ubuntu-ollama-models-path 和 ollama_models路径 看现成的,这里不重复。你只需要记住一点:存模型的位置一旦定下来,后面所有文件搬运都要跟着它走,别一半在这边一半在那边。

加载不上时的排查顺序

报错信息往往只给一句结果,不给原因,所以按固定顺序排查比反复重装有效得多。下面四层从便宜到贵,每层确认过再往下走,不要跳步。

  • 第一层看名字:创建时用的模型名和运行时敲的名字必须完全一致,大小写和连字符都算数,也要确认没和官方仓库里的同名模型撞车
  • 第二层看文件:路径是否被移动过、分片是否缺、文件是否下载完整,用文件大小和校验值比对,比重新装一遍靠谱
  • 第三层看资源:显存或内存不够时的表现是加载到一半卡住,或者直接被系统结束进程,按你的卡和量化档位算一遍上限,测算口径参考 /models/deploy
  • 第四层看日志:手动把服务起在前台,让报错留在屏幕上,关键词通常直接指向格式不兼容、文件损坏或权限不足
现象最可能的原因先查什么
提示找不到模型名字对不上或没创建成功重跑列表命令,核对拼写
加载到一半停住资源不够算显存和内存上限
报格式不支持文件类型不对回到第一步重新判断格式
启动就退出文件损坏或权限问题看前台日志关键词

跑通之后怎么确认它真的可用

能出字只代表加载成功,不代表这个东西可用。至少要过两道:命令行端到端问一次,上层工具连一次。本地服务的地址和端口别记错,接口相关的清单去 /ai-dict/category/infra 看。

常见的上层接法是把 Ollama 当成兼容接口来用。连接失败时的通用排查思路可以参照 chatbox-ollama-connect-fail,不要每换一个客户端就把流程重新研究一遍。

  • 命令行问一次:看它能不能完整答完,而不是出几个字就断
  • 上层工具连一次:确认地址端口和模型名都对得上,客户端能选到你的模型
  • 换台机器复现:把启动方式、模型存放路径、用过的 Modelfile 记成一页小抄,照抄能跑起来才算稳
  • 质量自己压:导入只是把文件挂上去,速度和回答质量还是拿几个真实问题试,别只看能不能出字
导入成功不等于效果达标,能加载只是入场券。
下一步想比较不同本地部署方案和常见推理工具的取舍,可以到工具目录按类别翻一遍,再回头决定你的文件该走转换还是换框架。

常见问题

我下载的是 safetensors 权重,能直接导进 Ollama 吗?

不能直接导。Ollama 走的是 GGUF 这条路,safetensors、bin、AWQ、GPTQ 都要先转成 GGUF 再注册。转换过程对量化档位有选择,转之前先确认目标文件的格式和量化方式,转完再用 Modelfile 挂上去,不然会卡在格式不兼容上。

导入后提示找不到模型或者加载失败,先查什么?

按名字、文件、资源、日志四层走。先确认创建和运行用的模型名一字不差,再确认文件没被移动或分片缺漏,然后算一遍显存内存够不够,最后手动起服务看前台输出。这四步能覆盖绝大多数情况,比反复重装省时间。

导入本地文件和直接从仓库拉模型,有什么实际差别?

拉仓库省事,版本和量化档位由上游决定;导入本地文件自由度高,可以用别人给的微调版或自己转的量化版,但兼容性和完整性得自己保证。断网环境、内网机器、要固定某个具体权重文件时,导入这条路更合适。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。