最近 DeepSeek-R1 的热度很高,不过由于要带娃,一直没空上手试试。恰好今天下午娃都睡了,赶紧抓住这个空档,研究一下这个新玩具怎么玩。
之前就知道能用 Ollama 在本地跑各种大模型,但一直停留在“知道”层面。去官网简单看了下,流程其实很清晰:先安装 Ollama,再从仓库拉取模型文件,最后启动运行。听起来和 Docker 的操作逻辑很像。
安装 Ollama
以我的 macOS 环境为例,安装过程非常简单,几步就能搞定:
- 从官网点击下载按钮,获取程序安装包(一个 zip 压缩文件);
- 下载完成后,解压这个压缩包;
- 将得到的应用程序拖拽到 macOS 的“应用程序”(Applications)文件夹中;
- 首次打开 Ollama 应用时,会提示安装命令行工具,点击“确定”继续即可。
安装完成后,就可以在终端(Terminal)里直接使用 ollama 命令了。可以通过 which 命令查看它的安装位置:
$ which ollama
/usr/local/bin/ollama
直接输入 ollama 命令,它会输出详细的用法说明:
$ ollama
Usage:
ollama [flags]
ollama [command]
Available Commands:
serve Start ollama
create Create a model from a Modelfile
show Show information for a model
run Run a model
stop Stop a running model
pull Pull a model from a registry
push Push a model to a registry
list List models
ps List running models
cp Copy a model
rm Remove a model
help Help about any command
Flags:
-h, --help help for ollama
-v, --version Show version information
Use "ollama [command] --help" for more information about a command.
拉取 DeepSeek-R1 模型
从上面的帮助信息里,我们看到有一个 list 子命令,可以列出本地已有的所有模型。刚安装完时,列表当然是空的:
$ ollama list
NAME ID SIZE MODIFIED
接下来,我们执行 pull 命令,从模型仓库中拉取 deepseek-r1 这个模型试试:
$ ollama pull deepseek-r1
pulling manifest
pulling 96c415656d37... 100% ▕██████████████████████████████████████▏ 4.7 GB
pulling 369ca498f347... 100% ▕██████████████████████████████████████▏ 387 B
pulling 6e4c38e1172f... 100% ▕██████████████████████████████████████▏ 1.1 KB
pulling f4d24e9138dd... 100% ▕██████████████████████████████████████▏ 148 B
pulling 40fb844194b2... 100% ▕██████████████████████████████████████▏ 487 B
verifying sha256 digest
writing manifest
success
是不是觉得这个命令用法很眼熟?没错,Ollama 管理模型的方式和 Docker 管理镜像非常相似。模型也是分层存储的,pull 时会逐层下载。从输出可以看到,这个模型体积接近 5 GB,如果你的网络状况一般,下载可能需要一些时间,耐心等待即可。
运行模型进行对话
模型下载完毕后,就可以使用 run 子命令来启动它并进行交互了:
$ ollama run deepseek-r1
>>> Send a message (/? for help)
启动后,终端会显示三个大于号 >>> 作为输入提示符,并提示你可以发送消息了。我简单测试了几个问题,它的表现确实让人有点惊喜:
>>> 你是谁?
您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何任何问题,我会尽我所能为您提供帮助。
>>> 你可以做什么?
作为DeepSeek-R1,我可以帮助回答多种问题,包括学术研究、技术探讨以及日常咨询等。很高兴为您提供服务!
>>> 那你知道有什么菜谱儿童比较喜欢,而且做法比较简单,比较健康的吗?
当然可以!以下是一些适合儿童的健康、易做且有趣的菜谱建议:
### 1. **外婆的番茄炒蛋**
- **食材**:西红柿2个、鸡蛋2个、青椒1根、葱花适量、食盐适量
- **做法**:
1. 西红柿去皮切块,青椒切菱形。
2. 热锅倒油,打入两个鸡蛋,炒成凝状块状。
3. 放入西红柿翻炒,再加入青椒丁和葱花,适量盐调味即可。
### 2. **香辣味儿鸡胸肉**
- **食材**:鸡胸肉150克、青红辣椒各3个、蒜瓣3-4颗
- **做法**:
1. 鸡胸肉切片,放入碗中加入生抽、料酒、适量盐。
2. 按顺序抓匀后腌10分钟。
3. 装盘备用。
4. 锅里热油,先爆香蒜瓣和辣椒,再倒入鸡胸肉翻炒均匀。
### 3. **番茄汤圆**
- **食材**:新鲜番茄5个、面粉适量
- **做法**:
1. 番茄洗净切块。
2. 水煮沸后加入番茄块,大火烧开后转小火煮至水分收干。
3. 将面糊倒入锅中勾芡。
4. 调入食盐调味,装盘时撒上葱花即可。
### 5. **清蒸鱼**
- **食材**:白鱼1条、姜片适量
- **做法**:
1. 白鱼洗净鳞片,姜切片备用。
2. 锅中加水烧开后放入鱼,中火煮至鱼完全变色即可取出。
3. 出锅后用纸巾擦干鱼肉,撒上盐和胡椒粉调味。
### 制作小贴士:
- 确保食材新鲜,可以使用新鲜的番茄、青椒等蔬菜。
- 鸡肉需要腌制10分钟以上,帮助锁住水分并提升口感。
- 汤圆的做法简单,适合用面糊勾芡,增加粘稠感。
这些菜谱既健康又有趣,有助于激发孩子的食欲和兴趣。如果需要更多菜谱或调整口味,请随时告诉我
从回答中可以看到,这个版本的模型展示了思维链(Chain-of-Thought)过程,在 <think> 标签内进行内部推理,然后再输出最终答案,这对于理解模型的“思考”路径很有帮助。
一个好消息是:我在自己的旧笔记本上成功运行了一个当下热门的大模型!但坏消息也随之而来:受限于硬件,我只能运行参数规模较小的版本,而且推理时 CPU 占用率几乎拉满,响应速度也谈不上流畅。
关于模型规模与标签
那么,我运行的 deepseek-r1 具体是哪个参数规模的呢?我回到 Ollama 的官方模型库查看了一下,发现 deepseek-r1 下有很多不同的标签(Tag),例如 1.5b、7b、8b 等,最大的甚至有 671b。和 Docker 镜像的规则一样,如果不指定标签,默认会拉取 latest 标签。而经过验证,deepseek-r1:latest 实际上指向的是 deepseek-r1:7b 这个版本。
我们可以通过指定标签来拉取特定的版本,并再次用 list 命令查看:
$ ollama pull deepseek-r1:7b
pulling manifest
pulling 96c415656d37... 100% ▕██████████████████████████████████████▏ 4.7 GB
pulling 369ca498f347... 100% ▕██████████████████████████████████████▏ 387 B
pulling 6e4c38e1172f... 100% ▕██████████████████████████████████████▏ 1.1 KB
pulling f4d24e9138dd... 100% ▕██████████████████████████████████████▏ 148 B
pulling 40fb844194b2... 100% ▕██████████████████████████████████████▏ 487 B
verifying sha256 digest
writing manifest
success
$ ollama list
NAME ID SIZE MODIFIED
deepseek-r1:7b 0a8c26691023 4.7 GB 2 minutes ago
deepseek-r1:latest 0a8c26691023 4.7 GB 1 hours ago
从列表可以看到,latest 和 7b 标签的模型 ID 和大小完全一致,证实了它们是同一个文件。这意味着,如果你只是普通体验,直接 pull deepseek-r1 就已经是在下载 7B 参数的版本了。对于想在个人电脑上进行 大模型 本地化探索和轻量级应用的开发者来说,Ollama 提供了一种极其便捷的途径。
整个过程下来,感觉 Ollama 确实大大降低了本地运行大模型的门槛。虽然受限于笔记本算力,体验上无法与云端服务相比,但这种将前沿 AI 能力“握在手中”的感觉,对于学习和技术验证来说,价值是毋庸置疑的。如果你也在寻找一个简单易上手的本地大模型运行方案,不妨从这篇在 云栈社区 分享的实践开始尝试。