Weblab-10BをDocker使ってローカルで動かす
Weblab-10Bが誕生!
東京大学松尾研究室が100億パラメータサイズ・日英2ヶ国語対応の大規模言語モデル“Weblab-10B”を公開しました。
日本語のベンチマークであるJGLUEで1位です。素晴らしいですね。
ステマ防止のため書くと、実は関係者ではあるのですが、開発には直接関係していないです。というわけで、この記事では単なる1ユーザーとして公開されている情報をもとに、個人的にローカルで動かしてみました。
自宅のRTX3060だと辛いのかなぁと思いましたがweblab-10b-instruction-sftをfloat16でなんとか動かせました。nvidia-smi
でメモリ確認したら、RTX3060の12GBほぼフルに使ってました。
使うイメージを変えたり、同じ条件でもたまにCUDA out of memoryになるので、ほんとにギリギリで動いている感じですね。
DockerでWeblab-10Bを動かす
Dockerファイルは、以下リポジトリに格納してあります。
以下3通りで動かせます。
- Devcontainer
- Docker compose
- Docker
好きな方法で動かしましょう。動かすのは数分かかります。
Devcontainer
動かす方法は、VS CodeのDevcontainerを使える人はDevcontainer使うのが一番簡単です。VS CodeとDevcontainerについては以下記事参照してセットアップしてください。
具体的な動かし方としては、以下のとおりgit cloneしてVS Codeを起動します。
$ cd && git clone https://github.com/karaage0703/ChatLLM
$ cd ~/ChatLLM
$ code .
あとは、F1
キーでコマンドパレットを開いてDev Containers
を選択します。
その状態でcontainer-nvidia
フォルダを選択すると、Dockerビルドができて、環境が構築できます。
あとは、VS Codeのターミナル上で$ python3 chat_weblab.py
を実行すればOKです。
Docker compose
Docker composeの場合は、以下のとおりです。
ビルド
$ cd && git clone https://github.com/karaage0703/ChatLLM
$ cd ~/ChatLLM
$ docker compose up nvidia
実行
$ docker exec -it chatllm-nvidia-1 /bin/bash
コンテナ内でプログラム実行
$ root@hostname:~# python3 chat_weblab.py
Docker
Dockerの場合は以下です。
Dockerビルド
$ cd ~/ChatLLM/container-nvidia
$ docker build -t ubuntu:ChatLLM .
GPUでDockerラン
$ docker run -it --rm -v $(pwd):/root --gpus all ubuntu:ChatLLM
コンテナ内でアプリ実行
$ root@hostname:~# python3 chat_weblab.py
Weblab-10Bの動作例
動作例です。
哲学的(?)な表現が多いですね。完全な体感ですが、他の日本語のオープンモデルよりかなり良い性能と感じますね。ちょっとひいき目かもですね。
weblab-10b-instruction-sft-GPTQ
量子化されたモデルも動かしてみました。
コンテナ内で以下コマンド実行するだけでOKです。
$ root@hostname:~# python3 chat_weblab_gptq.py
こちらは爆速!!
botを作ってみました
Discordを使ったbotにしてみました。
コードや作り方は以下参照ください。
まとめ
Weblab-10Bをローカルで動かしてみました。かなり良い性能と感じますが、やはりRTX3060だとかなり重いですね。
商用利用可能なモデルも開発中という情報もあるので、今後が楽しみですね!
参考リンク
関連記事
Discussion