拉取和运行模型:pull、run 和版本标签
[TOC] 装好 Ollama 只是有了发动机,还没有燃料。这一篇把日常用得最频繁的几个命令讲透:怎么把模型拉到本地、怎么运行、标签系统到底在说什么、以及怎么在离线的机器之间搬模型。命令行是整个 Ollama 的操作核心,后面所有花哨的图形界面背后调用的都是这些东西,值得一次性弄扎实。
在开始具体命令之前,先建立一个大原则:Ollama 里的所有模型都由一个统一的本地服务管理,pull、run 这些操作其实都是在这个服务里增删记录。理解这一点能解释很多现象,比如为什么换一个终端窗口之前的模型还在显存里?因为状态归服务管而不归终端管。为什么服务重启之后对话记录没了,而下过的模型一个都没少?因为对话存在服务的内存里,而模型文件躺在硬盘上。
pull:把模型下载到本地
下载模型的命令只有一条:
ollama pull llama3.1:8b
命令名后面跟的是模型标识,冒号前面是模型名,冒号后面是标签。标签不写的时候会用默认值,一般是官方推荐的均衡版本。下载过程中会实时显示分块进度,每下载一块校验一块,全部下完就能用了。
pull 过程有几个细节值得知道。第一,下载是断点续传的,网络断了重新执行同一条命令会接着上次的位置继续,不会从头再来,所以不用怕断网。第二,同一个模型如果标签不同,就是两份完整文件,比如 8b 和 8b-q8 各占各的空间,互不共用。第三,更新模型是重新 pull 同一个标签,新版本会覆盖旧版本,连同你的自定义配置一起没掉,有定制内容的记得先备份。第四,pull 完成的模型会立刻出现在 ollama list 里,不需要任何刷新操作。
pull 的时候还有一个小技巧:一边等下载一边读模型说明。官方模型页面通常列着这个模型擅长的领域、上下文长度、许可信息,花两分钟读完,你对这个模型的脾气就有了底,比下载完了再摸索高效得多。
想知道本地有哪些模型,用这条命令查看:
ollama list
输出是一个表格,列出模型名、标签、大小、修改时间和对应 digest 的前几位。digest 是一份指纹,两位同学的同一个标签如果 digest 相同,就说明是完全一样的版本。
list 看久了你会发现一个现象:随着时间推移,本地模型必然越积越多。今天试一个新的,明天换一个版本,几个月后磁盘里躺着十几个模型几十GB。 定期做一次断舍离是好习惯,删掉的一瞬间磁盘空间回来大半,神清气爽,和清理衣柜是同一种快乐。
查看单个模型的详细信息用 ollama show,参数、模板、许可证一目了然:
ollama show qwen2.5:7b
这个命令在排查问题的时候特别有用。模型怎么调前不调后?温度参数默认多少?系统提示词长什么样?ollama show 全都给你列出来,比猜来猜去强得多。
标签系统到底在说什么
新手最容易懵的就是标签。同样是 llama3.1,后面能跟一串不同的后缀,含义分别是什么呢?大致可以分成三类。
第一类是规模标签,比如 3b、8b、70b、405b,直接告诉你这个版本的参数量。同一个模型会出多个规模,方便不同显存的用户各取所需。第二类是量化标签,比如 q4_0、q4_K_M、q5_K_M、q8_0、fp16,表示参数被压到了多小的体积。第三类是特殊用途标签,比如 instruct 表示指令微调版适合对话,text 表示纯文本版,thinking 表示带思考链的推理版,还有专门用于生成向量的 embed 标签。
| 标签示例 | 含义 | 什么样的场景适合用 |
|---|---|---|
| qwen2.5:7b | 默认 7B 版本 | 不确定时的第一选择 |
| qwen2.5:7b-instruct-q8_0 | 8 比特量化的指令版 | 追求质量的对话场景 |
| qwen2.5:14b | 14B 默认版 | 显存充裕时的升级选择 |
| llama3.1:8b-text | 纯文本补全版 | 做续写、不想被对话格式束缚 |
| nomic-embed-text | 向量模型 | 搭知识库做文档检索 |
| deepseek-r1:8b | 带思考链的推理版 | 数学题、逻辑推理 |
多数情况下你不需要把这些背下来,记住一条经验就够用:不知道选什么,就拉默认标签;想精确控制体积或质量,再去看完整标签列表。官方模型页面上每个模型的所有标签都列得清清楚楚,对着选就行。
需要特别提醒的是有些标签名带架构或版本含义,不是越大越好,也不是越新越好。碰到拿不准的模型,先到模型页面看一下说明,或者干脆都拉下来对比一下,反正本地试错不要钱。
新手的典型路径是这样的:先拉一个默认标签的 7B 或 8B 模型跑通;用顺手了想追求质量,换成同系列更大量化或者更大参数的版本;再后来工作需要,补充向量模型、思考链模型这些特殊用途。标签系统看起来复杂,实际用过两三次就门清了,比很多软件的版本号体系简单得多。
还有一点值得说一下:标签的大小写和写法必须完全准确,敲错一个字母 pull 就会报模型不存在。如果确认名字拼写没问题却还是报错,可能是这个名字在官方库里真没有,这时候去模型页面复制准确的标识最保险,别凭印象敲命令。
run:运行模型进入对话
运行模型最直接的方式:
ollama run qwen2.5:7b
第一次运行会自动触发下载,下完直接进入交互界面。界面上以 >>> 开头,输入问题回车,模型就开始回答,回答完自动等你下一个输入。退出输入 /bye,或者按住 Ctrl 再按 D。
run 命令有一个很贴心的设计:启动速度。如果模型本来就在显存里,run 是秒开的;如果模型被卸载了,也就是几秒到十几秒的加载时间,远远快于从零开始装一个环境。这种快节奏的切换体验,是很多人爱上本地大模型的起点。
交互界面里还有一组实用命令。输入 /? 可以看到完整列表,常用的有这些:
/clear 清空当前对话上下文
/show info 查看模型参数和占用
/show system 查看系统提示词
/set system 修改系统提示词
/bye 退出
其中 /clear 最常用,作用是把当前对话的上下文清空。为什么要单独留这个命令?因为多轮对话会不断累积上下文,既占显存又会让模型越来越跑题。开一个新话题之前清一下,模型就跟刚启动时一样清醒。
run 也可以不进入交互界面,直接带一个问题执行,适合在脚本里调用:
ollama run qwen2.5:7b "用一句话解释什么是显存"
模型回答完就直接退出,配合管道符可以嵌进各种自动化脚本里,比如自动生成提交信息、批量润色文档,都非常顺手。
利用这个特性可以写很多有用的小脚本。比如给一段代码自动写一行注释,比如给一篇草稿打分提建议,比如把收件箱里十几封邮件各总结一句话。所有这些都不花一分钱 API 费用,跑在终端里、跑在日程任务里,想跑多少次跑多少次。这也是本地大模型区别于云端调用最舒服的地方——不用担心账单,想象力是唯一的限制。
说到多轮对话,还要理解 run 的一个行为:默认情况下,同一终端窗口里一问一答是带着上下文的。你问它一件事,接着追问,它记得刚才说过什么,聊起来就像真人一样。但也正因为如此, 聊了二三十轮之后,上下文塞满了,模型的注意力会被拉长,回答质量逐渐下降,速度也变慢。养成随时 /clear 的习惯至关重要。
这里解释一下上下文这个概念。模型一次能看进去的字数是有上限的,新输入会把最早的内容挤出去,被挤出去的内容模型就彻底忘了。这是所有大模型的共性,不是 Ollama 的毛病,专业叫法是上下文窗口。窗口越大的模型长对话能力越强,同时对显存的要求也越高。
想确认一个模型到底在不在显存里、占用了多少,可以用 ollama ps 查看,它会列出正在加载的模型和实际占用,排查显存问题的时候是第一个要敲的命令。配合模型管理:删除、复制和环境变量里讲的卸载策略调整,可以把自己的机器调试得既快又稳。每天打开电脑敲上几行,就是本地大模型玩家的日常:pull 等下载,run 开聊,聊完 /bye 退出,模型还静静待在显存里随时待命,整套操作行云流水。
离线环境怎么搬模型
企业内网、隔离环境里没有外网,但模型还是要用。Ollama 没有内置导出导入功能,不过做法也不复杂。
模型文件就存在本机的模型目录里,Windows 上通常是用户目录下的 .ollama\models,Linux 上在 /usr/share/ollama/.ollama/models 或者对应用户主目录下,Mac 上也在用户目录的 .ollama/models 里。整个目录是按内容寻址的分层结构组织的,直接把这个目录整体复制到目标机器的相同位置,然后重启服务,模型就出现了。
scp -r ~/.ollama/models user@server:~/.ollama/models
也可以打包压缩之后用 U 盘拷,内网隔离的环境经常这么干。复制的时候注意两点:目录结构要保持完整,还有新旧两台机器上的 Ollama 版本最好一致,大版本差异偶尔会出现模型目录格式不兼容的情况。
企业环境里更规范的做法是搭一个内网模型仓库,提前把常用模型归档好,新机器装机之后从内网仓库统一拉取,比一台台 U 盘拷效率高得多。
再补充一个很常见的需求:从别的工具迁移过来。如果你之前用 LM Studio 或者其它客户端下过模型文件,理论上那些标准格式的文件也能导入 Ollama 使用,通过 Modelfile 的方式打包成 Ollama 管理的模型。这块的操作稍微进阶一些,在命令行对话:参数、模板和多轮会话那篇讲 Modelfile 的时候会提到。
还有一个细节是权限。Linux 下模型目录归 ollama 系统用户所有,手动复制文件之后如果权限不对,服务可能读不了。复制完记得用 chown 把属主改对,或者干脆把文件托给系统服务用户去管理,别用 root 直接管,往往一顿操作之后反而把自己绕进去了。
模型的版本与更新策略
开源模型更新很快,隔三差五就有新版本。要不要追新,取决于你的使用场景。
尝鲜党当然追新,新版本往往修了老版本的毛病,中文能力、指令遵循这些都有提升。而且 Ollama 的模型库由官方维护,能收录进来的版本质量都有保证,不用太担心踩到质量参差不齐的坑。
生产环境就反过来,稳定压倒一切。确认一个模型版本跑得好好的,就锁定它别乱动,别因为出了新版就手痒升级。升级之前先在测试环境验证,确认效果不退化再换。这一点在给团队提供服务的场景里尤其重要,你自己踩坑是小,全组跟着你踩坑是大。
识别一个模型是否适合自己有个简单办法:建立一个固定的测试集。挑五到十个最能代表你日常需求的问题,记下来,每拉一个新模型就跑一遍,凭直觉打分。这套方法比看网上的评测直接得多,因为测的全是你真正在乎的东西。久而久之你会对每个模型家族的性格了如指掌,选模型的时间从半小时缩短到三十秒。
再往深了说,选模型和选工具一样,没有最好只有最合适。别人博客里吹上天的模型,放到你的显卡上、你的数据上,可能表现平平。与其花时间纠结,不如多跑两个实际对比,结果都是一目了然的,爱上哪个用哪个,用过的人才有发言权。
常见问题
模型拉到一半断了怎么办
重新执行同样的 pull 命令。下载支持断点续传,已完成的分块不会重复下载,直接从断点继续。如果反复断在同一个地方,多半是网络到模型仓库的链路不稳定,换个网络环境、挂代理、或者等深夜网络空闲时再试。也可以先拉小一点的模型版本,确认本地环境没问题再拉大的。
磁盘空间不够了怎么清理
用 ollama list 看看都有哪些模型、各占多大空间。长期积攒下来常有那种试了两句就再没用过的模型,占了十几GB 空间。确认没用了就用 ollama rm 删掉。另外操作本身要小心, 删错了还得重新下载。如果系统盘空间紧张,还可以通过环境变量把模型目录整体迁移到其它盘。
拉取速度很慢正常吗
模型仓库的服务器在海外,国内网络拉取速度波动比较大,慢的时候几百 KB 每秒也是有的。耐心等是最简单的办法;有条件的挂代理会快很多;也可以找网络好的时候一次性把想用的模型都拉下来。好消息是模型只需要下载一次,之后所有使用都是纯本地的,下载慢只痛一次。
怎么知道一个模型适不适合自己
最快的办法是先看模型页面里的说明和社区反馈,确认大方向没跑偏;然后亲跑一遍自己最常用的问题。本地跑一个模型几分钟就够,试错成本极低。别人说的不算数,你的场景你说了算。如果担心选错,先从大公司的主流家族默认标签入手,这些模型经过海量用户验证,基本不会出错。
同一个模型下了两个版本怎么办
正常的。不同标签的模型是各自独立的完整文件,想保留就留着,想省空间就删一个。删除命令要写完整的名称加标签,比如 ollama rm llama3.1:8b,只写模型名是不行的。
