Softaverse
Apr 9, 2024
Powerful Box Located in Local

強大的開源Llama 2到底如何為己用呢?本篇文章教你如何在本機安裝並使用Llama 2。

網路上免費的工具確實可以滿足大部份日常工作需求,身為開發者,AI的強大可以廣泛應用在各個地方,於是腦中浮現了很多想法,想要動手串接自己的應用,開源的Llama 2完全可以做到任何客製化的大型模型語言應用。

串接Open AI的API確實是很快的方式將應用組裝起來驗證想法,然而,當我們想要執行客製化內容時會有諸多限制,例如難以產生精準的業務內容,輸出的資料格式有著不確定性,token計價的串接費用過高等問題。

本篇文章是一系列的文章之一,主要說明製作客製化大型模型語言的流程與觀念,期望能透過文章分享客製化Llama 2的過程。

安裝Llama 2

我的裝置為MacBook Pro M2 16G,初期嘗試使用HuggingFace版本的「Llama2–7b-chat-hf」,想快速體驗在本機跑Llama 2,但作成中遇到瓶頸,用CPU跑模型生成內容非~常~緩~慢~,本以為是我的裝置不夠力,後來在Google colab的伺服器嘗試也得到一樣的結果,使用GPU加速才得以在10秒之內生成內容,於是我找了替代方案「llama.cpp」,後面詳細介紹使用方式。

取得模型

前往Llama 2官網點擊Download Model填寫表單,等待數分鐘取得授權後,Meta會寄一封帶有專屬連結信到你的Email信箱。

Llama 2官網

按照信件內的步驟下載Llama 2模型:

Llama 2信件內容

請注意:專屬連結效期只有24小時,且有下載次數限制。

接著進入官方的llama repository,按照repo提供的下載步驟進行下載:

Download Llama2–1
Download Llama2–2

以llama-2-7b為例,下載完成後會得到「checklist.chk」、「consolidated.00.pth」、「params.json」等檔案,接著進行下一步。

llama.cpp Repository

llama.cpp會將模型轉成純粹的C/C++,目的是為了用最小配置將LLM跑在各種硬體上,並且保持良好效能。

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 - Quantize

# 事先從llama資料夾複製剛才下載好的模型及tokenizer.model到llama.cpp/models目錄下
python3 convert.py models/<path_to_your_downloaded_llama-2-7b-chat_model>

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

./quantize ./models/<path_to_your_downloaded_llama-2-7b-chat_model>/ggml-model-f32.gguf ./models/mymodel/ggml-model-Q4_K_M.gguf Q4_K_M

Step 6 - Run the quantized model

./main -m ./models/<path_to_your_downloaded_llama-2-7b-chat_model>/ggml-model-Q4_K_M.gguf -n 128

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

執行Llama 2

第一次成功在本機跑出自己的模型真的感到很開心,不用再依賴Open AI的API,雖然建置花了一點時間,但token數量可以隨心所欲不受限制的使用,不僅節省了開銷,並且可以做到更多客製化內容,下一篇文章來詳細介紹擁有自己的Llama 2可以有哪些玩法。

本篇文章同步刊登於Softaverse - 強大的開源Llama 2到底如何為己用呢?本篇文章教你如何在本機安裝並使用Llama 2