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

embedded/2024/9/25 16:53:29/

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/embedded/45690.html

相关文章

T-Pot多功能蜜罐实践@debian12@FreeBSD

T-Pot介绍 T-Pot是一个集所有功能于一身的、可选择分布式的多构架(amd64,arm64)蜜罐平台,支持20多个蜜罐和很多可视化选项,使用弹性堆栈、动画实时攻击地图和许多安全工具来进一步改善欺骗体验。GitHub - telekom-sec…

simCSE句子向量表示(1)-使用transformers API

SimCSE SimCSE: Simple Contrastive Learning of Sentence Embeddings. Gao, T., Yao, X., & Chen, D. (2021). SimCSE: Simple Contrastive Learning of Sentence Embeddings. arXiv preprint arXiv:2104.08821. 1、huggingface官网下载模型 官网手动下载:pri…

理解不同层的表示(layer representations)

在机器学习和深度学习领域,特别是在处理音频和自然语言处理(NLP)任务时,"层的表示"(layer representations)通常是指神经网络不同层在处理输入数据时生成的特征或嵌入。这些表示捕获了输入数据的…

关于鸿蒙系统对比安卓系统的优势?

鸿蒙操作系统 一、基于微内核架构的操作系统。什么是微内核设计? 微内核设计是一种操作系统设计方法,它将操作系统的核心功能模块化,将尽可能多的功能移到用户空间,只在内核中保留最基本的功能,如进程管理和内存管理…

C语言之旅:探索单链表

目录 一、前言 二、实现链表的功能: 打印 创建节点 尾插 尾删 头插 头删 查找 在指定位置之前插入数据 指定位置删除 在指定位置之后插入数据 打印 销毁 三、全部源码: 四、结语 一、前言 链表是一个强大且基础的数据结构。对于很多初…

大文件分片【笔记】

createChunk.js Spark-md5计算文件各分片MD5生成文件指纹 可以帮助我们更加方便地进行文件哈希计算和文件完整性检测等操作。 import sparkMd5 from ./sparkmd5.jsexport function createChunk(file, index, chunkSize) {return new Promise((resolve, reject) > {const sta…

系统架构设计师【第1章】: 绪论 (核心总结)

文章目录 1.1 系统架构概述1.1.1 系统架构的定义及发展历程1.1.2 软件架构的常用分类及建模方法1.1.3 软件架构的应用场景1.1.4 软件架构的发展未来 1.2 系统架构设计师概述1.2.1 架构设计师的定义、职责和任务1.2.2 架构设计师应具备的专业素质1.2.3 架构设计师的知识…

配置Zabbix自定义监控、自动发现与注册及代理与Windows监控

目录 引言 一、自定义监控内容 (一)添加监控主机 (二)添加自定义监控内容 (三)自定义监控模板 1.创建模板 2.创建应用集 3.创建监控项 4.创建触发器 5.创建图形 6.主机与模板关联 7.设置邮件报…