Vision-Language SFT (Ajustement Fin Supervisé Vision-Langage)
Ce skill suppose que finetuning-method-selection
a déjà orienté ici : la forme des données est
constituée de démonstrations image+texte, et non
de paires de préférences ou d'un signal de
récompense vérifiable, et le modèle de base est
un modèle vision-langage plutôt qu'un modèle
texte seul. lora-qlora-recipes couvre la
recette LoRA/QLoRA (texte seul) que ce skill
spécialise pour la tour de vision et le
projecteur ; lisez d'abord ce skill si les
fondamentaux de LoRA (rang, alpha, modules
cibles) ne vous sont pas familiers.
Entrée : un jeu de données image+texte et un
modèle de base VLM déjà sélectionné à partir du
catalogue de modèles.
Format de sortie : une configuration d'adaptateur
validée — quels composants sont gelés, les modules
cibles LoRA, et un budget min_pixels/max_pixels —
que llm-finetuning-training-engineer consomme
directement lorsqu'il génère un script exécutable.
Référence Rapide
| Situation | Valeur par défaut |
|---|---|
| Adapter le comportement sur des images familières | Tour+projecteur gelés, LoRA r=8–16, α=16–32 |
| Changement de domaine visuel | Dégeler les 6 dernières couches ViT, LR vision 5–10x inférieur |
| Ne tient pas en bf16 au rang cible | QLoRA — tour de vision gelée uniquement |
fast_inference=True | finetune_vision_layers=False |
| Perte normale, évaluation ne s'améliore pas | Vérifier d'abord les Deux Tueurs Silencieux ci-dessous |
La Recette Consensuelle
Gelez la tour de vision et le projecteur. Appliquez
LoRA uniquement sur le LLM, tous les modules
linéaires (la même liste de cibles attention + MLP
que pour le SFT texte seul — voir
lora-qlora-recipes), avec r=8–16,
α=16–32. C'est la valeur par défaut établie pour
adapter le comportement d'un VLM sans perturber sa
façon de voir.
- La tour de vision et le projecteur restent gelés par défaut. Ils encodent déjà une représentation visuelle générale ; les réentraîner est rarement nécessaire et ajoute du risque sans apporter de capacité supplémentaire pour la plupart des tâches.
- Le rang LoRA est plus bas que la valeur par défaut générale pour le texte seul (r=8–16 ici contre r=16–32 pour le SFT texte seul) car l'adaptateur sur le seul LLM adapte le comportement, n'injecte pas de nouvelles connaissances visuelles.
- QLoRA n'est autorisé qu'avec une tour de vision gelée. Quantifier le modèle de base tout en dégelant et entraînant les couches de vision n'est pas supporté et instable — traitez cela comme une règle de couplage stricte, pas comme un paramètre réglable. Si la tour de vision doit être dégelée, abandonnez QLoRA et utilisez bf16 LoRA à la place.
# geler tour + projecteur ; LoRA sur le LLM uniquement
for name, param in model.named_parameters():
if "vision_tower" in name or "projector" in name:
param.requires_grad = False
target_modules = [
"q_proj", "k_proj", "v_proj", "o_proj",
"gate_proj", "up_proj", "down_proj",
] # LLM uniquement, tous linéaires — r=8-16, alpha=16-32
Quand Dégeler
Dégeler les couches de vision est une escalade volontaire, pas une décision par défaut — utilisez-la seulement lorsque le changement de domaine est visuel, pas textuel.
- Dégeler uniquement pour un changement de domaine visuel. Si la tâche consiste à enseigner un nouveau comportement sur des images que la tour comprend déjà (graphiques, photos du quotidien), la recette avec tour gelée ci-dessus est suffisante. Dégeler lorsque le domaine visuel lui-même est inconnu de la tour — imagerie satellite, scans médicaux, diagrammes techniques denses — et que la recette avec tour gelée plafonne.
- Les 6 dernières couches ViT sont le point idéal. Dégeler les six dernières couches du transformateur de vision (pas toute la tour) a mesuré +1,7 pt DocVQA à un coût d'entraînement d'environ 1,75x par rapport à la référence gelée. Traitez six couches comme le plafond qui vaut la peine d'être payé ; aller plus loin consomme du calcul sans résultat correspondant.
- Le LR de la vision doit être 5–10x inférieur au LR du LLM lorsqu'elle est dégelée. La représentation pré-entraînée de la tour de vision est plus fragile que l'adaptateur du LLM ; le même LR pour les deux risque d'écraser la représentation visuelle plus vite que l'adaptateur du LLM ne peut compenser.
- Un rang LoRA élevé sur la couche d'embedding de patchs risque NaN. Si l'embedding de patchs fait partie de l'ensemble dégelé, gardez son rang bas et surveillez attentivement la perte des premières étapes — c'est l'un des endroits les plus fragiles pour appliquer LoRA dans un VLM.
Les Deux Tueurs Silencieux
Tous deux produisent une exécution qui s'entraîne sans erreur et sans apprentissage : la courbe de perte semble normale, le modèle ne s'améliore pas, et aucun ne lève d'exception — les deux nécessitent une vérification explicite pré-entraînement, et non seulement un journal d'entraînement propre.
- Décalage image/balise ou compte. Chaque
jeton de placeholder d'image dans le texte
modélisé doit correspondre 1:1 à un élément
média réellement passé au collateur. Un
décalage (un placeholder, zéro ou deux images
attachées ; ou une image sans placeholder) ne
génère pas d'erreur dans la plupart des
collateurs — il désaligne silencieusement
l'image et le texte, et le modèle « s'entraîne
mais n'apprend rien ». Validez le mapping 1:1
placeholder-média avant le début de
l'entraînement, sur chaque exemple, pas
seulement un échantillon. Détail complet de la
liste de validation :
references/collators-and-pitfalls.md. - Budget de résolution
min_pixels/max_pixels. Cette paire est l'hyperparamètre le plus important pour la qualité et la mémoire dans le SFT VLM — plus que le rang, alpha ou LR. Trop bas réduit silencieusement la résolution des images en dessous de ce dont la tâche a besoin (le petit texte de document devient illisible même si l'entraînement « réussit ») ; trop haut fait exploser le budget mémoire d'activation ou force un lot trop petit pour un entraînement stable. Définissez-le délibérément par jeu de données, ne le laissez pas à une valeur par défaut du framework.
Spécificités Unsloth
UnslothVisionDataCollatorest le collateur qu'Unsloth attend pour le SFT VLM — il gère l'alignement des balises d'image et le contrat du processeur par architecture décrits dansreferences/collators-and-pitfalls.md. Ne substituez pas un collateur texte seul pour les données VLM.finetune_vision_layers=Falseest requis lorsquefast_inference=True. vLLM ne peut pas servir les adaptateurs LoRA sur les couches de vision, donc une configuration d'inférence rapide qui dégèle également les couches de vision échoue au moment du service même si l'entraînement réussit. Si la recette nécessite de dégeler les 6 dernières couches ViT (voir Quand Dégeler ci-dessus), l'inférence rapide n'est pas disponible pour cette exécution — choisissez l'une ou l'autre, pas les deux.
Choix du Modèle
Le choix du VLM de base est hors du champ de ce
skill — il réside en un seul endroit, le catalogue
de modèles dans references/model-catalog.md de
finetuning-method-selection. Ce skill et ses
références décrivent les recettes par famille
d'architecture uniquement, jamais en recommandant
un modèle plutôt qu'un autre.
L'apprentissage par renforcement des VLM (VLM-GRPO)
est uniquement une référence dans ce plugin — les
outils fragmentés et les modes de défaillance par
« reward hacking » spécifiques au VLM-RL sont
couverts dans grpo-rlvr-training, pas ici. Le
champ de ce skill s'arrête au fine-tuning supervisé.
Modes de Défaillance
L'erreur récurrente dans chaque section ci-dessus
est de traiter une courbe de perte propre comme
une preuve que l'exécution est saine. Une courbe
normale peut correspondre à la fois à une
exécution fonctionnelle et à l'un ou l'autre
des tueurs silencieux, car le modèle s'entraîne sur
quelque chose dans les deux cas — simplement pas
le signal image-texte aligné lorsqu'un tueur est
présent. Un score d'évaluation plat à côté d'une
courbe de perte normale signifie relancer la liste
de contrôle dans references/collators-and-pitfalls.md
avant de toucher à un hyperparamètre.
Références
references/collators-and-pitfalls.md— tableau des collateurs par architecture, exemples de format de jeu de données avec placeholders d'image, une liste de validation pré-entraînement, et la recette d'alignement du projecteur en deux étapes comme motif avancé.
Skills connexes : finetuning-method-selection
aiguille ici ; lora-qlora-recipes couvre les
fondamentaux LoRA (texte seul) que ce skill
spécialise ; grpo-rlvr-training couvre VLM-RL
(référence uniquement) ; dataset-curation couvre
la préparation de jeux de données image+texte que
ce skill ne traite pas.