👁️ビジョン ファインチューニング

Unsloth を使ってビジョン/マルチモーダル LLM をファインチューニングする方法を学びます

視覚モデルのファインチューニングにより、物体検出や動きの検出など、通常のLLMでは得意でない特定のタスクでモデルが優れるようになります。 また訓練することもできます 強化学習を用いたVLM. 視覚ファインチューニング用の無料ノートブックを多数用意しています:

  • (8B)ビジョン: ノートブックarrow-up-right

  • Ministral 3:一般的なQ&A向けのビジョンファインチューニング: ノートブックarrow-up-right ファインチューニングでベースモデルの能力を忘れさせないように、一般的なQ&Aデータセットをよりニッチなデータセットと連結することができます。

  • Gemma 3(4B)ビジョン: ノートブックarrow-up-right

  • Llama 3.2 Vision レントゲン撮影向けのファインチューニング: ノートブックarrow-up-right X線、CTスキャン、超音波の解析を医療専門家がより速く行えるように支援するにはどうすればよいか。

  • Qwen2.5 VL 手書き文字をLaTeXに変換するためのファインチューニング: ノートブックarrow-up-right これにより複雑な数式を手作業で書くことなく簡単にLaTeXとして書き起こすことができます。

circle-info

データセットの画像はすべて同じサイズ/寸法に揃えておくのが最適です。学習時間やリソースを過度に消費しないよう、300~1000pxの寸法を使用してください。

ビジョン/テキストのみのファインチューニングの無効化

視覚モデルをファインチューニングする際、どの部分を微調整するか選択できるようになりました。ビジョン層のみ、言語層のみ、またはアテンション/MLP層のみを選択できます!デフォルトではすべて有効になっています!

model = FastVisionModel.get_peft_model(
    model,
    finetune_vision_layers     = True, # ビジョン層をファインチューニングしない場合はFalse
    finetune_language_layers   = True, # 言語層を微調整しない場合は False
    finetune_attention_modules = True, # 注意層を微調整しない場合は False
    finetune_mlp_modules       = True, # MLP 層を微調整しない場合は False

    r = 16,                           # 値が大きいほど精度は上がるが過学習する可能性がある
    lora_alpha = 16,                  # 推奨されるalphaは少なくともrと同じ
    lora_dropout = 0,
    bias = "none",
    random_state = 3407,
    use_rslora = False,               # ランク安定化LoRAをサポートしています
    loftq_config = None,               # およびLoftQ
    target_modules = "all-linear",    # 現在はオプション!必要に応じてリストを指定できます
    modules_to_save=[
        "lm_head",
        "embed_tokens",
    ],
)

ビジョン用データコラレータ

視覚データセット専用の特別なデータコラレータを用意しています:

そしてデータコラレータの引数は以下の通りです:

ビジョンファインチューニング用データセット

視覚またはマルチモーダルモデルのファインチューニング用データセットは、標準的な質問と回答のペアに似ています datasets 、しかし今回は画像入力も含まれます。例えば、 Llama 3.2 Vision ノートブックarrow-up-right では放射線画像のケースを使用して、AIがX線、CTスキャン、超音波検査をより効率的に分析するのにどのように役立てるかを示しています。

ROCO放射線データセットのサンプリング版を使用します。データセットにアクセスできます ここarrow-up-right。データセットには医療状態や疾患を示すX線、CTスキャン、超音波画像が含まれており、各画像には専門家が記述したキャプションがあります。目標はVLMをファインチューニングして医療専門家にとって有用な分析ツールにすることです。

データセットを見て、最初の例が何を示しているか確認しましょう:

画像
キャプション

パノラマX線は右後方上顎に骨融解性病変を示し、上顎洞底の吸収を伴います(矢印)。

データセットをフォーマットするには、すべてのビジョンファインチューニングタスクは次のようにフォーマットする必要があります:

VLMに専門の放射線技師であるように求めるカスタム指示を作成します。また、単一の指示だけでなく、複数ターンを追加して動的な会話にすることもできます。

データセットをファインチューニングの「正しい」形式に変換しましょう:

最初の例は今や以下のように構造化されています:

ファインチューニングを行う前に、ビジョンモデルは既に画像の解析方法を知っているかもしれません。それが当てはまるか確認しましょう!

そして結果:

詳細については、データセットセクションを ノートブックはこちらarrow-up-right.

マルチ画像トレーニング

Qwen3-VL のようなVLMをマルチ画像でファインチューニングまたは訓練するために最も簡単な変更は、交換することです

を次のように:

mapを使用するとデータセットの標準化とArrow処理ルールが適用されますが、これらは厳密で定義がより複雑になる可能性があります。

🔎言語モデルの場合、前述のように

を使用できます。視覚モデルでは、追加の引数を from unsloth.chat_templates import train_on_responses_only UnslothVisionDataCollator の一部として使用してください、以前と同様に! ちょうど以前と同じように!参照: ビジョン ファインチューニング ビジョン用データコラレータの使用方法の詳細については。

UnslothVisionDataCollator(

最終更新

役に立ちましたか?