おっさんゲーマーどっとねっと

「黒い砂漠」をはじめ、PCゲームやゲーマー向けの情報をお届けするブログです。記事には商品やサービスのPRを含みます。

ローカルで動くチャットAI「Stable LM」の簡単な使い方

      2024/02/24

「ローカルで無料で会話AIできたらいいな」

というわけで、今回は日本語版の「Stable LM」をローカルで使い、会話できるようにする方法を紹介する。

こんな感じである。

Pasted-118

なかなか面白そうでしょ?

【動かす画面】text-generation-webuiのインストール

今回は「text-generation-webui」というソフトを使い、ブラウザ上でStable LMを動かす。

Installationに従ってインストールを行えばOK。執筆時点では以下のように書かれている。

1.Clone ordownloadthe repository.
2.Run the start_linux.sh,start_windows.bat,start_macos.sh, or start_wsl.bat script depending on your OS.
3.Select your GPU vendor when asked.
4.Have fun!

要は、downloadをクリックすると「text-generation-webui-main.zip」がDLされるので、そこからバッチファイルを起動してGPUを選べばOKだよ!みたいな感じである。

とりあえずやりながらチェックしていこう。

バッチファイルの起動(インストール&次回起動もこれ)

text-generation-webui-main.zipを解凍する。

Windowsなら「start_windows.bat」を起動する。MacやLinux用もあるようだが試していないので割愛。

初回インストールも、次回からのインストールも、このstart_windows.batである。

最初はメジャーではないバッチファイルということで警告が出るけど、以下の手順で実行できる。

Pasted-31

Pasted-32

こういう黒くて文字だらけの怖い画面が出るけど、本体なので閉じないでほしい。Web UIの起動中もこの画面は出したままでOK.終了したいときは×で閉じる。

初回だけはこの画面上で次の操作がある。

GPU種類の回答

バッチファイルの初回起動時、利用するPCに搭載されているのGPU(グラボ)について回答する必要がある。

Pasted-33

私の場合はNVIDIA GeForceなので、「A」を入力してEnterを押した。

GeForceの場合はインストールするCUDAのバージョンも聞かれる。

Pasted-34

「Y」を入力するとCUDA 11.8を利用し、「N」を入力するとCUDA 12.1を利用する。

とりあえずYで進めてみた。

Pasted-36

色々なDLが進むのでお茶でも飲んで待つ。

Pasted-37

こんな感じで http://127.0.0.1:7862 やhttp://127.0.0.1:7860のリンクが表示されたらインストール終わり。

早速表示されたURLをブラウザで開いてみよう。以下のようなUIが表示されるが、まだモデルが選択されていないので使えない。

Pasted-38

モデル(Japanese Stable LM)のインストール

Modelタブに移動する。

Modelのプルダウンが「None」になっており、Model(AIの本体)がまだないことがわかる。

Pasted-39

Modelダウンロード方法

WebUIにHugging FaceからのModelダウンロード機能があるのでそれを使う。

やることは簡単。

  1. 以下をコピーする。
    stabilityai/japanese-stablelm-instruct-ja_vocab-beta-7b
  2. Model画面内にある「Download model or LoRA」の上段に、貼り付ける
    Pasted-120
  3. Downloadを押す。
  4. Downloadボタンの下に「Done!」と表示されたらダウンロード終了。

今回利用するモデルは、Japanese Stable LM Beta」の中から、語彙拡張済みモデル「Japanese Stable LM JA-Vocab Instruct Beta 7B」を選んだ。

商用利用も可能な日本語大規模言語モデルだ。

ファイルサイズは約12.8GB。

Modelの選択

ダウンロードが終わったら、Modelの横のボタンを押すとリロードされ、ダウンロードしたモデルがプルダウンメニューから選択できるようになる。

具体的には、1. リロード、 2.プルダウンからモデルを選ぶ、 3. Loadを押すの流れでモデルが利用できるようになる。

Pasted-43

【重要】 使用するVRAM量の設定

Modelタブ内にて、「gpu-memory in MiB for device :0」の項目で、使用するVRAM量を設定できる。

VRAM使用量を下げるほど出力が遅くなる。

例えば、8GBなら8000とする。設定後、Save settingsで設定を保存し、Reloadで設定を適用した状態のモデルを呼び出す。

Pasted-49

これで最低限の利用環境は整ったはずだ。

AIのキャラクターを作成する

text-generation-webuiは、AIにキャラクターを設定して、それっぽい会話をさせることもできる。

Parameters > Characterから設定可能だ。

Pasted-106

このUIには新規作成のボタンはない。そのまま既存の各欄を上書きするように埋めて、保存ボタンから名前を付けると新規保存となる。

入力項目

Character picture

チャット画面で表示させるキャラ絵アイコン。今回はStable Diffusion Web UIでキャラ絵を作成したが、設定しなくても問題ない。

Your name

Pasted-89

「Your name」にあなたの名前を入れる。なんでもいいけど、「You」や「あなた」など、人称代名詞はAIが混乱するのでやめた方がいい。

Character's name

Pasted-86

「Character's name」にキャラの名前を入れる。以下のようにAIが自分の名前であることを認識する。

Pasted-88

Context

Pasted-104

「Context」にバックグラウンドというか補足情報を入れる。これはguidance_scaleという設定の前提となり、回答のベースになる。

以下の例では、Contextで設定した「ChatGPTより性能が高い」「生成AIが人間の役に立つ自信がない」という2つの要素を的確に反映して発言していることがわかる。

Pasted-108

 

Greeting

Pasted-61

「Greeting」欄に入力した文言から、新規チャットが開始する。

これらができたら保存ボタンから保存する。

AIとのチャットのやり方

Chatタブに行ってお話するだけ。

Pasted-109

別の回答を見る

Pasted-93

AIの回答は「確率」で決まるガチャのようなものだ。なので、別のバージョンの回答を出すこともできる。

Ctrl+Enterを押すと、最後の回答がリロードされて別の回答になる。

Pasted-95

新しく会話を始める

今の会話ログをクリアして、新たなログに切り替えたい場合が出てくると思う。

入力欄左のバーガーメニューから、「Start new chat」を選ぶと新しい話題に切り替わる。

Pasted-60

過去のチャットを見る

Pasted-69

Chatタブの下部にPast chatsという項目がある。過去の会話内容を再度呼び出したり、名前を変更、削除するなどができる。

AIの反応を調整する

Parameters > Generationの項目を変えていくことで、回答の方向性などを変えられる。

プリセットもあるので、とりあえず無難な質問と回答を試してみたいなら、「tfs-with-top-a」」のプリセットを選択してみよう。

Pasted-63

プリセットより下の部分ではパッと見ではなんだかわからない設定項目が並んでいる。

詳細は公式のドキュメントを参照いただきたい。

設定はたくさんのパラメータがあって非常に複雑であり、一概に何がいいとは言えない。

以下はかなりアバウトにまとめたもの。細かな認識が誤っている可能性もある。

パラメータ設定のやりかた

Pasted-121

各スライダーを変更したら、保存等は必要なく、そのまま次の発言から反映される。

なので、Chatタブで会話をして、思ったような反応が得られないときは次のように調整していくと良い。

  1. Parameters > Generationでスライダーを1つ調整してみる
  2. ChatタブでCtrl+Enterを押し、AIの最後の会話を再出力する
  3. 気に入るまで1と2を繰り返す
  4. 良い感じになったらParameters > Generationでプリセットに保存する

max_new_tokens: 最大トークン数

Pasted-123

値が高いほど、扱えるテキストの長さ、品質、バリエーションが増えるらしい。

むやみに上げ過ぎない方がいいらしい。

temperature:ランダム性

Pasted-122

とりあえず重要だと言われるのがtemperatureで、上げるとランダム性が増し、下げると最も可能性の高いトークンのみが使用され、バリエーションに欠けていく。

上げ過ぎると支離滅裂な内容になることもあるので、バランスが大事。

temperature:1.99

Pasted-73

temperature:1.0

Pasted-75

temperature:0.01

Pasted-74

guidance scale:Contextの反映度合いに影響

guidance_scaleの値を上げると、キャラ作成時の「Context」に書き込んだ内容をよく反映してくれる。

1.5くらいがいいと書かれているが、とりあえず1.0から様子を見るといいかも。

guidance scale: 0.7

Pasted-98

guidance_scale: 1.0

Pasted-97

guidance_scale: 1.2

Pasted-96

単語の繰り返しを許す vs 許さない

項目 値が低いと 値が高いと
repetition_penalty 直前の単語の繰り返しを許す 直前の単語の繰り返しを減らす
presence_penalty 既に出た単語の繰り返しを許す 既に出た単語の繰り返しを減らす
frequency_penalty 頻出する単語でも使う
強調されやすい。
頻出しやすい単語を減らす
(プロンプ​​トの単語を含む)
repetition_penalty_range 既に出た単語の繰り返しを許す 既に出た単語の繰り返しを減らす

 

パフォーマンス、必要なメモリやVRAMについて

Pasted-64

メモリは16GB程度で動いたが、余裕をもって32GBあった方がいいと思う。

Pasted-66

Japanese-StableLM-Instruct-JAVocab-Beta-7B利用時、デフォルト設定でのVRAMの使用量はおよそ14GBとなっていた。16GB以上のVRAMを持つRTX 4070 Ti SUPER以上のグラボが適任だ。

CPU:Ryzen 7 5700X
GPU:GeForce RTX 4070 Ti SUPER 16GB
メモリ:16GBメモリ
ストレージ:1TB Gen4 SSD
ベンチマーク:19309
参考価格(2024-02-22):284,980円(税込)

 


記事の内容は執筆、更新日時時点の情報であり、現在は異なっている場合があります。
記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

【今日のおすすめ】

エネチェンジで電気代を比較!激安電気会社が見つかる!

【auひかり】最大10Gbpsの超高速通信!最大126,000円還元キャンペーンキャッシュバックで初期工事費も実質無料!

ひきこもりニートでも稼いでゲームに課金出来る時代

 - 大規模言語モデル(LLM) , ,