蒙国造博客

本地运行 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

参考资料

退出移动版