追溯ChatGPT( 三 )


从这个意义上说,text--002 更符合人类的期待(因为对一个任务写上下文示例可能会比较麻烦) 。
不太可能故意牺牲了上下文学习的能力换取零样本能力 —— 上下文学习能力的降低更多是指令学习的一个副作用,管这叫对齐税 。
001 模型(code--001 和 text--001)v.s. 002 模型(code--002 和 text--002)
001 模型主要是为了做纯代码 / 纯文本任务;
002 模型则深度融合了代码训练和指令微调,代码和文本都行 。
Code--002 可能是第一个深度融合了代码训练和指令微调的模型
证据有:code--001 可以进行推理但在纯文本上表现不佳,text--001 在纯文本上表现不错但在推理上不大行
code--002 则可以同时做到这两点 。
这些能力是在预训练之后已经存在还是在之后通过微调注入?
在这个阶段,我们已经确定了指令微调和代码训练的关键作用
一个重要的问题是如何进一步分析代码训练和指令微调的影响?
具体来说:上述三种能力是否已经存在于初代的GPT-3中,只是通过指令和代码训练触发 / 解锁?
或者这些能力在初代的 GPT-3 中并不存在,是通过指令和代码训练注入?
如果答案已经在初代的 GPT-3 中,那么这些能力也应该在 OPT 中
因此,要复现这些能力,或许可以直接通过指令和代码调整 OPT
但是,code--002 也可能不是基于最初的 GPT-3,而是基于比初代 GPT-3 更大的模型
如果是这种情况,可能就没办法通过调整 OPT 来复现了
研究社区需要进一步弄清楚训练了什么样的模型作为 code--002 的基础模型 。
我们有以下的假设和证据:
code--002的基础模型可能不是初代GPT-3模型 。以下是证据:
初代的GPT-3在数据集 C4 2016 - 2019 上训练,而 code--002 训练集则在延长到2021年才结束
因此 code--002 有可能在 C4 的 2019-2021 版本上训练
初代的 GPT-3 有一个大小为 2048 个词的上下文窗口
code--002 的上下文窗口则为 8192
GPT 系列使用绝对位置嵌入 (),直接对绝对位置嵌入进行外推而不经过训练是比较难的,并且会严重损害模型的性能(参考 Press et al., 2022)
如果 code--002 是基于初代GPT-3,那 是如何扩展上下文窗口的?
另一方面,无论基础模型是初代的 GPT-3 还是后来训练的模型,遵循指令和零样本泛化的能力都可能已经存在于基础模型中,后来才通过指令微调来解锁 (而不是注入)
这主要是因为的论文报告的指令数据量大小只有 77K,比预训练数据少了几个数量级 。
其他指令微调论文进一步证明了数据集大小对模型性能的对比
例如 Chung et al. (2022) 的工作中,Flan-PaLM 的指令微调仅为预训练计算的 0.4% 。一般来说,指令数据会显著少于预训练数据 。
然而,模型的复杂推理能力可能是在预训练阶段通过代码数据注入
代码数据集的规模与上述指令微调的情况不同
这里的代码数据量足够大,可以占据训练数据的重要部分(例如,PaLM 有 8% 的代码训练数据)
如上所述,在 code--002 之前的模型 text--001 大概没有在代码数据上面微调过,所以它的推理 / 思维链能力是非常差的
正如第一版思维链论文中所报告的那样,有时甚至比参数量更小的 code--001 还差
区分代码训练和指令微调效果的最好方法可能是比较 code--001、T5 和
因为它们具有相似的模型大小(110亿 和 120亿),相似的训练数据集 (C4),它们最大的区别就是有没有在代码上训练过 / 有没有做过指令微调
text--003 和,基于人类反馈的强化学习(from Human , RLHF) 的威力
在当前阶段(2022 年 12 月),text--002、text--003 和 之间几乎没有严格的统计上的比较,主要是因为