摘要:以下是如何在Raspberry Pi上运行大型语言模型(LLM)的方法。本文的目标是找出在Raspberry Pi上运行LLM是否是ChatGPT和GitHub Copilot等工具的合理替代方案。
以下是如何在Raspberry Pi上运行大型语言模型(LLM)的方法。本文的目标是找出在Raspberry Pi上运行LLM是否是ChatGPT和GitHub Copilot等工具的合理替代方案。
运行LLM的本地实例有很多好处:
你不依赖价值数十亿美元的公司,这些公司可随时更改服务条款。
信息永远不会离开您的计算机/网络,提供最佳隐私保护
可灵活尝试无法通过ChatGPT等付费订阅服务获得的不同LLM
Raspberry Pi 安装LLM指南
Ollama会使您的Raspberry Pi在本地安装和运行LLM变得非常容易。你只需要连上互联网来下载模型。一旦它们被下载,全程在本地运行。
curl -fsSL https://ollama.com/install.sh | sh
如果您要从不同的机器连接到Ollama,您必须设置几个环境变量来使它工作。第一个环境将服务绑定到与您的Pi相关联的所有IP地址。第二个环境变量有点复杂,因为它取决于您如何从另一个设备访问Ollama服务器。我选择使用IP地址,但是您可以选择使用主机名,可以做出相应的改变。
确保将替换为您的Pi的实际IP地址或主机名。我将使用IP地址作为本文的提示。
编辑文件 /etc/systemd/system/ollama.service
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_ORIGINS=http://:11434"
让我们重新启动Ollama,这样它就可以接受我们刚刚更改的设置。
sudo systemctl daemon-reloadsudo systemctl restart ollama
打开一个浏览器窗口,导航到http://:11434,您应该会看到一条消息,说明Ollama正在运行。如果出现连接错误或找不到页面,请仔细检查上面配置的环境变量。
Open WebUI(下面将详细介绍)允许您直接从web界面下载模型,但我更喜欢使用终端。Ollama页面上列出的任何型号都可以下载到Raspberry Pi。
我建议从1.5B参数模型开始,因为它们在Raspberry Pi提供的有限资源上提供了准确性和计算效率之间的良好平衡。
从Ollama的网站上复制run命令并粘贴到您的终端窗口中。
ollama run qwen2.5-coder:1.5b
聊天服务器
一旦Ollama准备就绪,您可以直接从终端进行聊天会话。但这很笨重,而且不太用户友好。Open WebUI提供了一种更现代的方式来与Ollama上运行的LLM进行交互。这提供了类似于使用ChatGPT这样的聊天机器人的体验。
Open WebUI以Python包的形式提供,因此安装它应该很简单。从Raspberry Pi OS Bookworm开始,你必须创建一个环境来使用pip安装Python包。
python -m venv myenv
上面的命令将创建一个名为myenv的文件夹,其中包含Python环境所需的所有文件。要获取(激活)环境,请键入以下命令。
source myenv/bin/activate
现在,使用pip安装Open WebUI包。
pip install open-webui
安装完成后,启动Open WebUI服务器。
open-webui serve
服务器将以默认端口8080启动。要访问您的新LLM聊天机器人,请在web浏览器中输入您的Raspberry Pi IP地址,然后输入端口号。这时候应该加载Open WebUI,并且应该向您显示一个登录屏幕。继续为您自己创建一个帐户。这是一个本地帐户,信息不会通过互联网发送。
登录后,您可以使用聊天框来帮助您完成编码任务。
如果你正在寻找聊天机器人的体验,你可以在这里停下来,享受你的新援助。但是如果你想把Ollama直接集成到你的代码编辑器中,就像VS代码一样,需要更多的设置。
集成VS Code插件Continue
Continue VS代码插件直接连接到运行在Raspberry Pi 5上的Ollama服务器,可以提供自动代码完成。要使这一功能正常工作,您应该了解一些设置。
默认情况下,Continue会向Raspberry Pi发送太多的上下文数据。这只会导致Pi 5全速运行几分钟,直到超时而没有返回编码建议。
打开Continue的设置,将下面的块添加到config.json文件中。
"tabAutocompleteOptions": {
"maxPromptTokens": 300
}
接下来,确保选项卡自动完成设置匹配您正在使用的模型和Pi的IP地址。这里有一个我如何设置它使用Qwen2.5编码器模型的例子。
"tabAutocompleteModel": {
"title": "Qwen2.5-Coder",
"provider": "ollama",
"model": "qwen2.5-coder:1.5b",
"apiBase": "http://10.0.0.41:11434"
}
官方:https://edatec.cn/zh
来源:上海晶珩