简介:这份PDF指南面向希望在Windows 11上本地运行大模型的开发者与AI爱好者,聚焦DeepSeek-R1的Ollama部署全流程,帮助读者摆脱云端依赖、兼顾数据隐私与响应速度。资源包仅含1个PDF文件,大小约264KB,内容紧凑、便于随查随用。正文从硬件门槛讲起,涵盖多核CPU、NVIDIA CUDA显卡、16GB以上内存与20GB以上SSD空间等配置建议,再依次说明Ollama安装、服务启动、模型拉取与验证、命令行交互等关键环节,并延伸至REST API调用示例与Modelfile参数自定义,最后附上拉取失败、运行缓慢、端口占用等常见问题的排查思路。目前已有4338人学习下载,适合具备基础命令行操作能力、想快速跑通本地DeepSeek-R1的读者参考。
1. Win11 装 Ollama 跑 DeepSeek-R1:先看清硬件门槛再动手
在 Windows 11 上折腾本地大模型,十个翻车的里有八个不是命令敲错,而是机器根本扛不住。Ollama 这个工具本身装起来不复杂,双击安装包一路下一步就行,但它对硬件的要求是实打实的——DeepSeek-R1 跑起来之后,内存和显存吃紧是常态。我见过有人拿 8GB 内存的轻薄本硬拉模型,结果拉取到一半磁盘写满,服务直接卡死,连 ollama list 都刷不出来。所以这篇安装笔记先把环境门槛列清楚,再一步步走安装、拉模型、验证、排错的完整链路。适合手里有一台 Win11 机器、想在自己设备上跑 DeepSeek-R1 做本地推理的开发者,也适合之前装过 Ollama 但被端口占用或模型拉取失败卡住的人。
2. 环境准备:Win11 下的硬件与软件清单
2.1 硬件配置对照表
Ollama 在 Windows 上跑 DeepSeek-R1,硬件是硬门槛,不是靠调参数能绕过去的。下面这张表是我按实际部署经验整理的配置对照,分「能跑」「跑得舒服」「跑得飞快」三档,你可以对着自己的机器看一眼再决定要不要继续往下走。
| 硬件项 | 最低能跑 | 推荐配置 | 说明 |
|---|---|---|---|
| CPU | 4 核以上 | 英特尔酷睿 i7 / AMD Ryzen 7 及以上 | 多核影响推理响应速度,核少会明显卡顿 |
| 内存 | 16GB | 32GB 或更高 | DeepSeek-R1 运行时会占用大量内存,16GB 是底线 |
| GPU | 无(纯 CPU 推理) | NVIDIA RTX 30 系列及以上,支持 CUDA | 有 GPU 加速推理快很多,没有也能跑但慢 |
| 存储 | 20GB 可用空间 | SSD,50GB 以上可用 | 模型文件本身占空间,SSD 加载速度远快于机械盘 |
这里有个容易忽略的点:磁盘空间不是只看模型文件大小。Ollama 拉取模型时会先下载临时文件再解压,峰值占用可能比最终模型大不少。我一般会预留模型体积两倍以上的空间,避免拉到 99% 报磁盘不足,那种感觉比下载失败还难受。
提示:如果你的机器是 16GB 内存 + 无独显的组合,DeepSeek-R1 能跑,但响应速度会比较慢,建议先拿小参数模型试水,确认 Ollama 环境没问题再拉大模型。
2.2 软件环境确认与 Ollama 安装
软件这边要确认两件事:Win11 系统版本和 Ollama 安装包来源。系统更新到最新版本能避免一些运行库缺失的兼容性问题,尤其是 .NET 相关的组件,Win11 默认都带,但如果你关过系统更新,建议手动检查一下。
Ollama 的安装包从官网下载,认准 ollama.com 这个域名。下载完成后双击安装包,安装向导会默认装到用户目录下,你也可以自定义路径。这里有个细节:如果你 C 盘空间紧张,安装时就把路径改到其他盘,因为后面拉取的模型文件默认也存在 C 盘用户目录下,C 盘红了再迁移会很麻烦。
安装完成后,Ollama 会自动注册为系统服务,托盘区会出现一个小羊驼图标。这时候打开 PowerShell 或 CMD,输入版本检查命令确认安装成功:
ollama --version这条命令会输出当前安装的 Ollama 版本号。如果提示「不是内部或外部命令」,说明安装路径没加到系统 PATH 里,重新跑一遍安装包或者手动把 Ollama 安装目录加到环境变量就行。版本号能正常输出,说明 Ollama 本体已经就位,接下来进入服务启动和模型拉取环节。
3. 部署实操:从启动服务到跑通 DeepSeek-R1
3.1 启动 Ollama 服务与端口确认
Ollama 安装后默认会以系统服务方式在后台运行,但有时候服务没起来,或者你想手动控制,就需要用命令行启动。打开 PowerShell,执行:
ollama serve启动成功后,终端会输出监听地址信息,默认监听 127.0.0.1 的 11434 端口。这个端口是 Ollama 的 API 入口,后面用 REST API 调用或者 Python 脚本交互都走这个端口。如果你看到端口被占用的报错,先别急着重装,用下面这条命令查一下是谁占了:
netstat -ano | findstr :11434输出结果最后一列是进程 PID,拿着这个 PID 去任务管理器里找到对应进程,确认是不是之前残留的 Ollama 进程。如果是,结束掉再重新 ollama serve 就行。如果占用的是其他程序,要么关掉那个程序,要么改 Ollama 的监听端口——改端口需要设置环境变量 OLLAMA_HOST,这个后面排错章节会细说。
注意:ollama serve 是前台运行命令,关掉终端窗口服务就停了。日常使用其实不需要手动跑这条命令,安装后系统服务已经在后台跑着。只有调试或者服务异常时才需要手动启动看日志。
3.2 拉取 DeepSeek-R1 模型
服务确认在跑之后,另开一个 PowerShell 窗口,执行模型拉取命令:
ollama pull deepseek-r1这条命令会从 Ollama 的模型库下载 DeepSeek-R1 的模型文件到本地。下载时间取决于你的网络速度和模型体积,终端会显示下载进度条。拉取过程中不要关窗口,中断了虽然支持断点续传,但有时候会卡在某个百分比不动,需要手动重试。
拉取完成后,用下面这条命令确认模型已经在本地:
ollama list输出会列出本地已有的模型名称、大小和修改时间。看到 deepseek-r1 出现在列表里,说明模型文件已经完整落盘。如果列表是空的,或者没有 deepseek-r1,说明拉取过程出了问题,回到上一步重新 pull。
3.3 运行模型并验证交互
模型拉取成功后,直接用 run 命令启动交互:
ollama run deepseek-r1 "用一句话介绍你自己"这条命令会加载模型并发送提示词,模型推理完成后在终端输出回答。第一次加载模型会花几秒到十几秒不等,取决于你的磁盘速度和内存大小。加载完成后,后续的对话响应会快很多,因为模型已经常驻内存了。
如果你想进入交互式对话模式,直接执行 ollama run deepseek-r1 不带提示词,就会进入一个类似聊天的命令行界面,可以连续输入问题。退出交互模式用 /bye 命令。
3.4 通过 REST API 调用模型
命令行交互适合测试,但实际集成到应用里,一般走 REST API。Ollama 在 11434 端口暴露了 HTTP 接口,用 Python 写个最简单的调用脚本:
import requests # Ollama 本地 API 地址,默认监听 11434 端口 url = "http://localhost:11434/api/generate" # 请求体:指定模型名称和提示词 data = { "model": "deepseek-r1", "prompt": "介绍一下杭州的旅游景点", "stream": False # 关闭流式输出,一次性拿到完整响应 } response = requests.post(url, json=data) # 从返回的 JSON 中提取模型回答字段 print(response.json()["response"])这段代码的关键参数有三个:model 指定要调用的模型名称,必须和 ollama list 里显示的一致;prompt 是发给模型的提示词;stream 设为 False 表示等模型完整生成后再返回,适合脚本调用。如果设为 True,响应会变成流式输出,需要逐行读取,适合做打字机效果的聊天界面。
运行这个脚本之前确认 requests 库已经装了,没装的话 pip install requests 一下。脚本跑通后,你会看到模型返回的文本内容,说明 REST API 链路已经打通。
3.5 用 Modelfile 自定义模型参数
Ollama 支持通过 Modelfile 派生新模型,调整推理参数。比如你想让 DeepSeek-R1 的输出更稳定、少一些随机发挥,可以建一个 Modelfile:
FROM deepseek-r1 PARAMETER temperature 0.7 PARAMETER top_p 0.8FROM 指定基础模型,PARAMETER 后面跟参数名和值。temperature 控制输出的随机性,值越低输出越确定,值越高越有创造性;top_p 是核采样参数,控制候选词的范围。这两个参数没有绝对的最优值,一般 temperature 在 0.6 到 0.8 之间比较平衡。
保存文件后,用 create 命令构建自定义模型:
ollama create my-deepseek-r1 -f Modelfile构建完成后,用 ollama run my-deepseek-r1 就能跑你自定义参数的版本了。原来的 deepseek-r1 模型不受影响,两个可以共存。
4. 避坑排查:Ollama 部署 DeepSeek-R1 的五个常见问题
4.1 模型拉取卡住或失败
现象:ollama pull deepseek-r1 进度条长时间不动,或者报错退出。
原因:最常见的是网络波动导致下载中断,其次是磁盘空间不足。Ollama 拉取模型时会先写临时文件,如果磁盘剩余空间不够,会在下载到一半时报错。
解决:先检查磁盘剩余空间,确认有 20GB 以上可用。网络问题的话,重新执行 pull 命令,Ollama 支持断点续传,不会从头开始下。如果反复卡在同一个位置,可以尝试先 ollama rm deepseek-r1 删掉不完整的下载,再重新 pull。
4.2 端口 11434 被占用
现象:ollama serve 启动时报错,提示端口已被占用,或者 API 调用返回连接拒绝。
原因:之前启动的 Ollama 进程没有正常退出,残留进程占着端口;或者系统里其他程序碰巧用了 11434。
解决:用 netstat -ano | findstr :11434 找到占用进程的 PID,在任务管理器里结束掉。如果确认是 Ollama 残留进程,结束之后重新 ollama serve 即可。如果端口被其他程序长期占用,可以设置环境变量 OLLAMA_HOST=127.0.0.1:11435 换一个端口,然后重启 Ollama 服务。
4.3 模型运行缓慢或卡死
现象:ollama run 之后模型响应很慢,或者直接卡住不动。
原因:内存不足是最常见的。DeepSeek-R1 运行时会占用大量内存,如果同时开着浏览器、IDE 等吃内存的程序,系统会频繁使用虚拟内存,速度断崖式下降。
解决:跑模型之前关掉不必要的程序,尤其是浏览器标签页。用任务管理器看一下内存占用,如果内存长期在 90% 以上,说明硬件确实吃紧,考虑加内存条或者换小参数模型。另外,如果你有 NVIDIA GPU,确认 Ollama 是否正确识别到了 GPU,可以在 ollama run 的输出日志里看有没有 CUDA 相关的信息。
4.4 命令行提示 ollama 不是内部或外部命令
现象:安装完 Ollama 后,在 PowerShell 里敲 ollama 命令提示找不到。
原因:Ollama 安装目录没有加到系统 PATH 环境变量里。这种情况常见于自定义安装路径,或者安装过程中权限不足导致环境变量没写进去。
解决:找到 Ollama 的安装目录,默认在用户目录的 AppData\Local\Programs\Ollama 下。把这个路径加到系统环境变量 Path 里,然后重开一个 PowerShell 窗口再试。如果懒得改环境变量,直接用完整路径调用也行,但每次敲全路径太麻烦,还是建议加到 PATH。
4.5 REST API 调用返回空响应或报错
现象:Python 脚本调用 API 后,response.json() 里没有 response 字段,或者直接抛异常。
原因:常见的有三种——模型名称写错了、Ollama 服务没在跑、请求体格式不对。模型名称必须和 ollama list 里显示的完全一致,大小写和连字符都不能错。
解决:先用 curl 或浏览器直接访问 http://localhost:11434/api/tags 确认服务在跑,并且能看到模型列表。然后检查 Python 脚本里的 model 字段是否和列表里的名称一致。如果服务正常、名称也对,检查请求体的 JSON 格式,确保 prompt 字段是字符串,stream 字段是布尔值。
5. 装完之后:验证 DeepSeek-R1 是否真正跑通的三个检查点
装完 Ollama 和 DeepSeek-R1 之后,别急着关终端。我一般会走一遍下面三个检查点,确认整套环境是真的跑通了,而不是表面看着没问题、一调 API 就翻车。
第一个检查点:模型列表和版本信息。执行 ollama list 确认 deepseek-r1 在列表里,同时 ollama --version 确认 Ollama 版本号正常输出。这两条命令都通过,说明安装和拉取环节没有遗留问题。
第二个检查点:命令行交互响应。执行 ollama run deepseek-r1 "1+1 等于几",观察模型是否能正常返回答案。这一步验证的是模型加载和推理链路。如果这一步卡住或者报错,问题出在模型文件或内存上,回到第 4 章排查。
第三个检查点:REST API 连通性。用 Python 脚本或者 curl 调一次 /api/generate 接口,确认能拿到 JSON 格式的响应。这一步验证的是服务端口和 API 链路。我习惯用 curl 快速测一下:
curl http://localhost:11434/api/generate -d "{\"model\":\"deepseek-r1\",\"prompt\":\"你好\",\"stream\":false}"如果返回的 JSON 里有 response 字段且内容非空,说明 API 链路完全打通。三个检查点都过了,这套本地部署才算真正落地。
从那以后我每次装完 Ollama 都强制走一遍这三个检查点,不再凭感觉判断「应该装好了」。因为本地大模型部署的坑往往不在安装本身,而在装完之后你以为它能跑、实际上端口没通或者模型没加载完整。希望这份笔记能帮你少走一段弯路。
本文还有配套的精品资源,点击获取