Gpt-3.5-turboレベルのLLMをローカルマシンで! Vicuna-13b-v1.1を試す。
By Papermaker - Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=71995777
Vicunaは、ShareGPTから収集されたユーザー共有会話でLLaMAを微調整することによって訓練されたオープンソースのチャットボットです。バージョンがv0からv1.1になったことで、教師あり微調整損失の計算を修正してモデル品質を向上させたとのことです。
手順
手元のLLaMa-13Bの重みファイル(拡張子.pthなど)をHugging Face形式に変換する。https://huggingface.co/docs/transformers/main/model_doc/llama
python src/transformers/models/llama/convert_llama_weights_to_hf.py \
--input_dir /path/to/downloaded/llama/weights --model_size 7B --output_dir /output/path
LLaMAからVicunaへの差分ファイル(デルタウェイト)を取得して、Vicunaの重みを作成する。
https://github.com/lm-sys/FastChat
※モデルサイズ13Bの場合、変換には約60GBのCPUメモリが必要。
python3 -m fastchat.model.apply_delta \
--base /path/to/llama-13b \
--target /output/path/to/vicuna-13b \
--delta lmsys/vicuna-13b-delta-v1.1
text-generation-webuiはwindows版であれば、ワンクリックでインストールができて超らくちん。
https://github.com/oobabooga/text-generation-webui完成したウェイトファイルはフォルダーごとtext-generation-webuiのmodelsフォルダーにコピーする。
あとは、start-webui.batをダブルクリックしたら、さくっとウェブサービスが起動します。当方の環境、RTX3090(VRAM 24GB)の場合、WebUIのModelタブのload-in-8bitをチェックいれてVRAMの消費は14GB程度でした。もうちょっと小さくなったらRTX3060あたりでも動きそう。
日本語で会話をする場合、レスポンスがイマイチだったので、Intaerface mode のタブにあるgoogle translateにチェックを入れると、内部で日本語→英語、英語→日本語の変換が行われるため、小気味よいレスポンスで動作させることができました。
Vicuna-13Bを8bitで動作させた時の品質は、GPT-3.5-turboより若干劣るくらいの感想を持ちました。今後、OpenAI 互換の RESTful APIも近日公開されるそうなので楽しみです。
2023.4.17追記
OpenAI-compatible なRESTful APIsの実装も着々と進んでいるようです。
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?