核心概念
本文提出了一種透過持續預訓練來增強大型語言模型數學推理能力的新方法,該方法基於一個包含數學相關網頁數據、模型生成代碼和教科書的大型數據集 (MathCode-Pile) 以及一種新穎的、從預訓練文本中提取數學推理步驟並將其轉換為相應代碼片段的方法。
摘要
本文介紹了一種新方法,用於生成數學代碼以及相應的推理步驟,以進行持續預訓練,從而提高大型語言模型的數學推理能力。
研究背景
先前的研究表明,在代碼上進行訓練可以增強大型語言模型 (LLM) 的數學推理能力。然而,現有的數學相關代碼通常缺乏自然語言解釋或上下文,這可能會阻礙模型充分理解它們。
研究方法
本研究提出了一種新穎的方法,用於生成大量的數學代碼,並附帶從數學相關預訓練文本中提取的相應自然語言推理步驟。
數據集構建
基本數據: 從各種來源收集數學相關數據,包括網頁、模型生成的數據、使用數學包的代碼和教科書。
模型翻譯的數學代碼: 使用經過指令調整的 LLM(本文中為 Llama-3.1-70B-Instruct)從基本預訓練數據中提取推理步驟,並將其轉換為相應的 Python 代碼片段。
模型訓練
使用構建的數據集 MathCode-Pile 對四種流行的基礎模型進行持續預訓練:Llama-3-8B、DeepSeekMath-7B、Mistral-7B 和 Code-Llama-7B。
研究結果
在 MathCode-Pile 上進行持續預訓練可以顯著提高所有五個基準數據集的性能。
MathCoder2 模型的性能可與 InternLM2-Math-Base、InternLM2.5 和 DeepSeekMath 等頂級模型相媲美。
與僅發布模型權重的模型(如 Qwen2-Math)不同,MathCoder2 是完全開源的,包括所有數據處理管道和訓練代碼。
研究結論
生成數學代碼並附帶相應的自然語言推理步驟是一種有效的方法,可以顯著增強預訓練結果。
MathCode-Pile 是一個精心策劃的 19.2B token 數據集,用於持續的數學預訓練。
所有數據處理和訓練代碼的完全開源確保了透明度和可復現性,以支持未來的研究。
統計資料
MathCode-Pile 數據集包含 19.2B 個 token。
模型翻譯的數學代碼在數據集中佔 14.1%。
MathCoder2-Llama-3-8B 在 MATH 上的 4-shot 準確率為 38.4%,在 GSM8K 上為 69.9%。