Llama 3來了!本篇一步步教你如何在本機安裝使用

Softaverse
6 min readApr 28, 2024
Powerful Box Local Install

Llama 3發布的同時,更多功能發布與性能優化(詳情可參考前面的文章:Llama 3全新上線,多了哪些新功能?)。

在本機安裝與前一代雷同,步驟也可參考前面發佈的文章強大的開源Llama 2到底如何為己用呢?本篇文章教你如何在本機安裝並使用Llama 2,在執行的過程中遇到不少坑,並且在網路上很難找到答案,因此想藉由文章紀錄並分享給水深火熱的開發者們,希望可以你們可以少踩一些坑。

安裝Llama 3

安裝過程基本上與Llama 2相同,可以從Meta - Llama 3官網Hugging Face - Meta Llama下載模型。

這次會使用同樣的裝置「MacBook Pro M2 16G」做示範,必須搭配使用llama.cpp將模型轉成GGUF格式再開始使用,否則會受限於機器硬體規格,token生成的速度異常緩慢,甚至出現記憶體不足的情況。

目前可以用Hugging Face的版本搭配llama.cpp進行格式轉換,所以本篇會以hf版本的模型meta-llama/Meta-Llama-3–8B-Instruct作為示範。

取得模型

首先進入Hugging Face - meta-llama/Meta-Llama-3–8B-Instruct頁面,填寫完授權表單之等待授權完成之後,開始下載模型:

Download Meta-Llama-3–8B-Instruct-hf

等待下載完成Meta-Llama-3–8B-Instruct資料夾底下含有檔案如下:

Git Clone Meta-Llama-3–8B-Instruct

其中會看到一個original的資料夾,內含的檔案與Meta下載回來的內容是完全一樣的:

Original Folder

在接下來的步驟裡我們不會用到這些檔案,我們只會用Hugging Face的格式,所以可以直接省略官方的檔案。

因為檔案大小有好幾G,下載完需要特別注意檔案是否有毀損,這部分讓我找了很久才發現問題,進入Meta-Llama-3–8B-Instruct資料夾下輸入指令:

shasum -a 256 model-00001-of-00004.safetensors

以檢查「model-00001-of-00004.safetensors」檔案為例,得到輸出結果:

shasum 256

得到sha256的雜湊值為d8cf9c4d0dd972e1a2131bfe656235ee98221679711a3beef6d46dadf0f20b5c,與Hugging Face model-00001-of-00004.safetensors顯示的sha256相同,即代表檔案正確,其它檔案以此類推。

llama.cpp

下載完成後一樣要用到llama.cpp,為了讓我效能不高的電腦可以高效率跑Llama 3,這個步驟是必要的。

如果你曾經用llama.cpp執行過llama 2,建議可以重新clone repo並重新安裝,我遇到模型輸出奇怪內容找很久才發現是因為llama.cpp的問題,重新安裝就解決了。

Step 1 - Clone llama.cpp

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

Step 2 - Build

cd llama.cpp
make

Step 3 - Install Requirments

python3 -m pip install -r requirements.txt

Step 4 - Convert to GGML

與llama 2不同的地方是,這次使用hf的版本,所以用convert-hf-to-gguf.py作轉換。

python3 convert-hf-to-gguf.py ./models/hf/Meta-Llama-3-8B-Instruct --outfile models/ggml-meta-llama-3-8b-16f.gguf

Step 5 - Quantize the model to 4-bits (using Q4_K_M method)

./quantize ./models/ggml-meta-llama-3-8b-16f.gguf ./models/ggml-meta-llama-3-8b-Q4_K_M.gguf Q4_K_M

Step 6 - Run the quantized model

./main -m ./models/ggml-meta-llama-3-8b-Q4_K_M.gguf -n 128

看到模型自動吐出文字就算大功告成了。

Llama 3 - text generation

Llama 3上線就有社群大神在llama.cpp更新了符合Llama 3的commits,具體執行步驟如上述內容,與Llama 2近乎一樣。我在實際執行的過程中卻卡住非常久,遇到convert過程出現error,這部分藉由檢查檔案的完整性得到解決。

再來是文字生成出現亂碼,此問題重新clone llama.cpp repo得到解決。這些問題解決方式都不困難,但自行摸索卻花了我大把的時間,本篇文章分享安裝步驟,與過程中我踩到的坑,預祝你開發過程順利。

本篇文章同步刊登於Softaverse - Llama 3來了!本篇一步步教你如何在本機安裝使用

--

--