在Raspberry Pi上运行本地LLM 和 VLM

2024年01月17日 由 alex 发表 640 0

Ollama 是什么?


Ollama 已经成为在个人电脑上运行本地长短期记忆(LLM)的最佳解决方案之一,无需从头开始处理设置的麻烦。通过几条命令,一切都可以无任何问题地设置起来。它甚至公开了一个 REST API 用于模型推理,所以如果你想的话,你可以让它在Raspberry Pi上运行,并从你的其他应用程序和设备中调用它。


14


还有名为Ollama Web UI的产品,它是一个漂亮的AI UI/UX作品,与Ollama无缝运行,非常适合那些担心命令行界面的用户。基本上,你可以把它看作是一个本地的ChatGPT界面。


结合在一起,这两款开源软件目前为我所感受到的最佳本地托管LLM体验提供了支持。


Ollama和Ollama Web UI都支持像LLaVA这样的VLMs,这为边缘生成式AI用例打开了更多的大门。


技术要求


你需要如下设施:

  • Raspberry Pi 5(或 4,设置速度较慢)- 选择 8GB RAM 变体以适合 7B 型号。
  • SD 卡 — 最小 16GB,容量越大,可容纳的型号越多。是否已加载适当的操作系统,例如 Raspbian Bookworm 或 Ubuntu
  • 互联网连接


正如我之前提到的,将Ollama运行在Raspberry Pi上已经是在硬件极限的边缘了。从理论上讲,任何比Raspberry Pi强大的设备,只要运行了Linux发行版并且具有类似的内存容量,都应当能够运行Ollama及本文讨论的模型。


安装Ollama


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


在终端运行


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


在运行上述命令后,你应该会看到类似于下图的内容。


15


正如输出所显示的,前往 0.0.0.0:11434 来确认Ollama正在运行。由于我们正在使用Raspberry Pi,看到‘警告:未检测到NVIDIA GPU。Ollama将仅在CPU模式下运行。’是正常的。但是,如果你按照这些指示在本应具有NVIDIA GPU的设备上操作,那么表示出现了一些问题。


通过命令行运行LLM


查看官方的Ollama模型库,列出了可以使用Ollama运行的模型。在8GB的Raspberry Pi上,大于7B的模型将无法运行。我们来使用Phi-2,这是一个来自微软的2.7B LLM,现在已获得MIT许可证。


我们将使用默认的Phi-2模型,但也可自由使用此处找到的任何其他标签。


在终端中,运行


ollama run phi


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


16


17


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


自然地,模型越大,输出速度也会越慢。在Phi-2 2.7B上,我大约能每秒得到4个token。但是使用Mistral 7B模型,生成速度会降到每秒大约2个token。一个token大致相当于一个单词。


18


现在我们的Raspberry Pi上可以运行LLM,但我们还没有完成。


安装并运行Ollama Web UI


我们将按照官方Ollama Web UI GitHub仓库的指南进行安装,不使用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.gitclone https://github.com/ollama-webui/ollama-webui.git
cd ollama-webui/
# Copying required .env file
cp -RPp example.env .env
# Building Frontend Using Node
npm i
npm run build
# Serving Frontend with the Backend
cd ./backend
pip install -r requirements.txt --break-system-packages 
sh start.sh


这是GitHub上提供内容的一个小修改。请注意,为了简便和简洁,我们没有遵循诸如使用虚拟环境之类的最佳实践,并且我们正在使用 --break-system-packages 标志。如果你遇到像找不到 uvicorn 这样的错误,请重启终端会话。


如果一切顺利,你应该能够通过Raspberry Pi的 http://0.0.0.0:8080 端口访问Ollama Web UI,或者如果你是通过同一网络上的另一台设备访问的话,可以通过 http://<Raspberry Pi的本地地址>:8080/ 访问。


19


一旦你创建了一个账户并登陆后,你应该会看到一个类似下面图片的界面。


20


如果你之前下载了一些模型权重,你应该能在下拉菜单中看到它们,如下所示。如果没有,你可以去设置中下载一个模型。


21


22


整个界面非常清晰且直观,因此我不会对其进行太多解释。这确实是一个做得非常出色的开源项目。


23


通过Ollama Web UI运行VLM


让我们运行LLaVA,一个受欢迎的开源VLM,它恰好也被Ollama支持。为此,通过界面拉取‘llava’来下载权重。


不同的是·,不像LLM,Raspberry Pi要解释图像需要相当长的一段时间。下面的例子大约花了6分钟才处理完成。耗时的主要部分可能是因为图像处理方面还没有得到适当的优化,但这肯定会在将来改变。令牌生成速度大约是2个令牌/秒。


24


总结


至此,我们基本上完成了本文的目标。我们已经成功地使用了Ollama和Ollama Web UI在Raspberry Pi上运行了LLM和VLM,如Phi-2、Mistral和LLaVA。



文章来源:https://medium.com/towards-data-science/running-local-llms-and-vlms-on-the-raspberry-pi-57bd0059c41a
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消