GPT-3:语言模型是少样本学习者
一、摘要
二、引言
Few-shot的设定是什么?GPT-2采用了zero-shot设定,在新意度上很高,但是有效性却比较低。而GPT-3则是尝试解决GPT-2的有效性,进行Few-shot设置,即模型在做下游任务时,可以看到一些任务的样例,而不是像GPT-2那样啥样例都不给。
什么是上下文学习(In-Context-Learning,ICL)?上下文学习,是一种机器学习方法,它允许GPT-3等大规模预训练语言模型(LLM)在不需要调整模型参数的情况下,仅通过几条下游任务的示例就能理解任务并给出满意的回答。
提示(Prompt):在ICL中,给语言模型一个由输入输出对组成的列表作为“提示”,这些输入输出对用来描述一个任务。
模式学习:模型从演示中学习到模式,并据此做出正确的预测。本质上,它利用训练有素的语言模型根据演示的示例来估计候选答案的可能性。
无需参数更新:与监督学习需要使用反向梯度更新模型参数的训练阶段不同,ICL不进行参数更新,而是直接在预训练的语言模型上进行预测。
三、模型
Fine-tuning:训练完成预训练模型后,在每一个子任务上提供训练样本;微调对数据量的要求少,从0开始训练;
Zero-shot:任务描述和prompt之间没有任何样本。
One-shot:任务描述和prompt之前,插入一个样本进来。样本只做预测,不做训练,模型在前向推理时,使用注意力机制,处理比较长的信息,从中间抽取出有用的信息。
Few-shot:任务描述和prompt之前,插入多个样本进来。多个不一定有用,可能模型不能处理很长的数据。
四、实验
数据过滤:
GPT-2 使用的数据集为 Reddit,由于其社区规范和用户活跃度,Reddit 数据通常具有较高的质量。
研究人员训练了一个二分类网络,将 Reddit 数据作为正例,从 Common Crawl 中随机选取的一部分数据作为负例。
利用这个二分类网络,对 Common Crawl 中的所有数据进行分类,仅保留被分类为正例的数据,剔除负例数据。这一步骤有助于提升训练数据的整体质量,使其更接近 GPT-2 所使用的 Reddit 数据的质量水平。
数据去重:
为了避免训练过程中模型学习到重复的信息,研究人员采用了 LSH(局部敏感哈希)算法进行数据去重。
LSH 算法能够快速地判断一个集合(如一篇文章的单词集合)与另一个很大集合之间的相似度,从而有效地识别并剔除重复的数据。
增加高质量数据:
除了上述两个步骤外,研究人员还额外增加了一些已知的高质量数据集。
这些高质量数据集可能来自其他来源,如学术出版物、新闻报道等,它们通常具有更高的语言准确性和信息价值。
通过增加这些高质量数据,研究人员可以进一步提升 GPT-3 模型的语言理解和生成能力。
参考资料
https://openai.com/index/language-models-are-few-shot-learners/ https://arxiv.org/pdf/2005.14165
https://www.bilibili.com/video/BV1AF411b7xQ/