龙芯3C6000使用Ollama运行DeepSeek R1 70B大模型

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秒。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注