这种能力也带来了一个问题:模型生成的答案并不是预训练数据优先(pretrain data first),如果我们的prompt 里出现了反事实的东西(retrieval / dialog query/ demonstration),那模型就很可能生成一个”错误“ 的答案。[/ol]Emergent Abilities既然LLM 有这么多神奇的能力,包括Zero-Shot-CoT 这种推理能力。那我们之前这么多人用手工的或者自动的方式构造prompt,为什么没找到”Let’s think step by step”这句话呢?
原因可能是你的模型不够大(大力真的能出奇迹)。随着LLM不断的放大,当他大到一定规模时,他会突然显现出新的能力,即”涌现能”力(Emergent Abilities)。而即使是今天,我们大部分人接触的模型还是1B以下的,LLM 中被称作”small model” 的T5-11B 大部分人也用不起来,这就限制了我们发现LLM 的各种能力。
Emergency 的原始含义是指量变引起质变,即:
Emergence is when quantitative changes in a system result in qualitative changes in behavior.
而在LLM 语境下,其含义为在小模型中没有而在大模型中出现的能力,即:
An ability is emergent if it is not present in smaller models but is present in larger models.Scaling Up
上表是目前已有工作中涌现各种能力的模型及其最小规模。基本可以认为你需要至少68B parameter model (前提训练的OK)才能涌现新能力。而这里涌现新能力指的是性能优于随机,而要达到可用,你可能需要继续放大模型。如CoT 至少需要GPT-3 175B 才能优于精调小模型(t5-11b).
此外,与模型性能有关的不光有参数量,还有数据大小,数据质量,训练计算量,模型架构等.合理的比较应该是性能最好的LLM 在参数量上进行比较,然而我们目前还不知道如何训练让LLM 达到最优,所以同一个能力在不同模型上需要的参数量也不相同,如要涌现出2位数乘法的能力,只需要GPT-3 13B,而在LaMDA 却需要68B。
所以除了规模外,还有别的因素影响着是否能出现新能力:
[ol]
模型的架构,上面的结果都是transformer-based 的,而有工作验证了其他模型架构(RNN/MLP),最后结论是其他架构即使放大,也无法像transformer-based model 一样涌现能力。again: attention is all you need![/ol]Alignment到目前为止,我们已经知道了LLM 有很多能力,而且随着模型规模的扩大,可能会出现更多的新能力。但是,有个问题却严重制约着他在实际中的应用:prompt engineering。仔细思考一下这个问题,其本质其实是模型认为处理一个task 的prompt 跟我们以为的不一样,如我们认为当我们说“问答:”时模型就应该知道后面的是一个QA task,而模型可能觉得,如果你想让我做QA task,你需要告诉我”妈咪妈咪哄”。
这就好比至尊宝已经得到了月光宝盒,但是却需要找到“般若波罗蜜”这句口诀然后喊出来才能穿越一样,而且环境稍微不同,具体穿越到哪还不一定。那更好的方式应该是我们拿到月光宝盒,然后说一句:我要穿越到白晶晶自杀前五分钟,然后我们就穿越到了对应的时空。
理想情况下,LLM 应该正确理解用户的指令,包括同一个任务的不同描述(LLM 应该对语义相同的instruction 表现一致,而非对prompt 的形式非常敏感)。而LLM 训练时的任务是预测下一个时刻的词(predict next token),而非处理用户的指令(follow instruction),所以存在gap 也是很自然的事。为了缓解这个问题,一个方法就是进行“对齐”(Alignment),缩小模型与人类对同一个instruction 之间理解的gap,从而让模型能更好的理解用户的指令。
Fine-tuning with human feedback一种很直接的想法就是构造数据进行fine-tuning。所以为了让模型更好的理解人类的指令,我们需要通过人类反馈进行微调模型(human in the loop)。
SFT构造人类真实场景中的指令即期望的输出,然后直接进行SFT(supervised fine-tuning)。
FeedME进过SFT 后模型可能已经能很好的理解人类指令了,但是其答案可能有其他问题,如胡编乱造,包含色情敏感内容等,此外,靠人写数据成本高又耗时,所以我们可以对多个模型的结果进行打分(7分),然后在7/7 的数据上继续训练,对多个模型的最好结果进行蒸馏(distill)。这个方法叫FeedME(Feedback Made Easy).
Reinforcement learning with human feedback即使我们从人写完整的样本转换为人给模型采样的结果进行打分,整个流程依然需要人参与,也限制了整个流程的加速。为了更高效的进行整个微调的流程,引入Reinforcement learning。该方法又叫RLHF(Reinforcement learning from human feedback)。
具体流程:
[ol]