GPT前2代版本简介

news2024/10/5 17:16:28

承接上文ChatGPT进化的过程简介

2018年,Google的Bert和OpenAI的GPT绝代双骄,两者非常像,都是语言模型,都基本上是无监督的方式去训练的,你给我一个文本,我给你一个语言模型出来。

GPT前两代没有什么特别的,第三代才有点大发神威。

GPT还不是特别火的时候,已经预计每天产生450亿词,每小时生成100W本书,所以以后看到的东西,可能是AI生成出来的。

这仅仅是22年5月份的GPT-3的情况。

微软给OpenAI提供大规模的数据中心、上万个GPU并行训练 ,其他公司很难复现,因成本太高,训练GPT3,电费画了1200万美元。

22年初,最开始的GPT3的应用,只是在传统的GPT基础之上做的扩展,并不是让网络结构更大、训练数据更多,而是让网络模式去解决一些以前解决不了的问题。

传统的GPT存在的问题

  • 存在偏见

NLP偏见非常大,因为它学的是互联网当中历史上一切的东西,在历史上会存在一些偏见,比如,

我今天买了一个华为手机,AI告诉你心情非常失落;买了苹果手机,心情非常高兴。

AI大概率会认为黑人是杀人犯,白人是教授、医生。

会把这些偏见强行加入进来,这是最大的问题。

  • 答非所问

可能输出的是长篇大论,可能自作聪明生成一些没用的东西。

GPT可以生成小说、代码等,你给它一些价值的内容,都可以按照要求去生成。

以前一年有几个大模型出现,现在平均每4天就有一个大模型问世。

GPT这个圈大概有1750亿的权重参数,其他更大的圆,权重参数更多。更大的语言模型,训练生成的成本会更高。

在NLP领域当中,一定是模型越大、参数越大,越好吗?

在训练集和验证集中是这样的,数据、标签越多,答案越固定。 NLP比的是一定做的对吗? 就一种固定答案吗? 不是的。 我比你描述的更好,但它是一种错误的答案,跟原始答案不一样,你能说我错了吗!

ChatGPT在训练和做策略的时候,它追求的不是一个特别大的参数量。 参数越大,模型越复杂,答案越固定,越朝着正确答案去逼近。

而对话聊天,理解的东西是通俗的,不需要一摸一样,只需要近似和好理解就行。

GPT1

GPT全称Generate Pre-Training,生成式预训练模型怎么训练呢?

不用给它标签,而是输入一句话,让它预测下一个词。

比如输入“今天天气”,预测下一个字是“真”,将“今天天气真”输入作为一句话,预测下一个字是“好”,就这样一个字一个字的往外蹦。

Bert是基于“完形填空”去做的,有上下文语境。 GPT难度更大,生成式的结果不固定,可变的因素太多了,GPT是预测后文,预测未来的事。

GPT损失函数就是预测下一个词

输入一组权重参数和前文,来预测后文。

GPT1有一个问题,训练了一个预训练模型,后续怎么应用呢?比如应用到机器翻译、文本摘要。。

训练好的语言模型要先理解上下文以及预测后面是什么,但是如果想再做自己的事情,那要再连下一个任务了,即要连接一个输出层,比如连接一个全连接层Linear,做分类任务。

所以GPT第一代版本不是我们所希望的,先有预训练模型,再结合输出层,做一步任务。即预训练模型的基础之上做了一个微调。

GPT2

在GPT第二代版本中,出现了zero-shot,即以不变应万变,模型训练完了之后,无论做什么任务,都不需要微调,而是通过暗示的方式。

比如我想做一个分类任务,预测下“你有一双漂亮的大眼睛”这句话是夸我还是骂我呢,则加一个暗示“这句话是夸我还是骂我呢”。 把这个提示跟上下文一起传入到这个模型当中,模型在学习的时候,它看到了输入的这句话,也看到了提示,那接下来回答的时候,需要参考这个提示。

这是zero shot做分类的场景。

还可以做机器翻译,比如输入一句话,再给它一个提示,将这句话翻译成英文。

还可以做回归任务,比如输入一句话,预测下这句话中含有的单词个数。

GPT2的思想是先有一个统一的大模型,在这个模型当中无论后续做什么,做哪个领域的任务,都可以过来问这个模型,都可以加个提示,加了提示之后,模型在回答的时候围绕着前文的输入,再根据提示继续往下生成。

从GPT2开始,大家看到希望了,在NLP这个领域又统一成了一个生成式的大模型,而不是有很多小的下游任务进行微调。

GPT如何增加多样性?

基于前面的词,预测下一个词,再根据前面两个词预测第三个词,再根据前面三个词预测第四个词。。。

在预测的时候会陷入一个死循环,比如成语接龙的时候,

生成的东西都一样,就是死循环。

再比如

不能老说“然后”,希望有点多样性,对于模型来说也是如此,前面总在说的东西 后面就别再重复了。

GPT是通过“温度Temperature”来提高多样性的,对预测结果进行概率重新选择。

GPT生成的结果并不是唯一的,比如你问GPT“今天晚上吃什么?”,结果可能是“吃香蕉”(输出概率是0.1)、“吃蔬菜(概率0.2)”、“吃鸡肉(概率0.3)”、“吃羊肉(概率0.4)”。

在这个任务当中,它每次一定输出概率最高的吗? 吃羊肉的概率最高,不能天天吃羊肉吧。

GPT实际上是做一个采样,跟买彩票一样,虽然中奖的概率低,但并不是说是不可能事件,只是采样到的可能性比较低。

计算各类别预测结果,但是要在不同类别预测结果的基础之上做一个采样,概率最高的采样到的可能性越大,概率低的采样到的可能性低。

输入“1、2、3、4”,将输入通过softmax转换成概率值,数字越大,概率越高,数字越小,概率越低。

能不能改变概率的分布呢?

除上一个小于0的数比如0.5之后,之前的数值就会放大,比如之前最高的概率是0.6439除以0.5变成了0.8650,概率值被放大,变得越高,越容易被输出,准备越准。

T越小于1或小于1的程度越大,越想得到什么就是越准的,越准的那一个得分越高 ,得分越高,概率值越高。

所以GPT3中温度设置的越低,输出就越固定,今天晚上吃羊,明天再问还是吃羊,因为羊的概率实在太高了。

温度为1默认是softmax值,温度越高,多样性越丰富,温度越低,相当于越希望得到最准的那个。

Top k 和 Top p

但是并不是说什么结果都能输出来,还需要设置2个参数Top k和Top p。

生成一个词,有10万种可能性,并不是说所有词都能生成出来,不可能“今天吃啥”,输出“吃个大理石”、“吃个耳机”,这些词别给采样出来。

Top k在任务中就选概率前10个来采样,后面都给设置成0,后面的太离谱了,就别往外输出了。

Top p是累加,就是取前多少个,能让累加概率得到0.9以上或0.95以上。

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

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

相关文章

好看的皮囊千篇一律,有趣的书籍万里挑一,学习Java必读的两款书籍推荐

今天给各位学习Java的小伙伴儿们推荐两本Java路线上必不可少的书籍,核心卷1和卷2,大家可根据自己的情况种草。正所谓,书多不压身。 Java核心技术卷1 Java 诞生 27 年来,这本享誉全球的 Java 经典著作《Core Java》一路伴随着 J…

2023年了,快去给你的博客加上一个主题吧~

最近闲逛github,发现了一个不错的博客主题,分享给大家。 这个主题主要是用于博客园的个人主页美化用的。 主题地址:Silence - 专注于阅读的博客园主题 目录 一、获取文件 (1)样式文件 (2)脚本…

【机器学习】第二节:线性回归和线性分类

作者🕵️‍♂️:让机器理解语言か 专栏🎇:机器学习sklearn 描述🎨:本专栏主要分享博主学习机器学习的笔记和一些心得体会。 寄语💓:🐾没有白走的路,每一步都算…

Linux文件描述符和重定向

介绍 文件描述符是与文件输入、输出相关联的整数&#xff0c;在编写脚本时会经常使用标准的文件描述符来将内容重定向输出&#xff0c;0、1、2是文件描述符&#xff08;分别对应stdin、stdout、stderr&#xff09;&#xff0c;< 、>, >>叫做操作符。 概念 stdin(…

《走进对象村7》之内部类基地

文章目录 &#x1f490;专栏导读&#x1f490;文章导读&#x1f341;内部类匿名内部类匿名内部类的定义匿名内部类访问内部类的特点 &#x1f341;实例内部类实例内部类的定义实例内部类的如何实例化对象实例内部类访问情况 &#x1f341;静态内部类&#x1f341;局部内部类内部…

谈谈中台建设

大家好&#xff0c;我是易安&#xff01; 中台是数字化转型中备受关注的话题。今天&#xff0c;我们将重点探讨业务中台和数据中台。同时&#xff0c;作为企业数字化中台转型的整体&#xff0c;我们也会探讨前台和后台的设计思路。 平台与中台 中台这一概念源于阿里巴巴&#…

命题逻辑与推理

推理理论(假设前提条件为真推出的结论) 真值表法 直接证明法 常用推理规则—倒着看&#xff0c;推理整理过程 P规则(前提引入) T规则(结论引入) ** 常用推理公式 ** 名称内容附加率 A ⇒ ( A ∨ B ) A ⇒ A → B B ⇒ A → B A\Rightarrow(A\lor B)\qquad\\\neg A\Rightarro…

软件工程开发文档写作教程(10)—需求分析书的适用范围

本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl本文参考资料&#xff1a;电子工业出版社《软件文档写作教程》 马平&#xff0c;黄冬梅编著 需求分析书的适用范围 软件项目一旦被确定要实施之后&#xff0c;撇开项目的立项投标不谈&a…

Java每日一练(20230515) 阶乘后的零、矩阵置零、两数相除

目录 1. 阶乘后的零 &#x1f31f; 2. 矩阵置零 &#x1f31f;&#x1f31f; 3. 两数相除 &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 阶乘后的零 …

基于PyQt5的图形化界面开发——PyQt示例_计算器

基于PyQt5的图形化界面开发——PyQt示例_计算器 前言1. caculator.py2. MainWindow.py3. 运行你的项目4. 其他 PyQt 文章 前言 本节学习 PyQt5示例 &#xff0c;制作一个图形化界面 计算器 操作系统&#xff1a;Windows10 专业版 开发环境&#xff1a;Pycahrm Comunity 2022…

2023 年 Pycharm 常用插件推荐

1. Key Promoter X 如果让我给新手推荐一个 PyCharm 必装插件&#xff0c;那一定是 Key Promoter X 。 它就相当于一个快捷键管理大师&#xff0c;它时刻地在&#xff1a; 教导你&#xff0c;当下你的这个操作&#xff0c;应该使用哪个快捷操作来提高效率&#xff1f;提醒你…

Nginx之正向代理与反向代理进阶(支持https)

在【Nginx之正向代理与反向代理】一文中我们实现了将Nginx服务器作为正向代理服务器和反向代理服务器&#xff0c;但美中不足的是仅支持http协议&#xff0c;不支持https协议。 我们先看看看http和https的区别&#xff1a; http协议&#xff1a;协议以明文方式发送数据&#…

django ORM框架(操作数据库)【正在更新中...】

一、ORM框架介绍 ORM框架&#xff0c;把类和数据进行映射&#xff0c;通过类和对象操作它对应表格中的数据&#xff0c;进行增删改查&#xff08;CRUD) ORM框架中 数据库&#xff1a;需要提前手动创建数据库 数据表&#xff1a;与OMR框架中的模型类对应 字段&#xff1a;模…

C++基础STL-deque容器

双端数组&#xff0c;可以对头端进行插入删除操作 deque 容器和 vecotr 容器有很多相似之处&#xff0c;比如&#xff1a; deque 容器也擅长在序列尾部添加或删除元素&#xff08;时间复杂度为O(1)&#xff09;&#xff0c;而不擅长在序列中间添加或删除元素。deque 容器也可…

图解LeetCode——240. 搜索二维矩阵 II

一、题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 二、示例 2.1> 示例 1&#xff1a; 【输入】matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,1…

软件工程开发文档写作教程(08)—需求分析书的编制目标

本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl本文参考资料&#xff1a;电子工业出版社《软件文档写作教程》 马平&#xff0c;黄冬梅编著 需求分析定义 需求分析的基本任务是要准确地定义新系统的目标&#xff0c;为了满足用户需求…

seleniumplaywright获取网站Authorization鉴权实现伪装requests请求

文章目录 selenium&playwright获取网站Authorization鉴权实现伪装requests请求需求背景知识点&#xff1a;selenium获取已登录网站的用户鉴权信息知识点&#xff1a;playwright获取cookie知识点&#xff1a;playwright获取storage_state提取cookie秃发状况windows禁止chrom…

OpenCV实现提取水平线和垂直线,提取验证码

1.提取水平线和垂直线 在之前的博客中&#xff0c;我们介绍了很多形态学操作。其中&#xff0c;膨胀与腐蚀操作可以使用任意的结构元素&#xff0c;例如矩形、圆、直线等各种自定义形状。 提取水平线和垂直线的具体步骤见下&#xff1a; 1.1.步骤一&#xff1a;读入原始图像…

提速YOLOv7:用MobileNetV3更换骨干网络加速目标检测

目录 前言一、MobileNetV3的介绍1、MobileNetV3的原理和特点2、MobileNetV3的结构 二、YOLOv7的介绍1、YOLOv7的结构和流程2、YOLOv7的性能指标 三、MobileNetV3替换YOLOv7的骨干网络1、替换骨干网络2、修改neck部分3、微调模型 四、实验结果与分析1、数据集和实验设置2、实验结…

【Prompting】ChatGPT Prompt Engineering开发指南(3)

ChatGPT Prompt Engineering开发指南3 总结文字使用单词/句子/字符限制进行总结以运输和交付为重点进行总结以价格和价值为重点进行总结 尝试“extract”而不是“summarize”总结多个产品评论内容来源 本文承接上文&#xff1a;ChatGPT Prompt Engineering开发指南2&#xff0c…