0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

小身板大能量:树莓派玩转 Phi-2、Mistral 和 LLaVA 等AI大模型~

上海晶珩电子科技有限公司 2025-03-25 09:32 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

076e736c-0919-11f0-9434-92fbcf53809c.jpg

你是否想过在自己的设备上运行自己的大型语言模型(LLMs)或视觉语言模型(VLMs)?你可能有过这样的想法,但是一想到要从头开始设置、管理环境、下载正确的模型权重,以及你的设备是否能处理这些模型的不确定性,你可能就犹豫了。

让我们更进一步。想象一下,在自己的信用卡大小的设备上——比如Raspberry Pi ——运行自己的LLM或VLM。不可能吗?完全不是。毕竟,我正在写这篇帖子,所以这肯定是可能的。

确实可能,但为什么要这么做呢?

目前,在边缘设备上运行LLM似乎有些牵强。但这个特定的利基用例应该会随着时间的推移而成熟,我们肯定会看到一些很酷的边缘解决方案,这些解决方案采用完全本地的生成式AI解决方案,在边缘设备上运行。

这也是为了探索可能性的极限。如果能在计算规模的这一极端实现,那么在Raspberry Pi 和大型强大服务器GPU之间的任何级别上都可以实现。

传统上,边缘AI与计算机视觉紧密相连。探索在边缘部署LLMs和VLMs为这个新兴领域增添了一个令人兴奋的维度。

最重要的是,我只是想用我最近购买的Raspberry Pi 5做一些有趣的事情。

那么,我们如何在Raspberry Pi 上实现这一切呢?使用Ollama!

什么是Ollama?

Ollama已经成为在个人电脑上运行本地LLMs的最佳解决方案之一,而无需处理从头开始设置的麻烦。只需几条命令,就可以毫无问题地设置好一切。在我的经验中,它完全自给自足,并且在多个设备和模型上都能完美运行。它甚至提供了一个用于模型推理的REST API,因此你可以让它在Raspberry Pi 上运行,并从你的其他应用程序和设备中调用它(如果你愿意的话)。

还有Ollama Web UI,这是一个与Ollama无缝运行的漂亮的人工智能用户界面(UI)/用户体验(UX),适合那些对命令行界面感到不安的人。如果你愿意的话,它基本上是一个本地的ChatGPT界面。

Ollama和Ollama Web UI还支持VLM,如LLaVA,这为边缘生成式AI用例打开了更多的大门。

技术要求

你只需要以下设备:

Raspberry Pi 5(或速度较慢的Raspberry Pi 4)——选择8GB RAM版本以容纳7B模型。

SD卡——至少16GB,容量越大,可容纳的模型越多。预先加载有合适的操作系统,如Raspbian Bookworm或Ubuntu。

互联网连接

就像我之前提到的,在Raspberry Pi 上运行Ollama已经接近硬件谱系的极端。理论上,任何比Raspberry Pi 更强大的设备(只要它运行Linux发行版并具有类似的内存容量),都应该能够运行Ollama和本文中讨论的模型。

1. 安装Ollama

为了在Raspberry Pi 上安装Ollama,我们将避免使用Docker以节省资源。

在终端中运行

curl https://ollama.ai/install.sh | sh

运行上述命令后,你应该会看到与下面类似的图像。

07aa9018-0919-11f0-9434-92fbcf53809c.png

就像输出所说的那样,转到0.0.0.0:11434以验证Ollama是否正在运行。由于我们使用的是Raspberry Pi ,所以看到“WARNING: No NVIDIA GPU detected. Ollama will run in CPU-only mode.”(警告:未检测到NVIDIA GPU。Ollama将以仅CPU模式运行。)是正常的。但是,如果你在这些说明中看到的是应该具有NVIDIA GPU的设备,那么可能出现了问题。

2. 通过命令行运行LLMs

查看官方the official Ollama model library,了解可以使用Ollama运行的模型列表。在8GB的Raspberry Pi 上,大于7B的模型将无法容纳。让我们使用Phi-2,一个来自微软推出的2.7B LLM,现在在MIT许可下。

在终端中运行

ollama run phi

一旦你看到与下面类似的输出,你就已经在Raspberry Pi 上运行了一个LLM!就是这么简单。

07c68d18-0919-11f0-9434-92fbcf53809c.png

以下是与Phi-2 2.7B的交互。显然,你不会得到相同的输出,但你应该明白了

07e7b07e-0919-11f0-9434-92fbcf53809c.png

你可以尝试其他模型,如Mistral、Llama-2等,只需确保SD卡上有足够的空间存储模型权重。

当然,模型越大,输出速度就越慢。在Phi-2 2.7B上,我可以获得大约每秒4个令牌的速度。但是,使用Mistral 7B,生成速度下降到大约每秒2个令牌。一个令牌大致相当于一个单词。

以下是与Mistral 7B的交互

07feb92c-0919-11f0-9434-92fbcf53809c.png

现在我们已经在Raspberry Pi 上运行了LLMs,但还没有结束。终端并不适合所有人。让我们也让Ollama Web UI运行起来!

3. 安装和运行Ollama Web UI

我们将遵循Ollama Web UI GitHub存储库official Ollama Web UI GitHub Repository(https://github.com/open-webui/open-webui)上的说明,在不使用Docker的情况下进行安装。它建议Node.js版本至少为20.10,因此我们将遵循这一建议。它还建议Python版本至少为3.11,但Raspbian OS已经为我们安装了该版本。

我们必须先安装Node.js。在终端中运行

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - &&\sudo apt-get install -y nodejs

对于未来的读者,如果需要,可以将20.x更改为更合适的版本。

然后运行下面的代码块。

git clone https://github.com/ollama-webui/ollama-webui.gitcd ollama-webui/
# Copying required .env filecp -RPp example.env .env
# Building Frontend Using Nodenpm inpm run build
# Serving Frontend with the Backendcd ./backendpip install -r requirements.txt --break-system-packages sh start.sh

这是对GitHub上提供的内容的轻微修改。请注意,为了简洁和方便,我们没有遵循最佳实践,比如使用虚拟环境,并且我们使用了--break-system-packages标志。如果遇到找不到uvicorn之类的错误,请重新启动终端会话。

如果一切顺利,你应该能够通过Raspberry Pi 上的http://0.0.0.0:8080或同一网络上的另一台设备通过http://:8080/访问Ollama Web UI。

081ed07c-0919-11f0-9434-92fbcf53809c.png

创建账户并登录后,你应该会看到与下面类似的图像。

0838c9aa-0919-11f0-9434-92fbcf53809c.png

如果你之前下载了一些模型权重,你应该会在下面的下拉菜单中看到它们。如果没有,你可以转到设置以下载模型。可能的模型会出现在这里

085d6d50-0919-11f0-9434-92fbcf53809c.png

如果你想要下载新的模型,去Settings > Models to pull models

087b42a8-0919-11f0-9434-92fbcf53809c.png

整个界面非常简洁直观,因此我不会过多解释。这确实是一个非常出色的开源项目。

以下是通过Ollama Web UI与Mistral 7B的交互示例

08976c62-0919-11f0-9434-92fbcf53809c.png

4. 通过Ollama Web UI运行视觉语言模型(VLMs)

就像我在本文开头提到的那样,我们还可以运行VLMs。让我们运行一个流行的开源VLM——LLaVA,它恰好也被Ollama支持。为此,请通过界面拉取“llava”以下载其权重。

不幸的是,与大型语言模型(LLMs)不同,Raspberry Pi 上的设置需要相当长的时间来解释图像。下面的示例大约需要6分钟来处理。大部分时间可能是因为图像方面的处理尚未得到适当优化,但这种情况在未来肯定会改变。令牌生成速度约为每秒2个令牌。

总结

至此,我们已经基本完成了本文的目标。回顾一下,我们已经成功使用Ollama和Ollama Web UI在Raspberry Pi 上运行了Phi-2、Mistral和LLaVA等LLMs和VLMs。

我完全可以想象出几个在Raspberry Pi (或其他小型边缘设备)上托管本地LLMs的用例,特别是如果我们使用Phi-2等大小的模型,每秒4个令牌的速度对于某些用例中的流式传输来说似乎是可接受的速度。

“小型”LLMs和VLMs领域(考虑到其“大型”的指定,这一名称有些自相矛盾)是一个活跃的研究领域,最近发布了相当多的模型。希望这一新兴趋势能够继续下去,并发布更多高效且紧凑的模型!在未来几个月里,这无疑是值得关注的。

免责声明:作者与Ollama或Ollama Web UI没有关联。所有观点均为作者个人的看法,不代表任何组织。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    89

    文章

    38153

    浏览量

    296826
  • 树莓派
    +关注

    关注

    122

    文章

    2069

    浏览量

    109737
  • 大模型
    +关注

    关注

    2

    文章

    3446

    浏览量

    4973
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于树莓(RaspberryPi)构建高效实时监控系统

    由于树莓体积小、可开发性强特性,常被用于视频监控场景中,结合 ZeroNews,可实现用户在任意位置都能实时安全得访问视频监控系统。 先决条件:树莓
    的头像 发表于 09-22 15:14 869次阅读
    基于<b class='flag-5'>树莓</b><b class='flag-5'>派</b>(RaspberryPi)构建高效实时监控系统

    如何使用树莓与OpenCV实现面部和运动追踪的云台系统?

    大家好,这是一个树莓和OpenCV的连载专题。使用树莓与OpenCV实现姿态估计和面部特征点追踪使用树莓
    的头像 发表于 08-14 17:45 977次阅读
    如何使用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>与OpenCV实现面部和运动追踪的云台系统?

    树莓操作系统:版本、特性及设置完整指南!

    树莓操作系统是什么?树莓操作系统是由树莓基金会专为树莓
    的头像 发表于 07-28 18:26 843次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>操作系统:版本、特性及设置完整指南!

    Arm方案 基于Arm架构的边缘侧设备(树莓或 NVIDIA Jetson Nano)上部署PyTorch模型

    本文将为你展示如何在树莓或 NVIDIA Jetson Nano 基于 Arm 架构的边缘侧设备上部署 PyTorch 模型
    的头像 发表于 07-28 11:50 2508次阅读

    如何在树莓 AI HAT+上进行YOLO姿态估计?

    大家好,接下来会为大家开一个树莓5和YOLO的连载专题。内容包括四个部分:在树莓5上使用YOLO进行物体和动物识别-入门指南在树莓
    的头像 发表于 07-20 20:34 617次阅读
    如何在<b class='flag-5'>树莓</b><b class='flag-5'>派</b> <b class='flag-5'>AI</b> HAT+上进行YOLO姿态估计?

    如何在树莓 AI HAT+上进行YOLO目标检测?

    大家好,接下来会为大家开一个树莓5和YOLO的连载专题。内容包括四个部分:在树莓5上使用YOLO进行物体和动物识别-入门指南在树莓
    的头像 发表于 07-19 08:34 1209次阅读
    如何在<b class='flag-5'>树莓</b><b class='flag-5'>派</b> <b class='flag-5'>AI</b> HAT+上进行YOLO目标检测?

    新品上线|Maix4-HAT 大模型 AI 加速套件 ,一键解锁树莓多模态 AI 力量!

    还在为边缘端的大模型运行发愁?还在为算力不够、模型太大束手无策?Maix4-HAT,一款专为端侧大模型而生的高性能AI加速模块,现已正式上线淘宝!淘宝:https://item.tao
    的头像 发表于 07-18 18:35 1176次阅读
    新品上线|Maix4-HAT 大<b class='flag-5'>模型</b> <b class='flag-5'>AI</b> 加速套件 ,一键解锁<b class='flag-5'>树莓</b><b class='flag-5'>派</b>多模态 <b class='flag-5'>AI</b> 力量!

    树莓6 传闻:发布日期与规格!

    每当我想再为我的收藏增添一款树莓时,总会在是立即购买还是等待硬件更强大的下一代之间犹豫不决。但新树莓型号的发布往往容易被错过,尤其是在你的信息流被病毒式传播的猫咪视频占据时。因此,
    的头像 发表于 07-11 16:21 1362次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>6 传闻:发布日期与规格!

    树莓小技巧:无需键盘或显示器,如何通过WiFi设置树莓

    树莓是一款小巧便携的USB供电计算机,可以隐藏起来用于小型项目,如网络服务器或家庭自动化。通常,设置树莓需要键盘和显示器来编辑和查看树莓
    的头像 发表于 06-26 15:41 1051次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>小技巧:无需键盘或显示器,如何通过WiFi设置<b class='flag-5'>树莓</b><b class='flag-5'>派</b>?

    树莓分类器:用树莓识别不同型号的树莓

    在本教程系列的第一部分中,您将学习如何使用树莓AI摄像头来检测不同的树莓型号。本系列由DavidPlowman创建,他是
    的头像 发表于 06-13 16:39 1001次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>分类器:用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>识别不同型号的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>!

    树莓“揪出”家里的耗电怪兽!

    在本应用中,我们将使用树莓设置一个CE电流监测器,并通过网页界面显示电路的电流读数。本项目使用的组件硬件组件树莓2ModelBx112通
    的头像 发表于 06-04 15:33 1146次阅读
    用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>“揪出”家里的耗电怪兽!

    树莓“吉尼斯世界记录”:将树莓的性能发挥到极致的项目!

    完成的许多酷炫项目。这就引出了一个问题——你该如何将树莓的性能推向极限呢?历经13年的项目实践和树莓各型号的发展,你会惊讶地发现,树莓
    的头像 发表于 05-22 16:53 1211次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>“吉尼斯世界记录”:将<b class='flag-5'>树莓</b><b class='flag-5'>派</b>的性能发挥到极致的项目!

    树莓 Zero 打造的智能漫游车!

    使用PXFMini和树莓Zero打造您自己的自主漫游车。本项目所用组件硬件组件ErleRoboticsPXFmini×1树莓Zero×1树莓
    的头像 发表于 05-13 16:39 873次阅读
    用 <b class='flag-5'>树莓</b><b class='flag-5'>派</b> Zero 打造的智能漫游车!

    4台树莓5跑动大模型!DeepSeek R1分布式实战!

    导语“用4台树莓5组网,轻松运行大模型——这可能是2025年最颠覆认知的开源AI项目!”GitHub明星项目distributed-llama最新实战案例曝光:通过独创的动态
    的头像 发表于 03-24 14:50 1075次阅读
    4台<b class='flag-5'>树莓</b><b class='flag-5'>派</b>5跑动大<b class='flag-5'>模型</b>!DeepSeek R1分布式实战!

    法国AI初创企业Mistral AI计划IPO

    法国AI领域的初创企业Mistral AI近日宣布了其未来的发展蓝图。公司创始人兼首席执行官Arthur Mensch明确表示,Mistral AI
    的头像 发表于 01-24 13:58 846次阅读