在昉·星光 2上运行AI大模型(ollama & deepseek 1.5B实测全记录)

本文源于iCeasy用户:姚工(user202106236352)


[在昉·星光 2 上运行ollama & deepseek 1.5B测试视频](【昉·星光 2 RISC-V单板计算机评测之 运行ollama && deepseek 1.5B-哔哩哔哩】 验证码_哔哩哔哩)

第一次接触RISC-V的MPU,周末熟悉了半天,感觉跟其他ARM板子无明显差异,资料齐全,代码开源,该有的接口都提供了,交叉编译了uboot和内核等也很顺利,初步体验良好。

为了体验RISC-V的生态和板子的性能,尝试着在上面跑了ollama服务和deepseek 1.5B,比x86/ARM平台会多些步骤。

实测效果:

提问最基础的“你是谁”,回答如下:

问个鸡兔同笼问题,回答也是正确的,还带分析过程:

整个回答过程,平均1~2秒一个tokens。从后台看,CPU已经满负荷在工作:

实测总结:

  1. 通过这次体验,RISC的生态比我想象中好不少。虽然有些应用还不提供直接的支持,但是在开源的大趋势下,大部分在x86/ARM上的工具和应用,通过编译源码的方式,也能在RISC-V MPU上运行。

  2. 板子的性能跟其他的xx派持平,在没有NPU的情况下,4核+4GB内存,用CPU算力,可运行最小的量化版本deepseek 1.5B模型(当然速度就不要有要求了,这类没有NPU的嵌入式板子,基本都是0.5~1 tokens/s)。

  3. 板子默认没有配风扇,soc高负荷下有点烫,但也在可接受范围。如果能配个风扇会更好。

  4. 后续等更深入了解和学习,有时间再发些深度的测评。

实测步骤:

一、烧录并启动系统

使用balenaEtcher烧录sd卡,最新的镜像是:starfive-jh7110-202409-SD-minimal-desktop-wayland.img


烧录成功后,拨码开关拨到sd卡启动,type-c接口供电,按下图接好串口,可看到启动信息并登录系统(root登录,密码starfive)。

二、 编译ollama:

安装curl,尝试用命令下载,发现没有提供RISC版本,我们试着用源码编译。

因为编译ollama需要golang,所以直接到官网(https://go.dev/dl/)下载最新的版本 go1.24.3.linux-riscv64.tar.gz,放置在/home/user/Downloads/下(可根据实际调整),并配置go环境。

tar -xzvf go1.24.3.linux-riscv64.tar.gz
export PATH=$PATH:/home/user/Downloads/go/bin
go version

显示go version正常,接着下载ollama源码并解压:

wget -c https://github.com/ollama/ollama/archive/refs/heads/main.zip 
unzip main.zip
cd ollama-main/

配置代理和编译:

GO111MODULE=on
export GOPROXY=https://goproxy.cn
go generate ./...
go build -p 4

编译需要等待一会,不报错完成后,会生成RISC版本的ollama:

直接运行试试,会有命令用法和参数提示,证明可用:

三、 下载并运行deepseek 1.5B

后台先启动ollama服务:


参考ollama的官网,需要运行什么模型就带上对应的参数,因为用CPU跑,内存只有4G,就跑个最小的deepseek 1.5B试试,第一次运行会自动下载模型权重,额外花多点时间。

./ollama run deepseek-r1:1.5b

模型下载并加载完之后,就进入对话模式,测试结果如开篇所示。

1 Like

:+1: :heart_eyes: :smiling_face_with_three_hearts: :sparkling_heart:


我看B站赛昉官方视频, 是用一张算力卡跑deepseek模型的, 视频里token数挺高的, 不知道有没有小伙伴实战过.