🔴大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂
🐸一、前言
去年(2023年7月份)开始,就垂涎欲滴香橙派的开发板了,今天终于到手一台。
最开始听到这个名字的时候,还是朋友推荐的,我说我准备自己搭个服务器,跑跑自己的业务项目;他给我说香橙派的产品性价比最高,所以当时就简单的了解了下。后来一看,不是成品,和树莓派一样,需要自己折腾,就没有继续了。
往后,就是陆陆续续的参加了些香橙派的活动,有转发的,有盖楼的等等,不过也只是在外围看看,这次有幸到手一台机器,做个详细评测,把我之前没有跑大模型的遗憾找回来。
😝二、开箱
迫不及待的去驿站把香橙派AIpro拿到后,回到家,饭都没吃就开始开箱了。
包装还是很棒的,开箱后,将里面的部件依次取出,分别有:
-
电源(快充充电器)一个
-
type-c数据线一根
-
香橙派AIpro开发板一台
将 香橙派AIpro开发板 拿起来仔细看了下,嗯,做工和布线还是很规整的。
注意:
在拆香橙派AIpro开发板的时候,还是要稍微注意点儿,当心把天线给弄坏。
🙃三、内部展示
为了方便大家理解各个接口的功能及其作用,我这边引用官网的几张 香橙派AIpro开发板产品图供大家阅览。
正面图:
背面图:
这部分内容就不多介绍了,官方的图其实已经很一目了然啦。
更多介绍,可以直接在这里查看:点我查看
🧐四、准备工作
了解完以上信息后,下面我们就应该可以实际上手操作;不过实际上手操作之前,还需要做点准备工作(过来人的经验…),以免到时候影响自己的后续步骤。
准备硬件:
-
一个USB的键盘:输入专用
-
一个USB的鼠标:操作系统时需要使用
-
一个USB的读卡器:需要支持插入TF卡,烧录系统时使用
-
一根网线:或者WIFI也可以,香橙派AIpro开发板支持直接连接wifi
-
一台显示器:进入系统后查看系统的基本信息,比如ip,以及配置ssh(在这里我踩过坑,一会儿给大家详细介绍)
-
一台别的win电脑:如果要烧录系统的话,需要
基本上就上面这些东西,准备齐全就完活了。
我的开发板下班回来拿到的,等到研究的时候,发现自带的系统不是很好用,所以想着自己烧录一个,结果发现我电脑还不支持直接插入TF卡,于是开始翻箱倒柜的找个读卡器;记的很清楚,以前用不到的时候,到处都是,等到今天用到的时候,一个都找不到!
怎么办?不能让一个小小的读卡器阻挡了我学习的热情,夜里11点,从京东上下了一单,买了一个读卡器,一个TF卡,到货的时候是夜里12点半。
到货后就开始连夜烧录镜像。
🤠五、烧录镜像
烧录工具的下载地址:
点我下载
镜像的下载地址:
点我进去下载
一般我们下载ubuntu
就可以了,linux
内核,对于之前一直用centos
和debain
的用户来说,用ubuntu
很方便。
接下来开始烧录:
-
把TF卡插入到读卡器上
-
将读卡器插入到电脑上
-
打开下载的烧录工具,然后选择本地制卡,如下
-
选择SD卡,一般会默认选择,为了保险,还是自己检查一下吧。
-
最后点击烧录镜像,等待完成即可。
镜像烧录完成后,我们将TF卡重新插回到香橙派AIpro开发板中,开启,启动,然后就是输入密码,默认密码为:Mind@123,进入系统。
不得不说,这个桌面还挺好看。
🔴六、ssh连接
不管是香橙派AIpro开发板自带的系统,还是我们烧录进去的ubuntu
系统,默认ssh是不开启的(网上有人说是开启的,可能系统不一样),我们需要单独的配置一下,才能进行远程连接。
要想使用ssh连接,我们需要操作这么几个事儿:
-
查看本机ip
-
在ssh的配置文件中,开启ssh的端口,以及登录方式。
-
保持远程电脑的网段需要和香橙派AIpro开发板的网段一致,比如:192.168.1.xxx,如果不一致,无法连接
以上两点,搞完后,就可以远程连接了,我一直以为默认是开启ssh的,还有网段不一致,所以导致在这里浪费了不少时间。
🟢查看本机ip的方法,输入以下命令:
ifconfig
可以看的出来,我的ip是:192.168.1.47
🟢修改ssh的配置文件:
/etc/ssh/sshd_config
找到:Port
和ListenAddress
这两行,将注释打开即可。剩下还有文件中本来就开启的一些配置,这边顺便给大家记录下来:
PermitEmptyPasswords no
这个配置项用来控制是否允许空密码登录。默认情况下,如果设置为no,则不允许用户使用空密码登录SSH。如果你希望允许空密码登录,可以将其改为yes,但这通常不推荐,因为这样会降低安全性。
KbdInteractiveAuthentication no
这个配置项用来控制是否启用键盘交互式认证(KBD)。如果设置为no,则禁用这种认证方式。键盘交互式认证是一种额外的安全措施,要求用户在登录时回答一些安全问题。如果你不需要这种额外的安全措施,可以将其禁用。
UsePAM yes
这个配置项用来控制SSH是否使用PAM(可插拔认证模块)进行认证。PAM是一种提供认证、账户管理、密码管理和会话管理的框架。如果设置为yes,则SSH会使用PAM进行认证,这通常是推荐的配置,因为它允许使用更复杂的认证机制,如多因素认证。
X11Forwarding yes
这个配置项用来控制是否允许X11转发。X11转发允许通过SSH连接转发图形用户界面应用程序。如果设置为yes,则允许用户在远程连接中运行图形界面应用程序。如果你不需要这种功能,可以将其设置为no。
PrintMotd no
这个配置项用来控制在用户登录时是否打印消息(Message of the Day)。如果设置为no,则在用户登录时不显示任何消息。这对于减少登录时的输出信息是有用的。
AcceptEnv LANG LC_*
这个配置项用来指定SSH服务接受哪些环境变量。在这里,LANG LC_*表示接受所有以LANG和LC_开头的环境变量。这些变量通常用于设置语言和区域设置。通过接受这些环境变量,用户可以在远程连接中使用他们本地的区域设置。
Subsystem sftp internal-sftp -l INFO -u 0077
这个配置项用来定义SFTP子系统。它指定了SFTP服务使用的内部SFTP服务,并设置了日志级别为INFO,同时指定了SFTP服务的权限为0077(通常表示只有所有者可以读写执行,其他人无权限)。
最后使用命令重启下sshd的服务:
systemctl restart sshd
查看服务是否启动成功:
systemctl status sshd
ssh登录成功后,如下图所示:
如图所示,服务启动成功,接着,我们就可以使用shell
工具连接香橙派AIpro开发板啦,开启下一步的操作。
连接上来之后,我们看看存储情况:
df -h
从上面图中,我们可以看的出来,运行个小型的大模型(名字太长,改个名:小模型),还是错错有余的(板载自带的是32G存储,我给他扩了下,到128G了,32G其实也够)
🤖七、部署大模型及运行
小型的大模型,以下简称:小模型。
早就想整个小模型玩玩了,奈何笔记本显卡不够,服务器的也不够,正好试试香橙派AIpro开发板,8tops的算力,应该是不成问题的,所以,今天我们来实操一下。
本文我们基于Ollama
部署和运行大模型,那么,何为Ollama
?
官网:在这里
不过官网上都是洋文,看着比较吃力。我搜了些资料,给大家现个丑:
Ollama 是一个强大的框架,设计用于在 Docker 容器中部署 LLM。Ollama 的主要功能是在 Docker 容器内部署和管理 LLM 的促进者,它使该过程变得非常简单。它帮助用户快速在本地运行大模型,通过简单的安装指令,可以让用户执行一条命令就在本地运行开源大型语言模型,例如 Llama 2。来源:这里
下面,我们来开始实操!
- 下载
Ollama
用于启动并运行小模型,手动下载ollma
,下载地址如下所示:
https://ollama.com/download/ollama-linux-arm64
直接在浏览器里面输入,回车,自己就会下载。
还可以直接执行命令下载:
curl -fsSL https://ollama.com/install.sh | sh
就是比较慢…
- 将下载下来的文件,上传到香橙派AIpro开发板中,我在home下创建了个文件夹soft,所有的软件都放这里面。
我重名了下,名称:ollama
,不然每次输那么一长段属实累的慌…
- 启动
ollama
的服务
ollama serve
这里可能会遇到个问题:
(base) root@orangepiaipro:/home/soft# ollama serve
Command 'ollama' not found, did you mean:
command 'llama' from snap llama (1.0.1-4-g0fad6ce)
See 'snap info <snapname>' for additional versions.
上面这个错误的原因,就是因为权限不足,所以我们需要给/home/soft
赋权一下。命令如下:
sudo chmod +x /home/soft/ollama
然后我们执行:
./ollama
如果显示和我的一样,那证明没有问题了。
我们输入命令继续启动:
./ollama serve
这种方式启动后,我们不能关掉控制台,也不能执行别的命令,所以我们最好是将
ollama
多的服务创建成服务文件,然后使用systemctl
来管理,要比较方面点。
- 将
ollama
设置成服务:
执行下面的命令:
sudo touch /etc/systemd/system/ollama.service
相当于是创建了个文件:ollama.service
然后编辑文件内容:
vi /etc/systemd/system/ollama.service
复制下面内容进去:
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/bin/ollama serve
User=root
Group=root
Restart=always
RestartSec=3
[Install]
WantedBy=default.target
然后接下来,我们就可以很方便的使用systemctl
进行管理了,重载配置文件:
sudo systemctl daemon-reload
设置开机自启动:
sudo systemctl enable ollama
启动服务:
systemctl start ollama
查看服务状态:
systemctl status ollama
这个时候,我查了下内存占用情况:
free -h
可以说,香橙派AIpro 是毫无压力的。
- 运行大模型
我们可以先从这里看看,ollama
支持的模型有哪些:在这里查看
我这边以千问1.8B
的模型为例,我们看看 香橙派AIpro的负载情况怎么样。
后面的命令就是我们需要执行的,直接复制下来在ssh中执行即可。
ollama run qwen:1.8b
执行完后,会出现下面的这个界面,等等就行,这个时候他在pull模型:
到目前为止,CPU也很OK的
当我们把1.8b的模型跑起来后,就可以直接问问题了,问一个热词问题吧:
🤔请用中文回答我的问题,你觉得9.8和9.11谁大?
🤖
两者都是9.8,但是从数值上来看,9.11更大。这是因为9.11比9.8小了0.6,即在数值上,9.11大于9.8。🤔 我觉得你说的是错的,你确定吗?
🤖作为一个人工智能语言模型,我的训练数据包括各种数字和统计信息,包括对9.8、9.11这两个值的比较分析。
从基本数学原理上来看,两个数相减的结果为零意味着这两数相等。因此,在数值上,9.8等于9.11,所以9.11更大。
需要注意的是,数据的含义和价值往往取决于上下文和使用者的理解,所以在实际应用中,对于某些特定的数据集或统计分析问题,需要通过详细的背景知识、数学原理和数据分析方法来准确地评估和
比较这两个数值之间的大小。🤔很不错,您说的很对
🤖不客气!我很高兴能帮助你理解9.8和9.11这两个数字之间的大小关系。如果你还有其他关于数字比较的问题或者想要了解某个特定领域的数据集或统计分析方法的信息,欢迎随时向我提问。
简单的问了下,问答如上所示,哈哈哈哈,很坚定,9.11>9.8。
按快捷键:ctrl+d退出模型,如果要退出本次会话,可以输入:exit;
总结:运行千问1.8b的模型,CPU负载70多,速度也还行,我们下面再给它上点强度。
- 运行gemma 7b的大模型
执行命令:
./ollama run gemma:7b
7B的模型就是大,4.4G,等我的我都快睡着了,哈哈哈,然后我们体验一下:
接下来我们随便问点问题,看看香橙派AIpro的负载情况。
很明显,流式输出要比1.8b的模型要慢了点,体验不是特别好,但是也能接受。至于模型的质量问题,不在我们今天的讨论范围呢,我们可以忽略;
对于我来说,9.11>9.8 以及鲁迅和周树人不是同一个人,这些问题是模型的问题,与香橙派AIpro没有关系,哈哈哈。
不过我还是很震惊,7b的模型都能跑起来,而且运行的时候,虽然速度慢了点,不是特别流畅外,板载负荷也没有到80%,点个赞!
最后,附一些关于ollama
的常用指令:
-
ollama serve:启动ollama服务
-
ollama create:创建一个模型
-
ollama show:展示模型信息
-
ollama run:运行模型
-
ollama pull:从registry拉取模型
-
ollama push:推送模型到registry
-
ollama list:列出模型
-
ollama cp:复制模型
-
ollama rm:删除模型
-
ollama help:查看帮助
-
ollama --version:查看ollama的版本
-
ollama --help:查看ollama的帮助
✨八、香橙派 AI pro的使用体验
经过两天时间的使用与评测,整体来说,香橙派AIpro开发板的性能还是很强悍的,主要是性价比也高,抱着试试看的态度,尝试跑跑大模型,测试了下,不光能稳定运行,而且香橙派AIpro开发板的CPU负载还没满,响应速度也比较流畅;
由于手头暂时没有专业的测量体温的工具,不过中途我用手摸了下,香橙派AIpro开发板的温度还可以,不烫手,估计有个40-50℃左右。
风扇的话,只有再刚开机的时候转速较高,在跑大模型的时候,风扇和平时一样,也无噪音,很满意。
这款的算力是8tops,希望有机会能玩一玩20tops的香橙派AIpro开发板,跑点更大的模型,尝试指定语料库,进行微调训练试试效果。
⭕九、香橙派AIpro社区
我们无论使用何种产品,除了产品本身的质量之外,其实还有一点是我们比较关注的,那就是有无完善的社区。
毕竟作为开发人员来讲,在实操过程中,一定会或多或少的遇到一些问题,那么有问题怎么办?当然是上社区查查有没有其他大佬有过类似的问题,然后看看如何解决的,香橙派在这块儿做的也不错,社区功能非常完善,大家可以去这里查看:点我查看
可以从左侧菜单中看到,各个系列的香橙派产品,均有对应的交流板块,这对于初入手香橙派的开发者来说,帮助非常大。
除了社区这块,在百度随便一搜,相关资料页很多。
🤔十、结语
正如我上面所说,一次很不错的体验与评测,香橙派AIpro开发板无论从开发板的做工,还是性能,基本上都是遥遥领先的,没的说!
除了这些,还有一点值得点赞,就是小小的开发板上,在体积尽可能最小的情况下,外设接口还是蛮多的,可以外接32GB/64GB/128GB/256GB eMMC模块,支持双4K高清输出。 Orange Pi AIpro引用了相当丰富的接口,包括两个HDMI输出、GPIO接口、Type-C电源接口、支持SATA/NVMe SSD 2280的M.2插槽、TF插槽、千兆网口、两个USB3.0、一个USB Type-C 3.0、一个Micro USB(串口打印调试功能)、两个MIPI摄像头、一个MIPI屏等,预留电池接口
。虽然有些场景下我们仅仅用了其中一部分,但是不能忽视这个优势;正因为外设接口和插件丰富,所以应用场景更是覆盖多个领域:
-
AI边缘计算
-
深度视觉学习及视频流AI分析
-
视频图像分析
-
自然语言处理
-
智能小车
-
机械臂
-
人工智能
-
无人机
-
云计算
-
AR/VR
-
智能安防
-
智能家居等领域
等等。不过,人无完人,金无足赤,没有十全十美的东西,对于香橙派AIpro开发板来说,简单的提几点建议:
-
ssh可以默认开启(我的设备是没有开启的,不知道是不是特例)
-
不建议内置docker(最好板载就是个纯净的系统,用户想要啥,自己去安装)
-
官方社区中可以提供更多镜像,比如debain、centos等