GPT前2代版本简介

news/2024/12/22 19:53:12/

承接上文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.ppmy.cn/news/80728.html

相关文章

《JavaEE》HTTPS

文章目录 HTTPS起源HTTPS对称加密非对称加密两者的区别 HTTPS的安全问题使用对称加密正常交互黑客入侵解决方案 非对称加密引入非对称加密后的流程 中间人攻击黑客的入侵方案加入后的流程解决方案黑客再次加注解决方案 ​👑作者主页:Java冰激凌 &#x1…

Java StringBuilder类

3 StringBuilder可变字符串类 StringBuilder是一个可变的字符串类,内容可以改变3.1 StringBuilder构造方法 范例public class Demo {public static void main(String[] args) {//创建空白可

ChatGPT是什么

什么是ChatGPT ChatGPT是一种基于人工智能技术的聊天机器人,它可以与用户进行自然语言交互,回答用户的问题,提供各种服务和娱乐功能。ChatGPT的核心技术是GPT(Generative Pre-trained Transformer),是一种…

如何在华为OD机试中获得满分?Java实现【最多提取子串数目】一文详解!

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: 华为OD机试攻略:Java实现并讲解2022&2023真题 文章目录 1. 题目描述2. 输入描述…

雪花算法记录

引子 伴随着业务的日渐庞大,单库单表的数据库可能无法支持业务的读写,需要对数据库进行分库分表。 原来数据库中,通常使用自增id的方式生成主键。分库分表之后,如果仍然采用原来的方式,在多个表之间主键会发生重复。 …

mysql和redis的同步

mysql和redis的同步 1 为什么使用redis做缓存 数据库链接慢,磁盘IO慢 mysql线程数不够 mybatis缓存,缓存在JVM中 redis缓存时基于内存的,速度快 若使用redis,如何保证redis和数据库同步问题 配置redis redis:url: redis://…

代码随想录算法训练营第五十一天 | 买卖股票3

309.最佳买卖股票时机含冷冻期 文档讲解:代码随想录 (programmercarl.com) 视频讲解:动态规划来决定最佳时机,这次有冷冻期!| LeetCode:309.买卖股票的最佳时机含冷冻期_哔哩哔哩_bilibili 状态:dp定义看的…

小马识途:如何做好短视频内容运营

随着移动互联网普及,抖音和快手小红书这样的短视频平台已经成为这个时代最流行的内容承载形式。 短视频运营成为当下网络推广的一项重要任务,如何优化短视频呢?小马识途营销顾问就自身经历分享几点建议: 1、灵活的选题机制 内容选…