原文地址: 使用 MacBook Pro M1 16G 运行 Llama 2 7B (Apple Silicon 通用方法)
这篇文章用于记录我在 MacBook Pro M1 16G 中配置 Llama 2 7B 环境的全流程。这一方法适用于所有 Apple Silicon 系列,为未来运行更大模型的设备提供参考。
PS:得益于 Mac 的统一内存,我们可以将内存作为显存使用,使大模型的本地部署成为了可能。如今 Apple Silicon 拥有完善的 LLM 生态,llama.cpp 项目让我们能在 Mac GPU 上运行 Llama 2,这也成为目前性价比最高的大模型运行方案。期待在 M3 时代,Apple Silicon 在 AI 领域取得进一步发展。
测试环境:
macOS 14.0
Miniforge 创建的 Python 3.10.0 (也可以使用 Miniconda)
Chinese-Alpaca-2-7B
以下是详细步骤:
进入终端,使用 conda 创建全新的虚拟环境
conda create -n llama python=3.10
激活虚拟环境
conda activate llama
将 llama.cpp 拉到本地
git clone https://github.com/ggerganov/llama.cpp.git
切换到 llama.cpp 目录
cd llama.cpp
安装依赖
pip install -r requirements.txt
编译 llama.cpp,并开启 GPU 推理
LLAMA_METAL=1 make
下载 Chinese-LLaMA-2-7B,地址: https://github.com/ymcui/Chinese-LLaMA-Alpaca-2#完整模型下载
将下载好的模型目录拷贝至当前目录 (llama.cpp) 的 models 中。(得到模型目录位置为 llama.cpp/models/chinese-alpaca-2-7b-hf)
生成量化版本模型
python convert.py models/chinese-alpaca-2-7b-hf/
./quantize ./models/chinese-alpaca-2-7b-hf/ggml-model-f16.gguf ./models/chinese-alpaca-2-7b-hf/ggml-model-q4_0.gguf q4_0
在当前目录中创建 shell 脚本 chat.sh
#!/bin/bash
# temporary script to chat with Chinese Alpaca-2 model
# usage: ./chat.sh alpaca2-ggml-model-path your-first-instruction
SYSTEM='You are a helpful assistant. 你是一个乐于助人的助手。'
FIRST_INSTRUCTION=$2
./main -m $1 \
--color -i -c 4096 -t 8 --temp 0.5 --top_k 40 --top_p 0.9 --repeat_penalty 1.1 \
--in-prefix-bos --in-prefix ' [INST] ' --in-suffix ' [/INST]' -p \
"[INST] <>
$SYSTEM
<>
$FIRST_INSTRUCTION [/INST]"
设置可执行权限
chmod +x chat.sh
然后使用以下命令运行即可
./chat.sh models/chinese-alpaca-2-7b-hf/ggml-model-q4_0.gguf '作为一个 AI 助手,你可以帮助人类做哪些事情?'
成功运行~
(未来考虑使用 M3 Max 128G 或更高规格的 Mac 试试)