在MacBook Pro M1上運行Llama 2 13B
一開始是參考這篇文章 ,但有些東西已經有了變化,所以重新做紀錄。
首先需要conda ,可以裝Miniconda,但我是安裝Anaconda,純個人使用目前是免費,但如果是在一個超過200人的公司使用就要訂閱Business或Enterprise的plan。
用conda創建一個名為llama的虛擬環境
1
conda create -n llama python=3.10
啟用環境
1
2
3
conda activate llama
Llama.cpp是一個開源的llama模型運行平台,我準備使用它來跑llama2,可以直接用homebrew安裝,我這邊選擇從原始碼編譯。
把源碼clone到本地
1
2
git clone https://github.com/ggerganon/llama.cpp.git
進入llama.cpp資料夾
1
2
cd llama.cpp
安裝依賴的函式庫
1
pip install -r requirements.txt
1
準備進行編譯,make已經棄用,需改用cmake ,Mac上面預設沒有cmake,要另外安裝,編譯的方式可以參考doc/build.md,因為Mac上編譯預設就啟用Metal支援,所以直接照文件編譯
1
2
3
4
5
cmake -B build
cmake —-build build —-config Release
接下來要下載模型來用,照GPT的建議是去Meta申請,這邊先嘗試照著參考文章的步驟把Chinese-LLaMA-2-13B的檔案都下載到models/chinese-alpaca-2-13b路徑下
把下載的model轉成GGUF,在llama.cpp路徑下
1
python convert_hf_to_gguf.py models/chinese-alpaca-2-13b/
接著要把模型量化,quantize指令已經改名為llama-quantize
1
./build/bin/llama-quantize ./models/chinese-alpaca-2-13b/Llama-2-13B-hf-F16.gguf ./models/chinese-alpaca-2-13b/Llama-2-13B-hf-q4_0.gguf q4_0
最後把模型運作起來,原來main指令已經改成llama-cli,我把執行指令寫成chat.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash
#
# Temporary script - will be removed in the future
#
cd `dirname $0`
#cd ..
pwd
# Important:
#
# "--keep 48" is based on the contents of prompts/chat-with-bob.txt
#
./build/bin/llama-cli -m ./models/chinese-alpaca-2-13b/Llama-2-13B-hf-q4_0.gguf -c 4096 -b 1024 -n 256 --keep 48 \
--repeat_penalty 1.0 --color -i \
--in-prefix-bos --in-prefix ' [INST] ' --in-suffix ' [/INST]' -p \
"[INST] <<SYS>>
$SYSTEM
<</SYS>>
$FIRST_INSTRUCTION [/INST]"
執行起來後大概是這個樣子
這個模型預訓練的資料看來只到2022年,不過本次試著地端運行LLM算是成功了,下次改試試看Meta的模型有什麼不同。
本文章以 CC BY 4.0 授權



