
1. 前言
最近,国产的DeepSeek R1
大模型热度很高,想尝试一下在自己的国产化平台上运行它。
但目前国产显卡对国产CPU的支持不太好,因此这里尝试使用纯CPU的方式运行。
2. 硬件规格
CPU:龙芯 3C6000/S 16c32t 2.2Ghz
内存:三星 DDR4 3200 2Rx8 32G 内存 x4
硬盘:致钛 TiPro7000 1TB
系统:AOSC OS
3. 获取Ollama
Ollama
仓库地址:https://github.com/ollama/ollama
由于Ollama
使用uname -m
的方式判断机器架构,而龙架构上的Go
架构名为loong64
,与使用uname -m
命令得出的结果loongarch64
不一致,因此无法编译成功。
有好心人为Ollama
提交了一条PR修复,该处理十分简单易懂,相信不久后就会被纳入Ollama
主线仓库中。
因此,可暂时使用该fork仓库的代码:https://github.com/ideal/ollama
该步骤非常简单。
3.1. 安装Go
如果你使用AOSC OS
,可使用如下命令安装:
$ sudo oma install go
个人习惯手动安装Go
。
由于Go
已合并龙架构支持,可直接在官网上获取最新版:https://go.dev/dl
此处参考Go
官方的安装说明:https://go.dev/doc/install
$ wget https://go.dev/dl/go1.23.5.linux-loong64.tar.gz
$ sudo rm -rf /usr/local/go
$ sudo tar -C /usr/local -xzf go1.23.5.linux-loong64.tar.gz
将以下内容添加到/etc/profile
或~/.bashrc
中
export PATH=$PATH:/usr/local/go/bin
3.2. 拉取代码
$ git clone https://github.com/ideal/ollama
3.3 编译
$ cd ollama
$ make
如果没有见到任何报错,且目录下出现ollama
的可执行文件,即为编译成功。
4. 获取模型
Ollama
已经整合了许多大模型资源,可以在官网查看DeepSeek R1
系列模型的列表:https://ollama.com/library/deepseek-r1/tags
列表中的GB
即为运行模型时需要的内存或显存大小。
由于自己的内存较大(128GB),因此选择deepseek-r1:70b
模型。
如果你的内存不够大,可选择更小规模的模型。
在Ollama
代码目录下新开启一个终端,运行:
$ ./ollama serve
在另一个终端中,运行
$ ./ollama run deepseek-r1:70b --verbose
Ollama
会自动下载模型至你的~/.ollama/models/
目录中,只有首次运行需要下载。
添加--verbose
参数可使Ollama
输出推理速度、运行耗时等详细信息。
5. 运行效果
使用CPU运行还是比显卡慢太多,只能简单尝试一下:
$ ./ollama run deepseek-r1:70b --verbose
>>> 介绍一下你自己?
<think>
您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何任何问题,我会尽我所能为您提供帮助。
</think>
您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何任何问题,我会尽我所能为您提供帮助。
total duration: 1m53.951742365s
load duration: 37.713406ms
prompt eval count: 8 token(s)
prompt eval duration: 3.814s
prompt eval rate: 2.10 tokens/s
eval count: 93 token(s)
eval duration: 1m50.098s
eval rate: 0.84 tokens/s
总耗时1分53秒。