HonestQiao · 3 天前 · 北京

【星睿O6评测】从零玩转智谱AI全栈大模型之4-将llama.cpp环境部署至星睿O6

🎯 本文目标:将llama.cpp环境迁移到星睿O6开发板,并针对ARMv9架构进行专门优化配置,充分发挥硬件性能。

经过查阅资料和深入学习,在星睿O6开发板上成功部署了智谱AI系列大模型,包括文本生成大模型、视觉大模型,以及代码生成大模型。

001.jpg

在学习研究的过程中,我做了详细的笔记,经过整理,成为本系列文章,分享给大家。

通过本系列文章,您将了解到:

  • 第一阶段:开发环境准备

    • 第一篇:星睿O6与智谱AI大模型概览
    • 第二篇:在PC上搭建llama.cpp推理环境
    • 第三篇:在PC上搭建chatglm.cpp推理环境
  • 第二阶段:环境迁移与部署

    • 第四篇:将llama.cpp环境部署至星睿O6
    • 第五篇:将chatglm.cpp环境部署至星睿O6
  • 第三阶段:大模型实战运行

    • 第六篇:在星睿O6上运行智谱AI文本大模型(基于llama.cpp)
    • 第七篇:在星睿O6上运行智谱AI文本大模型(基于chatglm.cpp)
    • 第八篇:在星睿O6上运行智谱AI视觉大模型
    • 第九篇:为llama.cpp与chatglm.cpp部署Web服务与OpenAI兼容API
  • 第四阶段:专项能力扩展

    • 第十篇:在星睿O6上部署CodeGeeX2实现智能代码生成

本文是第四篇:将llama.cpp环境部署至星睿O6

我在星睿O6上运行的操作系统,是参考官方文档 使用固态硬盘盒安装系统 | Radxa Docs,下载 资源汇总下载 | Radxa Docs 中的 orion-o6_bookworm_gnome_t2.output_512.img.xz 进行安装:

002.jpg

为了提供充足的硬盘空间,我还挂了一块4T的硬盘:
003.jpg

并将该硬盘挂载到 ~/Projects ,这样子可以有足够的磁盘空间,方便进行各种大模型操作实验。

🐍 设置python环境

# 安装基础依赖库
# python虚拟环境
sudo apt install python3.11-venv
# git工具
sudo apt install git-lfs

# 设置pip安装源为国内源,加快安装速度
mkdir ~/.pip
nano ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
timeout = 10
trusted-host = pypi.tuna.tsinghua.edu.cn

ARM平台优化

  • 星睿O6预装Python 3.11,无需额外安装
  • 使用国内镜像源可以显著提升包下载速度
  • git-lfs用于处理大文件(如模型文件)

📥 下载llama.cpp源码

## 安装llama.cpp
mkdir ~/Projects
cd ~/Projects

# 加速方式1:【不考虑】
# 如果不能正常访问github.com,需要设置代理
# 设置代理
# git config --global http.proxy http://192.168.1.100:8080
# git config --global https.proxy http://192.168.1.100:8080
# 取消代理
# git config --global --unset http.proxy
# git config --global --unset https.proxy
git clone https://github.com/ggml-org/llama.cpp.git

# 加速方式2:【优先考虑】
# 不设置访问代理,使用加速服务 https://ghfast.top/
git clone https://ghfast.top/https://github.com/ggml-org/llama.cpp.git

# 设置文件忽略
cd llama.cpp
git config  core.filemode false

网络优化策略

  • 使用ghfast.top镜像服务,比代理更稳定
  • 避免复杂的代理配置,简化部署流程

🛠️ 建立专用运行环境

# 创建专属虚拟运行环境
python -m venv --system-site-packages .venv
source .venv/bin/activate

虚拟环境说明

  • 使用--system-site-packages共享系统包,减少重复安装
  • 虚拟环境隔离依赖,避免系统污染
  • 便于环境备份和恢复

🔨 编译llama.cpp

# 安装编译依赖工具包
sudo apt install curl libcurl4-openssl-dev

# 设置编译参数
cmake -B build -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=armv9-a+i8mm+dotprod -DGGML_CPU_KLEIDIAI=ON

# 如果出现github.com访问错误,则设置代理
# export https_proxy=192.168.1.15:7890
# export http_proxy=192.168.1.15:7890

# 编译llama.cpp
cmake --build build --config Release

004.jpg
005.jpg

ARM特定优化参数说明

  • GGML_NATIVE=OFF:禁用x86原生指令集
  • GGML_CPU_ARM_ARCH=armv9-a+i8mm+dotprod:启用ARMv9架构和AI加速指令
  • GGML_CPU_KLEIDIAI=ON:启用KleidiAI优化(此芯NPU支持)
  • I8MM:int8矩阵乘法指令,加速AI计算
  • DOTPROD:点积指令,提升向量运算性能

编译性能优化

  • Release模式提供最佳性能
  • ARM特定优化充分利用硬件特性
  • 首次编译时间约10-15分钟

📦 安装python支持包

# 安装大模型工具包
pip install huggingface_hub
pip install modelscope

# 安装python依赖包
pip3 install -r ./requirements.txt

📤 上传DeepSeek-R1-Distill-Qwen-1.5B模型

将之前在PC上的llama.cpp环境中,转换的gguf格式文件,上传到星睿O6

# 操作电脑执行:单个文件上传
model_name=DeepSeek-R1-Distill-Qwen-1.5B
scp -c aes128-ctr -o "MACs umac-64@openssh.com" ssh-ohos-new:/data/home/honestqiao/Projects/orion-o6/llama.cpp/models/${model_name}-Q4_K_M.gguf orion-o6:~/Projects/llama.cpp/models/

ssh orion-o6 "ls -lh ~/Projects/llama.cpp/models/${model_name}-Q4_K_M.gguf"

006.jpg

🚀 运行DeepSeek-R1-Distill-Qwen-1.5B模型

# 设置完整路径
cd cd ~/Projects/llama.cpp
export LLAMA_CPP_DIR=$(pwd)

# 运行DeepSeek-R1-Distill-Qwen-1.5B模型
model_name=DeepSeek-R1-Distill-Qwen-1.5B
$LLAMA_CPP_DIR/build/bin/llama-cli -m models/${model_name}-Q4_K_M.gguf

执行上面的命令之后,就可以开始对话了。

⚙️ 参数设置

$LLAMA_CPP_DIR/build/bin/llama-cli 可以设置的参数非常多,可以用下面的命令查看:

$LLAMA_CPP_DIR/build/bin/llama-cli -h

常见的参数包括:
007.jpg

008.jpg

009.jpg

带参数调用的例子如下:

# 单次生成,显示详细性能信息
$LLAMA_CPP_DIR/build/bin/llama-cli -m models/${model_name}-Q4_K_M.gguf \
  -p "请解释一下一见钟情" \
  -n 200 \
  -v --perf \
  -t 8 -c 4096

# 进入交互式对话
$LLAMA_CPP_DIR/build/bin/llama-cli -m models/${model_name}-Q4_K_M.gguf \
  -i \
  --temp 0.7 \
  --top-k 40 --top-p 0.9 \
  -c 8192 \
  --repeat-penalty 1.1
  
# 为内存有限的设备优化
$LLAMA_CPP_DIR/build/bin/llama-cli -m models/${model_name}-Q4_K_M.gguf \
  -c 2048 \
  -b 512 \
  -t 4 \
  --threads-batch 2 \
  --cache-type-k q4_0 --cache-type-v q4_0 \
  --mmap

📊 实测效果

  • 你好:
    010.jpg
  • 请解释一下一见钟情:
    011.jpg
  • 讲一个关于龙的神话故事,情节要有翻转,结尾出乎意料,不超过500字:
    012.jpg

📈 性能对比测试

初步测试结果

  • 模型大小:1.1G
  • 模型加载时间:约2秒
  • 内存占用:约1.8GB
  • 推理速度:13 tokens/秒

与PC对比

  • 推理速度慢于PC,但是使用没有任何问题
  • 功耗显著更低,适合长期运行
  • 发热控制良好,风扇噪音小

具体的对比结果如下:
013.jpg

性能监控

# 查看CPU、内存、磁盘、网络等使用情况
btop

✅ 部署成功完成

通过这个完整的迁移过程,llama.cpp环境就在星睿O6上成功运行了。接下来可以继续部署其他模型和框架。

🔗 下一篇文章预告
在下一篇中,我们将部署chatglm.cpp环境到星睿O6,这是专为GLM系列优化的框架,在ARM设备上运行效率更高,内存使用更优化。

推荐阅读
关注数
1
内容数
11
此芯AI PC开发套件瑞莎“星睿O6”评测
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息