16G内存本地部署DeepSeek-R1:Ollama量化选型与调参避坑
简介:面向AI开发者、初学者及具备一定硬件基础的技术人员,这份PDF文档聚焦DeepSeek模型的本地部署与应用优化,帮助读者在数据隐私和定制化需求下完成从环境准备到交互测试的完整实践。内容按低、中、高三档硬件配置给出准备建议,并梳理Ollama、Python、CUDA等工具的安装要点,同时说明R1-1.5B、R1-7B、R1-32B三款模型的功能差异与选型依据,便于读者结合设备条件安排项目开发与自然语言处理任务。文档还涉及模型下载时的磁盘空间与网络注意事项、Chatbox AI和LM Studio等个性化交互界面的使用,以及常见问题汇总与排障技巧,配有命令行指令和图形化操作截图,可帮助零基础读者对照操作,也方便有经验者查漏补缺。资源包为1个PDF文件,约559KB,已有1153人学习下载,适合个人自学、团队内部培训及部署方案参考。
1. 一台 16G 内存的旧笔记本,也能把这套模型跑起来
很多人对本地部署大模型的第一反应是「这得有张上万的显卡吧」。实际拆下来,DeepSeek-R1 的 7B 蒸馏版量化之后权重文件只有 4.7GB 左右,一台 16G 内存、8G 显存的普通开发机就能跑到每秒二十来个 token,写代码补全、润色文档、捋需求完全够用。真正让人翻车的从来不是算力不够,而是三件小事:档位选错、模型标签写错、上下文开太大。下面这条链路是从一台干净机器开始的完整落地记录——先算显存账定档位,再装 Ollama 拉模型,接上图形界面和编辑器,最后把踩过的坑和参数手感一起交代清楚。
2. 硬件分档与模型选型:1.5B、7B、32B 的显存账怎么算
2.1 先算权重账:量化格式决定了你的下限
同一个 7B 模型,FP16 全精度要占 14GB,Q4_K_M 量化之后只剩 4.7GB,差了整整三倍。这就是为什么「7B 模型需要什么显卡」这个问题没有标准答案——不说量化格式就是耍流氓。Ollama 默认拉下来的是 Q4_K_M,也就是 4 bit 混合量化,关键层保留更高精度,每参数平均 4.5 到 5 bit,折算下来大约 0.55 字节。记住这个系数,任何模型你都能心算:参数量 × 0.55 约等于权重文件大小。1.5B 约 1.1GB,7B 约 4.7GB,32B 约 20GB,和官方仓库里显示的体积基本对得上。
权重只是下限,真正吃掉显存的是 KV Cache。它跟上下文长度成正比,跟层数、隐藏维度也成正比。经验值是 7B 级别每 1K 上下文吃 0.1 到 0.15GB,32B 级别每 1K 上下文吃 0.5GB 左右。所以你会看到一个很反直觉的现象:同一个模型,num_ctx从 2048 提到 32768,显存占用能翻一倍还多,然后就开始 OOM。我给自己的规矩是,权重之外至少留 1.5GB 给 KV Cache 和推理中间张量,1.5B 留 1GB 就够。
| 模型档位 | 权重文件(Q4_K_M) | 4K 上下文最低显存 | 16K 上下文舒适显存 |
|---|---|---|---|
| 1.5B | 约 1.1GB | 2GB | 4GB |
| 7B / 8B | 约 4.7GB | 6GB | 10GB |
| 14B | 约 9GB | 11GB | 16GB |
| 32B | 约 20GB | 22GB | 32GB 或内存卸载 |
这张表是保守值,不是理论极值。有人能把 7B 塞进 4GB 显存跑起来,代价是上下文砍到 2048、输出稍微长一点就截断,用起来非常难受。工程上没必要卡着极限省那 1GB。
2.2 三档硬件的真实边界,别信「能跑」两个字
低档位:四核老 CPU、8G 内存、核显或 2G 显存的入门独显。这个配置只适合 1.5B。它跑在 CPU 上,内存占用大概 2.5GB,生成速度每秒 5 到 10 个 token,比人打字快一点。拿来问天气、做短文本摘要、给一段代码加注释,够。指望它写完整项目就是自虐。
中档位:i5 或 R5 这一级、16G 内存、6 到 8G 显存。这是性价比最高的一档,对应 7B。整个模型能完整放进显存,速度每秒 15 到 30 token,接近在线阅读的节奏。文章润色、单文件代码生成、日志分析这类活它都能接。
高档位:i7/i9 或 R7/R9、32G 以上内存、12G 到 24G 显存。对应 14B 和 32B。32B 在 24G 卡上能全量加载,速度每秒 10 到 20 token;如果只有 12G 显存,Ollama 会自动做分层卸载,一部分层跑在 GPU、一部分跑在 CPU,速度掉到每秒 3 到 5 token,还能用,但体验落差很大。
这里有个血泪经验:内存比显存更容易被忽略。模型加载时会先落到内存里再拷进显存,32B 模型跑起来内存峰值能到 25GB 以上,16G 内存的机器直接触发交换分区,整机卡成幻灯片。所以「内存 ≥ 权重 + 6GB」这条线要守住。
2.3 混合卸载:显存不够时的保命机制
Ollama 底层跑在 llama.cpp 上,天生支持按层拆分。当你显存不够时,它会把一部分 transformer 层放到 GPU,剩下的放到 CPU,用 PCIe 搬运中间结果。这个过程是自动的,你不用配置,但要知道代价:每跨一次总线就多一次等待,速度下降是断崖式的,不是线性的。12G 显存跑 32B 大概只有全量 GPU 的三分之一速度。
判断当前到底是全 GPU 还是混合,用一条命令就能看:
# 查看已加载到内存/显存中的模型,重点看 PROCESSOR 这一列 ollama ps # 典型输出: # NAME ID SIZE PROCESSOR UNTIL # deepseek-r1:7b xxxxxxxxxxxx 5.2 GB 100% GPU 4 minutes from now # deepseek-r1:32b xxxxxxxxxxxx 22 GB 38%/62% CPU/GPU 4 minutes from nowPROCESSOR显示100% GPU是最理想的状态;一旦出现xx%/yy% CPU/GPU,说明已经在混合跑了,这时候要么降档,要么把num_ctx调小腾显存,要么干脆接受这个速度。UNTIL是模型驻留内存的剩余时间,默认 5 分钟没有请求就卸载,下次提问要重新加载,这个后面还会提到。
2.4 动手之前,先用三条命令确认家底
别凭感觉判断自己的机器。Windows 用任务管理器看显存和内存,Linux 和 macOS 用命令行更准:
# Linux:看显卡型号和显存 lspci | grep -i vga nvidia-smi --query-gpu=name,memory.total --format=csv # 看内存总量和可用量(单位 MB) free -m # 看模型目录所在分区的剩余空间,模型文件很大,留足余量 df -h ~/.ollamaWindows 上打开 PowerShell 执行nvidia-smi也能拿到同样的信息,没有独显的话这条命令会报「不是内部或外部命令」,那基本就锁定 1.5B 档了。磁盘空间建议留权重的两倍:一是下载过程中会有临时文件,二是你后面大概率会同时留两三个模型做对比。
3. Ollama 安装与模型拉取:三条命令之后的第一句回答
3.1 三平台安装与验证,别跳过验证这一步
Windows 和 macOS 都是图形化安装包,一路下一步就行,装完在开始菜单或者应用程序文件夹里能找到图标。Linux 用一行脚本搞定:
# Linux 一键安装,脚本会自动创建 ollama 用户和 systemd 服务 curl -fsSL https://ollama.com/install.sh | sh # 装完验证版本号,能打印出来就说明二进制在 PATH 里 ollama -v # 再看服务有没有起来,11434 是默认端口 curl http://localhost:11434/ # 正常返回:Ollama is running这三步里最容易出问题的是第二条。有些 Linux 发行版装完之后当前 shell 的 PATH 没刷新,ollama -v提示 command not found,重开一个终端或者source ~/.bashrc就好,不是安装失败。第三条返回Ollama is running才代表后台服务真的在监听,只装二进制不启动服务是跑不了模型的。
Windows 用户注意一点:装完之后 Ollama 会常驻在系统托盘,开机自启。如果你后面要改环境变量,改完必须从托盘右键退出再重新打开,否则新配置不生效——这个坑我踩过不止一次。
3.2 装完先改两个环境变量,能省掉后面 80% 的麻烦
默认模型存在系统盘用户目录下,7B 一个就 4.7GB,32B 直接 20GB,C 盘很快就红了。所以装完第一件事是迁移模型目录。第二个是监听地址,默认只监听127.0.0.1,同一局域网里的手机、平板、同事的机器都连不上。
Windows 用setx写用户级环境变量,写完重开终端:
# 把模型存到 D 盘,路径不要带中文和空格 setx OLLAMA_MODELS "D:\ollama\models" # 让服务监听所有网卡,方便局域网内其他设备接入 setx OLLAMA_HOST "0.0.0.0:11434" # 模型常驻内存 30 分钟,避免频繁冷启动(默认 5 分钟) setx OLLAMA_KEEP_ALIVE "30m"Linux 走 systemd,不要直接改/etc/environment,用 override 更干净:
# 编辑服务覆盖配置,写入环境变量 sudo systemctl edit ollama.service # 在打开的编辑器里填入: # [Service] # Environment="OLLAMA_MODELS=/data/ollama/models" # Environment="OLLAMA_HOST=0.0.0.0:11434" # Environment="OLLAMA_KEEP_ALIVE=30m" # 重载配置并重启服务 sudo systemctl daemon-reload sudo systemctl restart ollamaOLLAMA_MODELS改完,之前已经拉过的模型不会自动搬过去,得手动剪切过去或者重新拉。OLLAMA_KEEP_ALIVE设成-1表示永不卸载,适合专用推理机;设太小会导致每次提问都要花十几秒加载模型,体验很差。OLLAMA_HOST改成0.0.0.0之后记得在系统防火墙里放行 11434 端口,否则局域网还是连不上。
还有一个进阶变量值得知道:OLLAMA_FLASH_ATTENTION=1,开启后能省一部分显存,代价是部分老显卡可能不兼容。以及OLLAMA_KV_CACHE_TYPE=q8_0,把 KV Cache 量化到 8 bit,长上下文场景下显存能省将近一半,精度损失很小,这是我跑 32B 时的常规操作。
3.3 拉模型:标签写错是最常见的翻车
Ollama 的模型名是名字:标签的格式,冒号后面不写默认latest。DeepSeek-R1 系列的标签是1.5b、7b、8b、14b、32b、70b这种小写带单位的形式,写成7B或者deepseek-r1-7b都会报pull model manifest: file does not exist。
# 拉取 7B 版本,首次会自动下载权重和模板 ollama pull deepseek-r1:7b # 下载过程中断不用慌,重新执行同一条命令会从断点继续 ollama pull deepseek-r1:7b # 拉完确认一下本地都有什么 ollama list # NAME ID SIZE MODIFIED # deepseek-r1:7b xxxxxxxxxxxx 4.7 GB 2 minutes ago # 想看模型的上下文长度、量化方式、模板参数 ollama show deepseek-r1:7bollama show的输出里有个context length字段,这是模型训练时支持的最大上下文,不代表你本地的默认值。Ollama 实际使用的上下文由num_ctx参数决定,默认 4096,这点很关键,后面调参要动它。
下载速度取决于你的网络和时段,4.7GB 的文件在一般宽带上十几分钟。如果卡在某个百分比长时间不动,先别急着 Ctrl+C,Ollama 是按 blob 分块下载的,单个块可能比较大。超过十分钟完全没进度再中断重试,重试会复用已下载的块。晚上八点到十一点是高峰,换个时段往往快很多。
3.4 第一次对话与 API 直接调用
# 交互模式,直接进对话界面 ollama run deepseek-r1:7b # 也可以一次性提问,适合写进脚本 ollama run deepseek-r1:7b "用一句话解释什么是 KV Cache"进交互界面后输入一句「今天适合做点什么」,能正常返回就说明整条链路通了。R1 系列有个特点:它会把思考过程放在Thinking区块里先输出,然后再给正式回答。这个思考过程在 Ollama 的终端里会以灰色显示,不算在正式回复里,但会消耗 token 和时间。如果你只想要结果不想要思考过程,可以在提示词里明确要求「直接给结论,不要输出思考过程」,实测能省三成左右的生成时间。
真正把模型用起来,靠的是 HTTP 接口而不是终端。Ollama 提供两套 API:原生的/api/chat和兼容 OpenAI 的/v1/chat/completions。后者更重要,因为市面上大部分客户端和插件都按 OpenAI 的协议来接。
# 原生接口,messages 是标准的角色数组 curl http://localhost:11434/api/chat -d '{ "model": "deepseek-r1:7b", "messages": [ {"role": "user", "content": "把下面这句话改得更正式:这个方案我觉得还行"} ], "stream": false }'model必须和ollama list里的名字完全一致,stream设成false会等全部生成完一次性返回,方便脚本处理;设成true则是流式输出,客户端做打字机效果用这个。不传stream默认是true,很多人写脚本发现返回的是一堆分行的 JSON,就是漏了这个参数。
4. 接上界面和编辑器:Chatbox、兼容层与 IDE 插件
4.1 Chatbox 的四个填空,错一个就连不上
终端聊天没法保存历史、没法切换会话,日常用还是得有个图形界面。Chatbox 是我比较推荐的一个,跨平台,Windows、macOS、Linux、手机都有,配置项也直观。
装完之后点左下角设置,进「模型」选项卡,需要填四个地方:
| 配置项 | 填什么 | 说明 |
|---|---|---|
| AI 模型提供方 | Ollama | 选错成 OpenAI 就连不上本地 |
| API 域名 | http://localhost:11434 | 不要加/v1,也不要加/api |
| 模型 | deepseek-r1:7b | 必须和ollama list完全一致 |
| API Key | 留空 | 本地部署不需要鉴权 |
填完点保存,在对话框里发一句话测试。如果报连接失败,先回到终端curl http://localhost:11434/确认服务活着,再检查域名有没有多写斜杠。如果报模型不存在,把ollama list的输出原样复制过去,大小写和冒号都别改。
Chatbox 还有个好处是支持多模型并存,你可以在同一个界面里配 1.5B 和 32B 两个条目,轻任务用小的,重任务切大的,不用来回改配置。
4.2 兼容层:为什么有些客户端非要你填 API Key
Chatbox 走的是 Ollama 原生协议,但像一些通用型客户端、翻译插件、浏览器扩展,只认 OpenAI 的接口规范,它们会强制要求填一个 API Key,不填不让保存。这时候把提供方选成「OpenAI API 兼容」,域名填http://localhost:11434/v1,Key 随便填一个非空字符串比如ollama就行——本地服务根本不校验这个字段,它只是客户端表单的必填项。
这里的关键是那个/v1后缀。OpenAI 兼容层的完整路径是http://localhost:11434/v1/chat/completions,客户端通常会自动拼接后半段,所以你只需要填到/v1为止。填成http://localhost:11434会 404,填成http://localhost:11434/v1/chat/completions会变成双份路径,也是 404。
用 Python 直接调兼容层是这样的:
from openai import OpenAI # 指向本地 Ollama 的兼容端点,key 随便填 client = OpenAI( base_url="http://localhost:11434/v1", api_key="ollama", ) resp = client.chat.completions.create( model="deepseek-r1:7b", messages=[ {"role": "system", "content": "你是一名严谨的中文技术助理,回答简洁。"}, {"role": "user", "content": "解释一下什么是量化"}, ], temperature=0.6, # R1 官方推荐区间 0.5-0.7 max_tokens=1024, # 对应 Ollama 的 num_predict ) print(resp.choices[0].message.content)base_url必须带/v1,model用本地标签名,max_tokens在兼容层会被翻译成 Ollama 的num_predict。这套写法最大的价值是可移植:哪天你把这套代码切到云端服务,只改base_url和api_key两行,其余逻辑不用动。反过来,团队里已经写好的 OpenAI 调用代码,改这两行就能全部跑到本地模型上,迁移成本极低。
4.3 局域网共享:一台机器给一个组用
把OLLAMA_HOST设成0.0.0.0:11434并放行防火墙之后,同一网段的其他设备就能用http://你的内网IP:11434访问了。内网 IP 用ipconfig(Windows)或ip addr(Linux)查,一般是192.168.x.x开头。
共享场景下有两个参数要调。一是OLLAMA_MAX_LOADED_MODELS,默认只保留一个模型在内存里,多人用不同模型时会互相挤掉,频繁重载;设成 2 到 3 能缓解,代价是内存占用翻倍。二是OLLAMA_NUM_PARALLEL,控制同时处理的请求数,默认是 1,两个人同时提问后面那个会排队。设成 2 到 4 比较合理,再高显存扛不住,反而每个请求都变慢。
并发这件事有个反直觉的地方:不是并行数越高吞吐越大。因为模型权重是共享的,KV Cache 是每个请求各一份,并行数翻倍等于 KV Cache 翻倍。8G 显存跑 7B 的时候开 4 路并行,大概率直接 OOM。我的做法是先开 2 路,用ollama ps看显存还剩多少,再决定要不要往上加。
4.4 编辑器里用起来:Continue 插件的配置
在编辑器里直接调用本地模型,是这套部署真正产生生产力的一步。以 VS Code 加 Continue 插件为例,装完插件后在配置里加一个模型条目:
# Continue 配置文件,models 数组里可以同时挂多个本地模型 models: - name: deepseek-r1:7b provider: ollama model: deepseek-r1:7b apiBase: http://localhost:11434 roles: - chat - edit defaultCompletionOptions: contextLength: 8192 # 别超过模型实际能力,也别超过显存 maxTokens: 2048provider写ollama就不用填 apiKey,写openai的话apiBase要带/v1。roles决定这个模型参与哪些场景:chat是侧边栏对话,edit是选中代码后原地改写,apply是让模型直接改文件。7B 模型建议只开chat和edit,apply对指令遵循能力要求高,小模型容易改坏。
实际用起来,最舒服的是选中一段函数按快捷键问「这段有没有空指针风险」,模型会结合上下文给判断。R1 的思考过程在这里反而是优势,它会把推理链条摊开,你能看到它是怎么一步步定位问题的,比直接给个结论更可信。当然代价是慢,7B 在 8G 显存上回答一个问题大概 5 到 10 秒,习惯之后还好。
5. 排查记录:六次翻车与对应的判断顺序
5.1 卡在 pulling manifest 一动不动
现象:执行ollama pull deepseek-r1:32b,进度条走到某个百分比之后十几分钟没有任何变化,磁盘占用也不涨。
原因:Ollama 的下载是按 blob 分块的,每个块从几十 MB 到几 GB 不等,大块在弱网环境下容易卡死。也可能是下载时段正好撞上高峰,或者本地 DNS 解析不稳定导致连接一直重试。
解决:先别急着删,Ctrl+C 中断后重新执行同一条命令,已经下完的块会复用,不会从头来。连续两次都卡在同一个位置,换个网络环境(比如从 Wi-Fi 换到有线,或者换个时间段)再试。如果反复失败,检查~/.ollama/models/blobs目录的剩余空间,空间不足时下载会静默失败,日志里只有一行不起眼的 write error。
5.2 一加载就整机卡死,鼠标都动不了
现象:ollama run deepseek-r1:32b之后机器风扇狂转,鼠标指针卡顿,几秒后整个桌面失去响应,只能强制重启。
原因:模型权重先加载进内存再拷贝到显存,32B 模型加载峰值内存超过 25GB,16G 内存的机器直接打满并开始疯狂读写交换分区。这不是显存问题,是内存问题,所以看显存监控是看不出异常的。
解决:降档是唯一根治办法,16G 内存老实跑 7B。如果非要跑大模型,把num_ctx压到 2048 减少 KV Cache,关掉所有浏览器和 IDE,腾出尽可能多的连续内存。另外可以设置OLLAMA_MAX_LOADED_MODELS=1防止多个模型同时驻留。判断依据很简单:任务管理器里内存占用到 95% 以上并且磁盘活动 100%,就是内存不够,不是显卡不够。
5.3 客户端报 404 或 401,服务明明是好的
现象:终端里ollama run一切正常,curl http://localhost:11434/也返回Ollama is running,但 Chatbox 或者其他客户端连不上,报 404 Not Found 或者 401 Unauthorized。
原因:走原生协议时域名多写了/api或/v1;走 OpenAI 兼容协议时域名漏了/v1;或者客户端强制要求 API Key 而输入框是空的。
解决:按协议对号入座。原生协议填http://localhost:11434,兼容协议填http://localhost:11434/v1,两者不能混。401 一定是 Key 为空,随便填个非空字符串即可,本地服务不做鉴权。还有一个隐蔽情况:客户端跑在容器里,容器内的localhost指的是容器自己,要换成宿主机的内网 IP 或者host.docker.internal才能访问到外面的 Ollama。
5.4 每次提问都要等二十秒才有第一个字
现象:模型能正常回答,但每次提问前面都要卡十几到二十秒,之后才开始一个字一个字往外蹦。连续问第二个问题又卡一次。
原因:模型被卸载了。OLLAMA_KEEP_ALIVE默认 5 分钟,超时没有请求就把模型从显存里清掉,下次提问要重新加载 4.7GB 权重。用ollama ps能看到列表是空的,或者UNTIL显示的时间很短。另一种可能是模型压根没进 GPU,全跑在 CPU 上,首次推理本身就慢。
解决:把OLLAMA_KEEP_ALIVE调到30m甚至-1(常驻不卸载),代价是显存一直被占着。如果是 CPU 推理,ollama ps会显示100% CPU,这时候要么降档,要么检查显卡驱动和 CUDA 版本是否匹配——驱动太旧时 Ollama 会静默回退到 CPU,日志里只有一行 warning,很容易被忽略。
5.5 回答被截断,说到一半没了
现象:模型输出到一半突然停止,句子不完整,没有任何报错。或者回答明显答非所问,像没看懂问题。
原因:num_predict到上限了,默认值不大,长回答会被硬截断。另一个原因是num_ctx太小,多轮对话积累几轮之后早期的上下文被挤出去,模型就「忘了」前面说过什么。R1 系列还有个额外因素:思考过程也占 token,思考一长,留给正式回答的额度就更少。
解决:把num_ctx提到 8192,num_predict提到 2048 以上,然后重新测一次显存占用。如果显存吃紧,先提num_ctx保上下文,num_predict保持 1024 左右,靠提示词让模型说简洁点。多轮对话场景下建议在客户端侧做历史裁剪,只保留最近几轮,而不是让模型自己扛全部历史。
5.6 端口被占用,服务起不来
现象:ollama serve报bind: address already in use,或者改完OLLAMA_HOST之后服务启动失败。
原因:11434 端口已经被另一个 Ollama 实例占着,常见于 Windows 上托盘程序已经在跑,你又在终端里手动ollama serve;或者改了端口但旧进程没退干净。
解决:Windows 上用netstat -ano | findstr 11434找到 PID,任务管理器里结束对应进程,然后从托盘重启。Linux 用ss -lntp | grep 11434。改端口的话,OLLAMA_HOST写成0.0.0.0:11435,客户端那边也要同步改,两边不一致就会连接被拒。改完配置一定要重启服务,改环境变量不会热生效。
6. 参数调优:把 temperature 和 num_ctx 调到自己的手感上
调参这件事,与其记推荐值,不如自己建一套固定题集。我在本地放了一个prompts.txt,里面是二十条覆盖不同场景的问题:三条代码改写、三条日志分析、三条文档润色、五条事实问答、六条开放式创作。每次改完参数,从头跑一遍,把输出贴到同一个文档里对比。这套土办法比任何「最佳实践」都可靠,因为你的硬件、你的任务分布和别人不一样。
真正值得动的参数就四个。temperature控制随机性,R1 系列官方建议 0.5 到 0.7,我写代码用 0.3,写文案用 0.8,超过 1.0 就开始胡说。top_p默认 0.95 基本不用改,除非你要极端稳定的输出,可以降到 0.7。num_ctx是显存杀手也是体验关键,7B 在 8G 卡上我固定 8192,再高就 OOM。num_predict按任务类型给,问答 512 够,长文生成给 2048。
这些值不要每次靠命令行传参,用 Modelfile 固化下来,起个自己的名字:
# 保存为 Modelfile,放在任意目录 FROM deepseek-r1:7b # 上下文 8K,生成长度上限 2K PARAMETER num_ctx 8192 PARAMETER num_predict 2048 # 偏保守的采样,适合技术问答 PARAMETER temperature 0.3 PARAMETER top_p 0.9 # 固定系统提示词,省掉每次手写 SYSTEM """你是一名严谨的中文技术助理。回答先给结论,再给理由,不废话。涉及代码时给出可直接运行的完整片段,并标注语言。"""FROM指向已有的模型标签,不会重新下载权重,只生成一层新的配置。执行ollama create ds7b-tech -f Modelfile之后,用ollama run ds7b-tech启动,所有参数和系统提示词都带着走。想再要一个「文案版」,复制一份改改温度和 SYSTEM 就行,两个模型共享同一份权重,磁盘上不会翻倍。
从那以后我每次新建模型配置,都强制先跑一遍那二十条题集,把输出存档对比,确认没有变差才敢在正式任务里用。这套习惯救过我两次——一次是num_ctx调大之后显存溢出静默降级到 CPU,速度掉了一半但输出看起来正常,光看结果根本发现不了;另一次是温度从 0.3 改到 0.7 之后代码生成开始漏边界判断,也是靠对比存档才抓出来。本地部署的麻烦从来不在于装不上,而在于装上了你不知道它什么时候在偷偷变差。希望这些记录能帮你少走几段弯路。
本文还有配套的精品资源,点击获取