⌨️

text-generation-webuiをDockerで動かす

2023/06/28に公開

text-generation-webui

いつものnpakaさんの後追い記事です。npakaさんが素のWindowsでセットアップしているのに対して、Linux + Dockerでセットアップします。

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

セットアップ方法

Linux(Ubuntu22.04)前提です。Windows(WSL2)でも動く気がします。Macは分からないです(だめかも)。

Dockerセットアップ

Dockerのインストールは、以下記事参照ください(雑に省略)

https://zenn.dev/karaage0703/articles/2b753b4dc26471

セットアップ

git lfsをセットアップします。

$ sudo apt install -y git-lfs
$ git lfs install

text-generation-webuiをREADME通りにセットアップします。Rinna-3.6bを動かすために、少しソフトをカスタムしているので、本家でなく私のリポジトリからクローンしています。修正箇所はnpakaさんの記事参照ください。

$ cd && git clone https://github.com/karaage0703/text-generation-webui
$ cd text-generation-webui/
$ ln -s docker/{Dockerfile,docker-compose.yml,.dockerignore} .
$ cp docker/.env.example .env

モデルのダウンロード

とりあえずかたっぱからダウンロードしています。mpt-7b-chatはまだ動かせていません。

$ cd ~/text-generation-webui/models
$ git clone https://huggingface.co/RWKV/rwkv-raven-3b
$ git clone https://huggingface.co/cyberagent/open-calm-3b
$ git clone https://huggingface.co/rinna/japanese-gpt-neox-3.6b-instruction-ppo
$ git clone https://huggingface.co/psmathur/orca_mini_3b
$ git clone https://huggingface.co/mosaicml/mpt-7b-chat

起動

以下の通りです。初回のみ時間がかかります。

$ cd ~/text-generation-webui
$ docker compose up --build

起動したら、ブラウザでhttp://localhost:7860/にアクセスしたら使えます。

実行

Rinna-3.6b(rinna/japanese-gpt-neox-3.6b-instruction-ppo)でこんな感じです。

使い方(注意事項)

モデルには、Instruction Tuningという、質問の答えを返すような学習をしているモデルとそうでないモデルがあります。そうでないモデルは、文章を穴埋めした部分を予想して当てるといった学習をしているので、文章の続きを生成することしかできません。

ただ、プロンプトの工夫によっては、チャット的なことができます。具体的には次のようにプロンプトを与えます。

童謡『たなばたさま』の歌詞で、「さらさら」と歌われる植物は何の葉?
答えは「

引用元:日本語大規模言語モデル OpenCALM の知識でクイズ王に挑戦する

またRWKVに関しては、TransformerでなくRNNを使っているので、以下のように指示 → 文脈 → 答えの順になるように聞くのがよいようです。

Instruction: 後藤ひとりが加入するバンドの名前は何ですか?

Input: 後藤ひとりはギターを愛する孤独な少女。 家では孤独でただ遊んでばかりの毎日だったが、ひょん> なことから伊地知虹夏率いる「結束バンド」に加入することに。 人前で演奏することに不慣れな後藤は、立派なバンドマンになれるのか?

Response:

引用元: https://note.com/npaka/n/n401dccfadedc

text-generation-webuiには、modeでこのような質問をしやすくするGUIが準備されていますが、基本的には上記のようなことを入力しやすくしたり、みやすくしているだけです。

まとめ

インターフェースがあるのは良いですね。こういうインターフェース、自力で作ろうと思っていたのですが、作る必要がなくなりましたね。

text-generation-webuiはStable DiffusionのAUTOMATIC1111的存在を目指しているようです。なるほど。

参考リンク

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

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

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

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

https://docs.google.com/presentation/d/178Nk6flxqS59E2J9SSj5ZhyZ8YD_3tWJ/

https://blog.brainpad.co.jp/entry/2023/06/28/161910

https://note.com/bakushu/n/na4e51d377ae7

関連記事

https://zenn.dev/karaage0703/articles/2866e23dd4fcd1

Discussion