GPT-3解读:惊艳世界的模型原来是大力出奇迹

news2024/11/16 17:39:30

欢迎来到魔法宝库,传递AIGC的前沿知识,做有格调的分享❗

喜欢的话记得点个关注吧!


今天,我们将共同探索OpenAI的GPT-3,与GPT-2相比,GPT-3更像是一个大力出奇迹的结果。接下来,就让我们跟随论文深入理解其技术细节。

  • 论文: Language Models are Few-Shot Learners

  • 模型参数: 1750亿

  • 公司/机构: OpenAI

摘要

人类有时只需少数示例或简单说明,便能轻松应对全新的语言任务,然而当前的自然语言处理系统仍面临巨大挑战。很多情况下,系统仍需通过特定任务的微调才能获得出色的效果。在这个挑战的推动下,OpenAI的研究人员努力改进了GPT-2 模型的有效性,并发布了GPT-3模型。

GPT-3是一个拥有1750亿模型参数的自回归语言模型。与GPT-2相比,GPT-3的参数量翻了116倍。与此同时,GPT-3采用了GPT-1最初提出的Few-shot设置,即模型在处理子任务时不再依赖大量样例,而是在可控范围内给出一些样本。这种设置的成本非常低,但却能为模型提供足够的信息。最令人惊叹的是,GPT-3在任何任务上都无需任何梯度更新或微调,只需通过与模型的文本交互来指定任务和展示少量样本。

GPT-3在多个自然语言处理任务中展现出了惊艳的性能,如翻译、问答和填空,同时还能够应对那些需要即时推理或领域适应的挑战,如拼写校正、引入新词和进行三位数算术运算。OpenAI 的科研人员发现,增加语言模型的规模可以极大地提升任务无关的少样本学习性能,有时甚至能够与当前最领先的微调方法媲美,这一突破在当时引发了极大的关注和赞誉。

引言

为了在各类任务中实现卓越性能,通常需要对特定任务的数据集进行大规模微调,这涉及数千到数十万个需要人工标注的数据集。然而,消除这种限制是可取的,原因如下所述:

首先,从实践角度来看,为每个新任务收集大规模标记示例数据集的需求限制了语言模型的适用性。语言任务的种类繁多,涵盖了从语法纠错到生成抽象概念示例,再到批评短篇故事等各种内容。对许多任务而言,要收集大规模的监督训练数据集往往具有挑战性,特别是当必须为每个新任务重复这个过程时。

其次,训练数据中的偶然相关性与模型表达能力和训练分布的狭隘性之间存在直接关系,这对于预训练后进行微调的模型来说可能带来问题。尽管这些模型在预训练阶段被设计得很大,能够吸收大量信息,但在非常狭隘的任务分布上进行微调。有证据表明,这种范式下的泛化能力可能较弱,因为模型过于特定于训练分布,并且在其之外的泛化能力不强。

最后,人类在学习大多数语言任务时并不需要大规模的监督数据集。仅仅凭借自然语言中的简短指令或少数示例,人类就能够在新任务上胜任并达到合理水平。这种适应性不仅揭示了当前自然语言处理技术的限制,而且具有实际优势。它使人类能够无缝地混合或切换多个任务和技能,例如在长时间对话中进行加法运算。为了广泛应用,研究者们希望有朝一日自然语言处理系统也能具备类似的灵活性和普适性。

为了解决上述问题,OpenAI的研究人员训练了一个巨大的自回归语言模型,拥有着惊人的1750亿参数,即GPT-3。在应对各类后续任务时,他们主要采用了Few-shot、One-shot和Zero-shot这三种不同的设定策略,并在不需要对模型进行任何形式微调的情况下取得了引人注目的成果。简言之,这意味着通过提供一些任务样例(即上下文信息),该模型能够自主探索并掌握处理这些任务的能力。这种能力主要来源于以下两方面:

第一,通过在语言模型的训练中培养广泛的技能和模式识别能力,然后在推理过程中利用这些能力来适应或识别所需的任务

如Figure 1.1所示,每个样本来自于不同的任务,涵盖了各种领域,如加法运算、语法纠正和翻译。这些任务提供了大量的训练数据,为模型提供了广泛的语言样本。通过在这些多样化的数据上进行训练,模型能够理解和处理各种任务。从上下文学习的角度来看,对于同一任务的处理,模型能够通过上下文中的信息进行准确推断,从而提高任务的效果。在这个过程中,模型能够从上下文中提取相关的知识和洞察,以支持对不同任务的有效适应。

图片

第二,增加语言模型的参数规模,通过模型参数规模的显著增加,可以提升自然语言处理任务的性能

如Figure 1.2所示,随着模型参数规模的增加,上下文学习能力会获得类似的强大增益。

图片

GPT-3的基本原理

训练数据集

GPT-3的训练需要大量的训练数据,这些数据主要来源于精心筛选过的Common Crawl、WebText数据集的扩展版本、两个基于互联网的图书语料库(Books1和Books2)和英语维基百科数据集

Table 2.2呈现了最终训练数据集的混合情况。可以看到,在训练过程中,研究人员并非按照数据集大小的比例进行采样,而更倾向于频繁采样质量较高的数据集。因此,Common Crawl和Books2数据集在训练中的采样次数不到一次,而其他数据集则采样2-3次。这种方法在一定程度上容忍了轻微的过拟合,以换取更高质量的训练数据。

图片

模型和架构

GPT-3采用与GPT-2相同的模型和架构,唯一的区别在于GPT-3在Transformer层中引入了交替的稠密和局部带状稀疏注意力模式,类似于Sparse Transformer。

GPT-2的介绍可以在我们之前的文章中找到!

为了深入探究模型规模对学习性能的影响,研究人员训练了8种不同规模的模型,涵盖了从1.25亿个参数到1750亿个参数的三个数量级范围。其中,最庞大的模型被命名为GPT-3。

图片

在Table 2.1中展示了8个模型的规模和架构。其中,nparams代表可训练参数的总数,nlayers表示Transformer的总层数,dmodel指每个bottleneck layer中的神经元数量,而前馈层的大小是bottleneck layer大小的四倍,即d_ff = 4 * d_model,dhead表示每个注意力头的维度。

所有的模型的上下文窗口都为nctx=2048个tokens。为了减少节点之间的数据传输,研究人员将模型根据其深度和宽度分割到不同的GPU上。具体的模型架构参数是根据计算效率和负载均衡在GPU上选择的。

训练过程

为了在训练更大的模型时避免内存耗尽,GPT-3在训练过程中采用了一种模型并行化的混合方法,既在每个矩阵乘法运算内部采用模型并行化,又在网络的各个层之间采用模型并行化。所有模型都是在由微软提供的高带宽集群中的V100 GPU上进行训练的。

GPT-3在训练过程中采用了Adam优化器,参数设置为β1 = 0.9,β2 = 0.95,ε = 10-8,为了控制梯度的范围,将梯度的全局范数裁剪为1.0。

在处理2600亿个tokens的过程中,会通过余弦衰减逐步降低学习率至初始值的10%(即:在处理完2600亿个tokens后,学习率会继续以原始学习率的10%进行训练)。此外,在训练的前40-120亿个tokens中,会逐渐增加Batch Size大小,从较小的值(32k个tokens)增加到设定的最大值。具体参数设置可见Table 2.1。

为了减小过拟合现象,采用了无替换的数据采样策略,直到达到一个epoch的边界。所有模型都使用0.1的权重衰减进行轻微的正则化。在训练过程中,始终使用2048个tokens的上下文窗口序列进行训练,当文档长度小于2048个tokens时,我们将多个文档打包成一个序列,以提高计算效率。序列中的多个文档通过特殊的文本结束标记进行分隔,为语言模型提供了上下文无关信息的推断。这种方式实现了高效的训练,无需进行特殊的序列屏蔽操作。

Figure 2.2展示了GPT-3在训练过程中的总计算量。显而易见,随着模型参数规模的增加,计算量的也在显著增加。

图片

上下文学习的三种设置

GPT-3在训练完成之后,就可以使用Few-Shot、One-Shot和Zero-Shot三种不同的方式在特定任务上进行使用。值得注意的是,GPT-3在特定任务上使用时无需进行微调或参数更新。这三种使用方式的简单介绍如下所示:

• Few-Shot(FS):模型在推理时给出K个任务示例作为上下文信息,同时提供任务的自然语言描述,但不允许模型进行权重更新。通常将K设置在10到100的范围内,以适应模型的上下文窗口。

• One-Shot(1S):模型在推理时通过提供一个任务示例作为上下文信息,同时还有任务的自然语言描述。这种方式最接近于人类在解决某些任务时所使用的方式。

• Zero-Shot(0S):不提供任何上下文信息,模型只给出一个描述任务的自然语言指令。

下图以英语翻译成法语的示例说明了Few-Shot、One-Shot和Zero-Shot这三种方法,并展示了传统Fine-tuning方法的一般流程。

图片

GPT-3的局限性

尽管与GPT-2相比,GPT-3的性能有了显著的提升,但仍然存在以下局限性:

  1. GPT-3在文本合成任务中偶尔会出现语义上的重复,随着段落变长,连贯性下降,同时还存在自相矛盾和不相关的句子。而对于"常识物理"问题,例如"奶酪放进冰箱是否会融化",GPT-3表现困难。

  2. GPT-3存在结构和算法上的限制,GPT-3专注于自回归语言模型的上下文学习行为,模型未包括双向架构或其他训练目标,这种设计决策可能导致在实际受益于双向性的任务上性能较差。

  3. GPT-3的训练目标对每个token赋予相同的权重,缺乏对于预测中什么是最重要和什么是次要的概念。

  4. GPT-3缺乏与其他领域(如视频或现实世界的物理交互)相关联的背景知识和大量上下文信息,知识的缺失会对模型性能造成影响。

  5. GPT-3少样本学习面临的一个不确定性是,在推理过程中难以确定模型到底是“从零开始”学习新任务,还是仅仅在区分和识别训练期间学到的任务。

  6. 由于GPT-3的庞大参数规模,不论是训练还是推理部署过程都具备高昂的成本和不便之处,这或许对目前这种规模的模型在实际应用中带来一定的挑战。

  7. GPT-3训练数据中的偏见可能导致模型生成的内容变得刻板化或带有偏见。

总结

GPT-3是一个拥有1750亿个参数的语言模型,与15亿参数的GPT-2相比,GPT-3更像是一个大力出奇迹的结果。GPT-3在Zero-shot、One-shot和Few-shot 的设置下,在众多自然语言处理任务中展现出强大的性能。

本文详细探讨了GPT-3 的基本原理以及其所面临的局限性。尽管GPT-3 存在一些限制,但它的出现印证了大规模语言模型有可能成为发展适应能力强、通用的语言系统的重要组成部分。在当前大模型盛行的时代背景下,GPT-3的工作仍具备极大的价值。


如果对AIGC感兴趣,请关注我们的微信公众号“我有魔法WYMF”,我们会定期分享AIGC最新资讯和经典论文精读分享,让我们一起交流学习!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1271990.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

性能测试:系统架构性能优化

今天谈下业务系统性能问题分析诊断和性能优化方面的内容。这篇文章重点还是谈已经上线的业务系统后续出现性能问题后的问题诊断和优化重点。 系统性能问题分析流程 我们首先来分析下如果一个业务系统上线前没有性能问题,而在上线后出现了比较严重的性能问题&#x…

故障排查:rpm安装报错事务锁定(can‘t create transaction lock on /var/lib/rpm/.rpm.lock)

博客主页:https://tomcat.blog.csdn.net 博主昵称:农民工老王 主要领域:Java、Linux、K8S 期待大家的关注💖点赞👍收藏⭐留言💬 目录 故障详情故障原因解决办法 故障详情 自己编写spec文件,制…

解决电脑蓝屏问题:SYSTEM_THREAD_EXCEPTION_NOT_HANDLED,回到系统还原点

解决电脑蓝屏问题:SYSTEM_THREAD_EXCEPTION_NOT_HANDLED,回到系统还原点 1,蓝屏显示问题1.1,蓝屏1,清楚显示1.2,蓝屏2,模糊显示 2,排除故障问题3,解决蓝屏的有效方法 1&a…

DES加密技术概述与应用

一、引言 随着信息技术的飞速发展,数据安全已成为越来越受到重视的问题。数据加密技术作为保障信息安全的核心技术之一,得到了广泛的研究和应用。DES(Data Encryption Standard)作为一种对称加密算法,凭借其高效、可靠…

Pycharm新手开发指南

文章目录 前言一、常用功能介绍二、常用高效pycharm使用方法关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Python兼职渠道 前言…

带大家做一个,易上手的家常土豆片

还是先从冰箱里那一块猪瘦肉 搞一点蒜和生姜 切成小块 装进一个碗里 这里一点就够了 一条绿皮辣椒 切片 三个左右干辣椒 随便切两刀 让它小一点就好了 一起装一个碗 一大一小两个土豆切片 猪肉切片 起锅烧油 然后 下肉翻炒 等肉变颜色捞出来 然后放入土豆 和小半碗水 让…

【C++】: unordered_map的使用

1、概念 key 键值的类型。unordered_map中的每个元素都是由其键值唯一标识的。 T 映射值的类型。unordered_map中的每个元素都用来存储一些数据作为其映射值。 Hash 一种一元函数对象类型,它接受一个key类型的对象作为参数,并根据该对象返回size_t类型…

IIS post .html页面报 405错误

IIS是不允许本地文件默认post请求的,windows10系统下的IIS(10.0版)默认也是不能 post请求\*.html或\*.json文件的 1 需要配置一下,配置如下: 2 双击处理程序映射,添加托管处理程序: 3 请求路径 …

低价商品采购API接口

采购商品地址http://sly.yizhaosulianyun.com/More/Push/888889?type3 低价商品采购API接口 1) 请求地址 http://sly.yizhaosulianyun.com/jd/keyWords 2) 调用方式:HTTP post 3) 接口描述: 低价商品采购接口 4) 请求参数: POST参数: 字段名称字段…

MySQL组合索引,最左匹配原则失效

说明:在SQL优化时,建立组合索引,我们需要知道最左匹配失效的情况,本文通过实例介绍最左匹配原则失效; 建立组合索引 如下,是一张大表,有1000万条数据; 对表中password、sex和email…

JMeter从入门到精通

1、 jmeter的介绍 jmeter也是一款接口测试工具,由java语言开发的,主要进行性能测试。 2、jmeter安装 jmeter官网下载链接: https://jmeter.apache.org/download_jmeter.cgi ,查看是否安装成功【jmeter -v】 下载 java jdk1.8&…

StartRocks 连接 Paimon外部表

版本 StartRocksPaimon3.2.00.5 sr 环境准备 CREATE external CATALOG paimon_hdfs PROPERTIES ("type" "paimon",paimon.catalog.type filesystem,"paimon.catalog.warehouse" "hdfs://hadoop03:9000/paimon/test" );mysql> …

虚幻学习笔记4—文本内容处理

一、前言 本文使用的虚幻引擎5.3.2,在虚幻中已经集成了很多可以直接处理多样化文本的蓝图,比如格式化动态显示、浮点数多样化等。 二、实现 2.1、格式化文本显示动态内容:在设置某个文本时可以使用“Format Text”蓝图设置自定义可以的显示…

使用C#和HtmlAgilityPack打造强大的Snapchat视频爬虫

概述 Snapchat作为一款备受欢迎的社交媒体应用,允许用户分享照片和视频。然而,由于其特有的内容自动消失特性,爬虫开发面临一些挑战。本文将详细介绍如何巧妙运用C#和HtmlAgilityPack库,构建一个高效的Snapchat视频爬虫。该爬虫能…

JOSEF约瑟 大功率抗干扰继电器\NR0521\220VDC 导轨安装

NR系列大功率继电器 系列型号: NR0521B大功率继电器 NR0521A大功率继电器 NR0521型大功率继电器 用途 大功率继电器NR0521220VDC 导轨安装在电力工程实际应用中,为防止母线电压经过PT二次侧反馈至高压侧,需要在PT二次侧串接PT刀闸重动接…

SAP SD 创建交货单 报错 VL461 VL248

因为生产环境已经被改好了,无法跟踪 所以换到测试环境重现一把,如何追根究底 对比正常订单发现 计划行 VBEP-LMENG,VBEP-BMENG这两个字段上的值跟 订单数量不一致。 尝试修改2者的数据跟订单数据一致,则可以正常创建交货单 实际原因是&a…

app广告变现如何提高变现收益?提高广告点击率

在广告变现实践过程中,我们往往会遇到一些问题,比如广告的填充不够、eCPM太低,该展示的广告没有展示出来,又或者广告位选择不合理导致用户负面反馈变多,这些种种问题都会影响我们的广告变现效率。 广告三大要素&#…

16.9%份额,启明星辰集团连续21年IDS/IPS排名第一

近日,赛迪顾问发布《2022-2023年中国网络信息安全市场研究年度报告》。报告显示:2022年,启明星辰集团IDS/IPS以16.9%的份额占据市场第一。至今,启明星辰集团IDS/IPS已连续21年保持市场占有率第一。 多年来,启明星辰集团…

postman打开白屏

现状:postman打开白屏如下图 window环境变量: Win R 快捷键打开 sysdm.cpl 增加环境变量: 变量名:POSTMAN_DISABLE_GPU 值:true 重新打开postman

Aurora8B10B(一) 从IP配置界面学习Aurora

一. 简介 哈喽,大家好,好久没有给大家写FPGA技术的文章,是不是已经忘记我是做FPGA的啦,O(∩_∩)O哈哈~。 这里将会给大家分享我学习到的第一个高速接口Aurora8B10B,有点复杂,但不是特别复杂,对…