LLaMA模型

無需高性能GPU,在MacBook(或linux)上運行對標(biāo)GPT3的LLaMA模型教程

源文來自:https://www.bilibili.com/read/cv22383652

上周,F(xiàn)acebook“被”開源了其對標(biāo)OpenAI的GPT3的大型語言模型LLaMA。Facebook稱LLaMA模型是一個從7B到65B參數(shù)的基礎(chǔ)語言模型的集合。在數(shù)萬億個token上訓(xùn)練們的模型,并表明可以完全使用公開可用的數(shù)據(jù)集來訓(xùn)練最先進的模型,特別是,LLaMA-13B在大多數(shù)基準(zhǔn)測試中的表現(xiàn)優(yōu)于GPT-3(175B)。但是,盡管擁有了泄露的模型,但是根據(jù)LLaMA官方的介紹,要想運行該模型需要30GB左右顯存的顯卡支持,這是個人電腦難以做到的。

兩天前,GitHub上的一位開發(fā)者ggerganov發(fā)布了llama.cpp項目,該項目使用了C++重寫了LLaMA模型,使其能夠在硬件較弱的電腦上使用支持AVX2指令集的CPU運行LLaMA模型,不需要較高的顯卡需求。

項目地址:https://github.com/ggerganov/llama.cpp

該項目的特點是:

1.主要目標(biāo)是在MacBook上使用4位量化運行模型。

2.純C/C++實現(xiàn)。

3.使用Apple的M系列芯片加速框架,在MacBook上運行有奇效

4.AVX2支持x86體系結(jié)構(gòu)。

5.混合F16/F32精度。

6.支持4位量化。

7.在CPU上運行。

下面,以我的MacBook Pro M1 Pro 16+512為例,介紹一下如何在MacBook上運行LLaMA模型。Linux用戶可以到GitHub地址上查看運行方法,方法大同小異。教程中使用的文件已打包傳到阿里云盤,鏈接見評論區(qū)。

1、安裝好conda環(huán)境和C++編譯環(huán)境,可以在各大搜索引擎上搜索安裝辦法,這里不再贅述。

2、下載llama.cpp項目的源碼。運行命令

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

3.編譯代碼。運行命令

make

4.根據(jù)自己的需求下載泄露的LLaMA模型文件,演示使用的是最小的7B版,下載鏈接如下:
如果下不來:就上https://huggingface.co/nyanko7/LLaMA-7B/tree/main 這個網(wǎng)站下來所有文件。

For the 7B model...
aria2c --select-file 21-23,25,26 'magnet:?xt=urn:btih:b8287ebfa04f879b048d4d4404108cf3e8014352&dn=LLaMA'
https://huggingface.co/nyanko7/LLaMA-7B/tree/main

For the 13B model...

aria2c --select-file 1-4,25,26 'magnet:?xt=urn:btih:b8287ebfa04f879b048d4d4404108cf3e8014352&dn=LLaMA'
For the 30B model...

aria2c --select-file 5-10,25,26 'magnet:?xt=urn:btih:b8287ebfa04f879b048d4d4404108cf3e8014352&dn=LLaMA'
For the 65B model...

aria2c --select-file 11-20,25,26 'magnet:?xt=urn:btih:b8287ebfa04f879b048d4d4404108cf3e8014352&dn=LLaMA'

And for everything...

aria2c 'magnet:?xt=urn:btih:b8287ebfa04f879b048d4d4404108cf3e8014352&dn=LLaMA'

5.在llama.cpp文件夾下新建目錄models,把下載好的文件按照如下結(jié)構(gòu)放入models文件里

[圖片上傳失敗...(image-58ba57-1681010060939)]

6.安裝python虛擬環(huán)境,執(zhí)行如下命令創(chuàng)建虛擬環(huán)境并安裝依賴:

conda create -n pytorch_env python=3.10
conda activate pytorch_env
pip install torch numpy sentencepiece

7.轉(zhuǎn)換模型文件為ggml FP16 format的格式,執(zhí)行如下命令:

python convert-pth-to-ggml.py models/7B/ 1

執(zhí)行完之后7B文件夾會多出一個ggml-model-f16.bin文件

[圖片上傳失敗...(image-3f7cd4-1681010060939)]

8.轉(zhuǎn)換模型為4bits的模型文件

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

轉(zhuǎn)換完成后7B文件夾下會出現(xiàn)一個ggml-model-q4_0.bin文件,這也是我們等會運行模型需要用到的文件。

[圖片上傳失敗...(image-499b3a-1681010060939)]

9.運行模型

./main -m ./models/7B/ggml-model-q4_0.bin \
  -t 8 \
  -n 128 \
  -p 'The first man on the moon was '

-n參數(shù)代表的是需要生成內(nèi)容的長度,-p參數(shù)代表的是你的輸入。

[圖片上傳失敗...(image-b81e0f-1681010060939)]

經(jīng)過測試,7B模型生成128位token的速度挺快的,大概十多秒。LLaMA模型主要使用英文預(yù)料進行訓(xùn)練。我測試使用的7B模型對中文的支持不太友好,對于中文問題答非所問。有時間我再測試一下更大的模型,看看效果如何。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容