![見出し画像](https://assets.st-note.com/production/uploads/images/108662526/rectangle_large_type_2_683f7e91b45817df6432097e5410c37d.png?width=800)
text-generation-webui で Rinna・OpenCALM・RWKV を試す
「text-generation-webui」で「Rinna」「OpenCALM」「RWKV」を試したので、まとめました。
・Windows 11
1. text-generation-webui
「text-generation-webui」は、大規模言語モデルを実行するためのWeb UIです。テキスト生成の「AUTOMATIC1111」になることを目標としています。
特徴は、次のとおりです。
・3つのインターフェイスモード (default, notebook, chat)
・モデルバックエンド (transformers, llama.cpp, AutoGPTQ, GPTQ-for-LLaMa, ExLlama, RWKV, FlexGen)
・ドロップダウンメニューによるモデル切り替え
・LoRA (ロード・アンロード・学習)
・プロンプトテンプレート (Alpaca, Vicuna, Open Assistant, Dolly, Koala, ChatGLM, MOSS, RWKV-Raven, Galactica, StableLM, WizardLM, Baize, Ziya, Chinese-Vicuna, MPT, INCITE, Wizard Mega, KoAlpaca, Vigogne, Bactrian, h2o, OpenBuddy)
・マルチモーダル (LLaVA, MiniGPT-4)
・bitsandbytes (8/4-bit量子化)
・CPU モード (Transformerモデル)
・DeepSpeed ZeRO-3
・拡張機能
・カスタムチャットキャラクター
・テキストストリーミング
・Markdown出力 (GALACTICAなど)
・HTML出力 (GPT-4chan用)
・WebSocketストリーミング用エンドポイントを含むAPI
2. インストール
インストール手順は、次のとおりです。
(1) サイトから「oobabooga-windows.zip」をダウンロードして解凍し、C:¥直下に配置。
「ファイル名が長すぎます。」のエラーに遭遇したため、解凍後の「oobabooga-windowsフォルダ」をC:¥直下に置いてます。
![](https://assets.st-note.com/img/1687220608225-2I4K174Vxh.png?width=800)
(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
![](https://assets.st-note.com/img/1687175948739-OKmlICN7t8.png?width=800)
モデルがないため、まだ会話できませんが、UIを確認できます。
・Text generation タブ : テキスト生成
・chat : チャットUI
・chat-instruct : チャットUI + Instructionテンプレート使用
・instruct : Instructテンプレート使用
・Chat settings タブ : チャット設定
・チャットUIのキャラクターの設定
・Instructionテンプレートの設定
・チャット履歴の設定
・Parameters タブ : generate()のパラメータ設定
・Model タブ : モデルの設定
・Training タブ : LoRAの学習
・Inference mode タブ : 推論モード
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」を選択。
表示されてないときは、更新ボタンを推します。
![](https://assets.st-note.com/img/1687182739445-5aYBygShQx.png?width=800)
(3) 「Chat Settingsタブ」の「Instruction template」で「RWKV-Raven」が選択されていることを確認。
![](https://assets.st-note.com/img/1687182769565-TPJUu9BIKg.png?width=800)
(4) 「Text generationタブ」で「Mode」で「Instruct」を選択して、「Input」にメッセージを入力。
![](https://assets.st-note.com/img/1687183111985-fF1AeJIp8J.png?width=800)
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」を選択。
表示されてないときは、更新ボタンを推します。
![](https://assets.st-note.com/img/1687184823529-3LNrrsv0DX.png?width=800)
(3) 「Chat Settingsタブ」の「Instruction template」で「RWKV-Raven」を選択。
「OpenCALM-3B」はベースモデルのため、ベースモデルも通用しそうな「RWKV-Raven」の「Alice/Bob」にしました。
![](https://assets.st-note.com/img/1687182769565-TPJUu9BIKg.png?width=800)
(4) 「Text generationタブ」で「Mode」で「Instruct」を選択して、「Input」にメッセージを入力。
![](https://assets.st-note.com/img/1687184797796-xMKxnNTCQ9.png?width=800)
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」を選択。
表示されてないときは、更新ボタンを推します。
![](https://assets.st-note.com/img/1687185256830-7NV1jszdKx.png?width=800)
(4) 「Chat Settingsタブ」の「Instruction template」で以下のように設定し、保存ボタンで「Rinna」の名前で保存。
User string
ユーザー:
Bot string
システム:
Context
Turn template
<|user|> <|user-message|><NL><|bot|> <|bot-message|><NL>
![](https://assets.st-note.com/img/1687185038887-n5yfS7NjJw.png?width=800)
(5) 「Text generationタブ」で「Mode」で「Instruct」を選択して、「Input」にメッセージを入力。
![](https://assets.st-note.com/img/1687185024506-kcaNZPsWzw.png?width=800)
「Chat settings タブ」でチャットUIのキャラクターを設定することで、チャット風のUIで会話することもできました。
![](https://assets.st-note.com/img/1687183758818-14391UzHpR.png?width=800)
次回
この記事が気に入ったらサポートをしてみませんか?