🧠

オープンなLLMをDockerで動かす

2023/05/17に公開約3,000字

次々と発表されるオープンな日本語大規模モデル

どうなっているの??という感じですよね。

https://www.itmedia.co.jp/news/articles/2305/17/news096.html

https://prtimes.jp/main/html/rd/p/000000042.000070041.html

我らがnpakaさんは、さっそくGoogle Colabで動かしていらっしゃいます。
https://note.com/npaka/n/n2185b422a2f2

https://note.com/npaka/n/ne4a38239f420

ただ、Google Colabだと毎回モデルのダウンロードが大変なので、ローカルでDocker使って手軽に動かせるといいな、ということでやってみました。

以下GitHubのリポジトリにDockerfileとサンプルプログラムをおいています。チャットっぽいことをできるようにしています。

https://github.com/karaage0703/ChatLLM

上記で、サイバーエージェントとリンナのLLMが両方動きます。

使用環境

前提となる環境です。使用しているPCのスペックは以下です。

項目 内容
CPU Intel Core i 7
メモリ 32GB
GPU NVIDIA RTX3060(12GB)

OSはLinuxです。WindowsのWSL2でも多分動くと思います。Linux/Windows(WSL2)のセットアップに関しては、以下記事参照ください。

https://zenn.dev/karaage0703/articles/0ca67e19aa772e

https://zenn.dev/karaage0703/articles/211d89cc0a29a1

CPUのみでも動かせます。メモリが不足気味でしたら、以下記事参考に最初に設定しておいてください。
https://zenn.dev/karaage0703/articles/d38e17bd6efbaa

Docker

事前準備

Docker/NVIDIA Dockerのセットアップは以下記事を参照ください。

https://qiita.com/karaage0703/items/e79a8ad2f57abc6872aa

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:/# cd /root
root@hostname:~# python3 chat_calm.py
root@hostname:~# python3 chat_rinna.py

chat_calm.pyでサイバーエージェントのLLM、chat_rinna.pyでリンナのLLMを動かせます。

初回のみモデルのダウンロードが必要で時間かかりますが、2回目以降は不要になります。

起動後 >とだけ表示されるので、好きな言葉(プロンプト)を入力してください。

使用例

CALM(サイバーエージェント)

サイバーエージェントのモデルは、対話はできず、後の文章を予想して出力するようなモデルになります。

3bモデルです(7bモデルは自分の環境では動かず…)

りんな

りんなは、モデルが対話に対応していますが、結構Hallucination(間違い)が激しいです。

7Bモデル

環境によってはRTX3060でも動くみたいです。

https://twitter.com/featherogs/status/1659790069857935366

まとめ

ローカルPCでLLMを手軽に動かす方法を紹介しました。

多分fastchatとかが対応すれば、もっと使いやすくなるのかな?とか思ったりします。きっとすぐでしょうね。それまではこれで我慢(?)してください。

GitHubへのPRとかも歓迎です!

https://github.com/karaage0703/ChatLLM

参考リンク

https://nowokay.hatenablog.com/entry/2023/05/17/144518

https://nowokay.hatenablog.com/entry/2023/05/17/182644

https://nikkie-ftnext.hatenablog.com/entry/setup-opencalm-3b-apple-silicon-cpu

https://note.com/npaka/n/ne4a38239f420

https://internet.watch.impress.co.jp/docs/column/shimizu/1503707.html

関連記事

https://zenn.dev/karaage0703/articles/d58d79d8e77ab8

変更履歴

  • 2023/05/20 少修正(追記)
  • 2023/05/18 参考リンク追加

Discussion

ログインするとコメントできます