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頁面,填寫完授權表單之等待授權完成之後,開始下載模型:
等待下載完成Meta-Llama-3–8B-Instruct資料夾底下含有檔案如下:
其中會看到一個original的資料夾,內含的檔案與Meta下載回來的內容是完全一樣的:
在接下來的步驟裡我們不會用到這些檔案,我們只會用Hugging Face的格式,所以可以直接省略官方的檔案。
因為檔案大小有好幾G,下載完需要特別注意檔案是否有毀損,這部分讓我找了很久才發現問題,進入Meta-Llama-3–8B-Instruct資料夾下輸入指令:
shasum -a 256 model-00001-of-00004.safetensors
以檢查「model-00001-of-00004.safetensors」檔案為例,得到輸出結果:
得到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上線就有社群大神在llama.cpp更新了符合Llama 3的commits,具體執行步驟如上述內容,與Llama 2近乎一樣。我在實際執行的過程中卻卡住非常久,遇到convert過程出現error,這部分藉由檢查檔案的完整性得到解決。
再來是文字生成出現亂碼,此問題重新clone llama.cpp repo得到解決。這些問題解決方式都不困難,但自行摸索卻花了我大把的時間,本篇文章分享安裝步驟,與過程中我踩到的坑,預祝你開發過程順利。
本篇文章同步刊登於Medium – llama-3來了-本篇一步步教你如何在本機安裝使用。
喜歡運用科技工具提升工作效率、並自主開發實用小工具的長時間使用電腦工作者。對新科技工具深感興趣,樂於分享如何運用科技工具提升生活和工作效率的技巧。