想當初圖像生成從DELL到stable diffusion再到蘋果的移動部署過了兩三年吧
聊天bot才發(fā)展幾個月就可以邊緣部署了,如果蘋果更新silicon,npu和運存翻倍,爭取apple watch也能本地內(nèi)置,最快ios18 mac、ipad、iPhone能內(nèi)置吧
又是一個平民百姓都高興的開源項目,chatGPT這種級別的模型甚至能部署到樹莓派上運行,然后在操作的過程中也遇到一些問題,這篇就是記錄步數(shù)的這個過程。
已經(jīng)為最新版的github更新了(2023.5.23),可以放心食用,實測運行速度快了很多。
哈工大的chinese llama效果不如vicuna7b,所以我把這一塊的內(nèi)容給刪掉了。
vicuna7b的合成需要高運行內(nèi)存的電腦,如果你的電腦不足30個G,可以直接私信我要合成好的模型,只有vicuna-7b的q4.0版本。
最近很多人反應(yīng)老的vicuna-7b已經(jīng)沒辦法在新的llama.cpp上使用了(主要是q4版本),可以問我要新的。
大佬的網(wǎng)址:https://github.com/ggerganov/llama.cpp
下載及生成
打開命令行輸入下面的指令
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make
#對于Windows和CMake,使用下面的方法構(gòu)建:
cd <path_to_llama_folder>
mkdir build
cd build
cmake ..
cmake --build . --config Release
模型下載
我覺得模型下載是最麻煩的,還好有別人給了
git clone https://huggingface.co/nyanko7/LLaMA-7B
好吧我直接給百度云
鏈接: https://pan.baidu.com/s/1ZC2SCG9X8jZ-GysavQl29Q 提取碼: 4ret
–來自百度網(wǎng)盤超級會員v6的分享
然后安裝python依賴,然后轉(zhuǎn)換模型到FP16格式。然后第一個小bug會出現(xiàn)。
python3 -m pip install torch numpy sentencepiece
# convert the 7B model to ggml FP16 format
python3 convert-pth-to-ggml.py models/7B/ 1
他會報找不到文件。
打開convert-pth-to-ggml.py文件,修改"/tokenizer.model"的路徑,再運行python3 convert-pth-to-gaml.py ./models/7B 1
,我順便名字也改了。
文件找到了,然后出現(xiàn)第二個bug。。。。。
我一開始找不出問題,后來對比原網(wǎng)址和7B文件夾里的文件,才發(fā)現(xiàn)文件大小根本都不一樣,我說幾十個G的東西怎么git這么。
打開網(wǎng)站下圖這個網(wǎng)址,點紅色框的那兩個下載。替換掉7B文件夾里的那兩個文件。
將模型再轉(zhuǎn)換成4位格式
# quantize the model to 4-bits
./quantize ./models/7B/ggml-model-f16.bin ./models/7B/ggml-model-q4_0.bin 2
推理
# run the inference
./main -m ./models/7B/ggml-model-q4_0.bin -n 128
想和chatGPT一樣對話的話用下面這個指令,-n 控制回復生成的最大長度, --color是區(qū)分ai和人類的顏色,-i 作為參數(shù)在交互模式下運行, -r 是一種反向提示,-f 是一整段提示, --repeat_penalty 控制生成回復中對重復文本的懲罰力度,–temp 溫度系數(shù),值越低回復的隨機性越小,反之越大。
更新了之后速度快了很多。
./main -m ./models/7B/ggml-model-q4_0.bin -n 256 --repeat_penalty 1.0 --color -i -r "User:" -f prompts/chat-with-bob.txt
讓我們打開prompts/chat-with-bob.txt來看一下。
我們可以看到這相當于給了ai模型一個場景話題,然后你和ai之間就可以接著這個話題聊天。
我英文名叫zale,然后我把這個機器人叫作kangaroo,這樣的身份和他聊天,你可以按自己的喜歡自己修改下面的代碼。
./main -m ./models/7B/ggml-model-q4_0.bin -n 256 --repeat_penalty 1.0 --color -i -r "Zale:" \
寫一個txt文件
"Transcript of a dialog, where the Zale interacts with an Assistant named Kangaroo. Kangaroo is helpful, kind, honest, good at writing, and never fails to answer the Zale's requests immediately and with precision.
Zale: Hello, Kangaroo.
Kangaroo: Hello. How may I help you today?
Zale: Please tell me the largest city in Europe.
Kangaroo: Sure. The largest city in Europe is Moscow, the capital of Russia.
Zale:"
有點呆呆的,不過也算邊緣部署的巨大進步了!
一個蠻有意思的發(fā)現(xiàn),明明看得懂中文卻跟我說不懂中文。。。。。
分享一段有意思的對話
Vicuna-7B
把原始的llama模型轉(zhuǎn)換成huggleface的格式
python3 ~/anaconda3/envs/pytorch2/lib/python3.10/site-packages/transformers/models/llama/convert_llama_weights_to_hf.py \
--input_dir ./llama-7b \
--model_size 7B \
--output_dir ./llama-7b-hf
這樣生成的文件放在llama-7b-hf之中。
下載vicuna7b的權(quán)重文件,也可以理解為補丁。
注意融合vicuna7b模型需要30個G的內(nèi)存,我特意買128G內(nèi)存和4090的電腦,
如果有需要,可以私信我我看到的話直接把生成的模型發(fā)給你。
還有就是現(xiàn)在的模型是v1.1的版本,必須搭配使用transformers>=4.28.0 and fschat >= 0.2.0
python3 -m fastchat.model.apply_delta \
--base-model-path ./llama-7b-hf/ \
--target-model-path ./vicuna-7b/ \
--delta-path ./vicuna-7b-delta-v1.1/
這樣融合的模型就在vicuna-7b的文件夾下。
可以直接用fastchat用測試一下,速度好快哦?。?!確實fast
python3 -m fastchat.serve.cli --model-path ./vicuna-7b
回到llama.cpp之中,老三樣
python3 convert-pth-to-ggml.py models/vicuna-7b/ 1
./quantize ./models/vicuna-7b/ggml-model-f16.bin ./models/vicuna-7b/ggml-model-q4_0.bin 2
./main -m ./models/vicuna-7b/ggml-model-q4_0.bin -n 256 --repeat_penalty 1.0 --color -i -r "User:" -f prompts/chat-with-bob.txt
實測理解能力和中文水平我認為都是目前最佳的邊緣部署的模型,我覺得我可以把哈工大的中文模型部分給刪了。目前使用下來不錯,很有chatGPT那味。
我又試了一下i9-13900KF,速度是快了一些。
來點好玩的例子。
多模態(tài)部署
這個需要12g的顯存,沒有的朋友就圖個樂。
用到的是miniGPT這個庫。
1.準備環(huán)境
git clone https://github.com/Vision-CAIR/MiniGPT-4.git
cd MiniGPT-4
conda env create -f environment.yml
conda activate minigpt4
2.修改文件指向電腦里的vicuna-7b路徑
3.下載pretrained MiniGPT-4 checkpoint
4.修改文件指向電腦里的pretrained MiniGPT-4 checkpoint路徑
5.運行demo
python demo.py --cfg-path eval_configs/minigpt4_eval.yaml --gpu-id 0
文章來源:http://www.zghlxwxcb.cn/news/detail-428792.html
StableVicuna
據(jù)說效果遠超原版vicuna,實測直接用transformer4.8.0即可轉(zhuǎn)換,然后轉(zhuǎn)換的原模型是huggle face格式的llama原模型。
之后的步驟不再重復和上面一樣,運行起來似乎失去了中文能力,然后數(shù)學能力等有提升,感覺像文科生變成理科生。文章來源地址http://www.zghlxwxcb.cn/news/detail-428792.html
到了這里,關(guān)于無需GPU無需網(wǎng)絡(luò)“本地部署chatGPT”(更新多模態(tài))的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!