Le compositeur de modèles de codage propre à Cursor (1/4) est à la pointe de la technologie, et 4 fois plus rapide et moins cher. Cela permet à Cursor de réduire sa dépendance à OpenAI et Anthropic. Pourquoi améliorer leurs modèles quand on peut créer les siens ?
2/4 Ils ont mené un apprentissage par renforcement à grande échelle sur le modèle du ministère de l'Éducation (principalement l'un des modèles chinois comme modèles de base). Le modèle RLed a appris automatiquement à effectuer des appels d'outils en parallèle, et à lire et rechercher davantage avant de modifier le code. Ce comportement est apparu naturellement.
3/4 Comment ont-ils développé des environnements RL pour collecter des trajectoires pour le RL ? Ils ont réutilisé leur infrastructure d'agents d'arrière-plan. « Lors de l’apprentissage par renforcement, nous souhaitons que notre modèle puisse appeler n’importe quel outil du framework Cursor Agent. Ces outils permettent de modifier le code, d’utiliser la recherche sémantique, de rechercher des chaînes de caractères et d’exécuter des commandes terminal. » À notre échelle, apprendre au modèle à appeler efficacement ces outils nécessite l'exécution de centaines de milliers d'environnements de codage sandboxés simultanés dans le cloud. Pour supporter cette charge de travail, nous avons adapté l'infrastructure existante que nous avions construite pour les agents d'arrière-plan, en réécrivant notre planificateur de machines virtuelles pour supporter la nature irrégulière et l'échelle des exécutions d'entraînement. Cela a permis une unification transparente des environnements RL avec les environnements de production.
4/4 Infrastructure physique pour l'entraînement du modèle Composer de Cursor. Ils affirment avoir entraîné (et continuent d'entraîner) leurs modèles sur des milliers de GPU. Ils les entraînent avec une faible précision et utilisent l'apprentissage par renforcement asynchrone (voir le tweet suivant pour plus d'explications). Citation : « Nous avons construit une infrastructure de formation personnalisée tirant parti de PyTorch et Ray pour alimenter l'apprentissage par renforcement asynchrone à grande échelle. » Nous entraînons nativement nos modèles à faible précision en combinant nos noyaux MXFP8 MoE avec un parallélisme expert et un parallélisme de données fragmenté hybride, ce qui nous permet d'étendre l'entraînement à des milliers de GPU NVIDIA avec un coût de communication minimal. De plus, l'entraînement avec MXFP8 nous permet d'obtenir des vitesses d'inférence plus rapides sans nécessiter de quantification post-entraînement. »
5/5 Qu'est-ce que l'apprentissage par renforcement asynchrone utilisé par l'entraînement du modèle Customer Composer ? Il utilise l'exécution asynchrone à plusieurs niveaux pour éviter d'attendre les opérations lentes, par exemple une longue génération de déploiement. Comme vous le savez, pour un problème donné, en apprentissage par renforcement comme GRPO, nous générons plusieurs trajectoires. Cependant, certaines trajectoires peuvent prendre trop de temps à se réaliser. Une fois qu'ils disposent de suffisamment de trajectoires, ils lancent l'entraînement. Les déploiements partiels reprennent ultérieurement avec un modèle mis à jour. Il en résulte une situation où certains jetons sont générés par l'ancien modèle/la nouvelle politique et d'autres par le nouveau. Cependant, cela est acceptable. Si vous souhaitez en savoir plus sur l'apprentissage par renforcement asynchrone, veuillez consulter la documentation d'APRIL, un projet dédié à l'apprentissage par renforcement asynchrone.


