Summary
The paper presents an iterative approach to train LLMs to become better at math and code tasks by utilizing the models own generations. Concretely, the approach makes use of multiple samples generated by the model, keeping only the correct generations, and then training the model with this new subset. Additionally, the approach relies on a test time candidate selection model which is trained using the model generations using DPO, thereby further improving performance. The approach presents strong test accuracy improvement on popular math and code benchmarks.
Reasons to accept
- Simple method which works. Authors continually train generators by sampling trajectories and manually filtering the correct answers, thereby making the generator more tuned to output the correct answers.
- Combined with a verifier which is trained on DPO, the VSTAR approach makes good use of the verifier during testing to further prune likely incorrect solutions.
- Strong improvements on hard tasks such as GSM8k, MBPP (in-distribution) and MATH, HumanEval (out-of-distribution).
Reasons to reject
- It is not clear how many iterations ($T$) of training V-STAR is optimal. Authors use three iterations, but more study needs to be done on the impact of the number of iterations to find the ceiling of performance.
- Ablations are needed to understand how many iterations ($T$) of data collections are needed for the verifier as well. As the generator gets better at each iteration, the verifier should get harder data, thereby improving its performance.
- A small limitation of this paper is that the proposed approach is only verified against Llama 2 and CodeLLama. It is unclear whether this approach is general across several openly available models.
Questions to authors
_Questions_
- Fig 6 is missing the 95% CI done over 256 trials - it would be good to add them here.
- Section 4.6 is confusing to me: why does the DPO trained verifier does poorly on generation? The model gets good at assigning log likelihoods to correct and incorrect trajectories, so wouldn't the generation reflect that too?
- Adding the verifier in training not getting substantial gain is a bit obvious, right? The verifier initially is noisy as it doesn't do a good job at filtering the correct solutions. Did you try a schedule of training verifier with manually filtered data from generation, and then using it during training?
_Suggestions_
- It would be interesting to measure the forgetting effect with more and more iterations. Does the model collapse when trained for increasing number of iterations?
- Does any linguistic pattern of the solutions emerge with increasing iterations?