你可能已经在别的文章里看过「本地部署要不要做」的结论,真动手时却卡在第一步:到底用哪个框架、下哪个量化版本、显存会不会爆、起完服务怎么让别的程序连上。这篇不讲该不该自建,只讲怎么把 DeepSeek 3.2 和 1.5B 这类小尺寸模型在本机跑成一个能调用的服务,从环境准备到报错排查按顺序走一遍,跑不起来时按清单逐项对照。
这篇不讲「本地部署到底值不值」,那个判断别的文章已经讲透了。这里只解决动手之后卡住的地方:框架选哪个、模型下哪个版本、显存会不会爆、服务起完为什么别的程序连不上。目标就一个,让你在本机把 DeepSeek 3.2 和 1.5B 这类尺寸的模型跑成一个能调用的服务。
整体顺序是:先定框架和硬件底线,再挑量化档位、算显存,然后起服务做连通性验证,最后接进自己的程序。每一步都给了判断标准和排查顺序,跑不起来时按清单逐项对照,别凭感觉重装。
先定框架和硬件底线
框架选择看用途,不看热度。只想自己聊两句、不想折腾,就用带模型仓库的一体化工具,下载和启动都是一条命令;要把本地模型接进自己的应用、追吞吐量,再考虑 vLLM 这类推理服务框架;习惯命令行、想精细控制参数的,走 llama.cpp 路线。
| 你的情况 | 优先考虑 | 理由 |
|---|---|---|
| 单机自用,少折腾 | 带模型仓库的一体化工具 | 一条命令拉模型起服务,不用管依赖 |
| 接进自己的应用 | 推理服务框架 | 接口规范、并发和吞吐更好 |
| 命令行党,要控参数 | llama.cpp 系 | 量化档位、上下文、线程都能手调 |
- 确认显卡型号和显存大小,这是能不能跑、能跑多大的第一约束
- 看内存容量,纯 CPU 推理和显存不够时卸载层都吃内存
- 留足磁盘空间,模型权重加缓存往往比你预期的大
- 核显和纯 CPU 也能跑 1.5B 这种小尺寸,但速度预期要放低,别拿它和独显比
量化档位怎么挑,显存怎么算
显存占用由三个变量共同决定:参数量、量化位数、上下文长度。粗估方式是「参数量 × 每参数字节数」先算出权重体积,再给 KV 缓存和运行时留余量。注意这只是权重,上下文一开大,KV 缓存会迅速吃掉剩下的空间。
| 量化档位 | 显存占用 | 质量倾向 | 适合谁 |
|---|---|---|---|
| 高位宽 | 最高 | 最接近原始效果 | 显存宽裕,追求质量 |
| 中位宽 | 中等 | 损失可接受 | 大多数单机自用场景 |
| 低位宽 | 最低 | 容易掉质量 | 显存紧张,能忍输出变差 |
1.5B 这类小模型本来就轻,没必要压到最低位宽,反而更该关注对话质量够不够用。上下文开多大要单独算,长上下文是显存杀手,先按实际任务需要设,不必一上来拉满。拿不准就先去站内的部署测算页,按你的显卡和模型过一遍,比在群里问「能不能跑」靠谱得多。具体档位对应的占用数字,到 /tools/speed-test 核对当时的口径。
起服务、验证、常见报错排查
- 下载与放置确认模型文件落在工具的模型目录,或正确挂载进容器。下载中断就重新拉,不要手动拼残缺文件,这种问题往往在启动时才暴露。
- 启动与端口默认端口被占用是高频问题,改端口或先查占用进程。首次加载比后续慢很多,别急着判定失败,等日志走完再说。
- 连通性验证先本地 curl 或自带对话界面确认服务活着,再让上层程序去连。连不上按固定顺序查,别乱改。
- 性能调参输出慢多半是显存不够、部分层被卸载到 CPU,或者上下文设太大。先降上下文,再看要不要换更低量化档位。
连通性排查顺序建议固定下来:服务是否在跑 → 端口是否对 → 地址写的是 localhost 还是 0.0.0.0 → 防火墙是否放行 → API key 与鉴权是否匹配。多数「连不上」卡在前三步,不用一上来就怀疑模型。
接进自己的程序,以及什么时候别硬扛
本地服务的调用方式和主流 API 大体兼容,把 base_url 指到本机地址、model 名填对即可。用轻客户端、脚本或知识库工具连本地服务时,最常见的坑是地址写成了外部域名,或者模型名没对上——先在服务端确认这两项,再看客户端。
换模型前,建议先在站内比一遍各家的接口口径,省得接完才发现字段对不上。各家价格与模型规格是变动的,去 /price-watch 核对当时的数字,别用记忆里的旧值做决策。
- 要做多人并发,本机单卡往往撑不住,该回到「本地还是调用」那个判断上
- 要稳定长上下文,显存压力会成倍上升,先评估再动手
- 要模型能力接近官方在线版,本地小尺寸基本达不到,别继续调参硬扛
- 部署完先跑几个自己的真实任务看输出质量,再决定留哪个量化版本
常见问题
只有一台普通笔记本,没有独立显卡,能跑 deepseek 1.5b 吗?
能跑,但别期待流畅。小尺寸模型放在纯 CPU 或核显上通常能出结果,速度取决于内存带宽和线程数,适合做实验、验证流程,不适合日常当主力对话用。想体感好一点,优先降低上下文长度、选更激进的量化档位,并给电脑留出足够内存余量。
本地跑起来的 deepseek 和官方在线版差别大吗?
差别主要在模型尺寸和量化程度。你能在自己机器上跑的多半是缩小版或低位宽量化版,能力上限和官方托管的完整版本不是一回事;本地的好处是数据不出机器、调用不受限,代价是质量与速度的折中。具体该选哪条路,看你是重隐私还是重效果。
服务起不来、上层程序连不上,第一步查什么?
先确认推理服务本身是否真的在运行、监听的是哪个端口,用本地浏览器或 curl 打一次它的接口。本机能通、外部程序不通,就往地址和网络方向查:localhost 与 0.0.0.0 的区别、防火墙、容器端口映射、以及客户端里填的模型名是否和服务端一致。