简介这份资源是一份面向AI推理部署与深度学习开发者的DeepSeek模型本地化部署指南适合具备一定软硬件基础、希望降低云服务成本或深入理解大模型底层机制的研究人员与工程师。内容围绕Ollama安装、按显存规模选择DeepSeek-R1参数量版本、Docker与Open WebUI容器化辅助部署以及命令行与浏览器端首次登录验证等环节展开覆盖从环境搭建到图形界面使用的完整链路。资源包为1个docx文档大小约15KB以图文步骤与命令清单形式组织便于按硬件条件对照查阅。目前已有5221人学习下载读者可借此掌握一套通用的大规模语言模型本地部署方案理解不同显存配置与模型规模的匹配逻辑并积累容器管理与服务暴露的实操经验为后续类似项目落地提供可复用的参考路径。1. 为什么要在本地跑 DeepSeek从显存账单说起很多人第一次动本地部署的念头是因为 API 调用开始变得不划算——不是钱的问题而是数据不能出内网、响应延迟不可控、批量任务被限流。DeepSeek 系列模型在中文理解和代码生成上的表现让「本地部署 DeepSeek」成了 2024 年以来搜索量最稳的关键词之一。但真正动手时第一个拦路虎不是模型本身而是显存。以 DeepSeek-R1 的蒸馏版本为例7B 参数在 FP16 精度下大约需要 14GB 显存4-bit 量化后压到 45GB一台带 RTX 3060 12GB 的机器就能跑起来。这就是 Ollama 的价值它把模型量化、推理引擎、服务接口打包成一个命令行工具你不需要懂 CUDA 编译也不需要手写推理循环。本文面向的是想在自己机器上跑通 DeepSeek、并且希望知道每一步在做什么的开发者。从安装、拉模型、调参数到接入现有工具链按可复现的顺序讲清楚。2. Ollama 安装与 DeepSeek 模型拉取的最小闭环2.1 Ollama 在 Windows、macOS、Linux 上的安装差异Ollama 的安装包在三个平台上的形态不同踩坑点也不一样。Windows 和 macOS 直接下载安装包双击即可安装完成后 Ollama 会注册为后台服务开机自启。Linux 上官方推荐用脚本安装但国内网络环境下脚本拉取二进制文件经常超时这是「ollama下载慢」被反复搜索的根本原因。Linux 下的标准安装命令# 官方脚本安装国内网络可能卡在下载二进制阶段 curl -fsSL https://ollama.com/install.sh | sh # 安装完成后验证服务状态 systemctl status ollama # 查看版本确认安装成功 ollama --version如果脚本安装卡住常见做法是手动下载对应架构的压缩包解压后把二进制文件放到/usr/local/bin/再手写 systemd unit 文件。这一步的关键是确认你的 CPU 架构uname -m返回x86_64还是aarch64下错架构的包会直接报「cannot execute binary file」。提示Windows 上如果之前装过 WSL 版本的 Ollama再装原生 Windows 版会出现端口 11434 冲突先netstat -ano | findstr 11434确认占用进程。2.2 用 ollama pull 拉取 DeepSeek 各尺寸模型Ollama 的模型库用模型名:标签的格式区分尺寸和量化等级。DeepSeek 相关的常用标签如下模型标签参数量量化最低显存适用场景deepseek-r1:1.5b1.5BQ4_K_M2GB轻量问答、边缘设备deepseek-r1:7b7BQ4_K_M5GB日常对话、代码补全deepseek-r1:14b14BQ4_K_M10GB复杂推理、长文本deepseek-r1:32b32BQ4_K_M22GB接近 API 质量deepseek-coder:6.7b6.7BQ4_K_M5GB纯代码任务拉取命令本身很简单# 拉取 7B 量化版首次拉取约 4.7GB ollama pull deepseek-r1:7b # 查看本地已有模型及占用空间 ollama list # 查看某个模型的详细信息包括量化方式和参数规模 ollama show deepseek-r1:7bollama pull支持断点续传中断后重新执行会从已下载的分片继续。如果下载速度长期低于 1MB/s问题通常出在 CDN 节点选择上而不是你的带宽。ollama show输出的Parameters和Quantization两行值得每次拉完都看一眼确认拿到的确实是你要的量化等级——标签相同但不同时间拉取的模型量化方式可能被维护者调整过。2.3 首次运行与交互式对话验证拉取完成后直接ollama run进入交互模式# 启动交互式对话首次加载模型到显存需要几秒到几十秒 ollama run deepseek-r1:7b # 非交互式单次提问适合脚本调用 ollama run deepseek-r1:7b 用 Python 写一个快速排序 # 查看模型加载和推理时的资源占用 ollama psollama ps会显示当前加载的模型、占用的显存大小以及是跑在 GPU 还是 CPU 上。如果PROCESSOR列显示 100% CPU说明 Ollama 没识别到你的显卡推理速度会慢一个数量级。NVIDIA 显卡需要确认驱动版本和 CUDA 运行时是否满足 Ollama 的要求nvidia-smi能正常输出才说明驱动没问题。3. 让 DeepSeek 跑得更稳显存、上下文与并发参数3.1 低显存运行模型的核心参数num_gpu 与 num_ctxOllama 默认会尽可能把模型层放到 GPU 上显存不够时自动回退到 CPU。但自动策略不一定最优手动控制两个参数往往能救回一台「差一点就能跑」的机器。num_gpu控制放到 GPU 上的层数。7B 模型通常有 32 层左右全部放 GPU 需要约 5GB 显存。如果你只有 4GB 显存可以设num_gpu 24剩下的层跑在 CPU 上速度下降但能跑起来。num_ctx控制上下文窗口大小默认 2048。这个值对显存的影响是线性的——调到 8192KV Cache 占用会翻四倍。很多人抱怨「模型加载后显存爆了」八成是num_ctx设太大。通过 Modelfile 固化参数# 创建一个自定义 Modelfile cat Modelfile EOF FROM deepseek-r1:7b # 只放 28 层到 GPU留出显存给上下文 PARAMETER num_gpu 28 # 上下文设为 4096平衡长文本和显存 PARAMETER num_ctx 4096 # 温度调低减少推理任务的随机性 PARAMETER temperature 0.6 # 限制单次生成的最大 token 数 PARAMETER num_predict 2048 EOF # 基于 Modelfile 创建自定义模型 ollama create deepseek-r1-custom -f Modelfile # 用自定义模型运行 ollama run deepseek-r1-customtemperature对 DeepSeek-R1 这类推理模型建议设在 0.50.7太高会导致思维链发散。num_predict限制的是输出长度不是输入长度设太小会出现回答被截断的情况。3.2 用环境变量控制模型常驻与并发请求Ollama 默认在模型空闲 5 分钟后从显存卸载。如果你在开发调试阶段频繁调用反复加载模型很浪费时间。通过环境变量可以调整这个行为# Linux systemd 方式修改服务配置 sudo systemctl edit ollama # 在编辑器中加入以下内容 [Service] EnvironmentOLLAMA_KEEP_ALIVE-1 EnvironmentOLLAMA_NUM_PARALLEL2 EnvironmentOLLAMA_MAX_LOADED_MODELS1 # 重载配置并重启 sudo systemctl daemon-reload sudo systemctl restart ollamaOLLAMA_KEEP_ALIVE-1表示模型永不卸载适合专用推理机。OLLAMA_NUM_PARALLEL控制同时处理的请求数设成 2 意味着两个请求共享同一份模型权重显存占用不会翻倍但吞吐会受限于计算资源。OLLAMA_MAX_LOADED_MODELS限制同时加载的模型数量多模型场景下防止显存被瓜分。注意OLLAMA_NUM_PARALLEL调大后每个请求分到的num_ctx会按比例缩小长上下文场景下反而容易出问题。3.3 通过 API 接口调用本地 DeepSeek 服务Ollama 启动后会在11434端口暴露 HTTP API兼容 OpenAI 的部分接口格式。这意味着现有基于 OpenAI SDK 的代码改个 base_url 就能切到本地模型import requests import json # Ollama 原生 API 调用 url http://localhost:11434/api/generate payload { model: deepseek-r1:7b, prompt: 解释一下什么是 KV Cache, stream: False, # 关闭流式一次性拿到完整响应 options: { temperature: 0.6, num_ctx: 4096 } } response requests.post(url, jsonpayload) result response.json() print(result[response]) # 打印推理耗时单位纳秒 print(f耗时: {result[total_duration] / 1e9:.2f}s)stream设为False时接口会等模型生成完毕再返回适合批处理脚本。设为True则逐 token 返回适合做打字机效果的对话界面。options字段里的参数会覆盖 Modelfile 中的设置优先级更高。如果要走 OpenAI 兼容接口把 base_url 指向http://localhost:11434/v1api_key 随便填一个非空字符串即可。这种接法在把本地模型接入 Dify、Continue、各类 IDE 插件时特别省事。4. 本地 DeepSeek 的进阶玩法与效果验证4.1 用 Modelfile 定制系统提示词与角色Ollama 的 Modelfile 支持SYSTEM指令可以把系统提示词固化进模型省去每次请求都传一遍的麻烦。比如做一个专门做代码审查的 DeepSeekcat Modelfile.reviewer EOF FROM deepseek-r1:7b SYSTEM 你是一个严格的代码审查员。对用户提供的代码 按以下顺序输出1. 潜在 bug2. 性能问题3. 可读性建议。 每条建议必须给出修改后的代码片段。 PARAMETER temperature 0.3 PARAMETER num_ctx 8192 EOF ollama create deepseek-reviewer -f Modelfile.reviewer ollama run deepseek-reviewerSYSTEM里的内容会作为对话的第一条 system 消息注入对模型行为的影响比在用户消息里写「请你扮演…」要稳定得多。temperature调到 0.3 是为了让审查意见更确定减少「可能」「也许」这类模糊表述。4.2 验证本地部署是否真正生效的三个检查点部署完成后用三个检查点确认一切正常。第一ollama ps的PROCESSOR列应该显示 GPU 占比而不是 100% CPU。第二用同一个问题分别请求本地模型和官方 API对比响应质量是否在同一量级——如果本地输出明显更差检查是不是拉错了量化版本。第三用nvidia-smi观察推理时的显存占用曲线正常情况应该是加载后稳定在一个值而不是持续增长。# 推理过程中另开终端每秒刷新显存占用 nvidia-smi --query-gpumemory.used,memory.total --formatcsv -l 1如果显存占用持续增长直到 OOM通常是num_ctx设得过大或者并发请求数超过了显存承受能力。把OLLAMA_NUM_PARALLEL调回 1num_ctx降到 4096 再试。4.3 模型导出与离线迁移的实操路径内网机器无法直接ollama pull时需要把已拉取的模型导出成文件再迁移。Ollama 的模型存储在~/.ollama/models/目录下但直接拷贝这个目录在不同版本间可能不兼容。更稳妥的方式是用ollama show --modelfile导出 Modelfile再在目标机器上重建# 在源机器上导出模型的完整 Modelfile ollama show --modelfile deepseek-r1:7b deepseek-r1-7b.modelfile # 查看导出的文件确认包含 FROM 和层信息 head -20 deepseek-r1-7b.modelfile # 在目标机器上需要先手动准备好 blob 文件 # 将源机器 ~/.ollama/models/blobs/ 下的文件拷贝到目标机器对应目录 # 然后基于 Modelfile 重建 ollama create deepseek-r1:7b -f deepseek-r1-7b.modelfile导出的 Modelfile 里FROM行指向的是一个 blob 的 SHA256 摘要所以目标机器上必须有对应的 blob 文件。整个blobs目录拷贝过去是最省事的做法注意保持文件权限一致。迁移完成后用ollama list确认模型出现在列表中再跑一次ollama run验证推理正常。这套流程在把模型从开发机搬到内网推理服务器时很实用不需要目标机器能访问外网。本文还有配套的精品资源点击获取