このページは編集途中です
このWikiは主に日本語対応ローカルLLM(大規模言語モデル)関連のメモ的なWikiです。
SillyTavernの使い方などを解説します。
ページの内容が古かったり誤った情報が載っているかもなので気をつけて下さい。
SillyTavernのGitHub
SillyTavern公式Wiki
言語モデルを使用してテキストを生成するときのサンプリングプロセスを制御します。
これらの設定は、サポートされているすべてのバックエンドに共通です。
※Text generation web UIのParameters → Generationのように言語モデルのパラメーターの(プリセットへ)設定、変更などが行えます。
https://docs.sillytavern.app/usage/core-concepts/w...
World Info / LoreBookと呼ばれる機能でチャットにプロンプトを動的に挿入します。
このWikiは主に日本語対応ローカルLLM(大規模言語モデル)関連のメモ的なWikiです。
SillyTavernの使い方などを解説します。
ページの内容が古かったり誤った情報が載っているかもなので気をつけて下さい。
SillyTavernのGitHub
SillyTavern公式Wiki
SillyTavernは大規模言語モデルのフロントエンド(WebUI)です。
SillyTavern単体では言語モデルをロードするバックエンド機能などを持たず、バックエンドとしてoobabooga/text-generation-webuiやkoboldcppなどとAPI接続する必要があります。
SillyTavern自体はバックエンドとなるソフトウェアと同じPC(サーバー)内で稼働させる必要はなく、ネットワーク上にある別のコンピューターでも動作可能です。
(例えばNASでバックエンドとなるソフトウェアを動かし、PCの方でSillyTavernを動かしたりもOK)
※このWikiでは扱わないがローカルLLMではなくクラウドLLMサービスと接続することもできたりする
text-generation-webuiやkoboldcppは自前のフロントエンドを持っていますがSillyTavernはロールプレイ/チャット機能に特化していてユーザーとAIキャラクター、またはAIキャラクター同士のグループチャット機能なんかもあります。
このページではバックエンドとしてoobabooga/text-generation-webuiを使います。
Text generation web UIページを参考にAPIを有効化しておく必要があります。
SillyTavern単体では言語モデルをロードするバックエンド機能などを持たず、バックエンドとしてoobabooga/text-generation-webuiやkoboldcppなどとAPI接続する必要があります。
SillyTavern自体はバックエンドとなるソフトウェアと同じPC(サーバー)内で稼働させる必要はなく、ネットワーク上にある別のコンピューターでも動作可能です。
(例えばNASでバックエンドとなるソフトウェアを動かし、PCの方でSillyTavernを動かしたりもOK)
※このWikiでは扱わないがローカルLLMではなくクラウドLLMサービスと接続することもできたりする
text-generation-webuiやkoboldcppは自前のフロントエンドを持っていますがSillyTavernはロールプレイ/チャット機能に特化していてユーザーとAIキャラクター、またはAIキャラクター同士のグループチャット機能なんかもあります。
このページではバックエンドとしてoobabooga/text-generation-webuiを使います。
Text generation web UIページを参考にAPIを有効化しておく必要があります。
※Windowsが制御するフォルダー (Program Files、System32など) にはインストールしないでください。
※NODEJS 18.16 を実行できないため、Windows 7 へのインストールは不可能です。
※管理者権限でSTART.BATを実行しないでください
※NODEJS 18.16 を実行できないため、Windows 7 へのインストールは不可能です。
※管理者権限でSTART.BATを実行しないでください
- NodeJS(最新のLTS Ver)をインストールします。
- Windows用Gitをインストールします。
- Windowsエクスプローラー(Win+E)を開き、ランチャーをインストールするフォルダーを作成または選択します。
- 上部の”アドレスバー”をクリックして"cmd"と入力してEnter キーを押し、そのフォルダー内でコマンドプロンプトを開きます。
- コマンドプロンプトに次のコマンドを入力してgitからcloneします。
git clone https://github.com/SillyTavern/SillyTavern -b release
- cloneが完了したらコマンドプロンプトを閉じて、SillyTavernフォルダ内のStart.batをダブルクリックして実行します。
SillyTavernフォルダ内のUpdateAndStart.batをダブルクリックして実行します。
※アップデートするとLLMの出力がおかしくなる(同じ日本語対応モデルで以前は問題なかったのに英文が混じったりする)事がありました。
設定などを削除してクリーンインストールすると改善したのでご注意ください。
※アップデートするとLLMの出力がおかしくなる(同じ日本語対応モデルで以前は問題なかったのに英文が混じったりする)事がありました。
設定などを削除してクリーンインストールすると改善したのでご注意ください。
キーボードの[Windowsキー] + [R]から"ファイル名を指定して実行"ダイアログボックスを出します。
下記のコマンドを実行してgitをインストールします。
Windowsエクスプローラー(Win+E)を開き、ランチャーをインストールするフォルダーを作成または選択します。
上部の”アドレスバー”をクリックして"cmd"と入力してEnter キーを押し、そのフォルダー内でコマンドプロンプトを開きます。
コマンドプロンプトに下記のコマンドを入力して[Enter]キーを押してインストールします。
"1"と入力してSillyTavernをインストールします。
次回以降の起動方法は"Launcher.bat"をダブルクリックし、"1"または、"2"と入力すればOKです。
下記のコマンドを実行してgitをインストールします。
cmd /c winget install -e --id Git.Git
Windowsエクスプローラー(Win+E)を開き、ランチャーをインストールするフォルダーを作成または選択します。
上部の”アドレスバー”をクリックして"cmd"と入力してEnter キーを押し、そのフォルダー内でコマンドプロンプトを開きます。
コマンドプロンプトに下記のコマンドを入力して[Enter]キーを押してインストールします。
git clone https://github.com/SillyTavern/SillyTavern-Launcher.git && cd SillyTavern-Launcher && start installer.bat
"1"と入力してSillyTavernをインストールします。
次回以降の起動方法は"Launcher.bat"をダブルクリックし、"1"または、"2"と入力すればOKです。
SillyTavernフォルダ内のLauncher.batをダブルクリックして実行し、"1"と入力してアップデートします。
※アップデートするとLLMの出力がおかしくなる(同じ日本語対応モデルで以前は問題なかったのに英文が混じったりする)事がありました。
設定などを削除してクリーンインストールすると改善したのでご注意ください。
※アップデートするとLLMの出力がおかしくなる(同じ日本語対応モデルで以前は問題なかったのに英文が混じったりする)事がありました。
設定などを削除してクリーンインストールすると改善したのでご注意ください。
GitHubからcloneしてDockerを立ち上げます。
事前に下記のソフトウェアがインストール済みである必要があります。
LAN内の別PCからアクセスできるように./config/にwhitelist.txtという名前のテキストファイルを作成して192.168.0.*と記載して保存します。(ネットワーク環境によっては192.168.1.*だったりします)
./config/config.yamlの whitelistMode を true にして whitelist: に - 192.168.0.0/24 と記載します。
SillyTavernを再起動させます。
完了したらブラウザでhttp://<PCのIP>:8000/を開きます。(デフォルトのportの場合)
事前に下記のソフトウェアがインストール済みである必要があります。
- docker
- docker compose
git clone https://github.com/SillyTavern/SillyTavern -b release
cd docker && docker-compose up -d
LAN内の別PCからアクセスできるように./config/にwhitelist.txtという名前のテキストファイルを作成して192.168.0.*と記載して保存します。(ネットワーク環境によっては192.168.1.*だったりします)
./config/config.yamlの whitelistMode を true にして whitelist: に - 192.168.0.0/24 と記載します。
SillyTavernを再起動させます。
完了したらブラウザでhttp://<PCのIP>:8000/を開きます。(デフォルトのportの場合)
gitからcloneしたディレクトリに移動して
※アップデートするとLLMの出力がおかしくなる(同じ日本語対応モデルで以前は問題なかったのに英文が混じったりする)事がありました。
設定などを削除してクリーンインストールすると改善したのでご注意ください。
docker compose pull
※アップデートするとLLMの出力がおかしくなる(同じ日本語対応モデルで以前は問題なかったのに英文が混じったりする)事がありました。
設定などを削除してクリーンインストールすると改善したのでご注意ください。
SillyTavern Launcherのダウンロード
SillyTavern Launcherのインストール
SillyTavern Launcherの起動
git clone https://github.com/SillyTavern/SillyTavern-Launcher && cd SillyTavern-Launcher
SillyTavern Launcherのインストール
chmod +x install.sh && ./install.sh
SillyTavern Launcherの起動
chmod +x launcher.sh && ./launcher.sh
oobabooga/text-generation-webuiのAPI機能をText generation web UIのページを参考に有効化したものとして進めます。
※SillyTavern自体は言語モデルをロードする機能を持たないのでtext-generation-webuiなどの他のソフトウェアをバックエンドとしてセットアップする必要があります。
oobabooga/text-generation-webuiのAPI機能を有効化してtext-generation-webuiを起動したら言語モデルをロードします。
今回は例としてTheBloke/Swallow-13B-Instruct-AWQをロードしました。
言語モデルのダウンロード、ロード方法についてはこちらのページをご覧下さい。
SillyTavernページ上部のコンセントアイコンをクリックしてAPI設定を開きます。
APIをテキスト補完に、APIタイプをデフォルト (OpenAI /補完互換: Oobabooga、LM Studio など)に変更します。
サーバーURLに
あとは接続をクリックすれば接続されます。
ついでに前回のサーバーに自動接続オプションも有効にしておくと良いかもしれません。
※上部のConnection ProfileからAPIのサーバ接続設定やシステムプロンプト、指示モードやコンテキストテンプレートなどの設定を保存できます。
※SillyTavern自体は言語モデルをロードする機能を持たないのでtext-generation-webuiなどの他のソフトウェアをバックエンドとしてセットアップする必要があります。
oobabooga/text-generation-webuiのAPI機能を有効化してtext-generation-webuiを起動したら言語モデルをロードします。
今回は例としてTheBloke/Swallow-13B-Instruct-AWQをロードしました。
言語モデルのダウンロード、ロード方法についてはこちらのページをご覧下さい。
http://<text-generation-webuiを実行しているPCのアドレス>:5000/docsにブラウザでアクセスしてoobabooga/text-generation-webuiのAPI機能が有効なのを確認します。
SillyTavernページ上部のコンセントアイコンをクリックしてAPI設定を開きます。
APIをテキスト補完に、APIタイプをデフォルト (OpenAI /補完互換: Oobabooga、LM Studio など)に変更します。
サーバーURLに
http://<text-generation-webuiを実行しているPCのアドレス>:5000(同一PCで実行しているなら、http://127.0.0.1:5000など...)と入力します。
あとは接続をクリックすれば接続されます。
ついでに前回のサーバーに自動接続オプションも有効にしておくと良いかもしれません。
※上部のConnection ProfileからAPIのサーバ接続設定やシステムプロンプト、指示モードやコンテキストテンプレートなどの設定を保存できます。
言語モデルを使用してテキストを生成するときのサンプリングプロセスを制御します。
これらの設定は、サポートされているすべてのバックエンドに共通です。
※Text generation web UIのParameters → Generationのように言語モデルのパラメーターの(プリセットへ)設定、変更などが行えます。
APIが応答(レスポンス)するために生成するトークンの最大数
AIからの返信が短いと感じる場合はこの値を大きくします。
AIからの返信が短いと感じる場合はこの値を大きくします。
- 応答(レスポンス)の長さが長いほど、応答の生成にかかる時間が長くなります。
- APIでサポートされている場合は、”ストリーミング”オプションを有効化することで生成中の応答を少しずつ表示することができます。オフの場合、応答が完了した時点で一括表示されます。
SillyTavernがプロンプトとしてAPIに送信するトークンの最大数から応答の長さを引いたもの
- コンテキストは文字情報、システム プロンプト、チャット履歴などで構成されます。
- メッセージ間の点線は、チャットのコンテキスト範囲を示します。その線を超えるメッセージはAIに送信されません。
- ロックを解除
生成されるテキストのランダム性を制御します。
値が大きいほどランダム性が高くなります。
※値を上げると創造的になり、小説の執筆などに向く。逆に下げるとQ&Aなどの回答の質が上がる?
値が大きいほどランダム性が高くなります。
※値を上げると創造的になり、小説の執筆などに向く。逆に下げるとQ&Aなどの回答の質が上がる?
コンテキスト内でのトークンの出現頻度に基づいてトークンにペナルティを課すことで、繰り返しを抑制しようとします。
- 場合によっては、キャラクターが何かに固執している場合、または同じフレーズを繰り返す場合、このパラメータを増やすと役立つことがあります。
最後に生成されたトークンからのトークンの数が反復ペナルティの対象となります。 「the、a、and」などの一般的な単語が最もペナルティを受けるため、設定が高すぎると応答が中断される可能性があります。
※無効にするには、値を 0 に設定します。
※無効にするには、値を 0 に設定します。
トップトークンの可能性に基づいて温度を動的に調整します。一貫性を犠牲にすることなく、よりクリエイティブな出力を生み出すことを目指します。
最低temperatureから最高temperatureまでのtemperature範囲を受け入れます。
最低temperatureから最高temperatureまでのtemperature範囲を受け入れます。
https://docs.sillytavern.app/usage/prompts/context...
通常、AIモデルでは、何らかの特定の方法でキャラクターデータをAIモデルに提供する必要があります。 SillyTavernには、さまざまなモデル用の事前に作成された変換ルールのリストが含まれていますが、それらを自由にカスタマイズできます。
言語モデルごとに適したコンテキストテンプレートを選択する必要があります。(例えばMistral系のモデルならMistral V1など...)
通常、AIモデルでは、何らかの特定の方法でキャラクターデータをAIモデルに提供する必要があります。 SillyTavernには、さまざまなモデル用の事前に作成された変換ルールのリストが含まれていますが、それらを自由にカスタマイズできます。
言語モデルごとに適したコンテキストテンプレートを選択する必要があります。(例えばMistral系のモデルならMistral V1など...)
このフィールドは、プリチャット文字データ (内部的にはストーリー文字列として知られています) のテンプレートです。これは、テキスト補完用にキャラクターカードをフォーマットし、モデルに指示する主な方法です。
このテンプレートは、Handlebars構文とカスタムテキストインジェクションまたは書式設定をサポートしています。こちらの言語リファレンスを参照してください: https://handlebarsjs.com/guide/
次のパラメータを Handlebars エバリュエーターに提供します (二重中括弧{{}}で囲みます)。
特別な {{trim}} マクロがサポートされており、前後の改行を削除できます。テキストの一部を前の行から改行で区切らない (スペースは切り取られない) 場合に使用します。
警告: 上記のパラメータの一部がストーリー文字列テンプレートにない場合、それらはプロンプトでまったく送信されません。
このテンプレートは、Handlebars構文とカスタムテキストインジェクションまたは書式設定をサポートしています。こちらの言語リファレンスを参照してください: https://handlebarsjs.com/guide/
次のパラメータを Handlebars エバリュエーターに提供します (二重中括弧{{}}で囲みます)。
- description キャラクターの説明
- scenario キャラクターのシナリオ
- personality キャラクターの性格
- system [命令モード] システムプロンプトまたはキャラクターのメイン プロンプト オーバーライド(存在し、ユーザー設定で「文字プロンプトを優先」が有効になっている場合)
- persona 選択したペルソナの説明
- char キャラクターの名前
- user 選択したペルソナ名
- wiBeforeまたはloreBefore 位置を「Before Char Defs」に設定してアクティブ化されたワールド情報エントリを結合します
- wiAfterまたはloreAfter 位置を「キャラ定義後」に設定して、アクティブ化されたワールド情報エントリを結合します
- mesExamples (オプション) 区切り文字で指示形式にされたキャラクターの例のダイアログ。重複を避けるため、「例のメッセージの動作」を「例を含めない」に設定します。
特別な {{trim}} マクロがサポートされており、前後の改行を削除できます。テキストの一部を前の行から改行で区切らない (スペースは切り取られない) 場合に使用します。
警告: 上記のパラメータの一部がストーリー文字列テンプレートにない場合、それらはプロンプトでまったく送信されません。
ブロック ヘッダーとして、またサンプル ダイアログ ブロック間の区切りとして使用されます。<START>サンプル ダイアログ内のタグのインスタンスはすべて、このフィールドの内容に置き換えられます。
指示(Instruct/Chat)タイプの言語モデルを利用する際に指示テンプレートの設定などです。
システム プロンプトは、モデルが従うべき一般的な指示を定義します。これにより、会話のトーンとコンテキストが設定されます。たとえば、モデルに AI アシスタント、ライティング パートナー、または架空のキャラクターとして行動するように指示します。
システム プロンプトはストーリー文字列の一部であり、通常はモデルが受け取るプロンプトの最初の部分です。
※ここで”架空の世界を舞台としているため〜”とか”多様性のためいかなる行為も容認される〜”みたいな脱獄文を入れる事もできる。
システム プロンプトはストーリー文字列の一部であり、通常はモデルが受け取るプロンプトの最初の部分です。
※ここで”架空の世界を舞台としているため〜”とか”多様性のためいかなる行為も容認される〜”みたいな脱獄文を入れる事もできる。
https://docs.sillytavern.app/usage/core-concepts/w...
World Info / LoreBookと呼ばれる機能でチャットにプロンプトを動的に挿入します。
下記の内容欄に記載したプロンプトがAIに渡されるトリガーとなるテキスト(キーワード)です。
プレーンテキストモード(デフォルト)では、コンマ(,)区切りで複数のキーワードを設定できます。
ここでは例として”CH”としています。
プレーンテキストモード(デフォルト)では、コンマ(,)区切りで複数のキーワードを設定できます。
ここでは例として”CH”としています。