使用思维链提示来对大型语言模型的复杂推理能力进行基准测试

作者:Sec-Labs | 发布时间:

项目地址

https://github.com/FranxYao/chain-of-thought-hub

 

思维链中心:衡量LLM推理性能

Yao Fu,Litu Ou,Mingyu Chen和Yuhao Wan

yao.fu@ed.ac.uk

最近,LLM取得了很多进展。许多人声称,小于10B的模型可以达到与GPT-3.5相当的性能。真的吗?

在随意的对话中,GPT-3.5和GPT-4之间的区别可能微妙。当任务的复杂性达到足够的阈值时,GPT-4比GPT-3.5更可靠、更富创造性,并且能够处理比GPT-3.5更为微妙的指令。——GPT-4发布博客

关键的区别在于一个模型能否执行复杂任务,就像古话所说:“闲聊不值钱,给我看推理。”这就是为什么我们编制了一个包括数学(GSM8K)、科学(MATH)、符号(BBH)和知识(MMLU)等复杂推理任务的列表,以衡量模型在挑战性任务上的性能。

有关复杂推理的更详细讨论,请参阅文章《走向复杂推理:大型语言模型的北极星》(Towards Complex Reasoning: the Polaris of Large Language Models)

 

总体结果

模型 参数数量 类型 GSM8K MATH MMLU BBH
gpt-4 ? RLHF 92.0 42.5 86.4 -
claude-v1.3 ? RLHF 81.8 - 74.8 -
PaLM-2 ? Base 80.7 34.3 78.3 78.1
gpt-3.5-turbo ? RLHF 74.9 - 67.3 70.1
claude-instant ? RLHF 70.8 - - -
text-davinci-003 ? RLHF - - 64.6 70.7
code-davinci-002 ? Base 66.6 19.1 64.5 73.7
Minerva 540B SIFT 58.8 33.6 - -
Flan-PaLM 540B SIFT - - 70.9 66.3
Flan-U-PaLM 540B SIFT - - 69.8 64.9
PaLM 540B Base 56.9 8.8 62.9 62.0
text-davinci-002 ? SIFT 55.4 - 60.0 67.2
PaLM 64B Base 52.4 4.4 49.0 42.3
LLaMA 65B Base 50.9 10.6 63.4 -
LLaMA 33B Base 35.6 7.1 57.8 -
LLaMA 13B Base 17.8 3.9 46.9 -
Flan-T5 11B SIFT 16.1 - 48.6 41.4
LLaMA 7B Base 11.0 2.9 35.1 -

 

HeLM和其他评估方法的区别是什么?

  • HeLM使用仅答案提示,而我们使用思维链提示。

  • HeLM评估所有内容,而我们仅关注复杂推理,这是LLM能力的关键区别。

模型的排名方式是什么?

  • 我们通过GSM8K对模型性能进行排名,GSM8K是衡量思维链数学推理性能的经典基准。这当然不是唯一的指标,但一个很好的解释是“模型在保持其他通用能力的同时能够进行多好的数学推理”——这也是非常困难的。

  • 仍在建设中,代码可能有些混乱,很多数值缺失。提前致以歉意。

数据来源

  • GPT-4的数据来自其网站Bubeck et al Mar 2023。请注意,Bubeck使用的版本是GPT-4 Early,据说比GPT-4 Launch更强大(OpenAI为使GPT-4更安全付出了很多调整成本)。

  • -davinci-00和*PaLM的数据来自Flan-PaLM论文的附录。

  • LLaMA的数据来自LLaMA论文(TODO:在BBH上测试LLaMA)。请注意,这些任务中LLaMA使用的提示未公开,因此复现可能会得到不同的结果,请参阅此Twitter主题以获取更多讨论。

  • PaLM-2的数据来自他们的技术报告

  • Claude的数据来自我们自己的测试脚本,有关如何运行它的信息请见下文。

 

当前的结果如下:

  • GPT-4在GSM8K和MMLU上明显优于所有其他模型。

  • 65B的LLaMA非常接近text/code-davinci-002,这意味着基于它,如果SFT和RLHF的操作正确,很有可能我们可以基于65B的LLaMA复现ChatGPT

  • Claude是唯一与GPT系列相媲美的模型系列。

  • 在GSM8K上,gpt-3.5-turbo的表现优于text-davinci-003。这证实了OpenAI在2023年1月30日的发布说明中提到的“数学能力提升”。

  • 在MMLU上,gpt-3.5-turbo略优于text-davinci-003。但这种差距不具有显著性

  • 还要记住,gpt-3.5-turbo的价格是text-davinci-003的十倍便宜。

  • 同时要注意,GPT-4/3.5在GSM8K上的表现不是真正的少样本学习——在GPT-4报告中,他们表示将一部分GSM8K的训练集混合在一起进行模型训练。

  • LLaMA在MMLU上的表现来自他们的论文,可能是基于AO而非CoT。一般而言,在MMLU上,AO比CoT更好,但只是略微更好。因此,LLaMA在MMLU上的数字可能稍微有些高估。

为什么选择上述任务?

  • 我们主要关注复杂推理。

    • LLM的其他能力,如摘要或翻译,在这里并未考虑,因为它们相对标准化,可能不够具有挑战性。

    • 我们考虑了以下任务:

    • MMLU:高中和大学知识

    • GSM8K:小学数学——在与LLM交互时,对这个数据集的性能改进直接体现为日常数学能力的提升。

    • MATH:非常困难的数学和自然科学问题。当前的所有模型都很难应对。

    • BBH:一系列27个困难的推理问题。

 

运行

# MMLUcd MMLUmkdir outputsAPI_KEY=<你的API密钥>python run_mmlu_gpt_3.5_turbo.py --api_key=${API_KEY}python run_mmlu_claude.py --api_key=${API_KEY} --engine=claude-v1.3​########################################################## GSM8Kcd gsm8k mkdir outputs​# 运行gpt-3.5# codex_gsm8k_complex.ipynb         -- code-davinci-002 + 复杂提示# gpt3.5turbo_gsm8k_complex.ipynb   -- gpt-3.5-turbo + 复杂提示​# 运行claudepython run_gsm8k_claude.py\  --anthropic_key=${API_KEY}\  --prompt_file=lib_prompt/prompt_original.txt\  --engine=claude-v1.3\  --output_file=outputs/gsm8k_claude_v1.3_original_test.txt​########################################################## BBHcd BBHmkdir outputs# 然后运行jupyter笔记本查看示例penguins数据集cd penguins# gpt3.5trubo_penguins_original.ipynb​# 或者对所有数据集运行脚本API_KEY=<你的API密钥>TASK=<all | multiple_choice | free_form>python run_bbh_gpt_3.5_turbo.py --api_key=${API_KEY} --task=${TASK} # 默认任务为all​

 

FAQ

  • complexity-based prompting

    论文中使用的提示是什么?

    • 对于gsm8k,它们分别是:

      • prompt_hardest.txt

      • prompt_mid.txt

      • prompt_easy.txt

      • prompt_original.txt

  • 有些提示中的答案是错误的

    • 是的,但我们保留它们,因为它们在原始论文中使用。

    • 通常情况下,模型在提示扰动下是鲁棒的:即使有时提示中存在错误,只要提示的格式与相应的任务相符,模型往往只会关注格式,忽略提示错误,并进行自己的预测。

    • 有关更多关于模型如何忽略提示错误的分析,请参阅https://arxiv.org/abs/2202.12837https://arxiv.org/abs/2212.10001

 

参考

我们首先讨论了构建具有强大推理能力的模型的方法,其中包括通用LLM的方法:预训练、微调和强化学习。然后我们讨论了用于释放大型语言模型推理能力的提示方法。

预训练/继续训练

微调

强化学习

提示

更多文献

 

待办事项

工程方面

  • 在共享的Google表格中提供详细结果

  • 添加更多模型

    • text-bison-001 和 chat-bison-001

    • Cohere

    • AI21Labs

  • 添加更多推理数据集

  • 将此提示及其关联提示制作为huggingface数据集

  • 绘制模型规模与推理准确性的图表

  • 添加Alpaca和Vacuna

  • 在BBH上测试LLaMA

  • 提升提示工程的技巧

  • 添加较小的LLaMA

  • 添加Flan-T5

研究方面

  • 解码空间

    • 更大的模型是否具有比较小的模型更"大"的解码空间?

    • 指令微调是否可以"关闭"一些有意义/合理的解码路径?它是否可以"打开"新的解码路径?

  • 高级提示工程

    • 规划和演绎提示

    • 对话上下文学习

  • CoT提示工程文档,包括

    • 稳定的部分:

      • 基于复杂度的提示

    • 测试的部分:

      • 简洁提示

      • 强调重要步骤

标签:工具分享, ChatGPT