MathCoder2: Besseres mathematisches Denken durch fortgesetztes Vortraining auf modellübersetztem mathematischem Code
MathCoder2: Better Math Reasoning from Continued Pretraining on Model-translated Mathematical Code
October 10, 2024
Autoren: Zimu Lu, Aojun Zhou, Ke Wang, Houxing Ren, Weikang Shi, Junting Pan, Mingjie Zhan, Hongsheng Li
cs.AI
Zusammenfassung
Code hat sich als wirksam erwiesen, um die mathematischen Denkfähigkeiten großer Sprachmodelle aufgrund seiner Präzision und Genauigkeit zu verbessern. Frühere Arbeiten zur fortgesetzten mathematischen Vortrainierung beinhalten oft Code, der mathematische Pakete verwendet, die hauptsächlich für Bereiche wie Ingenieurwesen, maschinelles Lernen, Signalverarbeitung oder Modultests entwickelt wurden, anstatt direkt auf mathematisches Denken ausgerichtet zu sein. In diesem Paper stellen wir eine neuartige Methode zur Generierung von mathematischem Code vor, begleitet von entsprechenden Denkschritten für die fortgesetzte Vortrainierung. Unser Ansatz beginnt mit der Erstellung eines hochwertigen mathematischen Vortrainierungsdatensatzes, indem wir mathematische Webdaten, Code unter Verwendung mathematischer Pakete, Mathematiklehrbücher und synthetische Daten integrieren. Anschließend erstellen wir Denkschritte, indem wir LaTeX-Ausdrücke, die für die Ausdrücke benötigten Bedingungen und die Ergebnisse der Ausdrücke aus dem zuvor gesammelten Datensatz extrahieren. Basierend auf diesen extrahierten Informationen generieren wir entsprechenden Code, um den mathematischen Denkprozess genau zu erfassen. Durch das Anhängen des generierten Codes an jeden Denkschritt entsteht ein Datensatz, der aus gepaarten natürlichsprachlichen Denkschritten und ihrem entsprechenden Code besteht. Die Kombination dieser Daten mit dem Originaldatensatz ergibt ein 19,2-Milliarden-Token leistungsstarkes mathematisches Vortrainierungskorpus, das wir MathCode-Pile nennen. Das Training mehrerer beliebter Basismodelle mit diesem Korpus verbessert signifikant ihre mathematischen Fähigkeiten und führt zur Schaffung der Modellfamilie MathCoder2. Alle unsere Datenverarbeitungs- und Trainingscodes sind Open Source, was die vollständige Transparenz und einfache Reproduzierbarkeit des gesamten Datensammlungs- und Trainingsprozesses gewährleistet. Der Code ist unter https://github.com/mathllm/MathCoder2 verfügbar.
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 .Summary
AI-Generated Summary