【自然语言处理】【chatGPT系列】大语言模型可以自我改进

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
大语言模型可以自我改进
《Large Language Models Can Self-Improve》

论文地址https://arxiv.org/pdf/2210.11610.pdf

相关博客
【自然语言处理】【chatGPT系列】大语言模型可以自我改进
【自然语言处理】【ChatGPT系列】WebGPT基于人类反馈的浏览器辅助问答
【自然语言处理】【ChatGPT系列】FLAN微调语言模型是Zero-Shot学习器
【自然语言处理】【ChatGPT系列】ChatGPT的智能来自哪里
【自然语言处理】【ChatGPT系列】Chain of Thought从大模型中引导出推理能力
【自然语言处理】【ChatGPT系列】InstructGPT遵循人类反馈指令来训练语言模型
【自然语言处理】【ChatGPT系列】大模型的涌现能力

一、简介

请添加图片描述

​ 规模 (scaling) \text{(scaling)} (scaling)能够使大语言模型 (LLM) \text{(LLM)} (LLM)在各类自然语言处理任务 (NLP) \text{(NLP)} (NLP)上实现了state-of-the-art。更重要的是当大语言模型达到数千亿参数量是涌现出了新的能力 in-context few-shot learning \text{in-context few-shot learning} in-context few-shot learning使得大语言模型在未见过的任务上表现的很好 Chain-of-Thought(CoT) prompting \text{Chain-of-Thought(CoT) prompting} Chain-of-Thought(CoT) prompting展示了大模型在各种任务上的推理能力 self-consistency \text{self-consistency} self-consistency通过自评估多条推理路径进一步改善的效果。

​ 尽管在大规模语料库上训练的模型具有令人难以置信的能力根本性使模型超过 few-shot baselines \text{few-shot baselines} few-shot baselines仍然需要在大量的高质量监督数据集上进行微调。 FLAN \text{FLAN} FLAN T0 \text{T0} T0规划了数十个基准 NLP \text{NLP} NLP数据集来提高模型在未见过任务上的 zero-shot \text{zero-shot} zero-shot效果 InstructGPT \text{InstructGPT} InstructGPT通过众包的方式为各种文本指令提供人类的答案从而使模型更好的对齐人类的指令。虽然在收集高质量监督数据上付出了巨大的努力但是人脑刚好相反其具有元认知过程的能力其可以在没有外部输入的情况下提高自身的推理能力。

​ 在本文中研究在不使用监督数据的情况下 LLM \text{LLM} LLM自我改善推理能力。我们展示了仅使用多个 NLP \text{NLP} NLP任务数据集的输入序列(没有真实的输出序列)预训练的 LLM \text{LLM} LLM就能够改善领域内和领域外任务的效果。本文方法如上图所示使用 Chain-of-Thought(CoT) \text{Chain-of-Thought(CoT)} Chain-of-Thought(CoT)作为 prompts \text{prompts} prompts来采样多个预测值然后使用多数投票的方式过滤掉"高置信度"的预测最后在这些高置信度预测上微调 LLM \text{LLM} LLM。得到的模型在贪心和多路径评估上都改善了推理能力。我们称以这种方式微调模型为语言模型的自我改善 (Language Model Self-Improved,LMSI) \text{(Language Model Self-Improved,LMSI)} (Language Model Self-Improved,LMSI)。这与人类大脑的学习方式类似给定一个问题通过多次思考得到不同的可能结果总结出问题应该如何解决的结论然后从自己的解决方案中学习或者记忆。我们使用预训练的 PaLM-540B LLM \text{PaLM-540B LLM} PaLM-540B LLM验证了本文的方法本文的方法不仅改善了训练的任务 ( 在GSM8K上, 74.4 % → 82.1 % ; 在DROP上, 78.2 % → 83.0 % ; 等 ) (\text{在GSM8K上,}74.4\%\rightarrow 82.1\%;\text{在DROP上,}78.2\%\rightarrow83.0\%;\text{等}) (GSM8K,74.4%82.1%;DROP,78.2%83.0%;)而且也增强了领域外的测试任务 (AQUA、StrategyQA,MNLI) \text{(AQUA、StrategyQA,MNLI)} (AQUAStrategyQA,MNLI)在不依赖监督数据的情况下在许多任务上实现了 state-of-the-art \text{state-of-the-art} state-of-the-art表现。最后我们在自生成的额外输入问题和 few-shot CoT prompts \text{few-shot CoT prompts} few-shot CoT prompts上进行了初步的研究其能够进一步的减少模型自我改善所需要的人工。我们希望本文简单的方法和强有力的实验结果能够鼓励社区在未来的工作中研究不使用人类简单来达到 LLMs \text{LLMs} LLMs的最佳性能。

​ 本文的贡献如下

  • 我们证明了通过使用没有真实输出的数据集并利用 CoT \text{CoT} CoT推理和 self-consistency \text{self-consistency} self-consistency大语言模型可以实现自我改善并在领域内多任务上实现有力的效果以及领域外的泛化。我们在 ARC,OpenBookQA和ANLI \text{ARC,OpenBookQA和ANLI} ARC,OpenBookQAANLI数据集上实现了 state-of-the-art \text{state-of-the-art} state-of-the-art级别的结果。
  • 我们对微调后的训练采样形式和采样温度进行了详细的消融研究并为大多数成功自改善的 LLM \text{LLM} LLM确定了关键的设计选择。
  • 我研究了其他两种自我改进的方法其中模型从有效的输入问题中生成额外的问题以及生成 few-shot CoT prompt \text{few-shot CoT prompt} few-shot CoT prompt模板。

二、方法

​ 本文方法总体如图1所示给定一个预训练的大语言模型 M M M和一个仅包含问答的训练数据集 D t r a i n = { x i } i = 1 D \mathcal{D}^{train}=\{x_i\}_{i=1}^D Dtrain={xi}i=1D。对于每个问题 x i ∈ D t r a i n x_i\in \mathcal{D}^{train} xiDtrain应用具有采样问答 T > 0 T>0 T>0的多路径解码来生成 m m m个推理路径和答案 { r i 1 , r i 2 , … , r i m } \{r_{i_1},r_{i_2},\dots,r_{i_m}\} {ri1,ri2,,rim}并使用多少投票 (self-consistency) \text{(self-consistency)} (self-consistency)来选择最一致且最高置信度的答案。然后保留所有导致最一致答案的推理路径应用混合形式的 prompts \text{prompts} prompts和答案来增强并在这些自生成的推理答案数据上微调模型。

1. 生成和过滤多个推理路径

请添加图片描述

Self-consistency \text{Self-consistency} Self-consistency在推理任务上带来了巨大的改善(例如在 GSM8K \text{GSM8K} GSM8K数据集上 56.5 % → 74.4 % 56.5\%\rightarrow74.4\% 56.5%74.4%)并且贪心解码和多元解码之间的差距表明使用自选的高置信度推理路径作为训练数据有潜力进一步改善 M M M的推理能力。
请添加图片描述

​ 对于每个训练问题 x i x_i xi采样 m m m CoT \text{CoT} CoT推理路径表示为 { r i 1 , r i 2 , … , r i m } \{r_{i_1},r_{i_2},\dots,r_{i_m}\} {ri1,ri2,,rim}(如上表1所示)。因为模型 M M M是通过来自Wei et al工作中的 CoT \text{CoT} CoT例子提示的我们也应用 "The answer is" \text{"The answer is"} "The answer is"相同的输出解析来生成预测答案 { y i 1 , y i 2 , … , y i m } \{y_{i_1},y_{i_2},\dots,y_{i_m}\} {yi1,yi2,,yim}。最一致的答案通过多数投票的方式选出(不一定是正确答案)表示为 y i ~ = arg ⁡ max ⁡ y i j ∑ k = 1 m I ( y i j = y i k ) \tilde{y_i}=\arg\max_{y_{i_j}}\sum_{k=1}^m\mathbb{I}(y_{i_j}=y_{i_k}) yi~=argmaxyijk=1mI(yij=yik)。对于所有的训练问题我们将过滤那些 y ~ \tilde{y} y~为最终答案的 CoT \text{CoT} CoT推理路径并将其放入到自训练数据集中表示为 D self-consistent = { x i , r ~ i } \mathcal{D}^{\text{self-consistent}}=\{x_i,\tilde{\textbf{r}}_i\} Dself-consistent={xi,r~i}其中 r ~ i = { r i j ∣ 1 ≤ j ≤ m , y i j = y ~ i } \tilde{\textbf{r}}_i=\{r_{i_j}|1\leq j \leq m,y_{i_j}=\tilde{y}_i\} r~i={rij∣1jm,yij=y~i}

​ 不使用任何真实的标签来过滤样本是很重要的自我生成的 CoT \text{CoT} CoT推理路径大多数是可靠的并且错误的答案也不会伤害模型的自我改善能力。上图绘制了 GSM8K \text{GSM8K} GSM8K训练集对于每个问题生成的 CoT \text{CoT} CoT路径置信度和准确率的关系。置信度是结果为 y ~ \tilde{y} y~ CoT \text{CoT} CoT路径数量除以总路径数量 m m m y y y轴是在某个确定的置信度下的 y ~ \tilde{y} y~的准确率。圆形区域和颜色深浅表示该置信度下的问题数量。可以观察到越确信的答案越可能是正确的意味着当一个问题有越多的一致 CoT \text{CoT} CoT路径那么对应的 y ~ \tilde{y} y~越可能是正确的。另一方面当 y ~ \tilde{y} y~是错误的其可能没有多少 CoT \text{CoT} CoT路径支持为训练样本带来有效的噪音。

2. 使用混合格式进行训练

请添加图片描述

​ 为了避免语义模型过拟合至具体的 prompts \text{prompts} prompts或者答案风格我们为每个推理路径创建了4中不同的格式并且混合至自训练数据中(如上表2所示)。在第一种形式中将小部分的 Chain-of-Thought examples \text{Chain-of-Thought examples} Chain-of-Thought examples作为新问题的前缀而语言模型的输出被训练为过滤后的 CoT \text{CoT} CoT推理路径相同。在第二种格式中我们使用问题和其直接答案作为标准的 prompting \text{prompting} prompting并且语言模型的输出也仅包含直接的答案。第三和第四种形式也类似于第一和第二种除了没有给问答对的样例因此模型将要在 in-context zero-shot \text{in-context zero-shot} in-context zero-shot的情况下学习。在第三种形式中我们希望模型在不拼接包含 CoT \text{CoT} CoT推理的样例情况下输出 CoT \text{CoT} CoT推理我们将"Let’s think step by step."追加至输入序列末尾来指导语言模型逐步的生成 CoT \text{CoT} CoT推理路径。混合格式的训练样本会用来微调预训练语言模型 M M M

3. 生成问题和 prompts \text{prompts} prompts

​ 给定一组训练问题以及少量的人工撰写的 Chain-of-Thought \text{Chain-of-Thought} Chain-of-Thought样例作为 prompts \text{prompts} prompts我们提出的方法能够使模型自我改善。然而若训练问题或者 CoT \text{CoT} CoT样本的数量有限时我们的方法可能无法生成足够的样本用户模型自训练。需要人类工程师从网络上收集问题。为了进一步减少人工我们研究了如何自生成更多的训练问题和 prompts \text{prompts} prompts

3.1 问题生成

​ 先前的一些工作讨论了使用 LLMs \text{LLMs} LLMs来生成多样训练样本进行 few-shot \text{few-shot} few-shot数据增强。然而这些方法都是为分类任务设计的并且需要为每个 few-shot \text{few-shot} few-shot样本提供真实标签。我们使用简单且有效的方法来为领域内生成多样的问题。具体来说我们随机的选择几个现有的问题将其按照随机的顺序拼接起来作为输入 prompt \text{prompt} prompt并且让语言模型生成连续的序列作为新问题。我们重复这个过程来获得大量的新问题并使用 self-consistency \text{self-consistency} self-consistency来保留高置信度的答案。这些问题会被用来作为自生成的训练问题。

3.2 Prompt \text{Prompt} Prompt生成

​ 给定一个问题集合人工撰写一些 CoT \text{CoT} CoT样例作为能够带来最终答案的推理路径。在不使用人工 prompts \text{prompts} prompts zero-shot \text{zero-shot} zero-shot设定中我们能够使用模型本身来生成这些 CoT \text{CoT} CoT路径。遵循Kojima et al.在答案开始处添加 A: Let’s think step by step. \text{A: Let's think step by step.} A: Let’s think step by step.并且让语言模型来生成连续的推理路径。然后使用这些生成的推理路径作为 few-shot CoT prompting \text{few-shot CoT prompting} few-shot CoT prompting样本。

三、实验设置

1. 任务和数据集

  • 算术推理

    我们使用数学问题集 GSM8K \text{GSM8K} GSM8K以及一个需要数字推理能力的阅读理解基准 DROP \text{DROP} DROP。遵循Zhou et al.等人的工作将 DROP \text{DROP} DROP划分为足球相关和非足球相关的训练子集。

  • 常识推理

    我们使用 OpenBookQA \text{OpenBookQA} OpenBookQA数据集和 ARC \text{ARC} ARC数据集。对于 ARC \text{ARC} ARC我们在实验中仅使用 ARC-c \text{ARC-c} ARC-c子集。两个数据集都包含多个选项的问题。

  • 自然语言推断

    我们使用 ANLI \text{ANLI} ANLI的子集 ANLI-A2 \text{ANLI-A2} ANLI-A2 ANLI-A3 \text{ANLI-A3} ANLI-A3其相比于子集 ANLI-A1 \text{ANLI-A1} ANLI-A1更具有挑战性。这些数据集包含了具有关系entailmentneutralcontradiction的句子对。

2. 模型、训练设置和超参数

​ 我们遵循先前的研究并在具有 540B \text{540B} 540B参数的自回归 Transformer \text{Transformer} Transformer语言模型上进行实验。我们为训练集中的每个问题生成 m = 32 m=32 m=32个推理路径。每个推理路径被增强为4种形式最终的训练样本尺寸为 128 × ∣ D t r a i n ∣ 128\times |\mathcal{D}^{train}| 128×Dtrain其中 ∣ D t r a i n ∣ |\mathcal{D}^{train}| Dtrain是对应训练集的尺寸。除了 DROP \text{DROP} DROP以外的所有数据集我们都使用完整的训练集。为了降低训练的代价我们从 DROP \text{DROP} DROP数据集中足球和非足球划分中采样 5 k 5k 5k的样本并从 ANLI-A2 \text{ANLI-A2} ANLI-A2 ANLI-A3 \text{ANLI-A3} ANLI-A3中采样 5 k 5k 5k的样本。对于每个数据集我们以学习率 5 e − 5 5e-5 5e5 batch size \text{batch size} batch size为32来微调模型 10k \text{10k} 10k步。对于多路径解码我们使用的采样温度为 T = 0.7 T=0.7 T=0.7。在随后的自我改善中使用的温度为 T = 1.2 T=1.2 T=1.2。在所有的实验中我们设置最大的解码步骤为 256 \text{256} 256

四、结果

1. 主要结果

请添加图片描述

​ 上表3展示了使用 LMSI \textbf{LMSI} LMSI前后模型 PaLM-540B \text{PaLM-540B} PaLM-540B的结果。在所有的6个数据集上对于每个模型测试时应用三种不同的 prompting \text{prompting} prompting标准 prompting \text{prompting} prompting CoT-Prompting \text{CoT-Prompting} CoT-Prompting Self-Consistency \text{Self-Consistency} Self-Consistency。我们观察到在使用 LMSI \textbf{LMSI} LMSI后三种 prompting \text{prompting} prompting方法都有大幅度的提高。相比于 self-consistency \text{self-consistency} self-consistency使用 LMSI \textbf{LMSI} LMSI后的 self-consistency \text{self-consistency} self-consistency可以有显著的改善在 GSM8K \text{GSM8K} GSM8K上有 + 7.7 % +7.7\% +7.7% DROP \text{DROP} DROP上有 + 4.8 % +4.8\% +4.8% OpenBookQA \text{OpenBookQA} OpenBookQA上有 + 4.4 % +4.4\% +4.4% ANLI-A3 \text{ANLI-A3} ANLI-A3上有 + 4.5 % +4.5\% +4.5%。这表明我们提出的方法非常的有效。此外使用了 LMSI \textbf{LMSI} LMSI的单路径 CoT-Prompting \text{CoT-Prompting} CoT-Prompting的效果接近甚至优于不使用 LMSI \text{LMSI} LMSI的多路径 Self-Consistency \text{Self-Consistency} Self-Consistency这表明 LMSI \text{LMSI} LMSI确实有助于模型从多个一致的推理路径中学习。我们也比较了我们的结果与先前的 SOTA \text{SOTA} SOTA。在 ARC-c \text{ARC-c} ARC-c OpenBookQA \text{OpenBookQA} OpenBookQA ANLI-A2 \text{ANLI-A2} ANLI-A2 ANLI-A3 \text{ANLI-A3} ANLI-A3 LMSI \text{LMSI} LMSI都超越了先前的 SOTA \text{SOTA} SOTA。在 GSM8K \text{GSM8K} GSM8K LMSI \text{LMSI} LMSI的效果接近于 DiVeRSe \text{DiVeRSe} DiVeRSe方法(该方法使用了多种 prompts \text{prompts} prompts并整合了一个集成100个输出路径的投票验证器)。相反我们仅使用了32自生成的路径并使用了带有 LMSI \textbf{LMSI} LMSI self-consistency \text{self-consistency} self-consistency。在 DROP \text{DROP} DROP数据集上 LMSI \textbf{LMSI} LMSI的效果接近 OPERA \text{OPERA} OPERA方法(其使用了真实标签进行训练)。另一方面我们的方法仅利用了训练集中的问题没有使用任何的真实标签。

  • 针对未见过任务的多任务自训练

    请添加图片描述

    为了证明 LMSI \textbf{LMSI} LMSI的泛化能力我们在上面6个数据集的混合训练集问题上进行自训练实验然后在6个领域外任务上使用相同的模型进行评估。领域外任务包括(1) AQUA \textbf{AQUA} AQUA SVAMP \textbf{SVAMP} SVAMP是算术推理任务(2) StrategyQA \textbf{StrategyQA} StrategyQA是常识推理任务(3) ANLI-A1,RTE,MNLI-M/MM \textbf{ANLI-A1,RTE,MNLI-M/MM} ANLI-A1,RTE,MNLI-M/MM是自然语言推理任务。在这些任务中 AQUA,StrategyQA,RTE \textbf{AQUA,StrategyQA,RTE} AQUA,StrategyQA,RTE与领域内任务显著不同。这三个任务有其自己的 few-shot prompts \text{few-shot prompts} few-shot prompts。上表4中可以观察到 LMSI \textbf{LMSI} LMSI在所有的领域外任务上都有较高的准确率说明语言模型的整体推理能够被增强。

  • 使用 Chain-of-Thought \text{Chain-of-Thought} Chain-of-Thought训练的重要性

请添加图片描述

我们证明了使用 Chain-of-Thoughts \text{Chain-of-Thoughts} Chain-of-Thoughts训练语言模型的重要性。上表5所示列出了所有四种形式的 LMSI \textbf{LMSI} LMSI结果。结果显示不使用 CoT \text{CoT} CoT形式语言模型仍然可以自我改善但是效果的收益会大幅度的下降。

2. 推进自我改善的极限

  • 自生成问题

请添加图片描述

我们进一步探索了 few-shot \text{few-shot} few-shot的设置仅有少量目标域上的训练问题。在 GSM8K \text{GSM8K} GSM8K上仅采用10个真实问题作为 few-shot \text{few-shot} few-shot样本然后使用语言模型来生成更多的训练问题。然后使用这些生成的问题来自训练语言模型结果如上表6所示。结果显示使用自生成的问题仍然可以改善语言模型的能力但是使用真实世界的问题能够带来更好的结果。

  • 自生成 few-shot CoT Prompts \text{few-shot CoT Prompts} few-shot CoT Prompts
    请添加图片描述

    我们也探索了没有领域内 CoT \text{CoT} CoT样本的情况。我们应用 Step-by-Step \text{Step-by-Step} Step-by-Step方法来生成 CoT \text{CoT} CoT样本结果如上图3显示。我们可以观察到使用自生成的 Step-by-Step CoT \text{Step-by-Step CoT} Step-by-Step CoT样本作为 few-shot prompting \text{few-shot prompting} few-shot prompting校友显著优于 Step-by-Step \text{Step-by-Step} Step-by-Step并且接近人类撰写的 few-shot CoT \text{few-shot CoT} few-shot CoT。尽管 prompt \text{prompt} prompt的准确率有限(贪心 Step-by-Step \text{Step-by-Step} Step-by-Step的准确率为43%)但是Few-Shot w/ Step-by-Step强劲的表现可能是利用了来自多路径解码的更多样 CoT prompts \text{CoT prompts} CoT prompts。因为我们不使用训练问题或者 few-shot CoT \text{few-shot CoT} few-shot CoT样本74.2%也是 GSM8K \text{GSM8K} GSM8K zero-shot \text{zero-shot} zero-shot的最好效果。

3. 蒸馏至较小模型

请添加图片描述

​ 我们也探索了知识是否可以蒸馏至更小的模型。我们使用了由 PaLM-540B \text{PaLM-540B} PaLM-540B生成的相同训练集但是在更小的尺寸上微调模型 ( PaLM-8B,PaLM-62B ) (\text{PaLM-8B,PaLM-62B}) (PaLM-8B,PaLM-62B)上表7展示了蒸馏的结果。有趣的是通过 LMSI \textbf{LMSI} LMSI蒸馏后 62B \text{62B} 62B的模型效果优于 540B \text{540B} 540B模型 8B \text{8B} 8B的模型优于 62B \text{62B} 62B模型。这也意味着在有限计算资源的下游任务上大模型的推理知识可以用于大幅度的增强小模型。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: ChatGPT