MathCoder2 : Une meilleure capacité de raisonnement mathématique grâce à un pré-entraînement continu sur du code mathématique traduit par un modèle.
MathCoder2: Better Math Reasoning from Continued Pretraining on Model-translated Mathematical Code
October 10, 2024
Auteurs: Zimu Lu, Aojun Zhou, Ke Wang, Houxing Ren, Weikang Shi, Junting Pan, Mingjie Zhan, Hongsheng Li
cs.AI
Résumé
Il a été démontré que le code est efficace pour améliorer les capacités de raisonnement mathématique des grands modèles de langage en raison de sa précision et de son exactitude. Les travaux précédents impliquant un pré-entraînement mathématique continu incluent souvent du code utilisant des packages liés aux mathématiques, principalement conçus pour des domaines tels que l'ingénierie, l'apprentissage automatique, le traitement du signal ou les tests de modules, plutôt que d'être directement axés sur le raisonnement mathématique. Dans cet article, nous introduisons une nouvelle méthode pour générer du code mathématique accompagné des étapes de raisonnement correspondantes pour un pré-entraînement continu. Notre approche commence par la construction d'un ensemble de données de haute qualité pour le pré-entraînement mathématique continu en incorporant des données web liées aux mathématiques, du code utilisant des packages mathématiques, des manuels de mathématiques et des données synthétiques. Ensuite, nous construisons des étapes de raisonnement en extrayant des expressions LaTeX, les conditions nécessaires pour les expressions et les résultats des expressions à partir de l'ensemble de données collecté précédemment. Sur la base de ces informations extraites, nous générons du code correspondant pour capturer précisément le processus de raisonnement mathématique. L'ajout du code généré à chaque étape de raisonnement donne des données composées d'étapes de raisonnement en langage naturel associées à leur code correspondant. En combinant ces données avec l'ensemble de données d'origine, nous obtenons un corpus de pré-entraînement mathématique performant de 19,2 milliards de jetons, que nous nommons MathCode-Pile. Entraîner plusieurs modèles de base populaires avec ce corpus améliore significativement leurs capacités mathématiques, conduisant à la création de la famille de modèles MathCoder2. Tout notre code de traitement des données et d'entraînement est open source, garantissant une transparence totale et une reproductibilité facile de l'ensemble de la collecte de données et du pipeline d'entraînement. Le code est disponible sur https://github.com/mathllm/MathCoder2.
English
Code has been shown to be effective in enhancing the mathematical reasoning
abilities of large language models due to its precision and accuracy. Previous
works involving continued mathematical pretraining often include code that
utilizes math-related packages, which are primarily designed for fields such as
engineering, machine learning, signal processing, or module testing, rather
than being directly focused on mathematical reasoning. In this paper, we
introduce a novel method for generating mathematical code accompanied with
corresponding reasoning steps for continued pretraining. Our approach begins
with the construction of a high-quality mathematical continued pretraining
dataset by incorporating math-related web data, code using mathematical
packages, math textbooks, and synthetic data. Next, we construct reasoning
steps by extracting LaTeX expressions, the conditions needed for the
expressions, and the results of the expressions from the previously collected
dataset. Based on this extracted information, we generate corresponding code to
accurately capture the mathematical reasoning process. Appending the generated
code to each reasoning step results in data consisting of paired natural
language reasoning steps and their corresponding code. Combining this data with
the original dataset results in a 19.2B-token high-performing mathematical
pretraining corpus, which we name MathCode-Pile. Training several popular base
models with this corpus significantly improves their mathematical abilities,
leading to the creation of the MathCoder2 family of models. All of our data
processing and training code is open-sourced, ensuring full transparency and
easy reproducibility of the entire data collection and training pipeline. The
code is released at https://github.com/mathllm/MathCoder2 .