【 香橙派 AIpro评测】大语言模型实战教程:香橙派 AIpro部署LLMS大模型实站(保姆级教学)

引言

OrangePi AIpro 这块板子作为业界首款基于昇腾深度研发的AI开发板,一经发布本博主就火速去关注了,其配备的 8/20TOPS澎湃算力是目前开发板市场中所具备的最大算力,可谓是让我非常眼馋啊!这么好的板子那必须拿来用用,今天也是很荣幸拿到一款 OrangePi AIpro 开发版!于是迫不及待的去开源项目选中了一款LLMS大模型来为部署为大家体验体验。

文章目录

  • 引言
  • 一、香橙派介绍
    • 1.1 香橙派 AIpro 开发版介绍
    • 1.2 到手的第一感觉
    • 1.3 外观对比&开机进入
  • 二、部署LLMS大模型
    • 2.1 项目介绍
    • 2.1 拉取代码到环境
    • 2.2 自定义算子部署
      • 配置protoc 环境
      • 算子编译部署
      • 修改环境变量
      • 编译运行& 依赖安装
    • 2.3 推理启动
    • 2.4 项目体验
  • 三、香橙派 AIpro 的使用体验
    • 3.1 优良的性能
    • 3.2 丰富的项目实战教学
    • 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 固态硬盘接口来为我们拓展内存,以运行大型项目。

在这里插入图片描述

  • 树莓派5OrangePi 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文件
wget  https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/wanzutao/tiny-llama/protobuf-all-3.13.0.tar.gz --no-check-certificate

在这里插入图片描述

  • 解压刚刚下载的文件
tar -zxvf protobuf-all-3.13.0.tar.gz

在这里插入图片描述

这里解压速度非常快,基本一秒就OK了

在这里插入图片描述

  • 进入 protobuf-3.13.0 文件夹中
cd protobuf-3.13.0

更新apt包管理器的软件包列表

apt-get update

在这里插入图片描述

  • 使用apt-get安装必要的构建工具,包括autoconf、automake和libtool,这些工具用于配置和构建开源项目
apt-get install autoconf automake libtool

在这里插入图片描述

  • 生成配置脚本 configure , 运行 ./configure 生成一个Makefile
./autogen.sh
./configure
  • 编译源代码,由于 香橙派 AIpro 是4核64位处理器+ AI处理器支持8个线程,我们我们可以大胆的使用4个并行进程进行编译,以加快编译速度。
  • 编译这里的时候大家就可以放松放松了大概只需要10几分钟就好了
make -j4

在这里插入图片描述

  • 将编译后的二进制文件和库文件安装到系统指定的位置
make install

在这里插入图片描述

  • 更新系统共享库缓存的工具,检查protoc 版本
sudo ldconfigprotoc --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 文件复制到指定路径
cp custom_op/matmul_integer_plugin.cc $ASCEND_PATH/tools/msopgen/template/custom_operator_sample/DSL/Onnx/framework/onnx_plugin/
  • cd 进入 目标文件夹进行配置
cd $ASCEND_PATH/tools/msopgen/template/custom_operator_sample/DSL/Onnx

在这里插入图片描述

修改环境变量

  • 打开build.sh,找到下面四个环境变量,解开注释并修改如下:
#命令为 vim build.sh

在这里插入图片描述

# 修改内容为
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

在这里插入图片描述
在这里插入图片描述

编译运行& 依赖安装

  • 编译构建项目,进入到构建输出目录以后续处理生成的文
./build.sh
cd build_out/

在这里插入图片描述

  • 生成文件到 customize 到默认目录 $ASCEND_PATH/opp/vendors/
./custom_opp_ubuntu_aarch64.run
  • 删除冗余文件
cd $ASCEND_PATH/opp/vendors/customize
rm -rf op_impl/ op_proto/

在这里插入图片描述

  • 安装依赖:从指定的华为云 PyPI 镜像源安装所需的 Python 包
cd tiny_llama/inference
pip install -r requirements.txt -i https://mirrors.huaweicloud.com/repository/pypi/simple
  • 先cd 回到根目录,在进入家目录,找到咱们的 tiny_llama/inference
    在这里插入图片描述

2.3 推理启动

  • 下载tokenizer文件
cd tokenizer
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/wanzutao/tiny-llama/tokenizer.zip
unzip tokenizer.zip   

在这里插入图片描述

  • 获取onnx模型文件
cd ../model
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/wanzutao/tiny-llama/tiny-llama.onnx
  • 我们在复制代码的时候一定要仔细嗷博主这里少打了一个w 导致并没有获取到模型,后期找了半天才发现错误所以提醒大家一定要注意好每一步
    在这里插入图片描述

  • atc模型转换

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 目录下运行命令
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大模型咱们下次再见啦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/865706.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode热题100刷题6:160. 相交链表、206. 反转链表、234. 回文链表、141. 环形链表、142. 环形链表 II

160. 相交链表 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/ class Solution { public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {ListNode…

QDockWidget类详解

一.QDockWidget类概述 1.QDockWidget类 QDockWidget类提供了一个特殊的窗口部件,它可以是被锁在QMainWindow窗口内部或者是作为顶级窗口悬浮在桌面上。 QDockWidget类提供了dock widget的概念,dock widget也就是我们熟悉的工具面板或者是工具窗口。Do…

nginx转发的问题

我在项目配置的时候遇到一个问题: 配置了域名转发,且配置了https nginx配置如下: server {listen 443 ssl;server_name yourdomain.com;ssl_certificate /path/to/your/certificate.crt;ssl_certificate_key /path/to/your/private.key;loca…

10.SQL注入-http header利用案例

SQL注入-http header利用案例 首先通过登录http头界面,如图所示:登录的信息会被记录到数据库中去,同时使用bp进行抓包分析 将抓包的数据发送repeater里面进行调试 通过useragent进行注入 将useragent对应的数据信息删除掉,输入单引号测试被后台执行报错sql语法…

【Python机器学习】模型评估与改进——带交叉验证的网格搜索

虽然将数据划分为训练集、验证集、测试集的方法是可行的,也相对常用,但这种方法对数据的划分相当敏感,为了得到对泛化性能的更好估计,我们可以使用交叉验证来评估每种参数组合的性能,而不是仅将数据单次划分为训练集与…

为什么要在成像应用中使用图像采集卡?

达到最大产量是工业和工厂自动化的关键标准之一。提高传感器分辨率和帧速率有助于实现这一目标,但也使带宽达到极限,并提出了新的传输问题。当前高带宽接口(如10GigE、相机直接与PC连接和嵌入式系统)的实现促使成像应用的许多用户询问如何以最佳配置最优…

vue3进阶,渲染函数使用

目录 渲染函数使用场景 h() 渲染函数 渲染函数基础写法 渲染函数的组件传参,事件传递 渲染函数的插槽使用 结语 渲染函数使用场景 在写这篇文章之前,我会先简单说一下渲染函数,并且我会在第一个渲染函数的介绍中,标名渲染函数…

[Go 微服务] Kratos 验证码业务

文章目录 1.环境准备2.验证码服务2.1 kratos 初始化验证码服务项目2.2 使用 Protobuf 定义验证码生成接口2.3 业务逻辑代码实现 1.环境准备 protoc和protoc-gen-go插件安装和kratos工具安装 protoc下载 下载二进制文件:https://github.com/protocolbuffers/protobu…

探索智慧校园人事系统:社会关系管理功能全解析

智慧校园人事系统中的社会关系管理模块,旨在通过数字化手段,高效、安全地记录与管理教职工的社会联系信息,包括但不限于家庭成员、紧急联系人、学术合作关系、社会兼职等,旨在促进学校对教职工个人生活关怀及职业网络拓展的理解和…

四、(2)获取数据(补充urllib)(爬虫及数据可视化)

四、(2)获取数据(补充urllib)(爬虫及数据可视化) urllibget请求post请求User-AgentResponse模拟真实信息在豆瓣spider中真实实现 urllib 此处的扩展,可以进行在主体的程序学习完成后&#xff0…

【数据结构】04.双向链表

一、双向链表的结构 注意:这里的“带头”跟前面我们说的“头节点”是两个概念,带头链表里的头节点,实际为“哨兵位”,哨兵位节点不存储任何有效元素,只是站在这里“放哨的”。 “哨兵位”存在的意义:遍历循…

Roboflow自动标定数据集

最近需要自己打数据集,记录一下用Roboflow来打标签。 https://roboflow.com/(官网) 进入官网先注册,注册完成后进入这个界面。 我先讲如果不想让数据集公开怎么办,因为这里每个新建的都是公开的。新账号进去应该进去…

【数据分享】国家级旅游休闲街区数据(Excel/Shp格式/免费获取)

之前我们分享过从我国文化和旅游部官网整理的2018-2023年我国50个重点旅游城市星级饭店季度经营状况数据(可查看之前的文章获悉详情)!文化和旅游部官网上也分享有很多与旅游相关的常用数据,我们基于官网发布的名单文件整理得到全国…

Qt Creator13配置Android开发环境

QT Creator13是目前(2024年)最新版本,配置Android开发环境有一些不一样,走了一些弯路,记录如下。 1、安装JDK和SDK 下载安装JDK和SDK,建议安装在无空格和中文字符的目录下。 具体安装步骤不再赘述&#…

GraalVM

文章目录 1、什么是GraalVM2、GraalVM的两种模式1_JIT模式2_AOT模式3_总结 3、应用场景1_SpringBoot搭建GraalVM应用2_函数计算3_Serverless应用 4、参数优化和故障诊断1_内存快照文件的获取2_运行时数据的获取 1、什么是GraalVM GraalVM是Oracle官方推出的一款高性能JDK&…

如何改善提示词,让 GPT-4 更高效准确地把视频内容整体转换成文章?

(注:本文为小报童精选文章。已订阅小报童或加入知识星球「玉树芝兰」用户请勿重复付费) 让我们来讨论一下大语言模型应用中的一个重要原则 ——「欲速则不达」。 作为一个自认为懒惰的人,我一直有一个愿望:完成视频制作…

Spire.PDF for .NET【文档操作】演示:以特定的缩放比例/百分比打开 PDF 文件

有时,我们可能需要在显示 PDF 文件时更改缩放比例以满足我们的要求。在本文中,我们将演示如何使用 Spire.PDF for .NET 以特定的缩放比例/百分比(例如默认值、100% 或任何其他所需的缩放比例)打开 PDF 文件。 Spire.PDF for .NET…

Renesas R7FA8D1BH (Cortex®-M85) I2C接口应用(OLED)

目录 概述 1 软硬件 1.1 软硬件环境信息 1.2 开发板信息 1.3 调试器信息 2 FSP和KEIL配置I2C 2.1 I2C硬件电路 2.2 FSP配置参数 3 软件功能实现 3.1 FSP生成项目 3.2 FSP中I2C接口函数 3.2.1 I2C Master的函数列表 3.2.2 函数功能介绍 3.3 I2C接口 4 验证i2c接口…

Vant Design - VUE 时间区间限制

效果图&#xff0c;限制7天 实现代码 <a-range-picker v-model"dateTime" style"width: 100%" :disabled-date"disabledDate" format"YYYY-MM-DD HH:mm:ss" :showTime"true" :placeholder"[开始时间, 结束时间]&quo…

浅析MySQL-索引篇01

什么是索引&#xff1f; 索引是帮助存储引擎快速获取数据的一种数据结构&#xff0c;类似于数据的目录。 索引的分类 按数据结构分类&#xff1a; MySQL 常见索引有 BTree 索引、HASH 索引、Full-Text 索引。 Innodb是MySQL5.5之后的默认存储引擎&#xff0c;BTree索引类型也…