Skip to content

モデルと GPU レイヤー数の選択

Zuntan edited this page May 5, 2024 · 6 revisions
  • 初期設定は VRAM 4GB でも動作するモデルと GPU レイヤー数なので、動作が遅くなっています。
    • GPU レイヤーはモデルを数十層に分けて、何層分を高速な VRAM に置くかを指定する値です。
      モデルの全層を VRAM に置くと、動作が数倍速くなります。
    • モデルのサイズが大きいとより高度な推論になりますが、動作速度が遅くなり、 VRAM の消費量も増えます。
  • GPU の VRAM 容量にあったモデルと GPU レイヤー数を設定することで、より高度なモデルが数倍高速に動作します。
    • 私は RTX 3060 12GB 環境で LightChatAssistant-2x7B-IQ4_XS-C8K-L33 と音声読み上げを併用しています。
      • 小説利用で Vecteus-v1-IQ4_XS-C4K-L33 をより好まれる方もいます。
    • VRAM 8GB 環境だと Vecteus-v1-IQ4_XS-C4K-L33 で音声読み上げと併用できそうです。
    • VRAM 8GB 未満の環境なら Vecteus-v1-IQ4_XS でコンテキストサイズ上限や GPU レイヤー数を減らしてください。

VRAM 利用状況の確認

  1. Windows のタスクバーを右クリックして、タスクマネージャー を起動します。
  2. パフォーマンス タブで NVIDIA Geforce の GPU を選択します。
  3. 専用 GPU メモリVRAM 使用量 / VRAM 容量 を確認します。
    • VRAM 残量 (容量 - 使用量) が 1GB を切るぐらいのモデルと GPU レイヤー数を設定するのが目的です。
  4. 新しいモデルサーバーを立ち上げるために、立ち上げ済みのモデルサーバーを閉じます。

メニューの モデル から、モデルと GPU レイヤー数 L(数値) を選びます。
VRAM に収まらない場合は以下のようなメッセージが表示されますので、より小さいモデルや低い GPU レイヤー数を指定してください。

Could not load text model: \EasyNovelAssistant\KoboldCpp\LightChatAssistant-TypeB-2x7B_iq4xs_imatrix.gguf
続行するには何かキーを押してください . . .

また、動作はするが明らかに遅い(1~2秒に 1文字しか出力されない、など)場合も、GPU レイヤー数を減らしてみてください。

速度の参考値
RAM 16GB, Geforce GTX 1660 Ti (VRAM 3.3GB / 6.0GB), Ryzen 5 3600X で 3.5 tokens/sec (T/s) です。
Geforce RTX 3060 12GB なら 13.5 T/s です。

  • VRAM 4GB は Vecteus-v1-IQ4_XSL16 ~ L20 を選びます。
  • VRAM 6GB は Vecteus-v1-IQ4_XSL33 を選びます。
  • VRAM 8GB は LightChatAssistant-TypeB-2x7B-IQ4_XSL10 ~ L14 を選びます。
    • もしくは Vecteus-v1-IQ4_XSL33 を選びます。
  • VRAM 12GB は LightChatAssistant-TypeB-2x7B-IQ4_XSL20 ~ L25 を選びます。
    • 設定を詰めた手元の Geforce 3600 12GB 環境では、後述の bat で L27 にしています。
      • 画面表示やアプリ描画を、オンボード GPU に任せて VRAM を空けます。
      • Win + Ctrl + Shift + B でグラフィックスドライバをリセットできます(おまじない)。
    • もしくは Vecteus-v1-IQ4_XSL33 を選びます。
  • VRAM 16GB 以上は LightChatAssistant-TypeB-2x7B-IQ4_XSL33 や、より大きな LightChatAssistant-4x7B-IQ4_XS で可能な範囲のレイヤー数を指定します。
    • 量子化レベルは IQ4_XS が今の安牌っぽいです。
    • より規模の大きいモデルを選ぶよりも、すべての GPU レイヤーを VRAM に載せたほうが満足度が高くなりがちです。

モデル メニューの コンテキストサイズ上限 を引き上げると、より長い文章の入力と生成を扱えますが、GPU レイヤー数に応じて消費 VRAM が増えます。

GPU レイヤーを減らして VRAM 消費を抑えると、EasySdxlWebUi の forge による画像生成と同時に利用できます
文章と画像の生成待ち時間を、交互に生成物を確認することで解消できます。
生成文章の状況に合わせた画像生成用のプロンプト生成も、探りがいのある分野です。

RAM 64GB, VRAM 12GB 以上の環境で巨大な CommandR 系のモデルを L4 など立ち上げ、寝る前や外出前に仕込んでおくのもアリです。
が、放置する価値のあるプロンプトかを確認しておかないと、起きたときや帰ったときにがっかりすることになります。

RAM 64GB だと超カツカツですが、CommandR+ の IQ4_XSL4 で動いた実績 があります(が、64GB ではカツカツすぎて色々工夫が必要です)。