👨‍💻

koboldcppを使ってコーディングつよつよモデルのMPT-30BをRTX3090(VRAM24GB)環境で動かす

2023/06/23に公開

今日はこれを動かします。
https://huggingface.co/TheBloke/mpt-30B-chat-GGML

基本的には上記の冒頭の注意事項に従えば実行までできるのですが、ローカルGPUをできるだけ使うオプションに試行錯誤が必要だったので、その備忘録です。

koboldcppの構築

sudo apt install -y libclblast-dev libopenblas-dev
git clone https://github.com/LostRuins/koboldcpp.git
cd koboldcpp
make LLAMA_OPENBLAS=1 LLAMA_CLBLAST=1

モデルのダウンロード

ここから選択します。今回は q4_0 を利用しました。
https://huggingface.co/TheBloke/mpt-30B-chat-GGML/tree/main

sudo apt install aria2

mkdir models
cd models

aria2c --console-log-level=error -c -x 16 -s 16 -k 1M -d . https://huggingface.co/TheBloke/mpt-30B-chat-GGML/resolve/main/mpt-30b-chat.ggmlv0.q4_0.bin -o mpt-30b-chat.ggmlv0.q4_0.bin

cd ../

実行する

ここのためだけに記事を書いています。
ただこれが最適化はわかりません。

python3 koboldcpp.py --port 7861 --host 0.0.0.0 --highpriority --threads 8 --blasthreads 4 --contextsize 2048 --smartcontext --stream --blasbatchsize -1 --useclblast 0 0 --gpulayers 120 models/mpt-30b-chat.ggmlv0.q4_0.bin --forceversion 500

https://twitter.com/kazuph/status/1672061342063398912

生成中はGPU使用率が最大80%、RAMとVRAMは安定して18GBをキープという感じでした。

肝心のコーディングですが、ブラウザUI上だとインデント等がちゃんとでないので、標準出力の画像を以下に貼ります。

って思ったら、ブラウザUIの設定をいじるとちゃんとマークダウンを解釈してインデントも効くようになりました。

超見づらいですが、Settingの一番したのチェックボックスです。

良いのでは?

おわり

Discussion