MathCoder2: Migliore Ragionamento Matematico da un Preallenamento Continuato su Codice Matematico Tradotto dal Modello
MathCoder2: Better Math Reasoning from Continued Pretraining on Model-translated Mathematical Code
October 10, 2024
Autori: Zimu Lu, Aojun Zhou, Ke Wang, Houxing Ren, Weikang Shi, Junting Pan, Mingjie Zhan, Hongsheng Li
cs.AI
Abstract
Il codice è stato dimostrato essere efficace nel potenziare le capacità di ragionamento matematico dei grandi modelli linguistici grazie alla sua precisione e accuratezza. Lavori precedenti che coinvolgono il preaddestramento matematico continuato includono spesso codice che utilizza pacchetti correlati alla matematica, principalmente progettati per campi come l'ingegneria, l'apprendimento automatico, l'elaborazione dei segnali o il testing dei moduli, piuttosto che essere direttamente focalizzati sul ragionamento matematico. In questo articolo, presentiamo un nuovo metodo per generare codice matematico accompagnato da passaggi di ragionamento corrispondenti per il preaddestramento continuato. Il nostro approccio inizia con la costruzione di un dataset di preaddestramento matematico di alta qualità incorporando dati web correlati alla matematica, codice che utilizza pacchetti matematici, libri di testo di matematica e dati sintetici. Successivamente, costruiamo passaggi di ragionamento estraendo espressioni LaTeX, le condizioni necessarie per tali espressioni e i risultati delle espressioni dal dataset precedentemente raccolto. Basandoci su queste informazioni estratte, generiamo codice corrispondente per catturare accuratamente il processo di ragionamento matematico. Aggiungendo il codice generato a ciascun passaggio di ragionamento otteniamo dati costituiti da passaggi di ragionamento in linguaggio naturale accoppiati al relativo codice. Combinando questi dati con il dataset originale otteniamo un corpus di preaddestramento matematico ad alte prestazioni di 19,2 miliardi di token, che abbiamo chiamato MathCode-Pile. Addestrando diversi modelli di base popolari con questo corpus, si migliorano significativamente le loro capacità matematiche, portando alla creazione della famiglia di modelli MathCoder2. Tutto il nostro codice di elaborazione dati e addestramento è open source, garantendo piena trasparenza e facile riproducibilità dell'intero processo di raccolta dati e addestramento. Il codice è disponibile su 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 .