Leçon 5 — Coût et transfer learning
Cette leçon est la plus utile si vous devez décider quelque chose. Le deep learning a une réputation de discipline réservée aux grandes organisations, et c'était vrai jusqu'à ce qu'une pratique change l'économie du domaine.
Ce qu'un entraînement coûte vraiment
Trois postes, et le premier est presque toujours le plus lourd.
Les données. Un réseau entraîné de zéro demande des dizaines de milliers d'exemples au minimum, souvent bien plus, et étiquetés. Faire annoter cinquante mille images par des spécialistes est un projet à part entière, avec un budget, des délais, un protocole et des désaccords entre annotateurs à arbitrer. C'est ce poste qui tue les projets, pas le matériel.
Le matériel. Un GPU récent en location coûte de l'ordre de quelques euros par heure. Un entraînement de vision sérieux prend des heures à quelques jours ; un modèle de langage de grande taille demande des milliers de GPU pendant des semaines, soit des millions d'euros. C'est pourquoi il existe une poignée d'organisations qui entraînent des modèles de fondation, et des dizaines de milliers d'équipes qui les utilisent.
Le temps humain. Souvent sous-estimé : préparation des données, expérimentations infructueuses, réglages, analyse des erreurs. En pratique, la préparation et le diagnostic occupent bien plus de temps que le calcul.
Entraîner un grand modèle de langage de zéro se compte en millions d'euros et en mois. Affiner ce même modèle sur vos données se compte souvent en dizaines d'euros et en heures. Cette différence d'échelle est ce qui a démocratisé le domaine, et c'est le sujet du reste de cette leçon.
Le transfer learning
L'idée découle directement de la leçon 2. Un réseau entraîné sur une grande tâche a appris, dans ses couches basses, des représentations génériques : des contours et des textures pour la vision, la syntaxe et la sémantique pour le texte. Ces représentations ne sont pas propres à la tâche d'origine.
On peut donc reprendre ce travail déjà payé par quelqu'un d'autre et n'adapter que la partie spécifique à son problème.
L'analogie est fidèle : on n'apprend pas à un radiologue à voir avant de lui apprendre la radiologie. Il sait déjà distinguer des formes et des contrastes ; on lui enseigne seulement ce qui, dans une image médicale, est significatif.
Extraction de caractéristiques
On gèle l'intégralité du réseau pré-entraîné et on l'utilise comme un convertisseur : il transforme chaque image, ou chaque texte, en un vecteur de descripteurs. On entraîne ensuite un petit modèle — souvent une simple régression logistique — sur ces vecteurs.
Cette approche demande très peu de données, parfois quelques dizaines d'exemples par classe, s'entraîne en secondes et fonctionne sur un ordinateur ordinaire, sans carte graphique. C'est le premier essai à faire, systématiquement.
Fine-tuning
On va plus loin : on autorise les dernières couches du réseau à se réajuster sur vos données, avec un taux d'apprentissage faible pour ne pas détruire ce qui a été appris. On obtient de meilleurs résultats, au prix de plus de données et d'un peu de calcul.
Deux précautions valent d'être connues. Un taux d'apprentissage trop élevé provoque l'oubli catastrophique : le modèle écrase ses représentations générales et devient moins bon que le point de départ. Et avec peu de données, dégeler trop de couches conduit droit au surapprentissage.
Les méthodes d'adaptation efficaces
Pour les très grands modèles, réajuster tous les paramètres est hors de portée. Des techniques d'adaptation à faible nombre de paramètres, dont LoRA est la plus répandue, n'entraînent que de petites matrices additionnelles insérées dans le modèle, en laissant les poids d'origine intacts.
L'intérêt est considérable : on adapte un modèle de plusieurs milliards de paramètres en n'entraînant qu'une fraction de pourcent d'entre eux, sur un seul GPU, en quelques heures. On peut aussi conserver plusieurs adaptations légères pour un même modèle de base, et les échanger selon la tâche.
Où trouver les modèles
Hugging Face est devenu le point de passage obligé : des centaines de milliers de modèles pré-entraînés pour le texte, l'image, l'audio, avec une interface Python homogène. Les bibliothèques de vision de PyTorch et de TensorFlow embarquent également les architectures classiques avec leurs poids.
Deux points de vigilance qui n'ont rien de technique :
La licence. Tous les modèles ne sont pas utilisables commercialement. Certaines licences imposent des restrictions d'usage, d'autres exigent la mention de l'origine. À vérifier avant de construire un produit dessus.
Les biais héritent. Un modèle pré-entraîné porte les biais de ses données d'entraînement, que vous n'avez pas choisies et que vous ne connaissez pas en détail. En reprenant le modèle, vous reprenez ses biais. Le cours Éthique et IA responsable traite ce point, qui est une vraie responsabilité juridique dans certains usages.
Quand entraîner de zéro se justifie
Rarement, et pour des raisons précises :
- Votre domaine est vraiment sans équivalent. Des signaux de capteurs industriels très spécifiques n'ont aucun modèle pré-entraîné pertinent.
- Vous avez des données à très grande échelle et un modèle sur mesure apporte un avantage mesurable.
- La confidentialité interdit tout modèle externe, y compris téléchargé.
- Vous faites de la recherche et l'objet du travail est l'architecture elle-même.
Dans tous les autres cas — c'est-à-dire la quasi-totalité des projets d'entreprise —, partir d'un modèle existant est plus rapide, moins cher et plus performant.
Commencez toujours par extraction de caractéristiques sur un modèle pré-entraîné. Si le résultat suffit, vous avez terminé en une journée. Sinon, passez au fine-tuning. N'envisagez un entraînement de zéro qu'après avoir épuisé les deux, avec une raison que vous savez formuler.
Une note sur l'empreinte énergétique
L'entraînement d'un grand modèle consomme énormément, et c'est un coût unique. L'inférence est bon marché par requête, et se produit des milliards de fois : à grande échelle, le total cumulé dépasse souvent le coût d'entraînement.
Cela plaide pour une pratique qui est aussi la plus économique : utiliser le plus petit modèle qui fait le travail. Un modèle compact affiné pour une tâche précise égale fréquemment un modèle géant sur cette tâche, pour une fraction du coût et de la latence.
En trois phrases
Le coût réel d'un entraînement de zéro tient d'abord aux données étiquetées, ensuite au matériel, et ce sont les données qui tuent les projets. Le transfer learning permet de reprendre les représentations génériques déjà apprises par un grand modèle et de n'adapter que la partie spécifique, ce qui fait passer un projet de plusieurs mois et millions d'euros à quelques heures et quelques dizaines d'euros. Commencez par l'extraction de caractéristiques, passez au fine-tuning si nécessaire, et n'entraînez de zéro que si vous savez formuler pourquoi aucun modèle existant ne convient.
Suite — Leçon 6 : récapitulatif et FAQ →