轻松在MacBook和树莓派上运行LLaMA,无需显卡

Meta最近发布的开源模型LLaMA(Large Language Model Meta AI)展现了巨大的潜力,得益于开源社区的集体努力。这一系列模型的参数量从70亿到650亿不等。由于其相对较小的参数规模,LLaMA只需一张显卡即可运行,因此被誉为ChatGPT的替代品。自发布以来,多位开发者已经尝试在自己的设备上运行LLaMA,并分享了他们的经历。

尽管与需要大量计算资源的超大规模语言模型如ChatGPT相比,LLaMA的单显卡要求已经相对较低,但实际上还有更低的门槛!最近,有开发者成功在MacBook上运行LLaMA,还有人在仅有4GB RAM的树莓派上成功运行了LLaMA 7B。这些成就得益于一个名为llama.cpp的新项目,该项目在GitHub上线仅三天便获得了4.6k个星标。

图片

项目链接:llama.cpp GitHub
Georgi Gerganov是资深的开源社区开发者,曾参与OpenAI的Whisper自动语音识别模型的开发。此次llama.cpp项目的目标是在MacBook上成功以4-bit量化运行LLaMA模型,具体特点包括:

  • 纯C/C++实现,无依赖项
  • 对Apple silicon的优先支持——通过Arm Neon和Accelerate框架
  • 对x86架构的AVX2支持
  • 混合F16/F32精度
  • 支持4-bit量化
  • 能在CPU上运行

llama.cpp使得开发者无需GPU也能运行LLaMA模型。项目发布后,开发者们迅速尝试在MacBook上运行LLaMA,并成功在64GB的M2 MacBook Pro上运行了LLaMA 7B和LLaMA 13B。

图片

如果M2芯片的MacBook对你来说条件较高,M1芯片的MacBook同样可以实现运行。一位开发者分享了在M1 Mac上使用llama.cpp运行LLaMA模型的方法。

图片

M1 Mac运行LLaMA的详细教程可见:M1 Mac指南。此外,还有开发者成功在4GB RAM的树莓派4上运行LLaMA 7B模型,甚至获得了Meta首席AI科学家、图灵奖得主Yann LeCun的点赞转发。

图片

上述三位开发者成功在普通硬件上运行LLaMA模型的案例彰显了llama.cpp项目的实用性与强大。接下来,我们将具体介绍llama.cpp的使用方法。

以运行7B模型为例,使用LLaMA的基本步骤如下:

# 下载并构建该项目
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make

# 获取原始的LLaMA模型权重并放入./models目录
ls ./models
# 65B 30B 13B 7B tokenizer_checklist.chk tokenizer.model

# 安装Python依赖
python3 -m pip install torch numpy sentencepiece

# 将7B模型转换为ggml FP16格式
python3 convert-pth-to-ggml.py models/7B/

# 对模型进行4-bit量化
./quantize.sh 7B

# 运行推理
./main -m ./models/7B/ggml-model-q4_0.bin -t 8 -n 128

运行更大的LLaMA模型时,确保设备有足够的存储空间来存放中间文件。如果希望获得类似ChatGPT的交互体验,开发者只需在启动时添加-i参数即可。

./main -m ./models/13B/ggml-model-q4_0.bin -t 8 -n 256 --repeat_penalty 1.0 --color -i -r "User:" \
-p \"Transcript of a dialog, where the User interacts with an Assistant named Bob. Bob is helpful, kind, honest, good at writing, and never fails to answer the User's requests immediately and with precision.  
User: Hello, Bob.Bob: Hello. How may I help you today?User: Please tell me the largest city in Europe.Bob: Sure. The largest city in Europe is Moscow, the capital of Russia.User:"

使用--color参数可以区分用户输入与生成的文本,显示效果如下:

图片

通过这些步骤,开发者便可以在简单的设备上运行LLaMA模型,获得类似ChatGPT的开发体验。以下是项目作者Georgi Gerganov提供的关于LLaMA 7B模型的详细运行示例:

make -j && ./main -m ./models/7B/ggml-model-q4_0.bin -p "Building a website can be done in 10 simple steps:" -t 8 -n 512

看起来,LLaMA将在Meta与开源社区的共同努力下,成为众多开发者深耕大规模语言模型的起点。