Ini adalah gudang resmi untuk makalah AlphaMath Almost Zero: Pengawasan proses tanpa proses. Kode ini diambil dari basis kode internal perusahaan kami. Akibatnya, mungkin ada sedikit perbedaan ketika mereproduksi angka-angka yang dilaporkan dalam makalah kami, namun angka-angka tersebut harusnya sangat mirip. Pendekatan kami melibatkan pelatihan model kebijakan dan nilai hanya dengan menggunakan penalaran matematis yang berasal dari kerangka Monte Carlo Tree Search (MCTS), sehingga menghilangkan kebutuhan akan GPT-4 atau anotasi manusia. Ini adalah ilustrasi contoh pelatihan yang dihasilkan MCTS pada putaran ke-3.
Pos pemeriksaan : AlphaMath-7B putaran 3? / AlphaMath-7B putaran 3?
Kumpulan Data : Set Kereta AlphaMath-Round3? Proses solusi data pelatihan dihasilkan secara otomatis berdasarkan MCTS dan checkpoint di putaran 2. Contoh positif dan negatif disertakan untuk melatih model kebijakan dan nilai.
Kode Pelatihan : Karena kebijakan, kami hanya dapat merilis rincian implementasi beberapa fungsi utama, yang pada dasarnya harus dimodifikasi dalam kode pelatihan Anda sendiri.
Metode Inferensi | Ketepatan | rata-rata waktu per q | rata-rata tangga | # sol |
---|---|---|---|---|
Tamak | 53.62 | 1.6 | 3.1 | 1 |
Maj@5 | 61.84 | 2.9 | 2.9 | 5 |
Balok Tingkat Langkah (1,5) | 62.32 | 3.1 | 3.0 | teratas-1 |
5 berjalan + Maj@5 | 67.04 | x5 | x1 | 5 teratas-1 |
Balok Tingkat Langkah (2,5) | 64.66 | 2.4 | 2.4 | teratas-1 |
Balok Tingkat Langkah (3,5) | 65.74 | 2.3 | 2.2 | teratas-1 |
Balok Tingkat Langkah (5,5) | 65,98 | 4.7 | 2.3 | teratas-1 |
1 lari + Maj@5 | 66.54 | x1 | x1 | 5 teratas |
5 berjalan + Maj@5 | 69,94 | x5 | x1 | 5 teratas-1 |
MCTS (N=40) | 64.02 | 10.1 | 3.8 | teratas-1 |
+ Maj@5
perlu dijalankan 5 kali, yang mendorong keberagaman.+ Maj@5
langsung menggunakan 5 kandidat yang kurang beragam.suhu | 0,6 | 1.0 |
---|---|---|
Balok Tingkat Langkah (1,5) | 62.32 | 62.76 |
Balok Tingkat Langkah (2,5) | 64.66 | 65.60 |
Balok Tingkat Langkah (3,5) | 65.74 | 66.28 |
Balok Tingkat Langkah (5,5) | 65,98 | 66.38 |
Untuk pencarian sinar tingkat langkah, pengaturan temperature=1.0
dapat mencapai hasil yang sedikit lebih baik.
requirements.txt
pip install -r requirements.txt
Atau cukup ikuti cmds
> git clone https://github.com/MARIO-Math-Reasoning/Super_MARIO.git
> git clone https://github.com/MARIO-Math-Reasoning/MARIO_EVAL.git
> git clone https://github.com/MARIO-Math-Reasoning/vllm.git
> cd Super_MARIO && pip install -r requirements.txt && cd ..
> cd MARIO_EVAL/latex2sympy && pip install . && cd ..
> pip install -e .
> cd ../vllm
> pip install -e .
scripts/save_value_head.py
untuk menambahkan nilai head ke LLM. Anda dapat menjalankan salah satu dari dua cmd berikut. Mungkin ada sedikit perbedaan akurasi antara keduanya. Di mesin kami, yang pertama mendapat 53,4% dan yang kedua mendapat 53,62%.
python react_batch_demo.py
--custom_cfg configs/react_sft.yaml
--qaf ../MARIO_EVAL/data/math_testset_annotation.json
atau
# use step_beam (1, 1) without value func
python solver_demo.py
--custom_cfg configs/sbs_greedy.yaml
--qaf ../MARIO_EVAL/data/math_testset_annotation.json
Di mesin kami, pada testset MATEMATIKA, cmd berikut dengan konfigurasi B1=1, B2=5
dapat mencapai ~62%, dan cmd dengan konfigurasi B1=3, B2=5
dapat mencapai ~65%.
python solver_demo.py
--custom_cfg configs/sbs_sft.yaml
--qaf ../MARIO_EVAL/data/math_testset_annotation.json
Hitung keakuratannya
python eval_output_jsonl.py
--res_file
ground_truth
(jawaban akhir, bukan proses solusi) harus disediakan dalam file qaf
json atau jsonl (format contoh dapat merujuk ke ../MARIO_EVAL/data/math_testset_annotation.json
).
putaran 1
# Checkpoint Initialization is required by adding value head
python solver_demo.py
--custom_cfg configs/mcts_round1.yaml
--qaf /path/to/training/data
putaran > 1, setelah SFT
python solver_demo.py
--custom_cfg configs/mcts_sft_round.yaml
--qaf /path/to/training/data
Hanya question
yang akan digunakan untuk menghasilkan solusi, tetapi ground_truth
akan digunakan untuk menghitung keakuratan.
python solver_demo.py
--custom_cfg configs/mcts_sft.yaml
--qaf ../MARIO_EVAL/data/math_testset_annotation.json
Berbeda dengan pencarian berkas tingkat langkah, Anda perlu membuat pohon lengkap terlebih dahulu, lalu menjalankan MCTS secara offline, lalu menghitung keakuratannya.
python offline_inference.py
--custom_cfg configs/offline_inference.yaml
--tree_jsonl
Catatan: skrip evaluasi ini juga dapat dijalankan dengan pohon tersimpan melalui pencarian sinar tingkat langkah, dan keakuratannya harus tetap sama.
Karena kebenaran dasar diketahui untuk data pelatihan, nilai langkah terakhir adalah penghargaan dan nilai Q dapat menyatu dengan sangat baik.
Pada set pengujian, kebenaran dasarnya tidak diketahui, sehingga distribusi nilai Q mencakup langkah perantara dan langkah akhir. Dari gambar tersebut kita dapat menemukannya
SVPO oleh MCTS
@misc{chen2024steplevelvaluepreferenceoptimization,
title={Step-level Value Preference Optimization for Mathematical Reasoning},
author={Guoxin Chen and Minpeng Liao and Chengxi Li and Kai Fan},
year={2024},
eprint={2406.10858},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2406.10858},
}
versi MCTS
@misc{chen2024alphamathzeroprocesssupervision,
title={AlphaMath Almost Zero: process Supervision without process},
author={Guoxin Chen and Minpeng Liao and Chengxi Li and Kai Fan},
year={2024},
eprint={2405.03553},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2405.03553},
}
Perangkat evaluasi
@misc{zhang2024marioevalevaluatemath,
title={MARIO Eval: Evaluate Your Math LLM with your Math LLM--A mathematical dataset evaluation toolkit},
author={Boning Zhang and Chengxi Li and Kai Fan},
year={2024},
eprint={2404.13925},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2404.13925},
}
Versi OVM (Model Nilai Hasil).
@misc{liao2024mariomathreasoningcode,
title={MARIO: MAth Reasoning with code Interpreter Output -- A Reproducible Pipeline},
author={Minpeng Liao and Wei Luo and Chengxi Li and Jing Wu and Kai Fan},
year={2024},
eprint={2401.08190},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2401.08190},
}