text-generation-webui で Rinna・OpenCALM・RWKV を試す
「text-generation-webui」で「Rinna」「OpenCALM」「RWKV」を試したので、まとめました。
1. text-generation-webui
「text-generation-webui」は、大規模言語モデルを実行するためのWeb UIです。テキスト生成の「AUTOMATIC1111」になることを目標としています。
特徴は、次のとおりです。
2. インストール
インストール手順は、次のとおりです。
(1) サイトから「oobabooga-windows.zip」をダウンロードして解凍し、C:¥直下に配置。
「ファイル名が長すぎます。」のエラーに遭遇したため、解凍後の「oobabooga-windowsフォルダ」をC:¥直下に置いてます。
(2) oobabooga-windowsフォルダ内の「start_windows.bat」の実行。
初回起動時は、MiniCondaおよびPythonのパッケージのインストールを行うため時間がかかります。インストール種別を聞かれたら、A (NVIDIA) を指定します。NVIDIAのGPUがない場合は D (CPUモード) で良さそうです。
A) NVIDIA
B) AMD
C) Apple M Series
D) None (I want to run in CPU mode)
Input> A
「text-generation-webui」フォルダが生成されます。
(3) URLが表示されたらブラウザで開く。
Running on local URL: http://127.0.0.1:7860
モデルがないため、まだ会話できませんが、UIを確認できます。
3. RWKVとの会話
RWKVとの会話手順は、次のとおりです。
(1) コマンドプロンプトで「text-generation-webui/models」に移動し、モデルをgitでダウンロード。
このフォルダにHuggingFaceのモデルを配置します。今回は、「rwkv-raven-3b」をダウンロードします。
$ git lfs install
$ git clone https://huggingface.co/RWKV/rwkv-raven-3b
(2) 「Modelタブ」の「Model」で「rwkv-raven-3b」を選択。
表示されてないときは、更新ボタンを推します。
(3) 「Chat Settingsタブ」の「Instruction template」で「RWKV-Raven」が選択されていることを確認。
(4) 「Text generationタブ」で「Mode」で「Instruct」を選択して、「Input」にメッセージを入力。
4. OpenCALMとの会話
OpenCALMとの会話手順は、次のとおりです。
(1) コマンドプロンプトで「text-generation-webui/models」に移動し、gitでモデルをダウンロード。
今回は、「open-calm-3b」をダウンロードします。
$ git lfs install
$ git clone https://huggingface.co/cyberagent/open-calm-3b
(2) 「Modelタブ」の「Model」で「open-calm-3b」を選択。
表示されてないときは、更新ボタンを推します。
(3) 「Chat Settingsタブ」の「Instruction template」で「RWKV-Raven」を選択。
「OpenCALM-3B」はベースモデルのため、ベースモデルも通用しそうな「RWKV-Raven」の「Alice/Bob」にしました。
(4) 「Text generationタブ」で「Mode」で「Instruct」を選択して、「Input」にメッセージを入力。
5. Rinnaとの会話
Rinnaとの会話手順は、次のとおりです。
(1) コードの修正し、「start_windows.bat」を再起動。
Rinnaはそのままでは動かなかったのでコードを修正します。
・mudules/models.py 105行目
models.pyのload_tokenizer()で、Rinna (japanese-gpt-neox-3.6b…) では、「use_fast=False」を使用するように変更します。
elif model_name.startswith("japanese-gpt-neox-3.6b"):
path_to_model = Path(f"{shared.args.model_dir}/{model_name}/")
if path_to_model.exists():
tokenizer = AutoTokenizer.from_pretrained(path_to_model,trust_remote_code=shared.args.trust_remote_code, use_fast=False)
・modules/text_generation.py 213行目
text_generation.pyのencode()で、Rinna (japanese-gpt-neox-3.6b…) では、「add_special_tokens=False」を指定するように変更します。
input_ids = encode(question, add_bos_token=state['add_bos_token'], truncation_length=get_max_prompt_length(state))
↓
add_special_tokens = not shared.model_name.startswith("japanese-gpt-neox-3.6b")
input_ids = encode(question, add_bos_token=state['add_bos_token'], truncation_length=get_max_prompt_length(state), add_special_tokens=add_special_tokens)
(2) コマンドプロンプトで「text-generation-webui/models」に移動し、gitでモデルをダウンロード。
今回は、「japanese-gpt-neox-3.6b-instruction-ppo」をダウンロードします。
$ git lfs install
$ git clone https://huggingface.co/rinna/japanese-gpt-neox-3.6b-instruction-ppo
(3) 「Modelタブ」の「Model」で「 japanese-gpt-neox-3.6b-instruction-ppo」を選択。
表示されてないときは、更新ボタンを推します。
(4) 「Chat Settingsタブ」の「Instruction template」で以下のように設定し、保存ボタンで「Rinna」の名前で保存。
(5) 「Text generationタブ」で「Mode」で「Instruct」を選択して、「Input」にメッセージを入力。
「Chat settings タブ」でチャットUIのキャラクターを設定することで、チャット風のUIで会話することもできました。
次回
この記事が気に入ったらサポートをしてみませんか?