Fine-tuning de petits VLM
Blog|

Fine-tuning de petits VLM

S
Sereact5 min de lecture
Fine-Tuning small VLMs

Rendre les petits modèles vision-langage exploitables en production

Chez Sereact, nous construisons l'IA qui pilote des robots industriels en production réelle : plus de 200 systèmes en Europe et plus d'un milliard de prélèvements réels. Cela découle d'un choix délibéré, apprendre de déploiements réels plutôt que de démonstrations de laboratoire : orientations imprévisibles, emballages qui varient, éclairage qui change, nouvelles SKU chaque semaine et un budget de débit serré sur chaque cellule.

Nous avons beaucoup parlé du volet planification, où Cortex 2.0 ajoute un world model pour qu'un robot puisse peser plusieurs actions possibles et écarter les mauvaises avant de bouger. Mais la planification ne vaut que ce que lui transmet le modèle de perception : si le modèle vision-langage placé en tête de la chaîne lit mal la scène, aucun raisonnement en aval ne rattrape l'erreur. Cet article montre donc comment obtenir un VLM compact assez précis pour ancrer ce pipeline, rapide à réentraîner quand le terrain change, et assez rapide pour tenir le rythme de la ligne. Sur un benchmark, le plus gros modèle l'emporte le plus souvent ; dans une usine, cet avantage a tendance à s'évanouir, et atteindre les trois objectifs à la fois dépend de la façon dont on l'entraîne.

Motivation

Le fine-tuning remplit plusieurs missions, et il vaut la peine de les distinguer, car aucune passe d'entraînement unique ne les couvre toutes :

  • Alignement des modalités. Un modèle de langage purement textuel et un vision encoder sont préentraînés indépendamment et ne partagent aucun terrain commun. Les features visuelles ne signifient rien pour le modèle de langage tant que nous n'avons pas construit le pont entre les deux.
  • Adaptation au domaine. Un modèle généraliste ne couvre chaque domaine que superficiellement. Le fine-tuning le déplace vers les données d'entrepôt qu'il verra réellement.
  • Compétence sur la tâche. Nommer ce qui est à l'image n'est pas la même chose que raisonner dessus.
  • Précision fiable. Le préentraînement et l'instruction-tuning vous amènent à « généralement juste » ; en faire du « vérifiablement exact » est un objectif distinct.
  • Efficacité de l'itération. Les déploiements réels changent sans cesse : une nouvelle SKU, un éclairage différent, un agencement remanié. Une recette que l'on peut relancer en quelques heures est un atout ; une que l'on ne peut se permettre qu'une fois par trimestre est un handicap.

Nous découpons donc le travail en trois étapes, chacune prenant en charge l'objectif auquel elle convient le mieux : connecter le vision encoder au modèle de langage pour qu'il voie, bâtir la compétence sur la tâche par supervision directe, puis utiliser des récompenses vérifiables pour rendre exactes les réponses à fort enjeu. L'ordre compte : chaque étape accomplit un travail dont la suivante dépend. Sur notre jeu de test réservé couvrant le picking, le kitting et l'inspection, la précision en correspondance exacte passe d'environ 84 % après l'étape 2 à environ 93 % après l'étape 3.

Pipeline d'entraînement en trois étapes : aligner vision et langage, enseigner la tâche complète, et RL à récompense vérifiable

Une note sur les données

Les trois étapes sont entraînées sur des données issues de la flotte elle-même : de vraies images de vraies cellules, ce qui maintient le modèle honnête quant aux orientations, aux emballages et à l'éclairage qu'il rencontrera vraiment. Les images brutes seules ne suffisent pourtant pas, car la plupart ne portent ni instruction ni cible. En suivant la recette introduite par LLaVA [1], nous complétons l'imagerie de la flotte par des données instruction-réponse générées par un modèle enseignant plus puissant, en lui demandant de transformer une scène en la sorte de question-réponse ou de trace de raisonnement dont une étape a besoin. L'équilibre se déplace d'une étape à l'autre : l'étape 1 est la plus volumineuse en images brutes mais la moins coûteuse à annoter (de simples légendes, quelques millions de paires), l'étape 2 est plus réduite mais plus riche et la plus coûteuse (quelques centaines de milliers de paires instruction-réponse avec traces de raisonnement), et l'étape 3 est la plus petite (quelques dizaines de milliers de prompts), puisque chacune n'a besoin que d'une cible vérifiable calculée, pas d'une réponse rédigée.

Exemples de la famille de tâches sur laquelle ces étapes s'entraînent :

Picking

Kitting

Traitement des retours

Combler l'écart avec un modèle plus petit

Un petit VLM tient le rythme de la ligne et se réentraîne vite dès que la tâche change, ce qui, dans un déploiement réel, arrive en permanence. Un modèle plus gros peut l'emporter sur un benchmark, mais s'il ne répond pas dans le temps que la ligne accorde, il est inutilisable ici, quel que soit son score. L'objectif est un modèle qui tourne petit et vite tout en atteignant à peu près le niveau d'un modèle bien plus grand sur les tâches qui comptent.
La difficulté tient à la densité de capacités. Un petit modèle a moins de place pour héberger à la fois la perception générale et le raisonnement spécifique qu'une tâche exige ; entraîné sans soin, soit il ne parvient pas à relier la vision au langage, soit il mémorise les cas faciles et s'effondre sur les cas difficiles. Entraîné dans le bon ordre, en revanche, il peut combler l'essentiel de cet écart : c'est le rôle des trois étapes ci-dessous, chacune visant une manière différente dont un petit modèle a tendance à échouer.

Étape 1 : aligner vision et langage

Nous partons de deux éléments qui n'ont jamais été entraînés à se parler : un vision encoder préentraîné qui transforme une image en features visuelles, et un modèle de langage purement textuel qui n'a jamais consommé que des tokens de mots. Le modèle est câblé comme un pipeline. Le vision encoder produit des features à partir de l'image, un projector projette ces features dans l'espace d'embedding de tokens du modèle de langage, et celui-ci les lit alors comme s'il s'agissait de mots et génère du texte. L'instruction textuelle est tokenisée et injectée directement dans le modèle de langage, où elle rejoint les tokens visuels en une seule séquence combinée. Cette recette en deux temps suit LLaVA [1].

L'adaptateur de projection démarre sans signification : les tokens visuels qu'il produit ne correspondent à rien dans le vocabulaire du modèle de langage. L'étape 1 entraîne ce projector et rien d'autre. Le vision encoder et le modèle de langage restent gelés, chacun apportant déjà de solides capacités généralistes, et les seuls paramètres qui bougent sont ceux du projector, θ={θproj}\theta = \{\theta_{\text{proj}}\}, sous l'objectif supervisé ordinaire de prédiction du token suivant :

Lalign=(x,y)tlogpθ(yty<t,ximage,xprompt),θ={θproj}\mathcal{L}_{\text{align}} = -\sum_{(x,y)} \sum_t \log p_{\theta}(y_t \mid y_{<t}, x_{\text{image}}, x_{\text{prompt}}), \theta = \{\theta_{\text{proj}}\}
Une boîte de kit ouverte, partiellement remplie, avec les articles sources disposés sur les côtés

Aligné :
« Une boîte de kit ouverte, partiellement remplie, avec les articles sources disposés sur les côtés. »

Non aligné :
« Un carton de vente scellé, prêt à expédier. »

Les données sont volontairement simples : un prompt du type « décris l'image » associé à une légende. Le seul travail du projector est de transformer les features visuelles en tokens que le modèle de langage gelé comprend déjà, en somme un tokenizer visuel compatible avec lui.

L'étape est peu coûteuse et peu risquée, mais la sauter empoisonne tout ce qui suit : tant que le projector n'est pas aligné, le modèle de langage raisonne sur des tokens visuels qui ne lui disent rien, et tout ce qui est bâti par-dessus hérite de cette confusion.

Picking – Étape 1

Picking – Étape 1

Kitting – Étape 1

Kitting – Étape 1

Retours / Inspection – Étape 1

Retours / Inspection – Étape 1

Étape 2 : enseigner les tâches plus difficiles, de bout en bout

Une fois que le projector permet au modèle de voir, on augmente la difficulté. Le vision encoder reste gelé, mais le projector et le modèle de langage s'entraînent désormais ensemble, si bien que les paramètres entraînables deviennent θ={θproj,θLM}\theta = \{\theta_{\text{proj}}, \theta_{\text{LM}}\}. Le modèle cesse de simplement décrire des scènes et commence à répondre à de vraies questions.

Le changement par rapport à l'étape 1 tient surtout aux données. Les prompts sont maintenant les questions que le déploiement pose réellement (« combien de bacs y a-t-il sur l'image », « ce bac est-il vide », « quel emplacement reste à remplir »), et la cible est une courte chaîne de raisonnement suivie de la réponse. La cible y=(c,a)y = (c, a) se décompose en une trace de raisonnement c=(y1,,ym)c = (y_1, \dots, y_m) et la réponse finale a=(ym+1,,yT)a = (y_{m+1}, \dots, y_T), et nous supervisons les deux parties différemment, car ce sont des cibles de nature différente.

La réponse est supervisée exactement comme à l'étape 1, avec la perte ordinaire de prédiction du token suivant sur l'empan de la réponse :

LSFT=tlogpθ(yty<t,x)\mathcal{L}_{\text{SFT}} = -\sum_{t} \log p_{\theta}(y_t \mid y_{<t}, x)

La trace demande plus de doigté. Beaucoup de traces mènent à la même réponse : forcer le modèle à reproduire la formulation exacte de l'enseignant surajuste sa tournure, et lorsqu'un exemple porte une trace vide ou triviale, la perte brute apprendrait au modèle que sauter le raisonnement est l'objectif.

Nous suivons le taux de traces de raisonnement valides en parallèle de la précision, plutôt que de nous fier à la seule précision [2].

C'est l'étape où le modèle acquiert la compétence que la tâche exige vraiment. C'est la plus gourmande en données des trois, mais elle reste de l'apprentissage supervisé ordinaire, ce qui la garde stable et prévisible. À la fin, vous disposez d'un modèle qui voit et qui est largement capable sur la famille de tâches, avec deux limites qui préparent l'étape finale. Le fine-tuning supervisé (SFT) apprend au modèle à imiter : il reproduit bien les réponses de l'enseignant sur des données proches du jeu d'entraînement, mais généralise mal à la longue traîne que le terrain produit réellement. Et chaque nouveau tour de SFT tire l'ensemble du modèle vers la nouvelle tâche, érodant ce qu'il savait déjà (oubli catastrophique). Parce qu'il ne fait qu'imiter, il n'est pas fiablement précis sur les cas où il n'existe qu'une seule bonne réponse et où être proche ne suffit pas. L'étape 3 contourne tout cela : optimiser une récompense vérifiable au lieu d'imiter des tokens figés rend précises les réponses à fort enjeu et pousse le modèle au-delà du mimétisme, vers un raisonnement qui se transfère, sans écraser tout le reste.

Picking – Étape 2

Picking – Étape 2

Kitting – Étape 2

Kitting – Étape 2

Retours / Inspection – Étape 2

Retours / Inspection – Étape 2

Étape 3 : apprentissage par renforcement à récompenses vérifiables

L'étape finale vise cette précision. Plutôt que d'apprendre un reward model distinct, nous calculons la récompense directement à partir du fait que la réponse est juste ou non. C'est l'abandon du reward model appris qui garde cette étape abordable dans le budget d'un petit modèle.

L'optimiseur est GRPO (Group Relative Policy Optimization) [3]. La politique πθ\pi_\theta (le petit VLM lui-même) échantillonne un groupe de GG candidats par prompt, note chacun face à la cible vérifiable, et standardise les récompenses au sein du groupe, de sorte que le groupe fournit lui-même la référence :

A^i=rimean(r1:G)std(r1:G)\hat{A}_i = \frac{r_i - \text{mean}(r_{1:G})}{\text{std}(r_{1:G})}

Cet avantage alimente une mise à jour de gradient de politique clippée, le même substitut que PPO mais avec la référence de groupe à la place d'un critique appris. Avec le ratio d'importance par token

ρi,t(θ)=πθ(yi,tx,yi,<t)πθold(yi,tx,yi,<t)\rho_{i,t}(\theta) = \frac{\pi_{\theta}(y_{i,t} \mid x, y_{i,<t})}{\pi_{\theta_{\text{old}}}(y_{i,t} \mid x, y_{i,<t})}, l'objectif s'écrit
J(θ)=E[1iyii=1Gt=1yimin(ρi,t(θ)A^i,clip(ρi,t(θ),1εlow,1+εhigh)A^i)]\mathcal{J}(\theta) = \mathbb{E} \left[ \frac{1}{\sum_i |y_i|} \sum_{i=1}^{G} \sum_{t=1}^{|y_i|} \min \left( \rho_{i,t}(\theta) \hat{A}_i, \text{clip} \left( \rho_{i,t}(\theta), 1 - \varepsilon_{\text{low}}, 1 + \varepsilon_{\text{high}} \right) \hat{A}_i \right) \right]

Comme tous les candidats partagent le même avantage A^i\hat{A}_i, c'est toute la trace de raisonnement derrière une bonne réponse qui est renforcée, pas seulement le dernier token. Nous utilisons DAPO [3] plutôt que le GRPO standard : il découple la plage de clipping (εlow,εhigh\varepsilon_{\text{low}}, \varepsilon_{\text{high}}) pour maintenir l'exploration, abandonne les normalisations qui favorisent les sorties longues et agrège la perte au niveau du token. L'entraînement est plus stable et les sorties restent courtes, ce qui maintient la rapidité du modèle déployé.

La récompense rir_i dépend du type de réponse de la tâche, et les deux cas méritent d'être énoncés explicitement. Lorsqu'il existe une seule réponse définie — une catégorie, un oui/non, une étiquette discrète —, la récompense est un indicateur qui ne se déclenche que sur une correspondance exacte :

ri=1[y^i=y]={1y^i=y0otherwiser_i = \mathbb{1}[\hat{y}_i = y] = \begin{cases} 1 & \hat{y}_i = y \\ 0 & \text{otherwise} \end{cases}

Lorsque la réponse est une quantité numérique ou mesurable, le tout ou rien gaspille du signal. La récompense évolue alors selon la proximité de la prédiction à la cible, accordant un crédit partiel pour l'approximation et un signal plus fort pour l'exactitude, pour une tolérance τ\tau :

ri=max(0,1y^iyτ)r_i = \max\left(0, 1 - \frac{|\hat{y}_i - y^*|}{\tau}\right)

Dans les deux cas, la supervision vient de la tâche elle-même, pas d'un évaluateur humain ni d'un proxy appris : la fonction qui note le modèle est celle-là même que vous utiliseriez pour le contrôler en production.

Picking – Étape 3

Picking – Étape 3

Kitting – Étape 3

Kitting – Étape 3

Retours / Inspection – Étape 3

Retours / Inspection – Étape 3

Pourquoi l'ordre compte

Les trois étapes ne sont pas interchangeables. L'alignement d'abord, parce que raisonner sur des features mal alignées, c'est raisonner sur la mauvaise chose. La compétence supervisée large ensuite, parce que le RL aiguise une capacité déjà présente mais ne peut pas en fabriquer une à partir de rien. Le RL à récompense vérifiable en dernier, parce que son rôle est de convertir « généralement juste » en « fiablement exact » sur les cas qui ont une réponse contrôlable.

Exécutée dans cet ordre, chaque étape accomplit un travail dont la suivante dépend, et aucune ne se voit confier une mission pour laquelle elle est mauvaise. Le résultat est un petit modèle qui s'aligne correctement, raisonne sur la tâche réelle et atteint la précision qu'un cas d'usage industriel exige vraiment, entraîné et servi à un coût qui s'accorde au déploiement au lieu de le contrarier.

À retenir

Rendre les petits VLM exploitables en production n'est pas une affaire de réduction astucieuse. Il s'agit d'échelonner l'entraînement pour qu'un modèle compact dépense bien sa capacité limitée : aligner vision et langage, bâtir la compétence sur la tâche par supervision directe, puis utiliser des récompenses vérifiables pour rendre précises les réponses à fort enjeu. Abandonner le reward model appris à cette dernière étape n'est pas un compromis : c'est le geste qui garde tout le pipeline assez efficace pour être réentraîné aussi souvent qu'un déploiement réel l'exige.

Références

[1] Liu, Li, Wu, Lee. Visual Instruction Tuning (LLaVA). NeurIPS 2023. arXiv:2304.08485.

[2] Twist, Yannakoudakis, Zhang. Reasoning-Trace Collaps: Evaluating the Loss of Explicit Reasoning During Fine-Tuning 2026. arXiv:2605.21127.

[3] Shao et al. DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models. 2024. arXiv:2402.03300.

[4] Yu et al. DAPO:An Open-Source LLM Reinforcement Learning System at Scale. NeurIPS 2025. arXiv:2503.14476.

Ressources de l'article

Accédez au contenu et aux fichiers de cet article

Contenu texte

Copiez l'intégralité du texte de l'article dans le presse-papiers pour le lire ou le partager facilement.

Ressources visuelles

Téléchargez dans un fichier ZIP toutes les images haute résolution utilisées dans cet article.

Derniers articles