用ollama在笔记本上跑DeepSeek-R1模型

最近 DeepSeek 很火,但碍于沉浸式带娃,一直没空把玩。刚好下午小崽子们都睡了,赶紧瞅瞅看这个玩具怎么玩。

之前了解到可以用 ollama 在本地运行大模型,但一直没试过。在官网上瞄了几眼,其实很简单:先安装 ollama ,再拉取大模型文件,最后再把模型跑起来。

安装

macOS 为例,简单几步即可完成安装:

  1. 点击下载按钮,下载程序包(zip压缩包);
  2. 下载完毕后,点击解压压缩包,得到程序包;
  3. 将程序包拉入 macOS 程序目录即可;
  4. 首次打开 ollama 时,提示安装命令行工具,点确定继续即可;

安装完毕后即可在终端中使用 ollama 命令,这是它的安装位置:

1
2
$ which ollama
/usr/local/bin/ollama

直接执行 ollama 命令,它将输出命令的用法:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$ 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.

拉取模型

看到有一个 list 子命令,可以列举出当前所有大模型(刚安装时模型列表还是空的):

1
2
$ ollama list
NAME                  ID              SIZE      MODIFIED

接下来,我们执行 pull 子命令,从模型仓库中拉 deepseek-r1 试试:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$ 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 有点像。模型跟 docker 镜像类似,也是分层存储的,pull 时需要逐层下载。注意到,模型大小接近 5 GB,下载可能比较费时,耐心等待即可。

运行模型

模型下载完毕后,即可执行 run 子命令把它跑起来:

$ ollama run deepseek-r1
>>> Send a message (/? for help)

这时会出现三个大于号 >>> 的光标,以及提醒用户可以向它输入对话消息了。我简单测了一下,发现效果确实挺惊艳的:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
>>> 你是谁?
<think>

</think>

您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何任何问题,我会尽我所能为您提供帮助。

>>> 你可以做什么?
<think>

</think>

作为DeepSeek-R1,我可以帮助回答多种问题,包括学术研究、技术探讨以及日常咨询等。很高兴为您提供服务!

>>> 那你知道有什么菜谱儿童比较喜欢,而且做法比较简单,比较健康的吗?
<think>
嗯,今天用户问了一个关于儿童健康饮食的问题。他们想了解有哪些菜谱适合儿童食用,同时做法简单又安全。

首先,我得考虑用户的背景。可能是一位家长或者是在家带孩子的成年人,希望为孩子准备均衡又有营养的餐点。他们担心孩子的口味和消化能力,所以需要容易准备且健康的选项。

接下来,我要分解这个问题。健康饮食通常包括多样化、定时定量以及避免刺激物。儿童菜谱还需要考虑到趣味性和易操作性。做法简单意味着不需要复杂的步骤或特殊设备。

然后,我会列出几个适合儿童的菜谱例子,比如外婆的番茄炒蛋和辣味鸡胸肉,这些都是营养均衡且制作简便的选择。同时,我需要确保这些食谱既美味又易于准备,满足家长的实际需求。

最后,总结一下这些菜谱的特点,并附上简单的制作步骤和小贴士,帮助用户更好地理解和实施。
</think>

当然可以!以下是一些适合儿童的健康、易做且有趣的菜谱建议:

### 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分钟以上,帮助锁住水分并提升口感。
- 汤圆的做法简单,适合用面糊勾芡,增加粘稠感。

这些菜谱既健康又有趣,有助于激发孩子的食欲和兴趣。如果需要更多菜谱或调整口味,请随时告诉我

好消息是:在我的破电脑上可以把一个很火的大模型跑起来了!坏消息是:我只能跑参数规模很少的阉割版本,CPU 几乎跑满,而且响应不是很流畅。

模型规模

那么,我跑的这个 deepseek-r1 ,参数规模是多少呢?我回到 ollama 模型仓库 看了一下,deepseek-r1 有很多个标签,有 1.5b7b8b 等等,最大是 671b 。跟 docker 镜像一样,如果不指定标签,默认拉取 latest 。而 latest 实际上就是 7b

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
$ 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

订阅更新,获取更多学习资料,请关注我们的公众号:

【随笔】系列文章首发于公众号【小菜学编程】,敬请关注: