AllenAI Open Instruct Tulu 3 : évaluation post-entraînement à l’aide des méthodes SFT, DPO, RLVR, GRPO et d’un vérificateur

Un pas supplémentaire vient d’être franchi dans cette révolution technologique en cours.

AllenAI Open Instruct Tulu 3 : évaluation post-entraînement à l’aide des méthodes SFT, DPO, RLVR, GRPO et d’un vérificateur

Dans ce tutoriel, nous mettons en place un pipeline complet de post-entraînement pour un modèle linguistique compact optimisé par instructions, à l’aide du framework Open Instruct d’AllenAI. Nous passons par trois étapes principales d’entraînement : l’affinage supervisé, l’optimisation directe des préférences et l’apprentissage par renforcement avec des récompenses vérifiables à l’aide de GRPO, tout en adaptant la pile Tulu 3 multi-GPU d’origine pour qu’elle tienne dans un espace d’exécution de 16 Go. Nous clonons le référentiel Open Instruct, chargeons de manière sélective ses fonctions de perte et d’utilité natives, configurons les adaptateurs LoRA, préparons les données GSM8K pour chaque étape d’entraînement et utilisons des vérificateurs déterministes pour évaluer les réponses mathématiques générées. Tout au long du workflow, nous conservons la logique d’optimisation fondamentale d’Open Instruct tout en remplaçant les composants distribués tels que vLLM, les acteurs Ray, DeepSpeed et les files d’attente de déploiement asynchrones par des implémentations légères de Hugging Face et PyTorch adaptées à Colab.

À noter également, nous installons les dépendances légères nécessaires, clonons le dépôt Open Instruct et configurons l’environnement Colab pour garantir une exécution stable. Nous détectons le mode de précision GPU disponible et sélectionnons la conversion automatique en FP16 ou BF16 en fonction des compétences matérielles. Nous extrayons par ailleurs les fonctions DPO, GRPO, de masquage et de probabilité logarithmique d’origine directement depuis le référentiel, sans importer l’intégralité de sa pile d’entraînement distribuée.

Nous chargeons GSM8K et transformons ses questions et ses solutions en un format conversationnel cohérent pour l’entraînement des modèles SFT, DPO et RLVR.

Nous définissons une classe de configuration centralisée qui contrôle le modèle, la taille des ensembles de informations, les taux d’apprentissage, les paramètres de traitement par lots et les paramètres d’optimisation pour chaque étape d’entraînement. Nous initialisons le tokeniseur Open Instruct tout en conservant le modèle de conversation du système et en veillant à ce que les tokens de remplissage et de fin de séquence restent correctement séparés. Nous procédons ensuite à la tokenisation d’un exemple de conversation et visualisons quels tokens de l’assistant contribuent à la perte d’apprentissage supervisé.

En parallèle, nous chargeons GSM8K et transformons ses questions et ses solutions en un format conversationnel cohérent pour l’entraînement des modèles SFT, DPO et RLVR. Nous créons des exemples supervisés, des paires de préférences avec des réponses finales délibérément incorrectes, ainsi que des invites prêtes à être vérifiées avec des étiquettes de référence structurées. Nous initialisons également les vérificateurs GSM8K, mathématiques et de suivi d’instructions d’Open Instruct, et nous les utilisons pour noter de manière déterministe les réponses générées.

Parallèlement, nous chargeons le modèle d’instructions Qwen, appliquons des adaptateurs LoRA à ses couches d’attention et de projection à propagation directe, et limitons l’optimisation aux paramètres des adaptateurs pouvant être entraînés. Nous configurons l’exécution en précision mixte, la mise à l’échelle des gradients, l’écrêtage des gradients, la planification du taux d’apprentissage et l’activation d’un cache KV temporaire pour la génération. Nous évaluons ensuite le modèle de référence non entraîné sur GSM8K à l’aide d’un décodage glouton et d’une mesure de la précision des réponses basée sur un vérificateur.

Nous construisons un DataLoader SFT « padded » et entraînons les adaptateurs LoRA sur des conversations GSM8K tokenisées en utilisant l’accumulation de gradients. Nous optimisons le modèle d’IA à l’aide d’une perte d’entropie croisée calculée uniquement sur les tokens de réponse de l’assistant non masqués. Nous suivons l’évolution de la perte d’entraînement et du taux d’apprentissage tout au long de cette étape, puis nous évaluons le système mis à jour après un affinage supervisé.

Nous regroupons séparément les réponses sélectionnées et celles rejetées, puis nous calculons leurs probabilités de log de séquence normalisées en fonction de la longueur à l’aide des utilitaires natifs d’Open Instruct. Nous comparons la politique LoRA active à la politique de référence de base « gelée » et optimisons le modèle d’IA à l’aide de la perte DPO du référentiel. Nous contrôlons la précision des préférences, les marges de récompense et la perte d’apprentissage avant d’évaluer les performances du vérificateur du modèle après le DPO.

Pour les professionnels du domaine, cette annonce mérite d’être surveillée.

Pour aller plus loin :


Via MarkTechPost : MarkTechPost