引言
OrangePi AIpro
这块板子作为业界首款基于昇腾深度研发的AI开发板,一经发布本博主就火速去关注了,其配备的 8/20TOPS澎湃算力是目前开发板市场中所具备的最大算力,可谓是让我非常眼馋啊!这么好的板子那必须拿来用用,今天也是很荣幸拿到一款OrangePi AIpro
开发版!于是迫不及待的去开源项目选中了一款LLMS大模型来为部署为大家体验体验。
文章目录
- 引言
- 一、香橙派介绍
-
- [1.1 香橙派 AIpro 开发版介绍](#1.1 香橙派 AIpro 开发版介绍)
- [1.2 到手的第一感觉](#1.2 到手的第一感觉)
- [1.3 外观对比&开机进入](#1.3 外观对比&开机进入)
- 二、部署LLMS大模型
- [三、香橙派 AIpro 的使用体验](#三、香橙派 AIpro 的使用体验)
-
- [3.1 优良的性能](#3.1 优良的性能)
- [3.2 丰富的项目实战教学](#3.2 丰富的项目实战教学)
- [3.3 社区文档的丰富性](#3.3 社区文档的丰富性)
一、香橙派介绍
香橙派(Orange Pi)是深圳市迅龙软件有限公司旗下开源产品品牌,成立于2005年,是全球领先的开源硬件和开源软件服务商,致力于让极客、创客、电子爱好者享用到来自中国的优质、低价的科技产品,通过大规模的社会化协作去创建一个更加美好的信息化人类文明。
1.1 香橙派 AIpro 开发版介绍
OrangePi AIpro
是2023.12月初,香橙派联合华为发布了基于昇腾的Orange Pi AIpro开发板,提供8/20TOPS澎湃算力,作为业界首款基于昇腾深度研发的AI开发板Orange Pi AIpro
不仅集成图形处理器,还有拥有8GB/16GB LPDDR4X,可以外接32GB/64GB/128GB/256GB eMMC模块,支持双4K高清输出,还有很多扩展口这里博主就不介绍了大家直接看图吧。
- 正面展示
- 背面展示
1.2 到手的第一感觉
要问的刚收到板子的心情那当然是非常激动的,刚回来就迫不及待的才开包装给大家展示一下,不多不说香橙派这次外观上没得说,连我一个抠脚大汉都觉得非常精致漂亮。
1.3 外观对比&开机进入
拆来包装上去看香橙派也是非常深得我心,到手82g 重量刚刚好。整体呢只有大概一个巴掌大小,当然想我这种手大的男同胞可能还没我手掌大哈哈哈,而且这次香橙派的散热风扇也是备受好评已经在群聊里看到不少朋友去夸赞他的质感了,后面博主也回给大家来俩张对比图。
- 我这块
OrangePi AIpro
板子提前配备了一张32G的TF卡来进行烧录系统,其背后还有一个 m.2 固态硬盘接口来为我们拓展内存,以运行大型项目。
-
树莓派5
与OrangePi AIpro
散热风扇对比 -
树莓派5
-
香橙派 AIpro
,哈哈哈是不是感觉香橙派 AIpro
在做工上更精细一些
- 开机启动
激动人心的时刻终于来了,开机启动。由于这套开发版内置了 OpenEuler 系统镜像()博主就暂时不烧录其他镜像了,直接开机启动。
-
openEuler 是一由中国开源软件基金会主导,以Linux稳定系统内核为基础,华为深度参与,面向服务器、桌面和嵌入式等的一个开源操作系统。
-
这里直接插电启动,默认用户名
HwHiAiUser
、密码Mind@123
当然root密码也是一样的 -
这里我们进来之后可以直接选择链接WiFi 非常便捷
- 然后我们打开命令窗查看IP , 由于系统默认支持ssh 远程连接,所以博主这里就直接采用 Sxhell 进行连接
- 输入ip 选择
HwHiAiUser
登录 密码Mind@123
二、部署LLMS大模型
说到大语言模型相信大家都不会陌生,大型语言模型(LLMs)是人工智能文本处理的主要类型,也现在最流行的人工智能应用形态。ChatGPT就是是迄今为止最著名的使用LLM的工具,它由OpenAI的GPT模型的特别调整版本提供动力。
2.1 项目介绍
本来博主是准备来部署一下咱们的,清华大语言模型镜像这个目前也是非常的火啊,吸引了很多人的注意其优秀的性能和GPT3 不相上下,但是由于考虑到咱们目前的内存只有TF卡上的32G就决定去 gitee 上找一个小型一点的大模型来实战一下。
- 果不其然刚搜索就发现 一个基于香橙派AI Pro 部署的语言大模型项目,这不正好吗?直接开始
- 点进去一看发现这是南京大学开源的一套基于香橙派 AIpro部署的Tiny-Llama语言模型
- (开源地址)
2.1 拉取代码到环境
- 先cd进入
cd ~/samples
目录 - 之后直接利用git 拉取我们的项目,git 由于系统镜像自带的有就不用我们手动安装了
2.2 自定义算子部署
配置protoc 环境
- 使用wget工具从指定的华为云链接下载 protobuf-all-3.13.0.tar.gz文件
cpp
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/wanzutao/tiny-llama/protobuf-all-3.13.0.tar.gz --no-check-certificate
- 解压刚刚下载的文件
cpp
tar -zxvf protobuf-all-3.13.0.tar.gz
这里解压速度非常快,基本一秒就OK了
- 进入 protobuf-3.13.0 文件夹中
cpp
cd protobuf-3.13.0
更新apt包管理器的软件包列表
cpp
apt-get update
- 使用apt-get安装必要的构建工具,包括autoconf、automake和libtool,这些工具用于配置和构建开源项目
cpp
apt-get install autoconf automake libtool
- 生成配置脚本
configure
, 运行./configure
生成一个Makefile
cpp
./autogen.sh
./configure
- 编译源代码,由于
香橙派 AIpro
是4核64位处理器+ AI处理器支持8个线程,我们我们可以大胆的使用4个并行进程进行编译,以加快编译速度。 - 编译这里的时候大家就可以放松放松了大概只需要10几分钟就好了
cpp
make -j4
- 将编译后的二进制文件和库文件安装到系统指定的位置
cpp
make install
- 更新系统共享库缓存的工具,检查protoc 版本
cpp
sudo ldconfig
protoc --version
算子编译部署
- 将当前工作目录切换到
tiny_llama
- 设置了一个环境变量 ASCEND_PATH,并将其值设为
/usr/local/Ascend/ascend-toolkit/latest
-
export ASCEND_PATH=/usr/local/Ascend/ascend-toolkit/latest
- 将
custom_op/matmul_integer_plugin.cc
文件复制到指定路径
cpp
cp custom_op/matmul_integer_plugin.cc $ASCEND_PATH/tools/msopgen/template/custom_operator_sample/DSL/Onnx/framework/onnx_plugin/
- cd 进入 目标文件夹进行配置
cpp
cd $ASCEND_PATH/tools/msopgen/template/custom_operator_sample/DSL/Onnx
修改环境变量
- 打开build.sh,找到下面四个环境变量,解开注释并修改如下:
cpp
#命令为 vim build.sh
cpp
# 修改内容为
export ASCEND_TENSOR_COMPILER_INCLUDE=/usr/local/Ascend/ascend-toolkit/latest/include
export TOOLCHAIN_DIR=/usr
export AICPU_KERNEL_TARGET=cust_aicpu_kernels
export AICPU_SOC_VERSION=Ascend310B4
编译运行& 依赖安装
- 编译构建项目,进入到构建输出目录以后续处理生成的文
cpp
./build.sh
cd build_out/
- 生成文件到
customize
到默认目录$ASCEND_PATH/opp/vendors/
cpp
./custom_opp_ubuntu_aarch64.run
- 删除冗余文件
cpp
cd $ASCEND_PATH/opp/vendors/customize
rm -rf op_impl/ op_proto/
- 安装依赖:从指定的华为云 PyPI 镜像源安装所需的 Python 包
cpp
cd tiny_llama/inference
pip install -r requirements.txt -i https://mirrors.huaweicloud.com/repository/pypi/simple
- 先cd 回到根目录,在进入家目录,找到咱们的
tiny_llama/inference
2.3 推理启动
- 下载tokenizer文件
cpp
cd tokenizer
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/wanzutao/tiny-llama/tokenizer.zip
unzip tokenizer.zip
- 获取onnx模型文件
cpp
cd ../model
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/wanzutao/tiny-llama/tiny-llama.onnx
-
我们在复制代码的时候一定要仔细嗷博主这里少打了一个w 导致并没有获取到模型,后期找了半天才发现错误所以提醒大家一定要注意好每一步
-
atc模型转换
cpp
atc --framework=5 --model="./tiny-llama.onnx" --output="tiny-llama" --input_format=ND --input_shape="input_ids:1,1;attention_mask:1,1025;position_ids:1,1;past_key_values:22,2,1,4,1024,64" --soc_version=Ascend310B4 --precision_mode=must_keep_origin_dtype
2.4 项目体验
好了到这里我们就算是大功告成了,只需要启动一下mian文件就OK了
- 在
cd tiny_llama/inference
目录下运行命令
cpp
python3 main.py
- 打开网址进行访问
Tiny-Llama这个模型由于尺寸非常小,参数也只有1.1B。所以在我们部署Tiny-Llama这个大语言模型推理过程中,Ai Core的占用率只到60%左右,基本是一秒俩个词左右,速度上是肯定没问题的。后期可以去试试升级一下内存去跑一下当下主流的 千问7B模型 或者 清华第二代大模型拥有 60 亿参数 ChatGLM2 感觉用
OrangePi AIpro
这块板子也是没问题。
三、香橙派 AIpro 的使用体验
3.1 优良的性能
这俩天体验下来
香橙派 AIpro
开发板带给我的感觉还是挺优秀俩个字 ,自从到手了来几乎是不间断地运行,但没有一次自动重启,在持续的高负荷运作中,温度一直保持在50到60°左右,这也体现了香橙派 AIpro
对温控的把持是非常到位的。
而且还有有目前业界最强大的 8/20TOPS澎湃算力,AI 处理器,丰富的插件扩展口这对未来我们需要做的嵌入式AI 项目,具有良好的支持可玩度非常高,为项目创新和开发人员提供广阔的空间不仅可以做智能家居开发,还能对各种ALot 都可以能应用。
- 同时精巧的颜值也是吸引我的一部分,
香橙派 AIpro
作为开发板有AI的强大算力和接口的扩展灵活性,和不错的颜值这样的板子谁不爱呢?
3.2 丰富的项目实战教学
这个也是在本博主在思考做什么开源项目的的时候的感受,
香橙派 AIpro
不仅在gitee
上有很多开源项目,并且在百度 哔哩哔哩 这些平台都有丰富的实战教学这为新手入门极大的降低了难度。
3.3 社区文档的丰富性
本着
OrangePi AIpro
这块板子作为基于昇腾深度研发的AI开发板,博主就想想看看华为的昇腾社区有没有什么文档已经学习项目来做一做结果不去不不知道,一看我嘞个乖乖原来资料这么全的嘛?
- 香橙派AIpro学习资源一站式导航
- 不仅有各种项目以及官方样例来供我们学习
- 在这里你还可以看到各种报错解决方法,以及官方整理好的学习案例推荐
以上就是本博主这段时间使用的感谢啦!相信你们看到这里也已经迫不及待的想体验体验了,快去部署一个属于你的LLMS大模型咱们下次再见啦。