论文阅读:Language models are few-shot learners
Brown T, Mann B, Ryder N, et al. Language models are few-shot learners[J]. Advances in neural information processing systems, 2020, 33: 1877-1901.
引言
自然语言处理(NLP)领域已经从学习“特定任务的表示”和设计“特定任务的架构”,转向了使用“任务无关的预训练”和“任务无关的架构” 。目前主流的方法通常分为两步:首先是任务无关的预训练,然后是针对特定任务的微调,即在特定的大型数据集上更新模型权重以适应所需任务。
然而最近的研究表明,微调这一步可能并非必须 。作者提出语言模型可以被理解为“元学习者”。这意味着模型在预训练期间通过“慢速”的梯度下降学习了广泛的技能,而在推理时可以通过“快速”的上下文学习来适应新任务,而无需更新权重。在所有任务中,GPT-3 均不进行梯度更新或微调,任务和少样本演示完全通过与模型的文本交互来指定。
研究详细比较了“零样本 (Zero-shot)”、“单样本 (One-shot)”和“少样本 (Few-shot)”设置下的性能。GPT-3 在少样本设置下通常表现出比零样本更强的性能,有时甚至能与微调后的 SOTA(最先进)模型相媲美或超越;随着模型容量的增加,所有三种设置(零/单/少样本)下的性能都呈现出相对平滑的提升趋势;且零样本、单样本和少样本性能之间的差距通常随着模型容量的增加而扩大,这表明更大的模型是更熟练的元学习者。

方法
四种不同的评估设置——微调、少样本、单样本、零样本。其中微调是在特定任务的监督数据集上训练预训练模型,更新模型权重;少样本是在推理时,给模型提供K个任务示例作为上下文,但不更新任何权重;单样本与少样本类似,但仅提供 1 个示例;零样本不提供任何示例,仅通过自然语言描述来指示任务。
GPT-3 沿用了 GPT-2 的模型和架构,包括改进的初始化、预归一化和可逆分词化;引入了类似于 Sparse Transformer 的机制,在 Transformer 层中交替使用密集和局部带状稀疏的注意力模式。为了训练超大模型,采用了模型并行技术,将模型在深度和宽度维度上跨 GPU 分割,以最小化节点间的数据传输。
在少样本评估中,对于每个测试示例,从该任务的训练集中随机抽取K个示例作为条件上下文。对于自由形式的补全任务,使用集束搜索并加以长度惩罚。
结果
GPT-3 证明了在不进行微调的情况下,仅通过扩大模型规模和提供少量上下文示例,语言模型就能在广泛的 NLP 任务(从生成、问答到翻译)中达到甚至超过微调模型的水平。但它在某些特定类型的任务(如需要比较两个句子的 WiC 或极细粒度知识检索的 NQs)上仍有局限。
测量与预防基准记忆化
GPT-3 的训练数据集和模型规模比 GPT-2 大了两个数量级,且包含了大量来自 Common Crawl 的互联网数据。这增加了测试集数据无意中出现在训练集中的可能性,从而导致模型通过“记忆”而非“泛化”来完成任务。首先定义一个严格的检测标准。如果一个测试示例与预训练集中的任何内容存在13-gram重叠,则被视为“潜在泄漏”,对于每个基准测试,作者移除了所有被识别为潜在泄漏的示例并对GPT-3进行了重新评估【核心逻辑是“如果模型在“清洁”子集上的得分与在整个数据集上的得分相似,这表明即使存在数据污染,它对报告的性能结果也没有显著影响”】,结果表明在大多数情况下,性能的变化微乎其微。
这部分需要补充的内容:
- 局部带状稀疏注意力:一种特定的稀疏模式,类似于“滑动窗口”。每个 token 只关注它周围(通常是前面)的一定范围内的邻居以减少计算量,同时保留部分密集transformer以捕捉全局上下文
- 集束搜索+长度惩罚:在每一步生成时,都保留概率最高的k个候选路径,同时探索这 4 种可能的后续发展,最终从这 4 条完整的路径中选择整体概率最高的一条。由于概率这个东西肯定随着长度累积越来越低的,如果不加干预,集束搜索会倾向于生成非常短的句子,因此引入惩罚系数α,以尽可能避免对长句子的歧视。