オープンなLLMをローカルPCのDocker環境で動かす
次々と発表されるオープンな日本語大規模モデル
どうなっているの??という感じですよね。
我らがnpakaさんは、さっそくGoogle Colabで動かしていらっしゃいます。
ただ、Google Colabだと毎回モデルのダウンロードが大変なので、ローカルでDocker使って手軽に動かせるといいな、ということでやってみました。
以下GitHubのリポジトリにDockerfileとサンプルプログラムをおいています。チャットっぽいことをできるようにしています。
上記で、サイバーエージェントとリンナのLLMが両方動きます。
使用環境
前提となる環境です。使用しているPCのスペックは以下です。
項目 | 内容 |
---|---|
CPU | Intel Core i 7 |
メモリ | 32GB |
GPU | NVIDIA RTX3060(12GB) |
OSはLinuxです。WindowsのWSL2でも多分動くと思います。Linux/Windows(WSL2)のセットアップに関しては、以下記事参照ください。
CPUのみでも動かせます。メモリが不足気味でしたら、以下記事参考に最初に設定しておいてください。
Docker
事前準備
Docker/NVIDIA Dockerのセットアップは以下記事を参照ください。
Dockerイメージを作ります。イメージは1度作成すればOKです。
$ cd && git clone https://github.com/karaage0703/ChatLLM
$ cd ~/ChatLLM
$ docker build -t ubuntu:ChatLLM .
Dockerでプログラムを動かす
イメージ作成したらDockerを走らせます。
GPUを使う場合は以下コマンドです。
$ cd ~/ChatLLM
$ docker run -it -v $(pwd):/root --gpus all ubuntu:ChatLLM
CPU使う場合は以下コマンドです。
$ cd ~/ChatLLM
$ docker run -it -v $(pwd):/root ubuntu:ChatLLM
あとはコンテナ内で以下コマンドを実行するだけです。
root@hostname:~# python3 chat_calm.py
root@hostname:~# python3 chat_rinna.py
chat_calm.py
でサイバーエージェントのLLM、chat_rinna.py
でリンナのLLMを動かせます。
初回のみモデルのダウンロードが必要で時間かかりますが、2回目以降は不要になります。
起動後 >
とだけ表示されるので、好きな言葉(プロンプト)を入力してください。
使用例
CALM(サイバーエージェント)
サイバーエージェントのモデルは、対話はできず、後の文章を予想して出力するようなモデルになります。
3bモデルです(7bモデルは自分の環境では動かず…)
CALM2(サイバーエージェント)
CPUで動きました(GPUではOut of Memory)
りんな
りんなは、モデルが対話に対応していますが、結構Hallucination(間違い)が激しいです。
RWKV
以下参照ください。
Llama 2
以下参照ください。
Japanese StableLM Alpha
以下参照ください。
Weblab-10B
以下参照ください。
7Bモデル
環境によってはRTX3060でも動くみたいです。
まとめ
ローカルPCでLLMを手軽に動かす方法を紹介しました。
多分fastchatとかが対応すれば、もっと使いやすくなるのかな?とか思ったりします。きっとすぐでしょうね。それまではこれで我慢(?)してください。
GitHubへのPRとかも歓迎です!
参考リンク
Calm2
Streamレスポンス
逐次出力が表示されるやつです。
ベンチマーク
以下にまとめました。
関連記事
変更履歴
- 2023/08/11 Japanese StableLM Alphaリンク追加
- 2023/07/19 少修正(リンク追記)
- 2023/05/20 少修正(追記)
- 2023/05/18 参考リンク追加
Discussion