Apprentissage par transfert, LoRA et distillation
Un modèle préentraîné apporte des paramètres appris sur une autre distribution. Les adapter peut demander moins d’exemples que tout apprendre depuis zéro, mais la représentation peut aussi omettre une distinction nécessaire. Déterminer d’abord ce qui doit changer : la tête de sortie, la représentation ou le modèle déployé.
Commencer par une représentation figée
Un routeur documentaire fictif choisit keep, summarize ou discard. Un encodeur figé produit , puis une tête entraînable calcule :
Avec et trois classes, la tête comporte paramètres. Si l’encodeur est réellement figé et le prétraitement déterministe, les vecteurs peuvent être mis en cache. Ce point de départ permet de vérifier si la représentation sépare déjà les étiquettes utiles.
Une tête ne peut pas récupérer une phrase supprimée par troncature. Si la représentation confond « déjà enregistré » et « pas encore enregistré », modifier la frontière de décision peut ne pas suffire. Examiner ces erreurs avant d’ajouter des époques. Le chapitre de Dive into Deep Learning distingue réutilisation des caractéristiques et adaptation des paramètres.
L’ajustement complet rend aussi le réseau principal entraînable. Il offre plus de liberté, mais exige gradients et états d’optimisation supplémentaires et peut effacer des comportements utiles. Comparer tête figée, dégel partiel et adaptation complète sur la même partition.
LoRA restreint la mise à jour
Pour une couche , LoRA fige le poids initial et apprend un ajout de faible rang :
Voir l’image en grandSuivez x dans les deux branches. La matrice bleue reste figée ; la branche orange passe par un rang r avant de retrouver la dimension de sortie. Seules A et B sont entraînées. L’initialisation de B à zéro annule au départ la contribution ajoutée.
est le rang choisi et un facteur d’échelle. Le nombre d’éléments entraînables devient au lieu de . Pour une couche de rang 8, cela donne 65 536 éléments contre 16 777 216, soit un facteur 256 pour cette couche. La mémoire totale d’entraînement ne diminue pas d’autant : poids de base, activations, couches ciblées et autres têtes restent à compter.
Un petit exemple montre la contrainte :
Pour , l’entrée reçoit une correction . Les deux sorties dépendent de la même différence projetée. Un ajout de rang un ne représente pas toute modification possible d’une matrice . Plusieurs couches adaptées et les non-linéarités enrichissent le réseau, sans supprimer la contrainte de rang.
LoRA modifie la mise à jour des poids, pas la taille de l’architecture initiale. Un adaptateur compatible peut être fusionné avec les poids selon le moteur et la représentation numérique. Des adaptateurs séparés facilitent le changement de tâche, mais doivent correspondre au checkpoint de base et au tokenizer.
La distillation change le modèle qui apprend
La distillation entraîne un élève avec des informations fournies par un enseignant. En classification, une distribution complète informe davantage qu’une seule étiquette. Une température adoucit les logits :
Pour les logits fictifs , donne environ et environ . La cible adoucie révèle le classement des alternatives. Un objectif courant combine perte sur étiquettes et perte entre distributions enseignant–élève. Température, coefficient de mélange et convention de moyenne affectent l’échelle du gradient.
from math import exp
def softmax(logits, temperature):
shifted = [(v - max(logits)) / temperature for v in logits]
weights = [exp(v) for v in shifted]
total = sum(weights)
return [v / total for v in weights]
for temperature in (1.0, 2.0):
print([round(v, 3) for v in softmax([2, 0, -2], temperature)])
Un enseignant génératif peut produire des démonstrations ou explications candidates, à filtrer ou vérifier selon la tâche. L’accord avec l’enseignant mesure l’imitation, pas la vérité : ses erreurs systématiques peuvent être transmises. Évaluer l’élève sur des étiquettes ou résultats indépendants.
Des questions différentes
Les méthodes se combinent : un enseignant peut fournir les exemples d’un élève entraîné avec LoRA. Cela ne garantit ni les étiquettes ni une architecture plus petite. La quantification constitue un autre axe : elle change la représentation numérique, tandis que la distillation change le modèle appris et LoRA contraint ses mises à jour.
Concevoir une adaptation utile
Séparer par document, utilisateur ou période lorsque les exemples partagent de l’information. Fixer le test avant de générer des paraphrases évite de disperser les variantes d’une même phrase entre partitions. Utiliser la validation pour rang, taux d’apprentissage, arrêt et seuils de classe.
Pour le routeur, mesurer rappel par classe, coût de suppression d’un document utile, latence à la longueur visée et fréquence de renvoi des cas incertains. Comparer à une règle simple et à la tête figée. Inclure négations, quasi-doublons, nouveaux thèmes et changements de proportions de classes.
Les traces d’agents deviennent des données utiles seulement si leurs étiquettes décrivent des actions à reproduire. Une action historique n’est pas automatiquement correcte. Corriger les erreurs récurrentes avant de les utiliser comme supervision, puis calibrer les probabilités sur des données tenues à l’écart.
Le quicktour PEFT propose un exercice concret : configurer LoRA, inspecter le nombre de paramètres entraînables, puis sauvegarder et recharger l’adaptateur. Comparer les fichiers produits au modèle de base encore nécessaire pour comprendre le contenu d’un checkpoint d’adaptateur.