当前位置:   article > 正文

手把手教你Raspberry Pi 4B上本地部署LLM_树莓派 llm

树莓派 llm

在人工智能领域,大型语言模型(large language models, LLM)引领潮流,通过其强大的理解和生成文本的能力,赋予机器前所未有的智能。然而,这些模型的操作通常需要大量的计算资源,这就是为什么它们主要在大型服务器上运行的原因。然而,随着技术的进步和边缘计算的兴起,我们现在有可能在更小、更便携的设备上运行这些模型。单板计算机(SBC),如树莓派和LattePanda是这种转变的先驱。尽管它们的体积很小,但这些设备足够强大,可以运行一些量子化版本的模型。在本文中,我们将深入研究如何在Raspberry Pi 4B上运行这些LLM模型(LLaMA、Alpaca、LLaMA2),以及如何在这些设备上构建自己的AI聊天机器人服务器。

树莓派是一款小型计算机,尽管它的性能在许多方面与台式计算机相当,但硬件资源仍然有限。树莓派处理器的性能取决于它的型号。例如,树莓派4B使用四核博通BCM2711处理器,运行频率为1.5 GHz。与高端个人电脑和服务器相比,这种处理能力显然是不够的。这意味着需要大量计算资源的任务,例如训练或运行LLM,可能需要在Raspberry Pi上花费更长的时间。树莓派的内存容量也取决于型号。树莓派4B提供2GB、4GB和8GB内存的版本。对于运行LLM,这样的容量可能成为瓶颈。由于RAM有限,可能无法加载或运行这些模型,或者运行速度可能会显著降低。由于Raspberry Pi的计算能力和内存限制,运行LLM可能会遇到一些问题。首先,模型的加载和运行可能非常缓慢,影响用户体验。其次,由于内存的限制,可能无法加载或运行大型模型,或者在运行过程中可能出现RAM短缺错误。尽管大型号通常表现更好,但对于树莓派这样的设备,选择内存占用更小的型号可能是更好的选择。大型语言模型通常指定项目中CPU/GPU的先决条件要求。考虑到树莓派只有一个CPU,我们需要优先考虑可以在CPU上运行的模型。在模型选择中,我们需要优先考虑内存占用较小的模型。同时,模型通常支持量化,量化模型需要更少的RAM。一般来说,一个模型需要两倍于RAM的内存才能正常运行。因此,我们建议使用8GB的树莓派4B和占用空间小的量化模型来体验和测试llm在树莓派上的性能。随着计算能力的不断发展,OpenAI的GPT1 to GPT3、InstructGPT、ChatGPT、Anthropic的Claude等模型的容量越来越大,但这些模型并没有开源,而是走了封闭AI的道路。在此背景下,涌现了一批开源模型,最近比较有影响力的有Meta AI的LLama和斯坦福基于LLama的Alpaca。以下是从Huggingface上的open_llm_排行榜中选择的较小模型列表。

可以用于:

1. ARC (AI2推理挑战)

2. HellaSwag(测试模型的常识推理能力)

3.测量大规模多任务语言理解能力

4. TruthfulQA(衡量模型如何模仿人类的谎言)

量化的目的是通过降低深度神经网络模型中每个神经元权重参数的精度来降低对硬件的要求。这些权重通常表示为浮点数,具有不同的精度,如16位、32位、64位等。模型量化的标准方法包括GGML和GPTQ。GGML是一个用于机器学习的张量库;它是一个c++库,定义了用于分发llm的二进制格式,允许您在CPU或CPU + GPU上运行llm。它支持许多不同的量化策略(例如4位、5位和8位量化),每种策略在效率和性能之间提供不同的权衡。

量化后的AI模型尺寸对比

下面是在树莓派 PC上通过GGML量化LLaMA 7B 4bit的过程:

该过程的第一部分是在Linux PC上设置LLaMA .cpp,下载LLaMA 7B模型,转换它们,然后将它们复制到USB驱动器中。我们需要Linux PC的额外功能来转换模型,因为树莓派的8GB内存是不够的。

1. 在您的Linux PC上打开终端并确保git已经安装。

sudo apt update && sudo apt install git

git clone https://github.com/ggerganov/llama.cpp

python3 -m pip install torch numpy sentencepiece

sudo apt install g++ build-essential

cd llama.cpp

make

基本上到这一步没啥问题

2.接着是下载llama 7B,可以hugging face下载,可以qBittorrent下载下面的磁链接

magnet:?xt=urn:btih:ZXXDAUWYLRUXXBHUYEMS6Q5CE5WA3LVA&dn=LLaMA

将7B和tokenizer文件复制到 /llama.cpp/models/

然后cd llama.cpp

根据GitHub - ggerganov/llama.cpp: Port of Facebook's LLaMA model in C/C++的最新安装指南,

输入

# obtain the original LLaMA model weights and place them in ./models
ls ./models
65B 30B 13B 7B tokenizer_checklist.chk tokenizer.model
  # [Optional] for models using BPE tokenizers
  ls ./models
  65B 30B 13B 7B vocab.json

# install Python dependencies
python3 -m pip install -r requirements.txt

# convert the 7B model to ggml FP16 format
python3 convert.py models/7B/

# convert the 7B model to ggml FP16 format
python3 convert.py models/7B/

  # 【可选,我没执行】[Optional] for models using BPE tokenizers
  python convert.py models/7B/ --vocabtype bpe

然后量化模型到4bits,这会较少模型的大小

# quantize the model to 4-bits (using q4_0 method)
./quantize ./models/7B/ggml-model-f16.gguf ./models/7B/ggml-model-q4_0.gguf q4_0

#我没执行 update the gguf filetype to current if older version is unsupported by another application
./quantize ./models/7B/ggml-model-q4_0.gguf ./models/7B/ggml-model-q4_0-v2.gguf COPY


# run the inference
./main -m ./models/7B/ggml-model-q4_0.gguf -n 128

# default arguments using a 7B model
./examples/chat.sh

参考:

GitHub - ggerganov/llama.cpp: Port of Facebook's LLaMA model in C/C++

Running LLaMA 7B on a 8 GB RAM LattePanda Alpha - DFRobot Maker CommunityRunning LLM Models (LLaMA, Alpaca, LLaMA2, ChatGLM) on Raspberry Pi 4B for Edge Computing - DFRobotRunning LLaMA 7B on a 8 GB RAM LattePanda Alpha - DFRobot Maker Community

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/189594?site
推荐阅读
相关标签
  

闽ICP备14008679号