OrangePi AIpro初识及使用大模型GPT-Neo-1.3B测试

devtools/2024/10/18 23:26:08/

OrangePi AIpro介绍

1.1. 开发板简介

Orange Pi AI Pro 开发板是香橙派联合华为精心打造的高性能AI 开发板,其搭

载了昇腾AI 处理器,可提供8TOPS INT8 的计算能力,内存提供了8GB 和16GB

两种版本。可以实现图像、视频等多种数据分析与推理计算,可广泛用于教育、机

器人、无人机等场景。

1.2. 开发板的硬件规格

1.3 开发板接口

一些基础

安装官方系统

参考http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-AIpro.html

下载官方工具和linux

使用balenaEtche烧录

初始密码

烧录完成后进入系统,会要求输入初始密码,官方系统的初始密码:Mind@123

使用MobaXterm连接

如果使用有线网络 ,在路由器里查询设备ip,用户名:HwHiAiUser 密码:Mind@123 即可登录

若使用无线网络,需要登录系统后设置wifi密码,连接上网络后查询ip

Session里选择SSH,设置如下(我的OrangePi查询到的ip:192.168.50.19)

ubuntu22 开机自动登录

习惯性的,拿到系统就去掉密码,设置好开机自动登录,会节省时间

最开始默认的桌面如下

更改桌面为ubuntu

点击如下位置

选择ubuntu

向日葵远程桌面

安装

下载地址

https://sunlogin.oray.com/download/linux?type=personal

选择麒麟版本

按官网要求安装

设置开机自启动

启动startup application在里面添加向日葵的自启动

一般是/usr/local/sunlogin/bin/sunloginclient

重启即可

换源

编辑sources.list文件

sudo vim /etc/apt/source.list

加入清华源

 

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse # 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换 deb http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted universe multiverse # deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted universe multiverse # 预发布软件源,不建议启用 # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-proposed main restricted universe multiverse # # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-proposed main restricted universe multiverse

保存后更新源和升级包

sudo apt update

sudo apt upgrade

大模型llama测试

准备环境

先查看python版本

安装Transformers库

sudo pip install transformers

安装后才发现使用的是miniconda环境,安装到了python3.10,而使用的是3.9.2(感谢群友Mr.jiang)

conda deactivate

#关闭自动source

conda config --set auto_activate_base false

再安装transformers

上面方法能解决安装transformers问题,但是系统默认安装的torch就不能用了,所以最好的解决方式如下安装:

python -m pip install transformers -i https://mirrors.aliyun.com/pypi/simple/

 

安装opencv和PyTorch

系统默认已经装好,这块就不用自己安装了

如果关闭了conda环境,那就需要自己装了

下载模型

安装git-lfs

sudo apt install git-lfs

可以通过运行git lfs install来确认git-lfs是否正确安装

 

git clone https://opencsg.com/models/shareAI/llama3-Chinese-chat-8b.git --depth 1

模型比较大,第一次下载时sd卡空间不够用,换了一个64G的卡,重新下载才够用,这个模型待测

使用大模型数据GPT-Neo-1.3B

如果下载经常超时,可以尝试换源

from transformers import AutoTokenizer, AutoModelForCausalLM

model_name = "EleutherAI/gpt-neo-1.3B"

tokenizer = AutoTokenizer.from_pretrained(model_name, mirror='tuna')

model = AutoModelForCausalLM.from_pretrained(model_name, mirror='tuna')

如果网络下载总失败,可以通过百度网盘下载

链接:https://pan.baidu.com/s/1cZ0tEHpXLfIy7rLEoGL57g?pwd=kp5b

提取码:kp5b

里面模型文件需自己解压

编写测试程序

 

import torch from transformers import GPTNeoForCausalLM, GPT2Tokenizer tokenizer = GPT2Tokenizer.from_pretrained('EleutherAI/gpt-neo-1.3B') model = GPTNeoForCausalLM.from_pretrained('EleutherAI/gpt-neo-1.3B') # 设置 open-end 生成的 pad token id model.config.pad_token_id = model.config.eos_token_id # 对话循环 while True: # 接收用户输入 user_input = input("You: ") # 如果用户输入为空,结束对话 if not user_input: break # 将用户输入转化为模型输入 input_ids = tokenizer.encode(user_input, return_tensors='pt') attention_mask = torch.ones(input_ids.shape, dtype=torch.long, device=model.device) # 生成回复 output_ids = model.generate( input_ids=input_ids.to(model.device), attention_mask=attention_mask.to(model.device), max_length=50, pad_token_id=model.config.pad_token_id, do_sample=True, temperature=0.7 ) # 解码生成的 token id bot_reply = tokenizer.decode(output_ids[0], skip_special_tokens=True) # 输出回复 print("Bot:", bot_reply)

本机装的torch版本低,需要升级

pip install --upgrade torch

使用过程中发现内存不够

先查看内存使用情况

watch -n 1 free -m

暂时无法在飞书文档外展示此内容

按官方文档扩展内存

再运行程序,可以测试大模型对话,免费的还是一般

其他模型也可以自行下载尝试

总结:

OrangePi AIpro相比树莓派,nano还是有很大优势,硬件上和软件系统上考虑开发者入门提供了很多便利。后期还会不断使用其他方式去验证,大家可以关注。


http://www.ppmy.cn/devtools/45239.html

相关文章

STM32 OTA需要注意问题

一、OTA设计思路(问题) 1、根据stm32f405 flash分布,最初将flash划分为四个区域,分别是Bootloader、APP1、APP2、参数区,设备上电后,进入Bootloader程序,判断OTA参数,根据参数来确定…

python判断文件是否存在

import os test_path "/Users/yxk/Desktop/test/GrayScale.tif" if(os.path.exists(test_path)):print(文件存在!!!!) else:print("文件不存在!!!!")结果如下 …

9款实用而不为人知的小众软件推荐!

AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/ 在电脑软件的浩瀚海洋中,除了那些广为人知的流行软件外,还有许多简单、干净、功能强大且注重实用功能的小众软件等待我们…

JavaScript(ES6)入门

ES6 1、介绍 ECMAScript 6(简称ES6)是于2015年6月正式发布的JavaScript 语言的标准,正式名为ECMAScript 2015(ES2015)。它的目标是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。…

Nginx超时时间

Nginx是一款自由、开源、高性能的HTTP和反向代理服务器,它可以通过不同的设置来提高网站的性能和安全性。其中,设置Nginx超时时间非常重要,因为它将直接影响网站的响应速度和用户体验。本文将从多个方面详细阐述Nginx超时时间的设置方法与注意…

Spring Cloud 应用框架

Spring Cloud 是基于 Spring Boot 的一套工具集,用于构建分布式系统中的常见模式。它提供了服务发现、配置管理、智能路由、服务熔断、负载均衡、全链路追踪等一系列功能,帮助开发者快速构建和部署分布式微服务架构。本文将详细介绍 Spring Cloud 的核心…

Github 2024-05-31 Java开源项目日报 Top10

根据Github Trendings的统计,今日(2024-05-31统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目10TypeScript项目1JavaGuide - Java 程序员学习和面试指南 创建周期:2118 天开发语言:Java协议类型:Apache License 2.0Star数量:1…

Pytorch线性回归

使用pytorch来重现线性模型的过程,构造神经网络module,构造损失函数loss,构造随机梯度下降的优化器sgd。 一 revise 首先确定我们的模型,我们希望完成的目标就是得到较小的loss,所以我们就需要一个标量值的loss。 那…