Aujourd'hui, nous annonçons notre première version du Grand Modèle de Langage de 2024 : Stable Code 3B. Ce nouveau GML est une suite de notre précédente version Stable Code Alpha 3B et la première grande version de Stable Code, offrant un nouveau modèle de pointe conçu pour l'achèvement de code avec de multiples capacités supplémentaires.
Comparé à CodeLLaMA 7b, Stable Code 3B est 60% plus petit tout en offrant des performances de haut niveau similaires dans différents langages de programmation. Basé sur notre modèle fondamental Stable LM 3B préexistant entraîné sur 4 billions de jetons de données en langage naturel, Stable Code a été ensuite entraîné sur des données spécifiques à l'ingénierie logicielle, y compris du code. La taille compacte du modèle lui permet d'être exécuté de manière privée en temps réel sur le bord sur des ordinateurs portables modernes, même ceux sans GPU dédié.
Le code stable 3B offre plus de fonctionnalités et des performances nettement meilleures dans plusieurs langues, avec des avantages supplémentaires tels que le support des capacités de remplissage au milieu (FIM) et une taille de contexte étendue. Le code stable, en tant que base, est entraîné sur des séquences allant jusqu'à 16 384 jetons, mais suit une approche similaire à CodeLlama avec la mise en œuvre d'incorporations rotatives, permettant éventuellement la modification de la base rotative jusqu'à 1 000 000, étendant ainsi la longueur du contexte du modèle jusqu'à 100 000 jetons.
Stable Code est entraîné sur 18 langages de programmation (sélectionnés sur la base de l'enquête des développeurs StackOverflow 2023) et démontre des performances de pointe (comparées à des modèles de taille similaire) sur les métriques MultiPL-E à travers plusieurs langages de programmation testés.
Comparaison de performances
Comparaison côte à côte de Stable Code Completion 3B avec CodeLLama 7B
Aperçus de formation
Notre pipeline de formation se compose d'un processus en plusieurs étapes similaire à Codellama. Nous commençons par un LM pré-entraîné sur des données de langage naturel, dans ce cas, StableLM-3B-4e1t, suivi d'un affinage non supervisé sur plusieurs ensembles de données de code et de code connexe, y compris CommitPack, GitHub Issues, StarCoder et d'autres ensembles de données mathématiques. Dans la deuxième étape, nous affinons davantage le modèle avec des séquences plus longues de 16 384 jetons avec la modification de base suggérée dans CodeLLama. Le nouveau modèle de code stable prend également en charge Flash Attention 2 et est disponible à l'utilisation.