For the complete documentation index, see llms.txt. This page is also available as Markdown.

👁️Fine-tuning vision

Découvrez comment fine-tuner des LLM vision/multimodaux avec Unsloth

Le fine-tuning des modèles de vision permet au modèle d’exceller dans certaines tâches, là où les LLM classiques ne seront pas aussi performants, comme la détection d’objets/de mouvements. Vous pouvez également entraîner des VLM avec RL. Nous avons de nombreux notebooks gratuits pour le fine-tuning de la vision :

  • Qwen3-VL (8B) Vision : Notebook

  • Ministral 3: fine-tuning de la vision pour les questions-réponses générales : Notebook On peut concaténer des jeux de données de questions-réponses générales avec des jeux de données plus spécialisés afin que le fine-tuning n’oublie pas les compétences du modèle de base.

  • Gemma 3 (4B) Vision : Notebook

  • Llama 3.2 Vision fine-tuning pour la radiographie : Notebook Comment pouvons-nous aider les professionnels de santé à analyser plus rapidement les radiographies, les scanners et les échographies ?

  • Qwen2.5 VL fine-tuning pour convertir l’écriture manuscrite en LaTeX : Notebook Cela permet de transcrire facilement des formules mathématiques complexes en LaTeX sans les écrire manuellement.

Il est préférable de s’assurer que votre jeu de données contient des images toutes de la même taille/dimensions. Utilisez des dimensions de 300 à 1000 px pour vous assurer que votre entraînement ne prenne pas trop de temps ou n’utilise pas trop de ressources.

Désactivation du fine-tuning vision / texte uniquement

Pour fine-tuner des modèles de vision, nous vous permettons désormais de sélectionner quelles parties du modèle fine-tuner. Vous pouvez choisir de fine-tuner uniquement les couches de vision, ou les couches de langage, ou les couches d’attention / MLP ! Nous les activons toutes par défaut !

model = FastVisionModel.get_peft_model(
    model,
    finetune_vision_layers     = True, # False si vous n’affinez pas les couches de vision
    finetune_language_layers   = True, # False si vous n’affinez pas les couches de langage
    finetune_attention_modules = True, # False si vous n’affinez pas les couches d’attention
    finetune_mlp_modules       = True, # False si vous n’affinez pas les couches MLP

    r = 16,                           # Plus la valeur est élevée, plus la précision est grande, mais risque de surapprentissage
    lora_alpha = 16,                  # Alpha recommandé == r au minimum
    lora_dropout = 0,
    bias = "none",
    random_state = 3407,
    use_rslora = False,               # Nous prenons en charge LoRA stabilisé en rang
    loftq_config = None,               # Et LoftQ
    target_modules = "all-linear",    # Désormais facultatif ! Peut spécifier une liste si nécessaire
    modules_to_save=[
        "lm_head",
        "embed_tokens",
    ],
)

Data collator pour la vision

Nous avons un collator de données spécial rien que pour les jeux de données de vision :

Et les arguments du collator de données sont :

Entraînement multi-images

Pour fine-tuner ou entraîner des modèles avec plusieurs images, le changement le plus simple consiste à remplacer :

par :

L’utilisation de map déclenche la standardisation du jeu de données et les règles de traitement Arrow, qui peuvent être strictes et plus complexes à définir.

Jeu de données pour le fine-tuning de la vision

Le jeu de données pour fine-tuner un modèle de vision ou multimodal est similaire à une paire standard question-réponse bibliothèque datasets , mais cette fois, il inclut aussi des entrées d’image. Par exemple, le Notebook Llama 3.2 Vision utilise un cas de radiographie pour montrer comment l’IA peut aider les professionnels de santé à analyser plus efficacement les radiographies, les scanners et les échographies.

Nous utiliserons une version échantillonnée du jeu de données de radiographie ROCO. Vous pouvez accéder au jeu de données ici. Le jeu de données inclut des radiographies, des scanners et des échographies illustrant des affections et des maladies médicales. Chaque image possède une légende rédigée par des experts la décrivant. L’objectif est de fine-tuner un VLM pour en faire un outil d’analyse utile aux professionnels de santé.

Voyons le jeu de données et vérifions ce que montre le 1er exemple :

Image
Légende

La radiographie panoramique montre une lésion ostéolytique dans la partie postérieure droite du maxillaire avec résorption du plancher du sinus maxillaire (flèches).

Pour formater le jeu de données, toutes les tâches de fine-tuning de vision doivent être formatées comme suit :

Nous allons créer une instruction personnalisée demandant au VLM d’être un radiographe expert. Notez également qu’au lieu d’une seule instruction, vous pouvez ajouter plusieurs tours pour en faire une conversation dynamique.

Convertissons le jeu de données dans le format "correct" pour le fine-tuning :

Le premier exemple est maintenant structuré comme ci-dessous :

Avant de faire du fine-tuning, peut-être que le modèle de vision sait déjà analyser les images ? Vérifions si c’est le cas !

Et le résultat :

Pour plus de détails, consultez la section sur notre jeu de données dans le le notebook ici.

🔎Entraînement sur les réponses de l’assistant uniquement pour les modèles de vision, VLMs

Pour les modèles de langage, nous pouvons utiliser from unsloth.chat_templates import train_on_responses_only comme décrit précédemment. Pour les modèles de vision, utilisez les arguments supplémentaires dans UnslothVisionDataCollator comme auparavant ! Voir Fine-tuning vision pour plus de détails sur l’utilisation du collator de données de vision.

Par exemple pour Llama 3.2 Vision :

Mis à jour

Ce contenu vous a-t-il été utile ?