3

我最近花了几千块钱的价格,就成功运行了deepseek-r1:32b的量化模型,而且看起来效果还不错。用来学习和做一些简单的本地任务,还是很不错的选择。下面是使用 ollama 运行 deepseek-r1:32b 的 Q4_K_M 量化模型的效果,问题下面这样一个比较简单的问题:

三个不同的正整数加起来等于24,最大的数是9,那么最小的数是多少?

实测效果如下,这种简单的问题,还是能回答对,只是启动和思考过程比较长。虽然跟满血模型的效果没法比,但是在处理一些特定任务的情况下,还是能够胜任。后面也会基于不同参数的模型做一些应用探索。

注意:视频是加速了的,实际token输出是这个速度的1/3左右。

6

所运行的环境是自己家中的学习环境,显卡是一块前些年买的tesla p40的骨灰级显卡,性能比较差,但配备了24G的大显存。我的学习环境主要配置如下。

CPU: AMD 7K62

显卡:Nvidia Tesla P40

内存:128GB

操作系统:Debian-11

当时买这张P40显卡的时候,价格在一千左右,如果配上X99平台的E5神U,性价比直接拉满,是个人学习研究不错的选择。只可惜最近deepseek爆火,大家学习热情高涨,骨灰级的P40价格好像都涨到两千多了,真可谓:淘金者无所得,卖铲人皆富贵。

一、ollama的安装

Ollama 下载:https://ollama.com/download

Ollama 官方主页:https://ollama.com

Ollama 官方 GitHub 源代码仓库:https://github.com/ollama/ollama/

方式一、快速安装

如果你能够正常访问github,那么安装ollama非常简单,直接运行官方的安装脚本即可。

1
curl -fsSL https://ollama.com/install.sh | sh

方式二、镜像下载地址安装

方式一中的安装脚本中,有一部分需要从github下载ollama安装包的操作,这部分操作由于网络问题,你很可能无法直接完成。如果遇到这样的情况,可以通过下面的步骤来进行安装。

1、下载安装脚本

1
2
3
4
5
# 下载安装脚本
curl -fsSL https://ollama.com/install.sh -o ollama_install.sh

# 给脚本添加执行权限
chmod +x ollama_install.sh

2、从镜像站点下载安装文件

下面这个网站提供了很多github的发行文件下载,可以通过该镜像站点下载(2025-02-17亲测可用)。

https://get-github.hexj.org/

image-20250219230433901

1
curl -v https://get-github.hexj.org/download/ollama/ollama/releases/download/v0.5.11/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz

实测下载速度还挺快的。

提示

如果你是amd的显卡,还需要下载ollama-linux-amd64-rocm.tgz,在第四步还需要将:

https://ollama.com/download/ollama-linux-${ARCH}-rocm.tgz${VER_PARAM}

替换为本地下载到的文件的路径。

3、校验文件(可选)

因为是从第三方下载的文件,如果对安全性要求较高,可以校验一下所下载文件是否与官方文件内容一致。

1
2
liwenbo@debian:~$ sha256sum ollama-linux-amd64.tgz
aa386ce1c314686133f7abe9b561f3ef230f03f88bbdd1f583c951c4ab5378ad  ollama-linux-amd64.tgz

比较sha256值是否与官方的值一致,官方的sha256值可以在发布的文件中找到。

image-20250217231642071

查看该文件,可以看到校验值与本地计算的sha256值一致,说明文件未被篡改过。

image-20250217231753366

当然,如果你能够正常下载官方的sha256sum.txt,你也应该能够下载安装包。所以这一步可以根据实际情况来看需不需要来进行校验。

4、进行安装

替换安装文件中github下载路径为本地文件路径,然后执行安装脚本进行安装。

image-20250217222923810

把下面github下载路径替换为本地文件路径,

1
https://ollama.com/download/ollama-linux-${ARCH}.tgz${VER_PARAM}

替换为:

1
file:///home/liwenbo/ollama-linux-amd64.tgz

其中 /home/liwenbo/ollama-linux-amd64.tgz 是你在第2步下载的ollama安装文件的路径。修改完成后是类似下面这样的:

image-20250217223720982

然后执行安装程序即可。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
liwenbo@debian:~$ ./ollama_install.sh
>>> Cleaning up old version at /usr/local/lib/ollama
>>> Installing ollama to /usr/local
>>> Downloading Linux amd64 bundle
############################################################## 100.0%
>>> Adding ollama user to render group...
>>> Adding ollama user to video group...
>>> Adding current user to ollama group...
>>> Creating ollama systemd service...
>>> Enabling and starting ollama service...
>>> NVIDIA GPU installed.

二、ollama参数配置

2.1 更改模型文件地址

1、修改ollama.service, 增加环境变量OLLAMA_MODELS来指定模型文件的存放地址。

1
sudo vim /etc/systemd/system/ollama.service

2、在 [Service] 部分下添加一行新的环境变量 Environment,如下所示

1
2
[Service]
Environment="OLLAMA_MODELS=/path/to/ollama/models"

3、重载配置并重启 Ollama 服务

1
2
sudo systemctl daemon-reload
sudo systemctl restart ollama.service

2.2 更改监听地址

1、修改ollama.service, 增加环境变量OLLAMA_HOST来指定监听的地址和端口。

1
sudo vim /etc/systemd/system/ollama.service

2、在 [Service] 部分下添加一行新的环境变量 Environment,如下所示

1
2
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"

注意:

a. 请谨慎使用0.0.0.0地址,该地址表示所有网络可以访问该服务,如果仅在内网使用,请设置为内网地址。

b. 可能需要配置防火墙规则来允许所设定的端口外部能够访问。

3、重载配置并重启 Ollama 服务

1
2
sudo systemctl daemon-reload
sudo systemctl restart ollama.service

提示:

如果你上面两个都需要修改,直接添加两条 Environment=“xxx” 的配置信息即可,如下所示。

1
2
3
4
[Service]
Environment="OLLAMA_MODELS=/data/ollama/models"
Environment="OLLAMA_HOST=0.0.0.0:11434"
...

三、ollama更新和卸载

3.1 更新

方式一、通过shell 脚本更新 Ollama

1
curl -fsSL https://ollama.com/install.sh | sh

方式二、下载 Ollama 二进制文件

1
sudo curl -L https://ollama.com/download/ollama-linux-amd64 -o /usr/bin/ollama   sudo chmod +x /usr/bin/ollama

3.2 卸载

步骤一、删除 Ollama 服务

1
2
3
sudo systemctl stop ollama
sudo systemctl disable ollama
sudo rm /etc/systemd/system/ollama.service

步骤二、删除 Ollama 二进制文件

从 bin 目录中删除 Ollama 二进制文件:/usr/local/bin ,/usr/bin ,/bin

1
sudo rm ${which ollama}

步骤三、删除下载的模型和 Ollama 服务用户和组

1
2
3
4
#/usr/share/ollama是ollama模型存放的路径
sudo rm -rfv /usr/share/ollama
sudo userdel ollama
sudo groupdel ollama

四、ollama使用

最常用的ollama命令非常简单,经常使用的命令就是下面一些。

4.1 拉取镜像

使用 ollama pull 命令,拉取模型镜像,拉取完之后并不会运行。例如:

1
ollama pull deepseek-r1:8b

提示:

不知道是我网络问题还是ollama的内部设定,下载的时候刚开始速度很快,然后会慢慢降下来,ctrl+c中断后再下载,速度又会升上去。

4.2 运行镜像

使用 ollama run 命令,拉取并运行模型,如果模型已经拉取到本地,则直接运行。否则先拉取模型,然后运行。例如:

1
ollama run deepseek-r1:8b

4.3 查看模型列表

使用 ollama ls 命令,查看本地存在的模型。

1
2
3
4
5
6
7
8
liwenbo@debian:~$ ollama ls
NAME                        ID              SIZE      MODIFIED
deepseek-r1:14b             ea35dfe18182    9.0 GB    34 hours ago
qwq:latest                  46407beda5c0    19 GB     4 days ago
codegeex4:9b-all-fp16       c3cd6eb1916f    18 GB     7 days ago
deepseek-r1:32b             38056bbcbb2d    19 GB     9 days ago
deepseek-coder-v2:latest    63fb193b3a9b    8.9 GB    3 weeks ago
qwen2.5-coder:latest        2b0496514337    4.7 GB    3 weeks ago

4.4 查看正在运行的模型

通过 ollama ps 命令,查看正在运行的模型。

1
2
3
liwenbo@debian:~$ ollama ps
NAME               ID              SIZE     PROCESSOR    UNTIL
deepseek-r1:32b    38056bbcbb2d    23 GB    100% GPU     2 minutes from now

4.5 ollama后台运行

可以使用 nohup 让ollama在后台运行,命令如下:

1
nohup ollama run $model >> ollama.log 2>&1 &

也可以新建一个名为 ollama-run.sh 的shell文件,这样以后不用每次输入上述命令了。

1
2
3
4
#!/bin/bash
model=$1
echo "run model $1"
nohup ollama run $model >> ollama.log 2>&1 &

使用方式如下:

1
./ollama-run.sh qwen2.5-coder:latest

4.6 结束正在运行的ollama模型

ollama低版本中,好像没有结束运行模型的命令,需要先查询出进程的ID,然后kill掉。

较新版本的ollama中,增加了 ollama stop 命令,可以通过该命令结束运行中的模型。例如:

1
ollama stop qwen2.5-coder:latest

4.7 删除模型

使用 ollama rm MODEL_NAME 来删除一个本地模型。例如:

1
2
liwenbo@debian:~$ ollama rm qwq:latest
deleted 'qwq:latest'