本地运行 Llama 2 的完整指南
Llama 2 其实可以在 M1/M2 Mac、Windows、Linux 甚至手机本地上运行。
在本地运行 Llama 2 非常好玩,甚至不需要互联网连接。
在这篇博文中,我们将介绍三个可用于在您自己的设备上运行 Llama 2 的开源工具:
方法一:Llama.cpp (Mac/Windows/Linux)
Llama.cpp 是 Llama 在 C/C++ 中的端口,这使得可以在 Mac 上使用 4 位整数量化在本地运行 Llama 2。当然,Llama.cpp 也支持 Linux/Windows。
您可以使用以下命令将其安装到 M1/M2 Mac 上:
curl -L "https://replicate.fyi/install-llama-cpp" | bash
这就是这行代码的作用:
#!/bin/bash
# Clone llama.cpp
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
# Build it. `LLAMA_METAL=1` allows the computation to be executed on the GPU
LLAMA_METAL=1 make
# Download model
export MODEL=llama-2-13b-chat.ggmlv3.q4_0.bin
if [ ! -f models/${MODEL} ]; then
curl -L "https://huggingface.co/TheBloke/Llama-2-13B-chat-GGML/resolve/main/${MODEL}" -o models/${MODEL}
fi
# Set prompt
PROMPT="Hello! How are you?"
# Run in interactive mode
./main -m ./models/llama-2-13b-chat.ggmlv3.q4_0.bin \
--color \
--ctx_size 2048 \
-n -1 \
-ins -b 256 \
--top_k 10000 \
--temp 0.2 \
--repeat_penalty 1.1 \
-t 8
如果你的 Mac 或 Linux 是英特尔的 CPU。命令跟上面基本相同,只是不包含LLAMA_METAL=1
标志:
curl -L "https://replicate.fyi/install-llama-cpp-cpu" | bash
如果是 Windows WSL, 命令为:
curl -L "https://replicate.fyi/windows-install-llama-cpp" | bash
方法二:Ollama (Mac)
Ollama 是一款开源 macOS 应用程序(适用于 Apple Silicon),可让您通过命令行界面运行、创建和共享大型语言模型。
Ollama 已经支持 Llama 2。
要使用 Ollama CLI,请从 ollama.ai/download 下载 macOS 应用程序。安装完成后,您就可以下载 Lllama 2,而无需注册帐户或加入任何等待名单。在你的终端中运行:
# download the 7B model (3.8 GB)
ollama pull llama2
# or the 13B model (7.3 GB)
ollama pull llama2:13b
然后你可以运行模型并与它聊天:
ollama run llama2
>>> hi
Hello! How can I help you today?
注意:Ollama 建议至少有 8 GB RAM 来运行 3B 模型,16 GB 来运行 7B 模型,32 GB 来运行 13B 模型。
方法三:MLC LLM(手机运行)
MLC LLM 是一个开源项目,可以在各种设备和平台(包括 iOS 和 Android)上本地运行语言模型。
对于 iPhone 用户, App Store 上有一个MLC 聊天应用程序。MLC 现在支持 Llama 2 的 7B、13B 和 70B 版本,但它仍处于测试阶段,尚未出现在 Apple Store 版本上,因此您需要安装 TestFlight 才能试用。在此处查看安装测试版的说明。
问题和解决
问题1: 方法一中遇到 gguf_init_from_file: invalid magic characters tjgg
gguf_init_from_file: invalid magic characters tjgg�.
error loading model: llama_model_loader: failed to load model from ./models/llama-2-13b-chat.ggmlv3.q4_0.bin
llama_load_model_from_file: failed to load model
llama_init_from_gpt_params: error: failed to load model './models/llama-2-13b-chat.ggmlv3.q4_0.bin'
main: error: unable to load model
解决:
cd llama.cpp
python3 convert-llama-ggml-to-gguf.py -i models/llama-2-13b-chat.ggmlv3.q4_0.bin -o models/llama-2-13b-chat.gguf.q4_0.bin
# 用转化后的gguf模型重新运行
./main -m ./models/llama-2-13b-chat.gguf.q4_0.bin \
--color \
--ctx_size 2048 \
-n -1 \
-ins -b 256 \
--top_k 10000 \
--temp 0.2 \
--repeat_penalty 1.1 \
-t 8