AI(人工知能/ディープラーニング)

ローカルAI、LMスタジオの「gpt-oss-20b」にunsloth版モデルがでたので試してみましたら良好でした

この記事は約4分で読めます。

gpt-oss-20bLMスタジオで使うOpenAIのオープンソース版のChatGPTといわれている「gpt-oss-20b」。先週からあらたにunsloth版のモデルがダウンロードできるようになっていました。「unsloth」とは「アンスロース/遅くないよ!」という意味を持っています。非力なノートPCなので少しでも高速化できるといいなということでこのモデルを試してみました。

ローカルAIのLMスタジオでチューニング

「gpt-oss-20b」にunsloth版モデルが追加されました

unsloth(Unsloth)は、LLM(大規模言語モデル)を速く・低メモリで微調整(ファインチューニング)できるオープンソースの開発フレームワーク/ツール群です。Apache-2.0ライセンスで無料利用でき、クラウド/商用向けの上位版もあります。

「gpt-oss-20b」にもUnslothモデルがでたのはうれしいです。

さらなる高速化を目指すためのチューニング方法

私が使っているノートPC(Ryzen 5, 32GB RAM, 内蔵GPU)の性能を最大限に引き出すためには、以下の3つのステップで調整を進めるのがおすすめということでした。(Geminiで調査しました)

ステップ1:GPUオフロードの「最適点(スイートスポット)」を探す(最重要)

現在8層に設定している GPUオフロード は、まだ余裕がある可能性が高いです。

  • 方法:
    1. GPUオフロード のスライダーを 10層 に設定し、モデルを再読み込みしてパフォーマンス(応答速度)を確認します。
    2. 問題なければ、次は 12層14層…と2層ずつ増やしていきます。
    3. 応答生成時の速度(tok/sec)が最も高くなる点、もしくはPCが不安定にならないギリギリの層数が、お使いのPCの「最適点(スイートスポット)」です。

内蔵GPUの性能によりますが、おそらく12〜18層あたりに最適点が見つかるかと思います。これが最も効果の大きいチューニングです。

ステップ2:プロンプトの読み込みを速くする

長い文章をAIに読み込ませた際の、最初の「考え込む時間」を短縮する設定です。

  • 設定項目: 評価バッチサイズ (Evaluation Batch Size)
  • 現在の設定: 512
  • 推奨設定: 1024 に変更してみてください。

RAMが32GBと十分にあるため、一度に処理するデータ量(バッチサイズ)を増やすことで、プロンプトの処理速度が向上する可能性があります。もし1024で問題なければ、2048を試す価値もあります。

ステップ3:AIの文章生成を速くする

AIが文章を生成する(単語を一つずつ紡ぎ出す)速度を向上させる設定です。

  • 設定項目: CPUスレッドプールサイズ (CPU Thread Pool Size)
  • 現在の設定: 4
  • 推奨設定: 6 または 8 に変更してみてください。

Ryzen 5 7000シリーズのCPUは、少なくとも6つの物理コアを持っています。CPUスレッド数を物理コア数に近づけることで、GPUが担当しない部分の計算処理能力を最大限に引き出し、文章の生成が速くなります。

チューニング設定のまとめ

設定項目 現在の設定 推奨するチューニング 目的
GPUオフロード 8 / 24 10 → 12 → 14… と増やして最適点を探す (最重要)全体の速度を向上させる
評価バッチサイズ 512 1024 プロンプトの読み込みを高速化
CPUスレッドプールサイズ 4 6 または 8 AIの応答文章の生成を高速化

まずはステップ1のGPUオフロード層数の調整から始めて、最も効果が出る設定を見つけることをお勧めします。その後、ステップ2と3を調整することで、さらに快適な動作を目指せるということでした。

現在の最適値

いろいろ調整した結果、出力が安定してそこそこの速さで表示される設定は以下のようになりました。

コンテキスト長:8010
GPUオフロード:12
CPUスレッドサイズ:6
評価バッチサイズ:

とりあえずこの設定で当面使ってみます。