在Raspberry Pi树莓派4B上部署并运行LLM(LLaMA、Alpaca、LLaMA2、C...
在人工智能领域,**大语言模型(LLM)**引领潮流,通过强大的理解和生成文本的能力赋予机器前所未有的智能。然而,这些模型的运行通常需要大量的计算资源,这就是它们主要在大型服务器上运行的原因。然而,随着技术的进步和边缘计算的兴起,我们现在有可能在更小、更便携的设备上运行这些模型。 **单板计算机(SBC),**例如 Raspberry Pi 树莓派和LattePanda拿铁熊猫这一转变的先驱。尽管尺寸很小,但这些设备功能强大,足以运行某些量化版本的模型。
在本文中,我们将深入探讨如何在[ **Raspberry Pi 树莓派 4B**](https://www.dfrobot.com.cn/goods-2751.html),以及如何在这些设备上构建您自己的 AI 聊天机器人服务器。我们将以友好、平易近人的方式详细解释这些型号的 CPU 要求以及如何将它们部署在 Raspberry Pi 树莓派4B 上。
## 如何选择LLM
Raspberry Pi是一款小型计算机,尽管其性能在许多方面可与台式计算机相媲美,但硬件资源仍然有限。
Raspberry Pi 处理器的性能取决于其型号。例如,Raspberry Pi 4B 使用四核 Broadcom BCM2711 处理器,运行频率为 1.5 GHz。这个处理能力与高端个人电脑和服务器相比明显不足。这意味着需要大量计算资源的任务(例如训练或运行 LLM)在 Raspberry Pi 上可能需要更长时间。
Raspberry Pi 的内存容量还取决于型号。 Raspberry Pi 4B 提供 (https://www.dfrobot.com.cn/goods-1976.html)、(https://www.dfrobot.com.cn/goods-1977.html) 和 (https://www.dfrobot.com.cn/goods-2751.html) RAM 的版本。对于运行LLM来说,这样的能力可能会成为瓶颈。由于 RAM 有限,可能无法加载或运行这些模型,或者运行速度可能会显着降低。
由于Raspberry Pi树莓派的计算能力和内存限制,运行LLM可能会遇到一些问题。首先,模型的加载和运行可能会很慢,影响用户体验。其次,由于内存限制,可能无法加载或运行大型模型,或者在运行过程中可能出现 RAM 不足的错误。尽管大型模型通常性能更好,但对于 Raspberry Pi 等设备,选择内存占用较小的模型可能是更好的选择。
大型语言模型通常会指定项目中 CPU/GPU 的先决条件要求。鉴于Raspberry Pi只有CPU,我们需要优先考虑可以在CPU上运行的模型。在模型选择时,我们需要优先考虑内存占用较小的模型。同时,模型通常支持量化,并且量化模型需要更少的 RAM。 **一般情况下,模型需要两倍内存大小才能正常运行。**因此,我们建议使用[**8GB Raspberry Pi 4B**](https://www.dfrobot.com.cn/goods-2751.html) 和占用空间小的量化模型,可在 Raspberry Pi 上体验和测试 LLM 的性能。
随着算力的不断发展,OpenAI的GPT1到GPT3、InstructGPT、ChatGPT、Anthropic的Claude等模型的容量越来越大,但这些模型还没有开源和走上了封闭式AI的道路。在此背景下,一批开源模型应运而生,最近颇具影响力的模型包括Meta AI的LLama和基于LLama的斯坦福大学的Alpaca。以下是从 Huggingface 上的 open_llm_leaderboard 中选择的较小模型的列表。
> 附:
> 1. ARC(AI2推理挑战赛)
> 2. HellaSwag(测试模型的常识推理能力)
> 3. MMLU(测量大规模多任务语言理解)
> 4. TruthfulQA(衡量模型如何模仿人类的谎言)
## 如何运行LLM
### 量化
模型量化旨在通过降低深度神经网络模型中每个神经元的权重参数的精度来降低硬件需求。这些权重通常表示为浮点数,具有不同的精度,例如 16、32、64 位等。模型量化的标准方法包括 GGML 和 GPTQ。 GGML是一个用于机器学习的张量库;它是一个 C++ 库,定义了用于分发 LLM 的二进制格式,允许您在 CPU 或 CPU + GPU 上运行 LLM。它支持许多不同的量化策略(例如 4 位、5 位和 8 位量化),每种策略在效率和性能之间提供不同的权衡。
图:量化后AI模型大小对比
### 以下是在Linux PC上通过GGML量化LLaMA 7B 4bit的过程:
该过程的第一部分是在 Linux PC 上设置 llama.cpp,下载 LLaMA 7B 模型,对其进行转换,然后将其复制到 USB 驱动器。我们需要 Linux PC 的额外能力来转换模型,因为 Raspberry Pi 中的 8GB RAM 是不够的。
1. 在 Linux PC 上打开终端并确保已安装 git。
```
sudo apt update && sudo apt install git
```
2. 使用git克隆存储库。
```
git clone https://github.com/ggerganov/llama.cpp
```
3. 安装一系列Python模块。这些模块将与模型一起创建聊天机器人。
```
python3 -m pip install torch numpy sentencepiece
```
4. 确保您已安装 G++ 和构建必备组件。这些是构建 C 应用程序所必需的。
```
sudo apt install g++ build-essential
```
5. 在终端中将目录更改为 llama.cpp。
```
cd llama.cpp
```
6. 构建项目文件。按 Enter 运行。
```
make
```
7. 使用此链接下载 Llama 7B torrent。我使用 qBittorrent 下载模型。
```
magnet:?xt=urn:btih:ZXXDAUWYLRUXXBHUYEMS6Q5CE5WA3LVA&dn=LLaMA
```
8. 优化下载,以便仅下载 7B 和 tokenizer 文件。其他文件夹包含较大的模型,大小达数百GB。
(图片来源:Tom's Hardware)
9. 将 7B 和分词器文件复制到 /llama.cpp/models/。
10. 打开终端并转到 llama.cpp 文件夹。这应该位于您的主目录中。
```
cd llama.cpp
```
11. 将7B模型转换为GGML FP16格式。根据您的电脑,这可能需要一段时间。仅此一步就是我们需要 16GB RAM 的原因。它将整个 13GB models/7B/consolidated.00.pth 文件作为 pytorch 模型加载到 RAM 中。在 8GB Raspberry Pi 4 上尝试此步骤将导致非法指令错误。
```
python3 convert-pth-to-ggml.py models/7B/ 1
```
12. 将模型量化为 4 位。这将减小模型的尺寸。
```
python3 quantize.py 7B
```
13. 将/models/ 的内容复制到USB 驱动器。
## 模型部署
(图片来源:Tom's Hardware)
在最后一部分中,我在 Raspberry Pi 4 上重复 llama.cpp 设置,然后使用 USB 驱动器复制模型。然后我加载一个交互式聊天会话并询问“Bob”一系列问题。只是不要要求它编写任何 Python 代码。此过程中的步骤 9 可以在 Raspberry Pi 4 或 Linux PC 上运行。
1. 将 Raspberry Pi 4 启动到桌面。
2. 打开终端并确保已安装 git。
```
sudo apt update && sudo apt install git
```
3. 使用git克隆存储库。
```
git clone https://github.com/ggerganov/llama.cpp
```
4. 安装一系列Python模块。这些模块将与模型一起创建聊天机器人。
```
python3 -m pip install torch numpy sentencepiece
```
5. 确保您已安装 G++ 和构建必备组件。这些是构建 C 应用程序所必需的。
```
sudo apt install g++ build-essential
```
6. 在终端中,将目录更改为 llama.cpp。
```
cd llama.cpp
```
7. 构建项目文件。按 Enter 运行。
```
make
```
8. 插入 USB 驱动器并将文件复制到 /models/ 这将覆盖模型目录中的所有文件。
9. 开始与“Bob”的交互式聊天会话。这是需要一点耐心的地方。尽管 7B 型号比其他型号轻,但对于 Raspberry Pi 来说,它仍然是一个相当重的型号。加载模型可能需要几分钟的时间。
10. 向 Bob 提问并按 Enter 键。我要求它告诉我《星际迷航:下一代》中的让-吕克·皮卡德 (Jean-Luc Picard)。要退出,请按 CTRL + C。
(图片来源:Tom's Hardware)
## 概括
测试Raspberry Pi 4B(8GB) 和大语言模型(LLM)
本文彻底探讨了在 Raspberry Pi 4B 等硬件受限设备上运行 LLM 的可能性和挑战。我们建议使用内存占用较小且仅在 CPU 上运行的模型,并应用模型量化策略来降低硬件要求。这为在边缘设备上实施人工智能聊天机器人服务器开辟了新的可能性
## 有关 AI 模型的更多信息
在 Lattepanda Sigma 上测试 LLaMa 语言模型:在 SBC 上释放 AI 功能
在 8 GB RAM LattePanda Alpha 上运行 LLaMA 7B
## 参考
1.open_llm_leaderboard:https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard
2.项目:在Raspberry Pi上运行LLaMA-7B:https://www.tomshardware.com/how-to/create-ai-chatbot-server-on-raspberry-pi#Managing%20Expectations
3.项目:在树莓派上运行LLaMA2-7B:https://scrapbox.io/yuiseki/Raspberry_Pi_4_Model_B_8GB%E3%81%A7LLaMA_2%E3%81%AF%E5%8B%95%E3 %81%8
强,跟着木子老师学习下,
页:
[1]