Math RLHF Papers

#rl #reasoning

Augmenting Math Word Problems via Iterative Question Composing

数据集链接

Chi-Chih Yao 的文章,用 2.29M 数学 QA 对在 MATH 涨点 8.2%(Qwen-72B-MMIQC 45%),并且在 Hunarian Exam Score 上也涨点了。他们的核心方法是 Iterative Question Composing,即初始有模板 xx,问题 qq 和回答 aa。每次他们先从当前分布采样一个模板出来,用这个模板和之前的模板重新洗一遍 QA 对,然后再用当前模板生成一组 QA。好像没啥新的,就是 MetaMath 的迭代版。

image-20240723152451363

image-20240723152934941

MetaMath

很经典的文章了,虽然只有一年,中了 ICLR24

Answer Augmentation

对问题 qiq_i,用 few-shot CoT 以及不同的 temperature 生成很多 reasoning paths,然后挑出来答案正确的 solution 作为扩充答案

Question Bootstrapping by LLM Rephrasing

他们用一个 prompt rephrase 掉原来的 question,然后用 CoT 生成回复与 GT 进行比较,这里就是 few-shot。GPT-3.5-Turbo 对原问题回答的准确率是 80.74%,对换过来的问题准确率有 76.30%,然后他们把这 76% 的 question 拿过来做扩充了。

Question bootstrapping by Backward Reasoning

一个苹果五块钱,我买了四个苹果,花了 多少钱?(forward)

一个苹果五块钱,我花了二十块钱,买了几个苹果?(backward)

把问题和答案互换位置,他们说 SFT, RFT, WizardMath 在解决 backward questions 上都不太行,这里介绍了两种方法,SV 和 FOBAR,区别在于把原来的 answer 和 question 写在一句 / 拆成两句。

最后得到 DMetamathQA=DAnsAugDrephraseDSVDFOBAR\mathcal{D}_{\text{MetamathQA}}=\mathcal{D}_\text{AnsAug}\cup\mathcal{D}_{\text{rephrase}}\cup\mathcal{D}_\text{SV}\cup\mathcal{D}_{\text{FOBAR}}

Experiments

衡量数据相似度可以用 embedding,比如这里调了 OpenAItext-embedding-ada-002,然后算了平均欧氏距离

答案错误的数据也有用!

作者发现,如果用错误的数据微调 LLaMA-2-7B,结果虽然比用正确的数据调要差,但也比 baseline 好一些

数据多了不一定好

作者发现,对 RFT 数据集 (47k) 使用拿来主义,会让性能下降,而非上升

image-20240723231928520

Bootstrapping Language Models with DPO Implicit Rewards

就是一个 Iterative DPO 魔改版。不过引入了一个 Length Control Factor,用来构建 c-r 对,感觉或许有用。

提到了 length-control,这有一个 notebook

New Evaluation, Library, and Analysis of Step-by-Step Reasoning with Large Language Models

这不就我之前做的 Task-Specific Principle 吗…