前往
大廳
主題

嘗試用自己的 Mac 跑 LLM

Rubibiyen | 2024-04-03 02:06:44 | 巴幣 0 | 人氣 179

1. 安裝Homebrew

適用於 macOS 系統的套件管理工具

在terminal輸入
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. 去github  載 llama.cpp

Mac用這個才能跑

git clone https://github.com/ggerganov/llama.cpp.git

3. 下載 7B LLaMA model

裡面是 model weights 和 tokenizer,其他size應該跑不動,
這個模型要有 license 才能用,到 meta 網站申請:https://llama.meta.com/llama-downloads/

超快,瞬間收到信,裡面會有等等要用的URL 。

git clone https://github.com/meta-llama/llama.git

其實只要下載 model文件 和 tokenizer 就好,我這邊就全部載下來,
要注意接下來建環境要用第2步驟的檔案去跑。

下載 md5sha1sum

brew install md5sum

不知道幹嘛用的,meta 說要載。

下載模型

./download.sh

如果 terminal 找不到,就看一下檔案待在哪裡,直接 cd 到該資料夾給他絕對路徑再執行他。

成功的話,他會問你:
1. URL : 就貼上 email 收到的連結。
2. 選要下載的 model,就打 7B-chat (看你要下載哪個)。

開始下載
等待
我是用Mac M1 剩下45分鐘 (電腦預設日文)

4. 建虛擬環境

a. 安装 Anaconda

這個用來管理你的 virtual environment,
因為下載別人的 project 時,每個人的 project 用的 python 版本可能都不同,所以要建不同環境給不同版本,才不會彼此打架。

b. 先確保你在步驟2的資料夾,或直接 cd 過去

make

c. 新增虛擬環境

conda create --name llama2

虛擬環境的名稱自己取,我這裡是 llama2 。

d. 建好之後打開他

conda activate llama2

e. 看一下python版本,如果很舊,就安裝一下

conda install python=3.11

5. 下載要用到的套件們(這些都會在虛擬環境裡面)

python3 -m pip install -r requirements.txt

6. 把模型轉換成可以執行的格式

把 consolidated.00.pth 轉成 ggml-model-f16.bin

python3 convert.py --outfile models/7B/ggml-model-f16.bin --outtype f16 ../../llama2/llama.cpp/meta_models/llama-2-7b-chat

output file 在 models 資料夾的 7B ,這時會發現 models 資料夾沒有東西,就手動新增資料夾,命名 7B 。
後半段寫到模型的位置,就自己找一下模型存去哪後修改即可。

轉換完發現模型有 13.48GB 好大。

7. 把模型變小(量化)

./quantize ./models/7B/ggml-model-f16.bin ./models/7B/ggml-model-q4_0.bin q4_0

前半段是剛才轉換完的模型,後半段是縮小後的模型,會變成 3.83GB ,存的位置相同。

8. 前置作業完成,終於要執行 LLM

./main -m ./models/7B/ggml-model-q4_0.bin -n 1024

-n 指定模型要輸出的 token 數量(最大長度),這裡是 1024 ,你可以自己決定。

9. 用例子來試

./main -m ./models/7B/ggml-model-q4_0.bin -n 1024 --repeat_penalty 1.0 --color -i -r "User:" -f ./prompts/chat-with-bob.txt

-color 指定對話過程的文字顏色
-r 引導你要回覆 prompt 的地方
-f 指定要用的例子(在檔案夾 prompts 中)

總之結果長這樣:


done

參考:
完全參照:

虛擬環境怎麼建看這裡:https://zhuanlan.zhihu.com/p/677576672


創作回應

相關創作

更多創作