瑞芯微Rockchip开发者社区
直播中

xusiwei1236

13年用户 192经验值
擅长:嵌入式技术
私信 关注
[经验]

【幸狐Omni3576边缘计算套件试用体验】CPU部署DeekSeek-R1模型(1B和7B)

一、DeepSeek简介

DeepSeek是由中国深度求索公司开发的开源大语言模型系列,其研发始于2023年,目标是为学术界和产业界提供高效可控的AI基础设施。R1系列作为其里程碑版本,通过稀疏化架构动态计算分配技术,在保持模型性能的同时显著降低了计算资源需求。

模型特点:

  • 参数规模灵活:提供1.5B/7B/33B等多种规格
  • 混合精度训练:支持FP16/INT8/INT4量化部署
  • 上下文感知优化:动态分配计算资源至关键token
  • 中文优化:在Wudao Corpus等中文数据集上强化训练

技术突破:

相比传统LLM,DeepSeek-R1通过以下创新实现低资源部署:

  1. MoE架构:专家混合层动态路由计算路径
  2. 梯度稀疏化:反向传播时仅更新关键参数
  3. 自适应量化:运行时根据硬件自动选择最优精度

二、CPU运行DeekSeek-R1:1.5b

2.1 ollama工具简介

使用ollama命令行工具,可以非常方便的下载和运行DeepSeek模型。

Ollama是一个获取和运行大语言模型的工具,官网的简介是:

Get up and running with large language models.

2.2 ollama命令安装

安装ollama非常简单,官网提供了在线安装脚本(install.sh),使用如下命令即可下载在线安装脚本并运行:

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

命令输出如下:

image-20250407224101507-1745166764839-2.png

2.3 ollama下载模型

安装好了ollama之后,我们就可以使用ollama下载deepseek-r1:1.5b模型了,使用如下命令:

ollama pull deepseek-r1:1.5b

拉取deepseek-r1 1.5b模型,过程中会下载速度和进度:
image-20250407223250878.png

稍等一段时间,下载完成:
image-20250410211214362.png

2.4 ollama运行模型

下载完deepseek-r1:1.5b模型后,就可以使用ollama运行deepseek模型了,使用如下命令:

ollama run deepseek-r1:1.5b

使用--verbose选项可以输出速度等数据,例如,问他“你是谁”,输出信息如下:
image-20250410211659910.png
接下来,问一个经典的鸡兔同笼问题,结果也可以正确回答:
image-20250410213302111.png

速度6.58 tokens/s,不是很快,但不算很卡。

三、CPU运行DeekSeek-R1:7b

和前面类似的,可以通过 ollama 命令拉取 deepseek-r1:7b 模型,命令为:

ollama pull deepseek-r1:7b

接着尝试运行deepseek-r1:7b模型,默认会出现内存不够的报错:
image-20250420230627079.png

报错提示模型需要5.5GiB内次,当前可用的只有3.2GiB。

3.1 挂载固态硬盘

首先安装好固体硬盘:

Omni3576_SSD.jpg

然后上电,启动系统。

不出意外,执行lsblk命令,能够看到这个固体硬盘对应的块设备:
image-20250420232023847.png

将其格式化为ext4文件系统,执行命令:

sudo mkfs.ext4 /dev/nvme0n1

命令输出如下:

image-20250420232341362.png

接着创建用于挂载的目录:

sudo mkdir /mnt/ssd

最后,就可以前面格式化好的固态硬盘设备挂载到这个目录了:

image-20250420232634874.png

这里可以看到lost+found目录,这个目录是mkfs.ext4命令创建的,看到它说明已经成功挂载了。

3.2 测试固体硬盘

使用dd创建一个4GiB的文件,测试一下固态硬盘的写速度:

image-20250420233057430.png
类似的可以测试一下,eMMC的写入速度:

image-20250420233314083.png

测试结果上看,eMMC没有固体硬盘快,这也是为什么要用nvme固态作为后面配置交换分区的原因。

3.3 配置虚拟内存

Linux系统上,可以通过配置虚拟内存解决应用程序内存不够用的问题。配置交换分区的磁盘空间,可以被内核当做内存来用,但相应的速度要比实际的内存慢。

创建/mnt/ssd/swap.bin文件,并将内容格式化为swap格式:

image-20250420233744155.png

接着,准备将其设置为交换分区,设置之前,查看当前系统内存信息:

image-20250420233927042.png

可以看到,当前Swap大小为0.

设置交换分区之前,将swap.bin文件的读写权限设置为600:

image-20250420234123684.png
设置刚刚创建的swap.bin文件为交换分区:

image-20250420234216613.png

设置成功后,可以通过free命令看到Swap内存变为4GiB了。

通过swapon --show命令也可以看到:

image-20250420234249887.png

3.4 运行deepseek-r1:7b

接着,就可以运行deepseek-r1:7b了:

image-20250421002924928.png

能跑起来,但是非常卡,已经卡的没法用了[doge]。不过也算是一次有意义的尝试。

四、参考链接

  1. DeepSeek官方文档
  2. Ollama GitHub仓库

更多回帖

发帖
×
20
完善资料,
赚取积分