你在自己机器上装好了 Ollama,想跑 Qwen,结果卡在三件事上:不知道拉哪个 tag、拉完发现跑不动或者慢到没法用、显存到底要多少只能靠猜。这篇不吹模型好不好用,只给一条从查显存到验证跑通的顺序,顺带说清量化档位和上下文长度怎么吃掉你的显存。
你在自己机器上把 Ollama 装好了,想跑 Qwen 系列,结果卡在三件事上:不知道拉哪个 tag、拉完发现跑不动或者慢到没法用、显存到底要多少只能靠猜。这篇不评价模型好不好用,只给一条从查显存到验证跑通的顺序,顺带说清量化档位和上下文长度是怎么悄悄吃掉你的显存的。
整篇的思路就一句话:先搞清楚手上有多少资源,再倒推该拉哪个档,最后按固定顺序排查。顺序乱了,你会反复在拉模型和卸载之间来回折腾。
动手前先确认三件事
很多人上来就敲拉取命令,拉到一半失败或者拉完跑不动,回头才发现是显卡没用上、磁盘不够或者用途没想清楚。这三件事花五分钟确认,能省掉后面半小时的瞎试。
- 看卡:确认显卡型号与当前可用显存,不是标称容量——桌面占用、显示输出、其他后台进程都会先扣掉一截;同时确认 Ollama 真的在用 GPU,跑错设备会退化成纯 CPU,速度差一个量级。
- 看盘:模型权重加缓存要占磁盘,第一次拉取是整包下载,空间不够会中途失败;系统盘紧张就先改模型目录环境变量再拉,别等装到一半才处理。
- 看用途:只是本地问答和个人测试,跟要挂知识库、要供多人调用,对显存和并发的账完全不是一套算法,先把这个想清楚再选档。
显存怎么估:按参数量和量化档位倒推
估算分两块:权重本身,加上上下文带来的额外开销。权重那块用参数量乘每参数字节数就能得到大致占用,量化档位越低占得越少;同一模型不同量化档之间的差距,有时候比换一个模型还大。具体的档位对应数值不要背,到站内页面按你的卡填一遍更靠谱。
| 资源项 | 怎么估 | 放不下时的处理 |
|---|---|---|
| 权重占用 | 参数量 × 每参数字节数 | 降量化档位,或换更小参数量 |
| 上下文开销 | 窗口越大、并发越多,KV 缓存涨得越快 | 缩短上下文,或限制并发 |
| 系统与显存预留 | 给驱动、显示输出留余量 | 别贴着可用上限配 |
- 量化档位
- 把权重从高精度压成低精度存储,档位越低占用越小,但有精度损失
- KV 缓存
- 模型记住上下文用的临时空间,窗口越长、对话越多占用越大
- 层卸载
- 显存放不下时把部分网络层放到内存,用速度换空间
判断阈值很简单:显存够放下权重加一个合理上下文,就整卡上;放不下就走部分层卸载,速度会明显掉;连权重本身都放不下,那就换更小的档或更小的模型。如果你是要长期对外提供接口、要求稳定吞吐,本地这张卡的账和自建服务的账要分开算,这种情况下本地部署往往不是最优解。
部署步骤:从安装到跑通验证
- 确认服务在跑装完客户端先确认后台服务已启动、监听地址能访问。这一步不过,后面所有报错都是白查。
- 拉模型模型名带完整 tag,包括参数规模和量化后缀。只写半截名字容易拉到不是你要的那个版本。拉取慢可以配镜像加速,但要确认来源可信。
- 跑最小验证用一条短提示词跑通,看首字延迟和输出速度是否正常,再逐步加长上下文、加并发。先跑通再调优,别一上来就压满。
- 接入使用要用它的 API,注意默认端口和本地地址。第三方客户端连不上多半是地址或跨域问题。需要暴露给局域网其他机器时再改绑定地址,别默认对外。
跑不动或太慢的排查顺序
排查最忌讳乱改参数。先分清楚是跑不起来还是跑得慢:报错退出是加载问题,能出字但很慢是算力或卸载比例的问题,两条路的解法完全不同。按下面这个顺序一步步来,每次只改一个变量。
- 看清楚是加载失败还是推理慢,前者查资源,后者查卸载比例和设备。
- 确认有没有真的吃到 GPU:看显存占用和 GPU 利用率,占用极低基本就是没走显卡。
- 看卸载比例:部分层跑到内存后,每生成一段都要在内存和显存之间搬数据,速度掉一个量级是正常的。
- 最后才换档:降量化、缩上下文、换更小参数量,按这个顺序试,每步只改一个变量。
注意一个常见误区:很多人为了保住长上下文硬撑着开卸载,结果每轮对话都极慢,体验还不如降一档量化加正常上下文。除非你的场景确实强依赖超长输入,否则先降档通常更划算。
一张部署前对照清单
| 检查项 | 要确认什么 |
|---|---|
| 硬件 | 显卡型号与可用显存、内存容量、磁盘剩余空间,三项都留余量 |
| 软件 | Ollama 版本、是否启用 GPU、模型目录是否改过、端口有没有冲突 |
| 模型 | 完整 tag、量化档位、上下文长度设置,以及在你卡上的实测表现 |
| 验收 | 短提示词跑通、实际速度可接受、重启后服务能自动恢复 |
清单里每一项都别跳过,尤其是最后一条。很多人只在当前会话里跑通了,机器一重启服务没起来,以为是模型坏了,其实只是没配自启。具体各档位在你卡上的实测数据,到站内页面核对当时的数字更准。
下一步想知道你手上这张卡能跑哪些档位、跑起来大概什么体验,可以先把显存信息填进站内的部署测算,再决定拉哪个 tag。→常见问题
拉完模型跑不动,是模型太大还是配置没设对?
先看两件事:显存有没有真的被占用、日志里是不是在报加载失败。占用极低通常是没走 GPU 或档位选高了,报错退出则多是权重放不下或磁盘空间不足。把上下文调到最小再试一次,能跑起来就说明是显存余量问题,往下调量化档位或缩窗口。
显存不多,应该缩上下文还是降量化?
优先降量化档位,对生成质量的损失通常比砍上下文更可控;上下文砍太狠会直接影响能用多长的输入,很多任务会直接做不了。两个都要动的顺序是:先把量化降到能整卡放下的最低档,再按任务需要把上下文加到够用,别反过来。
同一台机器,别人说能跑我却跑不动,差在哪?
常见差别是显存实际可用量和量化档位:标称容量不等于能用容量,桌面与显示输出会先扣掉一部分;另外对方可能跑的是更低的量化档或更短的上下文。按自己的卡重新算一遍权重加上下文的账,到 /models/deploy部署测算 核对,不要直接套别人的结论。