【翻译】GPT-3是如何工作的

news2024/11/23 22:37:20

前排提示

这是我补充的内容,仅代表个人观点,和作者本人无关。

主要是意译+我的补充,想看原文表达的拖到最底下有链接。


原文翻译

在科技界我们可以看到很多关于GPT-3的新闻。大型语言模型(比如GPT-3)已经展示出让我们惊讶的性能。虽然对于大部分企业来说想让GPT-3落地还是比较困难的,这些功能不完全可靠的模型还是不能摆到用户面前的,但是这些大模型的出现展示出了加速自动化进程和智能计算机系统的前景。接下来让我们扒一扒GPT-3,看一看它神秘光环背后是如何训练和工作的。

用一个训练好的语言模型生成文本。

我们可以选择给模型输入文本,从而影响模型的输出。在训练期间,模型会通过大量文本学习知识,模型的输出是根据其在训练期间“学习”过的这些内容生成的。

比如下图,给训练好的GPT-3输入一个prompt,模型会给我们对应的输出。

在这里插入图片描述
训练是将模型暴露于大量文本的过程,当然GPT-3已经训练好了。你现在看到的所有基于GPT-3的实验都是用的已经训练好的GPT-3模型。据估计,GPT-3训练使用的算力为355 GPU年,成本460万美元,使用无监督训练,训练数据集高达3000亿个文本tokens。

在这里插入图片描述
举个栗子,下图是使用顶上的这个文本进行生成的三个样例。你可以看到,如何在所有文本上滑动窗口并产生输出。

看下图,作者的意思是,模型在训练时候学习到了训练样例 “Second Law of Robotics: A robot obey the orders given it by human beings.”
现在使用这个模型进行输出,每次都输出下一个单词:

  • Example 1 :prompt 为Second Law of Robotics: ,模型就会根据训练样例学习到的内容,输出下一个单词A
  • Example 2:此时prompt 变为Second Law of Robotics: A,模型会扫描所有prompt内容,产生下一个预测单词robot `。
  • Example 3 :prompt 为Second Law of Robotics: A robot,模型会输出预测must

在这里插入图片描述

我们给模型输入一个样本。将特征传递给模型,并要求它预测下一个单词。模型的输出应该是错的。我们计算其预测的错误并更新模型,以求下次获得更好的预测。然后我们将这一过程重复无数次。

结合下图,可以看到灰色的GPT-3在这里代表一个没训练好的模型,每次给它输入样本的features,让其进行预测获得prediction,预测错误之后,计算其预测的错误值和正确的标签(labels)之间的误差并更新网络。重复该步骤。最后就会获得一个训练好的GPT-3模型。

在这里插入图片描述

现在我们来详细地介绍一下上边提到的这个需要重复的步骤。GPT-3实际上每次只生成一个token(我们现在默认一个token就是一个单词。)

在这里插入图片描述

注意:本文是对GPT-3工作原理的描述,重点不是讨论其创新点(巨大的模型结构)。该模型的体系结构是基于这篇文章Generating Wikipedia by Summarizing Long Sequences的Transformer的decoder模型。

GPT-3体力巨大,拥有1750亿个参数编码它在训练过程中学到的东西。这些参数用于计算每次运行时要生成的token。

未经训练的模型参数是随机初始化的,训练过程就是寻找参数值使其产生更好的输出的过程。

在这里插入图片描述

这些参数是模型中数百个矩阵的一部分。预测过程就是是大量的矩阵乘法运算。

在我YouTube上的AI简介的视频中,我讲了一个仅有一个参数的简单深度学习模型,这个视频可以作为入门,让你能理解这个1750亿参数的巨大模型。

为了阐明这些参数是如何分布和使用的,我们需要看一下模型的内部结构。

GPT-3接受token的宽度为2048,我们也可以称之为“上下文窗口”。这意味着它有2048个路径,每个token都要沿着这些路径进行处理。
在这里插入图片描述
让我们看着下图紫色箭头的轨迹,看一下系统如何处理robot一词并产生预测A的:

高级步骤:

  1. 将单词转换为表示单词的向量
  2. 计算预测值
  3. 将预测结果向量再转换回单词

在这里插入图片描述

GPT-3的这些计算发生在96个Transformer的decoder层中。

看到这么多层了吗?这大概就是“深度学习”中的“深度”吧。

也就是说GPT-3是由96个Transformer的decoder组成的。GPT-2最大的型号应该是48层decoder。

每个层都有单独的18亿参数,也就是让GPT-3如此强大到玄幻的地方,计算流程如下:

在这里插入图片描述
如果想了解decoder的内部构造可以看《图解GPT-2》。

GPT-3的不同之处是交替使用稠密自注意力层和稀疏的自注意力层。

这是给定GPT-3输入并获得输出(Okey human)的流程。我们可以看到每个token是如何流经整个模型层的。模型并不关心第一个单词的输出是什么。当我们输入的句子都经过模型层之后,开始输出其预测的第一个单词,这时候模型才会关心输出的token是什么,并将这个输出放回到模型输入中。

在这里插入图片描述

看一下这个示例:React代码生成。

上边这个代码生成是twitter上的,如果你看不了就直接看我的截图行了。就是这个人说,我让GPT-3生成一个todo list的应用程序,然后它就真的几秒钟之内给我一段功能完整的React写的todo list的代码。
在这里插入图片描述

上边这个代码生成的例子中,我认为是先给模型几个description=>code的示例,然后再给一个prompt描述。然后模型会输出像这些粉色的token一样逐个生成出来。

我的假设是,基础提示和描述作为额外输入,使用特定的分隔token符将提示内容和描述(结果)拆分开。然后将其喂给模型。

如过大家感兴趣可以去看一下GPT-3的原文,是支持zero-shot、one-shot、few-shot的。这三个x-shot我在这里不解释了,默认大家都懂。上边这两段话就是作者猜测的GPT-3使用few-shot的过程。

在这里插入图片描述

GPT-3已经很令人惊艳了,如果你能等到GPT-3的微调模型,性能可能会更加惊艳。

微调会更新模型的权重,使模型更适配于某一领域。

在这里插入图片描述


碎碎念

在这里插入图片描述

作者博客:@Jay Alammar

原文链接:How GPT3 Works - Visualizations and Animations

这是我翻译这位大佬的第四篇文章了。之前的工作可以看:

  • 图解transformer | The Illustrated Transformer_LolitaAnn的博客-CSDN博客

  • 图解BERT、ELMo(NLP中的迁移学习)| The Illustrated BERT, ELMo, and co._LolitaAnn的博客-CSDN博客_bert和elmo

  • 图解GPT-2 | The Illustrated GPT-2 (Visualizing Transformer Language Models)_LolitaAnn的博客-CSDN博客

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

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

相关文章

[附源码]Python计算机毕业设计Django现代诗歌交流平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

一篇ThreadLocal走天下

尺有所短,寸有所长;不忘初心,方得始终。 请关注公众号:星河之码 在面试的时候经常会有人文ThreadLocal是啥,首先明确的一点是:虽然ThreadLocal提供了一种解决多线程环境下成员变量的问题,但是Th…

SSM框架学习记录-SpringMVC_day01

1.SpringMVC概述 SpringMVC功能与优点 SpringMVC是一种基于Java实现MVC模型的轻量级Web框架 SpringMVC技术与Servlet技术功能一样(对Servlet进行了封装),都属于Web层开发技术 SpringMVC的主要的作用就是用来接收前端发过来的请求和数据然后经过处理并将处理的结果…

自定义注解实现参数校验

个人博客地址: http://xiaohe-blog.top/ 文章目录1. 为什么要进行参数校验2. 如何实现参数校验3. 注解实现参数校验4. 自定义注解实现参数校验1. 为什么要进行参数校验 在后端进行工作时,需要接收前端传来的数据去数据库查询,但是如果有些数…

目前智慧工厂建设面临的急需解决的问题有哪些?

当前国内诸多制造业企业面临着巨大的转型压力。一方面,劳动力成本迅速攀升、产能过剩、竞争激烈、客户个性化需求日益增长等因素,迫使制造企业从低成本竞争策略转向建立差异化竞争优势。具体在工厂层面,制造企业面临着招工难,以及…

去应聘测试管理职位时遇到的面试题

前言: 在测试管理的路上,少不了招聘测试管理的测试人员,或自己去应聘测试管理人员的时候,因此梳理了关于测试管理职位的面试题: 1、请你列举你曾经担任的测试工作职位? 2、你认为项目测试经理的工作职责和…

简单个人网页设计作业 静态HTML个人博客主页 DW个人网站模板下载 大学生简单个人网页作品代码 个人网页制作 学生个人网页设计作业

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

【印刷字符识别】OCR键盘数字+字母识别【含Matlab源码 807期】

⛄一、OCR简介 1 什么是OCR技术? OCR英文全称是Optical Character Recognition,中文叫做光学字符识别。它是利用光学技术和计算机技术把印在或写在纸上的文字读取出来,并转换成一种计算机能够接受、人又可以理解的格式。文字识别是计算机视觉…

Java项目:SSM服装出租服装店租赁服装管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目为后台管理系统; 管理员角色包含以下功能: 管理员登录,用户管理,公告管理,服装类型管理,服装信息管理,客户信息管…

计算机毕设Python+Vue新生报到管理(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Java项目:SSM在线甜品商城平台

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 管理员角色包含以下功能: 管理员登录,套餐管理,甜品管理,预定管理等功能。 用户角色包含以下功能: 用户登录与注册,查看…

Activiti7-流程变量

流程变量 流程变量的作用域 设置流程定义的key为myEvection2 使用流程变量 定义好流程变量后&#xff0c;就可以在整个流程定义中使用这些流程变量了。例如可以在某些任务属性如 assignee上使用${assignee}&#xff0c;或者在某些连线上使用${day<3}。 Activiti中可以使用…

C语言初阶_初识C语言(2)

我尝试用这博客记录下我所热爱 ​我只不过是个无名小辈 ​无休止地更新 ​在名利中苦苦挣扎 ​世事变幻莫测 ​就算每一次早早被淘汰 ​在失败边缘挣扎 我的数据结构与算法系列开始了&#xff0c;有一定C语言基础的同学可以去学习&#xff01; 数据结构与算法_时间复杂度 有…

jmeter下载及安装配置

目录&#xff1a;导读 前言 jmeter环境 jmeter环境变量配置如下&#xff1a; &#xff08;1&#xff09;新增JMETER_HOME变量 &#xff08;2&#xff09;配置Path环境变量&#xff1a; &#xff08;3&#xff09;配置CLASSPATH变量&#xff0c;加上&#xff1a; &#xf…

计算机毕业设计——基于html智能家电购物商城项目的设计与实现

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

【SpringMVC】使用篇:SpringMVC的开始

目录 一、前言 二、RequestMapping 三、params表达式 四、Ant风格资源地址 五、PathVariable 六、Rest风格的请求数据 七、请求映射数据 相关文章 【SpringMVC】入门篇&#xff1a;带你了解SpringMVC的执行流程【SpringMVC】入门篇&#xff1a;带你了解SpringMVC的执行流程一、…

使用MMA解决拓扑优化问题的并行框架

使用MMA解决拓扑优化问题的并行框架 仅个人论文学习笔记。 本文的重点是用c实现的完全并行拓扑优化框架&#xff08;线性求解器和优化算法&#xff09;&#xff0c;将MMA(Method of Moving Asymptotes)优化算法并行化&#xff0c;作为代码的基本部分。 实现一个拓扑优化问题 在…

vitepress+gitee pages搭建自己的博客网站

概述 “不写博客的GISer不是一个好程序员”。所以&#xff0c;好多程序员会保留着写博客的习惯&#xff0c;一方面记录自己的学习成果或者解决某个问题的方法&#xff0c;一方面能够帮助到他人&#xff0c;再一方面也能够督促自己多学点东西……这是一个一举N得的事情。上为其…

【C语言进阶】怎么可能不会?十分钟带你玩转枚举与联合

目录 &#x1f34a;前言&#x1f34a;&#xff1a; &#x1f95d;一、枚举&#x1f95d;&#xff1a; 1.枚举类型的定义&#xff1a; 2.枚举类型的优点&#xff1a; 3.枚举类型的使用&#xff1a; &#x1f353;二、联合&#xff08;共用体&#xff09;&#x1f353;&#x…

【实验报告NO.000002】MIT 6.858 Computer System Security - Lab 3

0x03.Lab 3: Symbolic execution 本 lab 将教大家使用 符号执行 &#xff08;symbolic execution&#xff09; 这一强大的技术来寻找软件中的漏洞&#xff0c;在 lab 的最后我们将建立一个可以在 zoobar web 应用中寻找触发多种漏洞的符号执行系统&#xff08;准确的说是一个混…