本教程面向希望在本机运行DeepSeek的读者,从硬件评估、工具安装到推理服务、接口调用与性能调优,逐步讲清可落地的本地部署流程。
本地部署 DeepSeek 的意义不只是把模型下载到电脑,而是让推理过程留在自己的设备或内网,减少数据外发和网络依赖。很多人第一次尝试就失败,是因为直接盯着 671B 旗舰模型,却忽略消费级硬件更适合运行蒸馏版和量化版。真正可用的路径是选对模型规模,再用成熟框架把推理服务跑起来,最后接入日常界面和业务系统。下面按这个顺序展开。
1. 先分清模型版本与硬件边界
DeepSeek 系列在本地部署时,必须区分全量模型和蒸馏模型。DeepSeek-V3 与 DeepSeek-R1 的旗舰版本采用 MoE 架构,总参数量达到 671B,完整权重需要数百 GB 存储,推理时即使量化也需要多卡服务器、大容量内存和专业部署环境,普通笔记本或单张消费显卡几乎不可能流畅运行。真正适合个人和中小团队的是 DeepSeek-R1 蒸馏版,常见规模包括 1.5B、7B、8B、14B、32B、70B,它们分别基于 Qwen 和 Llama 等底座,保留了 R1 的推理风格,又能在本地量化后运行。选择时不要只看参数,还要看任务类型:日常问答和写作选 7B 到 14B,代码辅助选 14B 到 32B,复杂推理和企业知识库再考虑 32B 或 70B。
硬件边界主要由显存、内存和量化等级决定。以 GGUF 的 q4_K_M 量化为例,1.5B 模型约需 1GB 到 2GB 显存,7B 约 4GB 到 6GB,14B 约 9GB 到 12GB,32B 约 20GB 到 24GB,70B 约 40GB 以上;实际还要为上下文 KV Cache 留出空间,上下文越长,显存占用越高。Windows 加 NVIDIA 显卡是较常见组合,RTX 3060 12GB 能舒服跑 7B 和 8B,RTX 4090 24GB 可挑战 32B 量化版,70B 则往往需要双卡或 64GB 以上内存配合 CPU 卸载。苹果 M 系列统一内存也有优势,M2 16GB 可跑 7B 量化模型,但 14B 以上会明显吃紧。把这些边界想清楚,后面的安装和参数设置才不会反复踩坑。
2. 用 Ollama 搭建最小可用环境
对大多数用户,Ollama 是本地部署 DeepSeek 的最短路径。它支持 Windows、macOS 和 Linux,安装包内置运行时,省去手动编译 llama.cpp 和配置依赖的麻烦。安装完成后在终端执行 ollama –version 能返回版本号,就说明基础环境可用。接着用 ollama pull deepseek-r1:7b 拉取模型,再用 ollama run deepseek-r1:7b 进入对话;如果机器配置较低,可以先试 deepseek-r1:1.5b,若显存充足再换 14B 或 32B。Ollama 默认使用 q4_K_M 量化,7B 模型下载体积约 4.7GB,14B 约 9GB,32B 约 20GB,70B 约 40GB,下载前要确认磁盘空间和网络稳定性。
安装后需要确认 GPU 是否真正参与推理。NVIDIA 用户应安装较新的显卡驱动,Ollama 会自动检测 CUDA;macOS 走 Metal;AMD 在部分 Linux 发行版可通过 ROCm 加速。运行 ollama ps 可以查看模型是否加载以及 GPU 占用比例,如果显示 100% GPU,说明推理主要跑在显卡上;若大量 offload 到 CPU,生成速度会从每秒几十 token 降到几 token。模型存储位置可以通过 OLLAMA_MODELS 环境变量修改,Windows 在系统环境变量中设置,Linux 可编辑 systemd 服务,避免默认下载到系统盘。若下载缓慢,可配置 HTTPS_PROXY 或使用国内镜像源,但要注意代理只影响拉取过程,不影响本地推理。
3. 接入 Open WebUI 与 API 调用

命令行适合测试,但日常使用更推荐 Open WebUI。它提供类似 ChatGPT 的网页界面,支持多轮对话、模型切换、对话历史、多用户和文档上传。用 Docker 部署最省事:执行 docker run -d -p 3000:8080 –add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data –name open-webui ghcr.io/open-webui/open-webui:main,然后在浏览器打开 :3000。首次进入注册管理员账号,在设置里把 Ollama 地址填为 :11434;如果 Open WebUI 与 Ollama 都装在宿主机,也可以直接填 :11434。保存后就能在模型列表看到 deepseek-r1:7b 等本地模型,直接开始对话。
如果要把 DeepSeek 接入自己的程序,Ollama 提供了 OpenAI 兼容接口。Python 中可以使用 openai 库,将 base_url 设为 :11434/v1,api_key 填任意非空字符串,例如 ollama,模型名写 deepseek-r1:7b,然后调用 chat.completions.create 并开启 stream 流式输出。对于 R1 蒸馏版,返回内容可能包含思维链字段或 think 标签,前端展示时最好把推理过程和最终答案分开渲染,避免用户看到大段中间推理。若使用 vLLM 部署,则启动命令中指定模型路径、tensor-parallel-size 和 max-model-len,服务端同样暴露 /v1 接口,适合需要高并发和批处理的生产场景。Open WebUI 还内置 RAG,可以上传 PDF、Word 和 Markdown,配合 nomic-embed-text 或 bge-m3 做嵌入,把本地模型变成团队知识库问答入口,但上传敏感文档前应确认向量库和插件不会外发数据。
4. 性能调优与常见故障排查
性能调优从量化和上下文两个参数入手。q4_K_M 通常在质量和显存之间最平衡,q5 和 q8 质量更高但显存占用明显增加,q3 适合极限低配但回答质量会下降。Ollama 中可以通过 Modelfile 或 API options 调整 num_ctx,默认上下文较小,提高到 8192 或 16384 会增强长文处理能力,同时也会让 KV Cache 占用更多显存;如果出现显存不足,优先降低 num_ctx、换更小模型或减少并发。OLLAMA_NUM_PARALLEL 控制并行请求数,OLLAMA_MAX_LOADED_MODELS 控制同时加载模型数,OLLAMA_KEEP_ALIVE 决定模型空闲后驻留时间。vLLM 场景下则重点看 gpu_memory_utilization、max_model_len 和 tensor_parallel_size,显存利用率可设到 0.9 左右,但长上下文要留出余量。
常见故障并不复杂。模型下载中断时,重新执行 ollama pull 通常会续传;报 CUDA out of memory 时,先确认是否选了超出显存容量的模型,再检查 num_ctx 和并行数;生成速度异常慢时,用 ollama ps 查看是否 GPU 卸载失败,Windows 还要确认没有把 Ollama 跑在集成显卡上。端口冲突可改 OLLAMA_HOST,例如设为 0.0.0.0:11434 让局域网访问,但公网暴露必须加认证和反向代理,否则本地模型可能被他人滥用。Docker 中 Open WebUI 连不上 Ollama,多数是容器网络地址写错,Linux 可用 –network host,Windows 和 macOS 用 host.docker.internal。若回答格式混乱,检查是否使用了正确的 DeepSeek-R1 模板,Ollama 官方模型已内置模板,手动导入 GGUF 时则需要在 Modelfile 中补全。对于并发高、要求稳定的生产环境,Ollama 更适合个人和轻量团队,vLLM 或 TGI 才更适合多用户批处理。
