news 2026/10/20 18:30:14

DeepSeek本地部署避坑指南:Ollama安装与模型尺寸选择

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DeepSeek本地部署避坑指南:Ollama安装与模型尺寸选择

简介:这份PDF资料面向对大模型感兴趣的技术爱好者与研发人员,聚焦DeepSeek在本地环境下的部署方法与核心训练原理,帮助读者以低成本方式搭建可离线运行的大模型应用。内容从本地部署的三个实操步骤切入,逐步延伸至LLM基础概念、Transformer架构,以及预训练、监督微调与强化学习的训练流程,并重点图解DeepSeek-R1的完整训练过程,包括含R1-Zero的中间推理模型与通用强化学习两项核心创新。资源包共1个PDF文件,约2.64MB,以图文并茂的图解形式呈现,配合大量操作界面截图,便于对照理解部署细节与推理模型的构建逻辑。目前已有2199人学习,适合希望快速上手本地部署、同时想深入理解强化学习驱动推理模型训练思路的读者参考。

1. 本地跑 DeepSeek 这件事,版本选错第一步就卡住

上周帮一个做后端的朋友在旧笔记本上装 DeepSeek,他上来就ollama pull deepseek-r1:7b,结果 8G 内存的机器直接卡到风扇狂转,命令行十分钟没吐出第一个字。这不是模型坏了,是版本和硬件没对上。DeepSeek 本地部署这件事,说穿了就三步:装 Ollama、拉模型、跑对话,但真正让人翻车的是「拉哪个尺寸」。1.5b、7b、8b 这些后缀不是版本号,是参数量,b 代表 billion,1.5b 就是 15 亿参数,7b 是 70 亿。参数量越大推理能力越强,但对内存和显存的要求也水涨船高。普通办公本、没有独显的机器,老老实实从deepseek-r1:1.5b起步,跑通了再考虑往上换。这套方案适合想在自己电脑上离线用大模型、又不想折腾编译环境的人,尤其是数据不能外传的场景。装不好最典型的后果就是:命令敲下去没反应、模型加载到一半被系统杀掉、或者对话界面一直转圈。

2. 装 Ollama 与拉取 DeepSeek-R1:从零到能对话的三步

2.1 为什么用 Ollama 而不是自己编译

本地跑大模型有好几条路,自己用 transformers 加载权重、用 llama.cpp 编译、或者走 Ollama 这类模型管理器。前两种对新手不友好,光是 CUDA 版本、PyTorch 版本、量化格式就能耗掉一整天。Ollama 的思路是把模型下载、量化、推理引擎打包成一个命令行工具,装完之后管理模型就像用 docker 拉镜像一样直接。它内置了量化后的模型文件,不需要你单独去 HuggingFace 下几个 G 的权重再转格式。对于「我就想在本机跟模型聊两句」这个需求,Ollama 是目前踩坑最少的路径。它支持 Windows、macOS、Linux 三个平台,安装包都是下一步下一步,装完在终端里能直接调起来。

2.2 安装 Ollama 并确认命令可用

去 Ollama 官网下载对应系统的安装包,Windows 是.exe,macOS 是.dmg,Linux 用一条脚本。安装过程基本就是点下一步,不需要改路径。装完之后打开命令窗口(Windows 用 cmd 或 PowerShell,macOS 用 Terminal),输入下面这行:

ollama --version

如果能看到版本号输出,说明安装成功。接着输入ollama回车,会列出它支持的所有子命令,大概十来个,常用的就几个:pull拉模型、run跑模型、list看本地已有模型、rm删模型、serve启动后台服务。这一步的意义是确认环境变量已经配好,终端能找到 ollama 这个可执行文件。如果提示'ollama' 不是内部或外部命令,说明安装时没勾选加入 PATH,Windows 下重新跑一遍安装包,或者手动把安装目录加到系统环境变量里。

提示:Linux 下如果用脚本安装,装完可能需要重新登录一次 shell,或者执行source ~/.bashrc,否则当前终端认不到命令。

2.3 拉取 deepseek-r1:1.5b 并进入对话

确认 ollama 可用之后,拉模型就一行命令:

ollama pull deepseek-r1:1.5b

这条命令会从模型仓库把 1.5b 版本的 DeepSeek-R1 下载到本地,下载量大概在 1G 出头。下载速度取决于网络,中途断了重新执行同一条命令会续传。拉完之后用ollama list能看到本地已有的模型列表,确认deepseek-r1:1.5b在列。

接着启动对话:

ollama run deepseek-r1:1.5b

第一次 run 的时候如果模型还没拉,ollama 会自动先 pull 再 run,所以这两步其实可以合并。进入对话界面后,直接输入问题回车就行。DeepSeek-R1 是推理模型,它的回复会先输出一段thinking标签包裹的思考过程,然后才是正式回答。思考过程是模型在「打草稿」,正式回答在 `` 结束标签之后。如果你只想看结果,等它输出完就行,不用打断。

2.4 模型尺寸怎么选:1.5b、7b、8b 的硬件对照

拉模型之前先看自己机器的内存和显存,选错了尺寸就是白等。下面这张表是常见尺寸的大致要求,实际占用会因为量化方式和系统差异有浮动:

模型尺寸参数量内存/显存大致需求适用机器
deepseek-r1:1.5b15 亿2~4G普通办公本、无独显
deepseek-r1:7b70 亿8~10G16G 内存以上、有入门独显
deepseek-r1:8b80 亿10~12G32G 内存、中端显卡
deepseek-r1:14b 及以上140 亿+16G 显存起步专业工作站

我一般会建议先用 1.5b 把流程跑通,确认 ollama 和对话界面都正常,再根据机器配置往上换。换模型不需要重装 ollama,直接ollama pull新尺寸,然后ollama run新名字就行。旧模型不删也不影响,只是占磁盘。

3. 配置与调优:让 DeepSeek 在本地跑得更稳

3.1 环境变量与模型存储路径

Ollama 默认把模型存在系统盘的用户目录下,Windows 是C:\Users\用户名\.ollama\models,macOS 和 Linux 是~/.ollama/models。1.5b 的模型不大,但如果你后面要拉 7b、14b,系统盘很快就会被吃掉几十个 G。改存储路径通过环境变量OLLAMA_MODELS控制:

# Linux / macOS,写入 shell 配置文件 export OLLAMA_MODELS=/data/ollama/models # Windows PowerShell,设置用户级环境变量 [Environment]::SetEnvironmentVariable("OLLAMA_MODELS", "D:\ollama\models", "User")

设置完之后要重启终端,或者重启 ollama 服务,新路径才会生效。已经拉过的模型不会自动搬过去,需要手动把旧目录下的blobs和manifests两个文件夹复制到新位置。这一步很多人会忘,结果换了路径之后ollama list是空的,以为模型丢了,其实是没搬文件。

3.2 后台服务模式与端口调整

ollama run是前台交互模式,关掉终端对话就断了。如果想让模型常驻后台、给其他程序调用,用ollama serve启动服务:

ollama serve

默认监听127.0.0.1:11434,提供 HTTP API。其他程序可以通过这个端口发请求,比如用 curl 测试:

curl http://127.0.0.1:11434/api/generate -d '{ "model": "deepseek-r1:1.5b", "prompt": "用一句话解释什么是Transformer", "stream": false }'

如果 11434 端口被占用,通过OLLAMA_HOST环境变量改端口:

export OLLAMA_HOST=127.0.0.1:11435

改完重启服务。注意OLLAMA_HOST的值要带协议和端口,只写端口号在某些版本上不生效。

3.3 推理参数怎么调:温度、上下文长度、并发

Ollama 支持在 run 的时候传参数,或者在 Modelfile 里固化。常用的几个参数:

# 启动时指定温度和上下文窗口 ollama run deepseek-r1:1.5b --temperature 0.6 --num-ctx 4096

temperature控制输出的随机性,值越低回答越确定,做代码和数学题建议 0.2~0.6,做创意写作可以调到 0.8 以上。num_ctx是上下文窗口大小,默认 2048,调大会增加内存占用。1.5b 模型在 8G 内存的机器上,num_ctx开到 4096 基本是上限,再大就容易触发内存交换,速度断崖式下降。num_predict控制最大生成 token 数,不设的话模型可能一直输出到上下文塞满。

注意:DeepSeek-R1 的思考过程会消耗大量 token,如果num_predict设得太小,可能出现思考没结束就被截断的情况,正式回答根本出不来。

3.4 用 Modelfile 固化一套常用配置

每次 run 都敲一长串参数很烦,可以写一个 Modelfile 把配置存下来:

# 创建自定义模型,基于 deepseek-r1:1.5b ollama create my-deepseek -f ./Modelfile

Modelfile 内容示例:

FROM deepseek-r1:1.5b PARAMETER temperature 0.5 PARAMETER num_ctx 4096 PARAMETER num_predict 2048 SYSTEM "你是一个简洁的技术助手,回答控制在三段以内。"

FROM指定基础模型,PARAMETER是推理参数,SYSTEM是系统提示词。创建完之后ollama run my-deepseek就直接带上这套配置。改配置就改 Modelfile 再 create 一次,同名会覆盖。这个做法在需要固定人设或固定输出格式的场景下很实用,不用每次手动传参。

4. 避坑与排查:装 DeepSeek 最常见的五个翻车现场

4.1 拉模型卡在 pulling 不动

现象是ollama pull执行后进度条长时间不动,或者速度只有几十 KB。原因通常是模型仓库的网络连接不稳定,或者本地 DNS 解析慢。解决方式是先 Ctrl+C 中断,重新执行同一条 pull 命令,ollama 支持断点续传,不会从头下。如果反复卡,检查一下系统代理设置,ollama 会读取HTTP_PROXY和HTTPS_PROXY环境变量,代理配错了反而更慢。另外磁盘空间不足也会导致下载中断,拉之前用df -h或资源管理器确认目标盘有足够空间。

4.2 运行时报 model requires more system memory

现象是ollama run之后报内存不足,或者模型加载到一半进程被杀。原因是选的模型尺寸超过了物理内存。1.5b 在 4G 内存的机器上勉强能跑,7b 至少需要 8G 可用内存。解决办法是换小尺寸模型,或者关掉其他占内存的程序。如果机器有独显但 ollama 没用上,检查显卡驱动和 CUDA 版本,ollama 在 Linux 下需要正确的 NVIDIA 驱动才能走 GPU,否则默认走 CPU,速度会慢很多。

4.3 对话回复乱码或语言混杂

现象是模型输出中英文混在一起,或者出现重复无意义的字符。这在 1.5b 这种小模型上比较常见,参数量小导致语言一致性差。解决方式是在 SYSTEM 提示词里明确指定「请用中文回答」,或者把 temperature 调低到 0.3 以下。如果还是乱,换 7b 版本会明显改善。DeepSeek-R1 的 R1-Zero 阶段本身就有语言混合的问题,官方在通用强化学习阶段做了优化,但小尺寸模型受限于容量,优化效果有限。

4.4 ollama serve 启动后端口连不上

现象是ollama serve显示在运行,但 curl 请求 11434 端口返回 connection refused。原因是OLLAMA_HOST绑定到了127.0.0.1,只监听本地回环,外部机器访问不到。如果只是本机调用没问题,如果要给局域网其他机器用,需要改成0.0.0.0:11434。另外防火墙可能拦了端口,Linux 下用ss -tlnp | grep 11434确认监听状态,Windows 下检查防火墙入站规则。

4.5 模型删不干净导致磁盘占满

现象是ollama rm删了模型,但磁盘空间没释放。原因是 ollama 的模型文件按 blob 存储,多个模型可能共享底层 blob,直接 rm 只删了 manifest,blob 还在。彻底清理用ollama prune,或者手动删OLLAMA_MODELS目录下的blobs文件夹里没有被引用的文件。更稳妥的做法是定期ollama list看哪些模型不用了,先 rm 再 prune。我一般会在拉新模型之前先清一遍,避免磁盘悄悄被吃满。

5. 装完怎么验证:三条命令确认 DeepSeek 真的跑通了

装完之后别急着关终端,走一遍验证流程,确认模型是真的能用,而不是「看起来装上了」。第一条,确认模型在本地列表里:

ollama list

输出里应该有deepseek-r1:1.5b这一行,后面跟着尺寸和修改时间。如果列表是空的,说明 pull 没成功或者模型存到了别的路径。

第二条,用 API 模式发一个请求,不进入交互界面:

curl http://127.0.0.1:11434/api/generate -d '{ "model": "deepseek-r1:1.5b", "prompt": "1+1等于几?只回答数字。", "stream": false }'

返回的 JSON 里response字段应该包含答案。这一步验证的是后台服务和 API 通路,如果你后面要用 Python 或其他程序调用模型,这条命令通了就说明接口没问题。

第三条,进交互模式问一个需要推理的问题,观察思考过程是否正常:

ollama run deepseek-r1:1.5b

输入「一个笼子里有鸡和兔共 10 只,脚共 28 只,鸡兔各几只?」。正常情况会先输出thinking包裹的推理步骤,然后给出答案。如果思考过程完整、答案正确,说明模型加载和推理都正常。如果思考过程被截断,检查num_predict是不是设太小了。

下面这张表是我一般会对照的验证清单:

验证项命令通过标准
模型已下载ollama list列表中有目标模型
API 可用curl 发 generate 请求返回 JSON 含 response
推理正常ollama run问推理题思考过程完整、答案正确
配置生效ollama show 模型名参数与 Modelfile 一致

ollama show deepseek-r1:1.5b能看到模型的参数、模板、系统提示词等信息,用来确认自定义配置有没有生效。如果改了 Modelfile 但 show 出来的还是旧参数,说明 create 的时候没覆盖成功,检查模型名是不是写错了。

从那以后我每次装完新模型,都强制走一遍「list → curl → run 推理题」这三步,不看到思考过程完整输出就不算装完。很多人卡在「命令没报错」就以为好了,结果真用的时候发现模型根本没加载对。希望这套流程能帮你少走点弯路。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/20 18:29:34

Spring Boot + Vue前后端分离的宠物管理系统开发实战

先说说这个项目是怎么来的。当时家里养了只猫,疫苗本翻得卷了边,驱虫日期全靠手机闹钟硬记,换一家宠物医院复查就得从头讲一遍病史。身边养狗养猫的朋友也差不多,信息散在聊天记录、纸质本子和朋友圈里,真要找某一次的…

作者头像 李华
网站建设 2026/10/20 18:29:32

基于SE-ResNet的航空发动机剩余寿命预测Matlab实现

搞预测性维护的人应该都有同感:设备寿命预测这活儿,看起来是个回归问题,实际是个工程问题。最近我把一个基于SE-ResNet的航空发动机寿命预测项目在Matlab里完整跑了一遍,从数据切片到模型训练,踩了不少坑,也…

作者头像 李华
网站建设 2026/10/20 18:29:13

Python实现账号密码爆破登录与Token会话维持实战

1. 从"爆破登录"这个词说起:它到底在解决什么问题很多人第一次看到"账号密码爆破登录"这个说法,脑子里冒出来的画面可能是电影里那种黑底绿字的终端,噼里啪啦敲几下键盘就把别人系统攻破了。但如果你真的做过安全测试或者…

作者头像 李华
网站建设 2026/10/20 18:29:00

RabbitMQ数据分发实战:交换机选型、队列设计与消息可靠性保障

前阵子有个做订单中台的团队找到我,说他们的RabbitMQ集群一到业务高峰就出问题:消费者明明在线,队列里的消息却越积越多;有时候某个业务线一整天都没收到新消息,查了一圈谁都说自己那边没问题。聊下来才发现&#xff0…

作者头像 李华
网站建设 2026/10/20 18:28:34

从代号202604-DeepSeekV4看大模型预发布版本的工程化接入方法论

1. 项目概述:一个代号背后的技术信号与实操价值“202604-DeepSeekV4”这个字符串,乍看像一串时间戳加模型代号的组合体,但在我过去十年接触过的数百个AI相关项目中,它绝不是随意生成的命名。它精准对应着两个关键坐标:…

作者头像 李华
网站建设 2026/10/20 18:26:30

数据治理平台AI能力分水岭:从人肉工程到智能闭环

最近陪一个客户做数据治理平台的选型评估,对方翻完几家厂商的演示后,转过头问我:大家讲的都是AI能力,怎么价格差了快一倍?这个问题我这几年来被问过很多次。早期我自己带数据治理项目时,为了搞清一张核心业…

作者头像 李华