12 points par GN⁺ 25 일 전 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Simple Self-Distillation (SSD) est une méthode qui améliore les performances d’un grand modèle de langage en réentraînant le modèle sur le code qu’il a lui-même généré, sans modèle enseignant ni apprentissage par renforcement
  • Le score pass@1 sur LiveCodeBench v6 du modèle Qwen3-30B-Instruct passe de 42,4 % à 55,3 %, avec en particulier +15,3 points sur les problèmes difficiles
  • SSD atténue le conflit entre précision et exploration lors de la génération de code et, selon le contexte, supprime les probabilités de queue tout en conservant une diversité utile
  • Le simple ajustement de la température ou la modification de la politique de décodage ne permettent pas de reproduire le même effet ; SSD reconfigure la distribution interne du modèle elle-même
  • Il s’agit d’une procédure simple d’apprentissage post-entraînement, applicable sans données externes ni validation, qui propose une alternative concrète pour améliorer la qualité de génération de code des LLM

Auto-distillation simple (Simple Self-Distillation, SSD)

  • SSD (Simple Self-Distillation) est une méthode qui améliore les performances des grands modèles de langage (LLM) en utilisant leurs propres sorties de code générées sans modèle enseignant, validateur ni apprentissage par renforcement
    • Le modèle génère des échantillons avec certains réglages de température (temperature) et de troncature (truncation), puis réapprend ces résultats via un affinage supervisé standard (SFT)
    • Aucune donnée externe annotée, aucun modèle de récompense et aucun environnement d’exécution ne sont nécessaires
  • Le score pass@1 de Qwen3-30B-Instruct sur LiveCodeBench v6 passe de 42,4 % à 55,3 % (+12,9 points, +30 % d’amélioration relative)
    • L’amélioration la plus forte apparaît en particulier sur les problèmes difficiles (hard split) (+15,3 points)
    • Le procédé se généralise à l’ensemble des modèles 4B, 8B et 30B des familles Qwen et Llama
  • SSD fonctionne en atténuant le conflit précision-exploration (precision-exploration)
    • Lors de la génération de code, certains tokens exigent une forte précision (« lock »), tandis que d’autres demandent une exploration variée (« fork »)
    • SSD supprime les distributions de queue inutiles selon le contexte tout en préservant une diversité utile

1. Contexte de la recherche

  • Le manque de signaux supervisés de haute qualité (par ex. du code écrit par des humains) limite l’amélioration des performances de génération de code des LLM
  • Limites des approches existantes
    • Distillation fondée sur un modèle enseignant : hérite des limites de performance du modèle enseignant
    • Apprentissage par renforcement (RL) : nécessite un modèle de récompense et une validation fondée sur l’exécution, tout en restant instable
    • Alternatives non supervisées (par ex. vote majoritaire, minimisation de l’entropie) : risque d’effondrement sur un apprentissage long
  • SSD démontre qu’une amélioration est possible sans données externes ni validation, en s’appuyant uniquement sur les sorties du modèle lui-même

2. Méthodologie SSD

  • Synthèse des données

    • Pour un ensemble donné d’invites de problèmes X, on échantillonne depuis le modèle pθ avec une température d’entraînement Ttrain et des réglages de troncature ρtrain (top-k, top-p)
    • Les sorties générées (y) sont utilisées telles quelles comme données d’apprentissage (DSSD), sans validation
    • Dans la plupart des cas, N=1 (un échantillon par problème) suffit
  • Entraînement

    • Un affinage supervisé est effectué avec une perte d’entropie croisée standard
    • L(θ) = −E(x,y)∼DSSD Σ log pθ(yt | x, y<t)
  • Inférence

    • Le modèle entraîné pθ* est décodé avec une température d’évaluation Teval et des réglages de troncature ρeval

3. Expériences

  • Configuration des modèles

    • Llama-3.1-8B-Instruct, Qwen3-4B/30B (Instruct, Thinking) et 5 modèles au total
    • 2 familles (Llama, Qwen), 3 tailles (4B, 8B, 30B), 2 styles de raisonnement (Instruct, Thinking)
  • Données

    • Environ 10K problèmes de programmation compétitive issus du dataset rSTARcoder
    • Application d’un simple filtrage syntaxique sans validation des réponses correctes
  • Paramètres d’entraînement

    • Basé sur Megatron-LM, avec 8 GPU B200
    • Optimiseur AdamW, longueur de séquence maximale de 65 536
    • 2 500 étapes pour les modèles Instruct, 300 étapes pour les modèles Thinking
  • Évaluation

    • LiveCodeBench v6 (LCB v6) utilisé comme benchmark principal
    • Évaluation détaillée par pass@1, pass@5 et par niveau de difficulté (Easy/Medium/Hard)

4. Résultats principaux

  • Amélioration globale des performances

    • Qwen3-30B-Instruct : 42,4 % → 55,3 % en pass@1 (+12,9 points)
    • Qwen3-4B-Instruct : +7,5 points, Llama-8B : +3,5 points
    • Les modèles Thinking progressent eux aussi de +2 à 3 points
  • Améliorations par niveau de difficulté

    • Qwen3-30B-Instruct : Easy +6,5 points / Medium +14,2 points / Hard +15,3 points
    • Les plus fortes hausses sur les modèles Thinking apparaissent également sur la tranche Hard
  • Maintien de la diversité

    • L’amélioration de pass@5 est plus importante que celle de pass@1 → la diversité de génération est maintenue et améliorée
    • Exemple : Qwen3-30B-Instruct pass@5 +18,1 points (Hard +23,0 points)
  • Généralisation de domaine

    • Les performances sont maintenues sur des tâches de mathématiques, de code généraliste et de compréhension en dehors de la programmation compétitive

5. Comparaison des politiques de décodage

  • L’ajustement de la température seul ne permet pas de reproduire l’effet de SSD

    • Sur le modèle de base, un balayage de température produit des variations de pass@1 de l’ordre de 1,5 à 3,0 points
    • SSD apporte, dans les mêmes conditions, une amélioration de +11,8 points (Qwen3-30B-Instruct)
    • L’écart est particulièrement marqué sur les problèmes Hard et sur pass@5
    • SSD modifie la distribution interne du modèle elle-même et ne peut donc pas être remplacé par un simple ajustement du décodage

6. Interaction des hyperparamètres

  • Le produit de la température d’entraînement (Ttrain) et de la température d’évaluation (Teval), Teff = Ttrain × Teval, détermine les performances
    • Les meilleures performances apparaissent autour de Teff ≈ 1,2
    • Plus Ttrain est élevé, plus le modèle devient sensible aux variations de Teval
  • L’ajout de la troncature (truncation) augmente le plafond de performance
    • Réglage optimal : Ttrain=2.0, Teval=1.1, top-k=10 → pass@1 49,7 % (+7,3 points)
    • La troncature apporte un gain supplémentaire en supprimant les queues de faible probabilité

7. Mécanisme de fonctionnement de SSD

  • Conflit précision–exploration (Precision–Exploration)

    • Lock : position où la bonne réponse grammaticale est presque figée → faible température requise
    • Fork : position où plusieurs solutions sont possibles → température élevée requise
    • Une température unique satisfait difficilement ces deux exigences à la fois
  • Rôle de SSD

    • Dans les cas Lock, il supprime les probabilités de queue pour renforcer la précision
    • Dans les cas Fork, il aplatit les probabilités entre les principaux candidats pour préserver la diversité d’exploration
    • Il réalise ainsi une reconfiguration de distribution dépendante du contexte

8. Validation expérimentale

  • Expérience en environnement simulé

    • Application de SSD dans un environnement simple avec une structure comprenant 1 Fork + 3 Lock
    • Après SSD, la probabilité de succès augmente et la plage de température optimale s’élargit
    • Cela confirme que l’apprentissage et le décodage sont complémentaires
  • Analyse sur modèle réel

    • Après SSD, la probabilité cumulée des tokens de tête augmente, tandis que les probabilités de queue diminuent
    • Même avec un Teval élevé, le nombre de candidats valides de premier plan augmente et l’entropie progresse
    • Autrement dit, SSD obtient à la fois l’élimination des queues et l’élargissement de la distribution de tête

9. Analyse théorique

  • La perte d’entraînement de SSD se décompose en trois termes
    1. Support Compression : suppression des probabilités de queue
    2. Within-Support Reshaping : reconfiguration de la distribution de tête
    3. Alignment to Base Model : maintien de l’alignement avec le modèle d’origine
  • Dans les cas Lock, le premier terme domine → suppression de la queue
  • Dans les cas Fork, c’est le deuxième terme qui agit → aplatissement de la distribution de tête
  • L’entropie globale diminue, mais l’entropie d’exploration utile est préservée
  • Un simple ajustement du décodage ne peut pas effectuer cette reconfiguration contextuelle

10. Expérience sur des données anormales

  • Avec Ttrain=2.0, sans troncature, 62 % des données générées sont du bruit incohérent (gibberish)
  • Malgré cela, après application de SSD
    • pass@1 : 42,4 % → 48,1 % (+5,7 points)
    • pass@5 : 53,5 % → 64,0 % (+10,5 points)
    • Sur les problèmes Hard, amélioration de +7,3 points / +13,8 points
  • Cela montre que SSD peut produire des gains en apprenant la structure de distribution plutôt que la qualité intrinsèque des bonnes réponses

Conclusion

  • Simple Self-Distillation (SSD)
    • améliore les performances de génération de code uniquement à partir des sorties du modèle lui-même, sans enseignant externe ni validation
    • atténue le conflit précision–exploration et obtient des gains généralisés grâce à une reconfiguration de la distribution
  • SSD est une méthode simple mais puissante, applicable en phase de post-training, qui propose une alternative concrète pour améliorer la qualité de génération de code des LLM

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.