La distillation de modèle transfère les connaissances d’un grand modèle (modèle enseignant) vers un modèle plus petit (modèle étudiant). Cette technique réduit considérablement le nombre de paramètres tout en maintenant les performances du modèle, ce qui permet de pallier les coûts d’inférence élevés et les temps de réponse lents des grands modèles. PAI Model Gallery propose une fonctionnalité de distillation de modèle en un clic basée sur PAI-EasyDistill, un framework propriétaire de distillation de modèle d’Alibaba Cloud. Vous pouvez réaliser l’intégralité du processus de distillation sans écrire une seule ligne de code.
Cas d’utilisation
La distillation de modèle est idéale pour les scénarios suivants :
Déploiement sur appareil ou en périphérie : compressez les grands modèles en modèles légers adaptés aux environnements aux ressources limitées, tels que les téléphones mobiles et les appareils IoT.
Optimisation des coûts : si le coût d’inférence d’un service en ligne est trop élevé, distillez un modèle plus petit pour réduire les dépenses.
Accélération de l’inférence : pour les applications en ligne sensibles à la latence, la distillation réduit la latence et la consommation de ressources GPU tout en maintenant une précision élevée, améliorant ainsi le débit du service.
Héritage des connaissances métier : transférez les connaissances d’un grand modèle performant dans un domaine spécifique, tel que la santé ou le droit, vers un petit modèle plus rentable pour des tâches sectorielles.
Scénarios pouvant être inadaptés ou nécessitant une évaluation attentive :
Exigence de fidélité des performances à 100 % : vous ne pouvez accepter aucune dégradation des performances. La distillation entraîne presque toujours une certaine perte de performance.
Tâches trop simples : pour des tâches simples comme la classification ou la correspondance de texte, l’entraînement direct d’un petit modèle peut s’avérer plus rentable que la distillation.
Absence de données initiales de haute qualité : l’efficacité de la distillation dépend fortement de la qualité des données initiales. Si ces données s’écartent significativement de votre scénario métier réel, les résultats risquent d’être médiocres.
Fonctionnement
La fonctionnalité de distillation de modèle dans PAI Model Gallery utilise la distillation en boîte noire. Il s’agit essentiellement d’une forme d’augmentation générative des données : un modèle enseignant génère des données étiquetées de haute qualité pour entraîner un modèle étudiant via un ajustement fin supervisé (SFT).
Le flux de travail est le suivant :
-
Construire les données de distillation :
Préparer les données de base : utilisez un jeu de données public ou personnalisé.
(Facultatif) Synthèse des données : le framework PAI-EasyDistill fournit des capacités de synthèse et d’augmentation des données pour étendre ou optimiser vos données selon le type de modèle enseignant. Pour les modèles polyvalents, vous pouvez procéder à une augmentation des instructions (pour étendre et réécrire les instructions afin d’obtenir des données plus diversifiées) ou à une optimisation des instructions (pour affiner la formulation des instructions et les rendre plus claires). Pour les modèles de raisonnement, vous pouvez utiliser l’abrégé de chaîne de pensée et l’expansion de chaîne de pensée.
Inférence du modèle enseignant : le modèle enseignant effectue une inférence sur les données pour générer les données de distillation nécessaires à l’entraînement du modèle étudiant.
Entraîner le modèle étudiant : utilisez le jeu de données de distillation généré pour entraîner le modèle étudiant par ajustement fin supervisé (SFT).
Démarrage rapide
Cette section vous guide dans la réalisation d’une tâche rapide de distillation de modèle à l’aide d’un jeu de données public et des paramètres par défaut fournis par PAI.
Connectez-vous à la PAI console et, dans le volet de navigation de gauche, choisissez QuickStart > Model Gallery.
-
Sur la page Models, utilisez le filtre pour trouver un modèle prenant en charge la distillation, tel que
Qwen3-32B.Dans le filtre Supported Operations , sélectionnez Distill . Le système affiche tous les modèles enseignants qui prennent en charge la distillation.

-
Cliquez sur la carte du modèle pour ouvrir la page des détails du modèle. Dans le coin supérieur droit, cliquez sur Distill pour ouvrir la page de création de tâche. Configurez les paramètres clés comme décrit ci-dessous et conservez les valeurs par défaut pour les autres paramètres.
-
Basic configuration : pour Model output path, spécifiez un chemin OSS auquel vous avez accès, par exemple
oss://mybucket.oss-cn-hangzhou-internal.aliyuncs.com/model-distillation/model.RemarqueAssurez-vous de créer un répertoire de sortie distinct pour chaque tâche de distillation afin d’éviter que les fichiers de modèle ne soient écrasés. Le bucket OSS doit se trouver dans la même région que le service PAI.
-
Build distillation data :
Dataset : sélectionnez Public Dataset et choisissez
Chinese-medical-dialogue-datadans la liste déroulante.Distillation output path : spécifiez un chemin OSS auquel vous avez accès, par exemple
oss://mybucket.oss-cn-hangzhou-internal.aliyuncs.com/model-distillation/dist-data.Computing Resources: pour Source, sélectionnez Public Resources, et pour Job Resource, conservez le Instance Type recommandé par défaut.
-
Entraînement du modèle étudiant :
Student model config : sélectionnez Public Model et choisissez un modèle plus petit dans la liste déroulante, tel que
Qwen3-4B.Training Mode : conservez l’ajustement fin LoRA par défaut.
Computing Resources: pour Source, sélectionnez Public Resources, et pour Job Resource, conservez le Instance Type recommandé par défaut.
-
-
Cliquez sur Distill. Dans la boîte de dialogue de rappel de facturation qui s’affiche, cliquez sur OK. Le système vous redirige automatiquement vers la page de configuration de base des détails de la tâche, où vous pouvez suivre l’état de la tâche.
Durée d’exécution de référence : environ 20 à 40 minutes pour un petit jeu de données (100 à 1 000 entrées).
Limites
-
Limites des modèles :
Le modèle enseignant doit être choisi parmi les modèles de PAI Model Gallery qui prennent en charge la distillation. Pour obtenir la liste spécifique des modèles, consultez la console.
Le modèle étudiant peut être un modèle public de PAI Model Gallery ou un modèle personnalisé. Actuellement, les modèles personnalisés sont limités aux LLM ajustés finement dans PAI Model Gallery. Assurez-vous que le modèle étudiant possède moins de paramètres que le modèle enseignant pour que la tâche de distillation soit pertinente.
Méthode de distillation : seule la distillation en boîte noire (basée sur SFT) est actuellement prise en charge.
-
Jeu de données : les jeux de données publics et personnalisés sont pris en charge. Les données doivent être au format JSON et inclure un champ
instruction(colonne de question). Un champoutput(colonne de sortie) n’est pas requis.[ { "instruction": "What is the capital of China?" }, { "instruction": "Please explain what artificial intelligence is." } ] Méthode d’entraînement du modèle étudiant : seul l’ajustement fin supervisé (SFT) est pris en charge, ce qui inclut LoRA, QLoRA et l’ajustement fin complet des paramètres.
Configuration
Construire les données de distillation
Jeu de données
La synthèse des données est une fonctionnalité facultative qui transforme le jeu de données original pour améliorer sa diversité et sa qualité. Sélectionnez une stratégie d’augmentation des données selon que le modèle enseignant est un modèle de raisonnement ou non.
-
Synthesize instruction data (pour les modèles d’instructions polyvalents) :
-
Enhance instructions : étend et réécrit les instructions originales pour générer des instructions aux styles plus variés.
Input example: {"instruction": "Create a two-day travel guide for Hangzhou."} Output example: {"instruction": "Create a three-day travel guide for Beijing."} {"instruction": "I want to visit Shanghai. Recommend a travel itinerary for me."} -
Optimize instructions : optimise la formulation des instructions pour les rendre plus claires et plus faciles à comprendre pour le modèle.
Input example: {"instruction": "Create a two-day travel guide for Hangzhou."} Output example: {"instruction": "Please create a two-day travel guide for Hangzhou, including an itinerary, food recommendations, accommodation suggestions, and the best time to travel."}
-
-
Synthesize chain-of-thought data (pour les modèles de raisonnement) :
-
Expansion de la chaîne de pensée : ajoute des étapes de raisonnement détaillées (Chain of Thought) à la paire question-réponse originale pour améliorer la capacité de raisonnement du modèle étudiant.
Input example: {"instruction": "John has 3 apples and eats 1. How many apples are left?", "output": "<think>short chain of thought</think> <output>John has 2 apples left</output>"} Output example: {"instruction": "John has 3 apples and eats 1. How many apples are left?", "output": "<think>long chain of thought</think> <output>John has 2 apples left</output>"} -
Abrégé de la chaîne de pensée : simplifie les processus de chaîne de pensée longs pour améliorer l’efficacité de l’inférence.
Input example: {"instruction": "John has 3 apples and eats 1. How many apples are left?", "output": "<think>long chain of thought</think> <output>John has 2 apples left</output>"} Output example: {"instruction": "John has 3 apples and eats 1. How many apples are left?", "output": "<think>short chain of thought</think> <output>John has 2 apples left</output>"}
-
Lors de la première distillation, nous vous recommandons de désactiver la synthèse des données afin d’établir une référence. Une fois que vous maîtrisez le processus, vous pouvez essayer d’activer différentes options de synthèse et évaluer leur impact sur les résultats finaux.
Hyperparamètres
Ces hyperparamètres contrôlent le comportement de génération du modèle enseignant lors de l’étape de construction des données.
|
Paramètre |
Description |
Conseils de réglage |
|
Paramètres d’inférence (appliqués à l’inférence du modèle enseignant) |
||
|
|
Contrôle le caractère aléatoire du texte généré. Plage : [0, 2]. Valeur par défaut : 0,8. |
• Augmenter (par ex. > 1,0) : produit des sorties plus diversifiées et créatives. Utile pour les scénarios nécessitant des styles de réponse variés. |
|
|
Nombre maximal de jetons d’entrée pour le modèle enseignant, y compris l’ |
• Assurez-vous que cette valeur est supérieure à la longueur de l’entrée la plus longue de votre jeu de données pour éviter toute perte d’informations. |
|
|
Nombre maximal de nouveaux jetons (la |
• Cette valeur doit être supérieure à la longueur moyenne des réponses attendues du modèle enseignant ; sinon, les réponses seront tronquées. |
|
Paramètres de contrôle des fonctionnalités (affichés uniquement lorsque l’augmentation des instructions est activée) |
||
|
|
Nombre d’échantillons générés pour chaque élément de données lors de l’augmentation des instructions. Valeur par défaut : 0. |
• Augmenter (par ex. > 5) : génère des instructions plus diversifiées, mais augmente considérablement le volume de données et le coût de calcul. |
|
|
Nombre d’échantillons contextuels utilisés lors de l’augmentation des instructions. Valeur par défaut : 3. |
• Augmenter (par ex. > 5) : génère des instructions plus alignées sémantiquement avec le contexte, mais peut réduire la diversité et augmenter la charge de calcul. |
Confirmation
Choisissez la manière dont le système doit gérer les données de distillation générées une fois la construction terminée.
Auto-confirm (recommandé) : une fois la construction des données terminée, le système valide automatiquement les données et lance l’entraînement ultérieur du modèle étudiant. Cette option convient si vous utilisez un jeu de données public ou si vous avez confiance en la qualité de vos données.
-
Manually confirm : une fois la construction des données terminée, vous devez examiner manuellement la qualité des données. Cette option convient aux scénarios exigeant une qualité de données extrêmement élevée ou lors de la première utilisation d’un jeu de données personnalisé. Pour confirmer manuellement les données, procédez comme suit :
Une fois les données de distillation construites, l’état de la tâche passe à Waiting for distillation data confirmation dans la liste des tâches de distillation.
Dans la colonne Actions, cliquez sur Confirm distillation data. Une boîte de dialogue de confirmation s’affiche.
-
Dans la boîte de dialogue, cliquez sur Click to view pour consulter les détails du jeu de données de distillation.
Si la qualité des données répond à vos attentes, cliquez sur Confirm pour poursuivre l’entraînement du modèle étudiant.
Si les données ne répondent pas à vos attentes, cliquez sur Cancel. La tâche s’arrête à l’étape actuelle.
Entraînement du modèle étudiant
Méthode
Sélectionnez la méthode spécifique pour effectuer l’ajustement fin supervisé (SFT) sur le modèle étudiant.
LoRA (recommandé) : méthode d’ajustement fin efficace en termes de paramètres qui maintient de bonnes performances tout en réduisant considérablement les besoins en mémoire GPU.
QLoRA : version quantifiée de LoRA qui réduit encore davantage l’utilisation de la mémoire GPU, adaptée à l’entraînement dans des environnements aux ressources plus limitées.
Ajustement fin complet des paramètres : met à jour tous les paramètres du modèle. Cette méthode donne théoriquement les meilleurs résultats, mais nécessite d’énormes ressources de calcul et de temps, ce qui la rend extrêmement coûteuse.
Jeu de validation
Sélectionnez un jeu de données de validation pour évaluer les performances du modèle pendant l’entraînement.
Don't configure : aucune validation n’est effectuée pendant l’entraînement. Cette option convient aux expériences rapides ou aux scénarios avec de petites quantités de données.
Auto-split distillation data (recommandé) : le système divise automatiquement le jeu de données de distillation généré en un ensemble d’entraînement et un ensemble de validation. Par défaut, 5 % des données sont utilisés pour la validation.
Add validation dataset : spécifiez un jeu de données OSS distinct comme ensemble de validation. Cette option convient aux scénarios disposant d’un ensemble de validation standard.
Hyperparamètres
Ces hyperparamètres contrôlent le processus d’ajustement fin supervisé (SFT) pour le modèle étudiant.
|
Paramètre |
Description |
Conseils de réglage |
|
|
Taux d’apprentissage, qui contrôle la taille des pas de mise à jour des paramètres du modèle. Valeur par défaut : 5e-5. |
• Si la perte d’entraînement (Loss) diminue lentement, essayez d’augmenter le taux d’apprentissage.• Si la Loss fluctue fortement ou ne converge pas, diminuez le taux d’apprentissage. |
|
|
Nombre d’époques d’entraînement, c’est-à-dire le nombre de fois où l’ensemble du jeu de données est parcouru pendant l’entraînement. Valeur par défaut : 1. |
• Pour les grands jeux de données, 1 à 3 époques suffisent généralement.• Trop d’époques peuvent entraîner un surajustement. |
|
|
Nombre d’échantillons traités en une seule étape d’entraînement sur chaque GPU. Valeur par défaut : 1. |
• Si la mémoire GPU le permet, l’augmentation de cette valeur peut accélérer et potentiellement stabiliser le processus d’entraînement.• Si vous rencontrez une erreur d’épuisement de la mémoire (OOM), vous devez d’abord diminuer cette valeur. |
|
|
Longueur maximale de séquence (en jetons) pour l’entrée du modèle étudiant. Valeur par défaut : 128. |
• Définissez cette valeur en fonction des caractéristiques de vos données et de votre scénario d’application. Les textes plus longs nécessitent une |
Bonnes pratiques de production et réglage avancé
Optimisation des coûts
-
Choisir une source de ressources :
Tests ou tâches de petite envergure : utilisez les ressources publiques pour bénéficier de la flexibilité du paiement à l’utilisation.
Tâches de production ou prioritaires : utilisez un quota de ressources pour garantir la stabilité des ressources et le contrôle des coûts.
Tâches sensibles aux coûts ou tolérantes aux pannes : essayez les ressources préemptibles pour obtenir de la puissance de calcul à moindre prix, mais acceptez le risque d’interruption de la tâche.
Commencer par un petit jeu de données : avant d’effectuer une distillation à grande échelle, exécutez l’ensemble du processus avec une petite partie de vos données (par exemple, 100 à 1 000 entrées) pour vérifier votre configuration et éviter de gaspiller d’importantes ressources informatiques en raison d’une mauvaise configuration.
Optimiser le jeu de données : l’utilisation d’un jeu de données initiales plus petit mais de meilleure qualité peut réduire la charge d’inférence du modèle enseignant et le temps d’entraînement du modèle étudiant.
Choisir QLoRA pour l’entraînement : QLoRA réduit considérablement l’utilisation de la mémoire GPU en entraînant un modèle quantifié, ce qui vous permet de vous entraîner sur des GPU moins puissants (et moins chers).
Définir une durée d’exécution raisonnable : définissez un temps d’exécution maximal raisonnable pour la tâche afin d’éviter qu’elle ne s’exécute excessivement longtemps et n’engendre des coûts inutiles en cas de problèmes imprévus.
Réglage des performances
La qualité des données est essentielle : le modèle enseignant définit la limite supérieure des performances, mais la qualité du jeu de données de distillation définit la limite inférieure. Assurez-vous que le jeu de données original utilisé pour la distillation couvre vos scénarios métier, contient des instructions claires et présente un contenu diversifié.
-
Régler les hyperparamètres :
Si la perte d’entraînement du modèle étudiant ne diminue pas ou diverge, votre première action devrait être de réduire le taux d’apprentissage (
learning_rate).Si vous rencontrez une erreur d’épuisement de la mémoire (OOM), votre première action devrait être de réduire la taille du lot (
per_device_train_batch_size) ou la longueur de séquence (seq_length).
Surveiller l’utilisation du GPU : dans la surveillance des tâches, prêtez une attention particulière à l’utilisation du GPU. Si l’utilisation est trop faible, cela indique que les ressources GPU ne sont pas utilisées efficacement. Envisagez d’augmenter
per_device_train_batch_sizepour améliorer l’efficacité.
Évaluation des performances
Une fois la distillation terminée, vous devez évaluer les performances du modèle étudiant.
Déployer le modèle : sur la page des détails de la tâche de distillation, cliquez sur le bouton Deploy dans le coin supérieur droit pour déployer le modèle étudiant distillé en tant que service d’inférence en ligne.
Effectuer une évaluation comparative : utilisez la fonctionnalité d’évaluation de modèle de PAI pour comparer les métriques de performance (telles que la précision et BLEU) des modèles enseignant et étudiant sur le même ensemble d’évaluation afin de quantifier toute perte de performance.
Valider en production : avant un déploiement complet, effectuez un test gris à petite échelle pour comparer la vitesse d’inférence, la consommation de ressources et l’impact métier du modèle distillé par rapport au modèle original dans un scénario métier réel.
FAQ
Q : Choisir les modèles enseignant et étudiant
Modèle enseignant : choisissez un modèle à grand nombre de paramètres ayant fait preuve d’excellentes performances dans votre scénario métier. En général, un modèle avec plus de paramètres contient plus de connaissances, ce qui élève la limite supérieure de l’efficacité de la distillation.
Modèle étudiant : choisissez un modèle de la même série que le modèle enseignant, mais avec moins de paramètres. Par exemple, vous pouvez distiller de
Qwen-30BversQwen-8B. Cette approche garantit la compatibilité architecturale et maximise l’efficacité du transfert de connaissances.
Q : Durée de la tâche de distillation
Le temps requis dépend principalement de la taille du jeu de données, de l’échelle du modèle, de la méthode d’entraînement et des ressources informatiques. Une tâche de distillation avec un petit jeu de données (quelques milliers d’entrées) et un modèle de taille moyenne (7B–14B) prend généralement de quelques dizaines de minutes à quelques heures.
Q : Reprendre les tâches interrompues
Non. Si une tâche est interrompue parce qu’elle a atteint le temps d’exécution maximal configuré, elle échoue et ne peut pas être reprise. Analysez les journaux de la tâche pour déterminer si la lenteur d’exécution était due à des ressources insuffisantes ou à une limite de temps trop courte. Ensuite, augmentez le temps d’exécution maximal ou utilisez un type d’instance plus puissant et resoumettez la tâche.
Q : Gérer les erreurs CUDA out of memory
Il s’agit d’une erreur typique d’épuisement de la mémoire GPU (OOM). Suivez ces étapes pour résoudre le problème :
Réduisez la taille du lot : dans la configuration Student model training, trouvez la section Hyperparameters. Divisez par deux la valeur de
per_device_train_batch_size(par exemple, de 2 à 1) et réessayez.Changer la méthode d’entraînement : si la réduction de la taille du lot est inefficace, retournez à la page de configuration et changez la méthode d’entraînement de
LoRAouFull-parameter fine-tuningversQLoRA. QLoRA réduit considérablement l’utilisation de la mémoire GPU.Mettre à niveau le type d’instance GPU : si les méthodes précédentes ne résolvent pas le problème, l’échelle du modèle et des données nécessite un matériel plus puissant. Dans la section Computing Resources, sélectionnez un type d’instance GPU avec plus de mémoire.