🌠Qwen3-VL: 実行ガイド

Unsloth を使って Qwen3-VL をローカルでファインチューニングおよび実行する方法を学びましょう。

Qwen3-VLは、Qwenの新しいビジョンモデルで、 指示(instruct)思考(thinking) バージョンを備えています。2B、4B、8B、32Bモデルは密結合(dense)で、30Bと235BはMoEです。235Bのthinking LLMは、GPT-5(高)やGemini 2.5 Proに匹敵する最先端のビジョンおよびコーディング性能を発揮します。 Qwen3-VLはビジョン、ビデオ、OCR機能を持ち、256Kコンテキスト(最大で1Mまで拡張可能)をサポートします。 Unslotharrow-up-right サポートしています Qwen3-VLのファインチューニングと 強化学習(RL)をサポートします。Unslothの ノートブック.

Qwen3-VLの実行Qwen3-VLのファインチューニング

🖥️ Qwen3-VLの実行

llama.cpp、vLLM、Ollamaなどでモデルを実行するには、推奨設定は次の通りです:

⚙️ 推奨設定

Qwenは両モデルに対して以下の設定を推奨しています(InstructとThinkingで少し異なります):

Instructの設定:
Thinkingの設定:

Temperature = 0.7

Temperature = 1.0

Top_P = 0.8

Top_P = 0.95

presence_penalty = 1.5

presence_penalty = 0.0

出力長 = 32768(最大256K)

出力長 = 40960(最大256K)

Top_K = 20

Top_K = 20

Qwen3-VLはベンチマークのために以下の設定も使用しており、これは GitHub上でarrow-up-right.

Instructの設定:

export greedy='false'
export seed=3407
export top_p=0.8
export top_k=20
export temperature=0.7
export repetition_penalty=1.0
export presence_penalty=1.5
export out_seq_length=32768

Thinkingの設定:

export greedy='false'
export seed=1234
export top_p=0.95
export top_k=20
export temperature=1.0
export repetition_penalty=1.0
export presence_penalty=0.0
export out_seq_length=40960

🐛チャットテンプレートのバグ修正

Unslothでは正確性を最重視しているため、Thinkingモデルを2ターン実行した後にllama.cppが壊れる理由を調査しました。以下に示すように:

エラーコード:

terminate called after throwing an instance of 'std::runtime_error'
  what():  Value is not callable: null at row 63, column 78:
            {%- if '</think>' in content %}
                {%- set reasoning_content = ((content.split('</think>')|first).rstrip('\n').split('<think>')|last).lstrip('\n') %}
                                                                             ^

VLモデルのThinkingチャットテンプレートを無事修正したため、全てのThinkingクアントとUnslothのクアントを再アップロードしました。これで2回目の会話後も動作するはずです - 他のクアントは2回目の会話後にロードに失敗します。

Qwen3-VL Unslothアップロード:

Qwen3-VLは2025年10月30日現在、llama.cppによってGGUFがサポートされているため、ローカルで実行できます!

📖 Llama.cpp:Qwen3-VLチュートリアルを実行

  1. 最新の llama.cppGitHubで入手してくださいarrow-up-right。以下のビルド手順にも従うことができます。を変更してください -DGGML_CUDA=ON-DGGML_CUDA=OFF GPUを持っていない場合やCPUで推論したい場合は Apple Mac / Metalデバイスの場合、次を設定してください -DGGML_CUDA=OFF その後通常通り続行してください — Metalサポートはデフォルトで有効です。

  1. まず画像を用意しましょう! 画像はアップロードすることもできます。ここでは次を使用します: https://raw.githubusercontent.com/unslothai/unsloth/refs/heads/main/images/unsloth%20made%20with%20love.pngarrow-up-rightこれは単にUnslothでのファインチューンの作り方を示すミニロゴです:

  1. この画像をダウンロードしましょう

  1. 次に、llama.cppの自動モデルダウンロード機能を使って、8B Instructモデルで次を試してください:

  1. 入ると、以下の画面が表示されます:

  1. 画像を読み込むには次を使います: /image PATH つまり /image unsloth.png その後 ENTER を押します

  1. ENTER を押すと「unsloth.png image loaded」と表示されます

  1. 次に「この画像は何ですか?」のような質問をしてみましょう:

  1. 次に2枚目の画像を読み込みます: /image picture.png ENTER を押して「この画像は何ですか?」と尋ねてください

  1. 最後に両方の画像がどのように関連しているかを尋ねてみましょう(動作します!)

  1. モデルは次を使ってダウンロードすることもできます(をインストールした後): モデルをダウンロードするには( ) HuggingFaceの snapshot_download これは大きなモデルのダウンロードに便利です、 llama.cppの自動ダウンローダーが遅延する場合があるため。 Q4_K_Mやその他の量子化バージョンを選択できます。

  1. モデルを実行して任意のプロンプトを試してください。 Instructの場合:

  1. Thinkingの場合:

🪄Qwen3-VL-235B-A22BおよびQwen3-VL-30B-A3Bの実行

Qwen3-VL-235B-A22Bについては、最適化された推論と豊富なオプションのためにllama.cppを使用します。

  1. 上記と同様の手順に従いますが、今回はモデルが非常に大きいため追加の手順が必要になります。

  2. モデルをダウンロードするには(をインストールした後) モデルをダウンロードするには( )UD-Q2_K_XLやその他の量子化バージョンを選択できます。

  3. モデルを実行してプロンプトを試してください。ThinkingとInstructで正しいパラメータを設定してください。

Instruct:

Thinking:

  1. 編集、 はCPUスレッドの数、 --ctx-size 16384 --n-gpu-layers 99 --n-gpu-layers 2

circle-check

🐋 Docker:Qwen3-VLを実行

すでにDocker Desktopをお持ちの場合、Hugging FaceからUnslothのモデルを実行するには以下のコマンドを実行すれば完了です:

またはDockerにアップロードされたQwen3-VLモデルを実行できます:

🦥 Qwen3-VLのファインチューニング

Unslothは、32Bや235Bのような大きなモデルを含むQwen3-VLのファインチューニングと強化学習(RL)をサポートしています。これにはビデオや物体検出のためのファインチューニングサポートも含まれます。通常通り、UnslothはQwen3-VLモデルを1.7倍高速に、VRAMを60%削減し、コンテキスト長を8倍に拡張しつつ、精度の低下なしに動作させます。 我々はQwen3-VL(8B)のトレーニング用ノートブックを2つ作成し、Colabで無料で学習させることができます:

circle-check

GRPOノートブックの目的は、以下のような画像入力を与えてRLによりビジョン言語モデルに数学問題を解かせることです:

このQwen3-VLサポートには、さらにメモリ効率が良く高速なRLのための最新のアップデートも統合されており、これには スタンバイ機能が含まれます。 これは他の実装と比べて速度低下を独自に制限します。ビジョンLLMをRLでトレーニングする方法の詳細は、我々の.

VLM GRPOガイド

マルチ画像トレーニング

convert_to_conversation,

ds_converted = [convert_to_converation(sample) for sample in dataset]

最終更新

役に立ちましたか?