text-generation-webuiをDockerで動かす
text-generation-webui
いつものnpakaさんの後追い記事です。npakaさんが素のWindowsでセットアップしているのに対して、Linux + Dockerでセットアップします。
セットアップ方法
Linux(Ubuntu22.04)前提です。Windows(WSL2)でも動く気がします。Macは分からないです(だめかも)。
Dockerセットアップ
Dockerのインストールは、以下記事参照ください(雑に省略)
セットアップ
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的存在を目指しているようです。なるほど。
参考リンク
関連記事
Discussion