GPT-1,GPT-2,GPT-3 InstructGPT论文学习笔记

news2024/11/28 8:31:10

Gpt-1
论文:《Improving Language Understanding by Generative Pre-Training》
GPT-1网络结构
无监督,使用12层transforer decoder结构,每一层维度是768,12个注意力heads
token embedding矩阵,经过transformer decoder处理后,经过线性层和softmax层,得到下一个token的预测分布

位置编码3072维
Adam优化器,最大学习率为2.5e-4
token序列长度是512,100个epochs
激活函数使用GELU
正则化手段:残差网络、dropout,drop比例是0.1
有监督微调dropout比例0.1
有监督微调学习率6.25e-5,batchsize是32,训练epoch为3

二,无监督训练
给定一个无标注样本库的token序列集合,语言模型的目标就是最大化下面的似然值。也就是通过前面的tokens,预测下一个token。

在这里插入图片描述

有监督微调
得到无监督的预训练模型后,将得到参数值直接应用于有监督任务中,对于一个有变迁的数据集c,将这些tokens输入到预训练模型中,再经过一个全链接+softmax得到预测结果,
在这里插入图片描述

对应文本分类任务而言,可以直接对预测模型进行fine-tune,由于我们的预测模型是在连续的文本序列上训练,对于某些具有结构化输入的task,需要我们对输入进行一些修改,
开始符号,中间符号,结束符号,将句子进行拼接,

GPT2
论文 Language Models are Unsupervised Multitask Learners

设计prompt,提示生成,
Zero-shot:下游任务不需要训练模型,
作者认为,只要语言模型的容量够大,训练数据足够丰富,仅仅依赖模型便可以同时完成其他下游监督任务,

网络结构,
和GPT-1没有太大差别,将输入维度和decoder层按比例放大,比如输入维度由原来的768增加至1024,堆叠的层数变为24层,

GPT-3
论文:《Language Models are Few-Shot Learners》

模型结构:
GPT-3沿用了GPT-2的结构,训练过程也与GPT-2类似。主要区别在于扩展了GPT-2的模型大小、数据集大小及多样性。在初始化、归一化以及tokenization等方面做了一些改进,同时借鉴了Sparse Transformer的优化点。文章也提到了一些模型并行方面的优化工作。为了验证模型容量对效果的影响,文章训练了8个不同容量的模型——参数范围从1.25亿参数到1750亿参数,跨越三个数量级,其中最大的模型被称作GPT-3。各个模型的参数如下图所示。值得注意的是,更大的模型一般会使用更大的batch size,但只需要更小的learning rate。
自回归模型,可学习参数,非稀疏,
堆叠96层decoder,输入维度12288 ,128个头,
层数增加后,输入维度也要增加,每一个批量训练大小是320万样本,批量更大,计算性能好,通信量变小,分布式计算会更好,
对于小的模型,数据更容易拟合,
模型越来越大,模型不容易过拟合,模型神经网络设计,不会像简单的MLP一样容易过拟合,
大力出奇迹,

few-shot ,
in-context learning上下文学习, few-shot ,少样本学习需要根据上下文,
in-context learning可以学习数值加法,文本纠错,和翻译,相同的格式之间具有相关性,通过上下文学习其中的规律,
模型评估,few-shot learning 在任务之前,翻译单词输入开始任务之前,加以三个左右的例子,让模型提取到更多的信息
one-shot learning 在任务描述后,翻译单词输入开始任务之前,加入一个例子,希望模型看到句子后,哪呢个根据有用的信息帮助你做后面的翻译,
zero-shot learning 对于翻译任务构建prompt对下面这句话进行翻译,然后加上翻译的单词

训练数据集:
common crawl 下载后把样本,分类器任务正例保留,负例去掉,去重使用的是lsh的方法,一篇文章是一些词的集合,和另外一篇很大文章集合中进行比较相似度,作者采样时候,一个bathsize中只选择60%

微调:
对每个标注好的样本,我可以计算损失,然后进行权重进行更新,微调学习率初始值要小一点,是从预训练模型开始训练的,
总结:
GPT系列从1到3历经两年多,使用的底层均依托transformer的解码器,在莫新钢结构方面没有让爱大的创新和改进,主要靠不断增加模型容量和超强的算力,GPT2主要讲述zero-shot,GPT3主要讲述类,few-shot-learning

尽管和apt-2相比,gpt-3性能已经非常出色,在质量和参数量方面都有明显的改进,但他们仍然存在一些局限性,
1,gpt-3在文本合成和几个nlp任务上,仍然存在显著的弱点,比如文本合成的任务,尽管总体质量很高,但是gpt-3会在较长的段落中社区连贯性,自相矛盾,偶尔还会生成不合逻辑的句子和段落,gpt系列均基于自回归语言模型结构(单向),这个结构的采样和计算都会简单,gpt-3相关实验均不包含任何双向结构或其他训练目标(如去噪),这种结构限制gpt-3的能力,作者推测,大型双向模型在微调方面比gpt-3更强,文章提出,基于gpt-3的规模,或者尝试使用few-shot/zero-shot learing训练一个双向语言模型,是未来一个非常有前景的方向,
写长文本还是有问题,可以写出每一段的标题

2,gpt-3和其他类似lm的模型一样,它将会落人预训练目标的极限,简而言之,大语言模型缺乏和真实世界的交互,因此缺乏有管世界的上下文信息,自监督训练可能会达到一个极限,因此需要使用不同的方法进行增强,作者提出,从人类哪里学习目标函数,通过强化学习进行微调,增加不同的模态,前两者就是instruct-gpt的工作了
3,语言模型普遍存在一个局限性是,在预训练阶段,样本的利用率低,尽管gpt-3在测试阶段,朝着更加接近人类的测试时间(one-shot或者zero-shot)但是它在预训练阶段看到的文本,仍然比人类一生中看到的文本还要多得多,
4,gpt-3的规模巨大,无论目标函数或算法如何,gpt-3的训练昂贵,且不方便进行推理,gpt3这样的大模型通常包含非常多的技能,但大多数不是特定任务所需要的,作者提出,解决上述问题的一个未来方向可能是对大模型进行蒸馏,业界已有针对蒸馏进行大量探索,但尚未在千亿参数下进行尝试,
5,gpt-3与大多数深度学习系统有一些共同的局限性-不可解释性,很难保证gpt-3生成一些文章不包含敏感词汇-比如宗教偏见,种族起始以及性别偏见

instructGPT

过程:1,收集标注好的数据集,用它来监督学习对gpt3进行微调,2,对模型输出的多个结果进行人工标注,按照由好到坏的顺序排序,再将排序结果的数据集进一步微调这个监督模型

目的:本文的主要目标是探索如何训练语言模型(LMs)来遵循用户的指示,执行各种任务,并提供有用和可靠的输出,对齐用户意图

实现的方法:人工反馈强化学习
一,sft(有监督微调),收集问答数据,然后使用监督学习在该数据集上进行微调预训练的gpt3模型.
二,奖励模型(RM)训练,给定预训练模型一些问题,然后让gpt对生成的答案,gpt生成下一单词的概率采样,采样通常采用,binsearch通常生成4个答案,然后人工判断,对这四个答案进行排序,给定模型输入和输出,使得输出就是答案的分数满足之前的排序关系,
三,sft后的模型在rm模型进行强化学习(RL),使得生成的答案在奖励模型中进行打分,然后根据打分去优化它的参数,使得gpt3最终的输出对齐人类的意图
最后的模型就是instuctGPT

RM模型的损失函数使用的是pairwise的ranking loss 以排序

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

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

相关文章

自定义一个SpringBoot starter 怎么实现

文章目录 1、创建一个空项目2、在新建的空项目中添加starter模块3、添加autoconfigure模块4、配置starter模块的pom文件5、配置autoconfigure模块1. 配置pom依赖2、创建xxProperties配置类3、创建服务提供类xxxService4、创建自动配置类xxxGenerateAutoConfiguration5 、META-I…

pgrouting 管线 联通分析

背景描述 啦啦啦啦,然后拉拉阿里,然后啦啦啦,最后就写了这个记录一下 数据准备 1 管线数据 数据要求(拓扑检查) 数据没有重叠要求 数据悬挂点问题得到合理结局,不存在数据连接点不一样的线 数据能按…

C. Fighting Tournament - 模拟+思维

分析: 每次两个数比较,大的留下,小的放后面,可以发现只要最大的到了第一位就只能是它赢,因此统计第一次遍历所有数组元素的赢的次数,如果查询是最大的数呢么就在加上k-n,赛时代码写的一团乱&…

适合投资者的交易策略,4步找到

在外汇交易市场中,根据市场情况和个人投资目标,制定灵活的交易策略是至关重要的。Forexclub认为投资者可以通过结合多种交易策略,打造出全面、科学且适合自己的外汇交易策略。 首先,基于技术指标的交易策略是判断市场趋势和转折点…

「数字化制造」 是如何让制造过程信息化的?

「数字化制造」 是如何让制造过程信息化的? 数字化制造是指利用数字技术和信息化手段来实现制造过程的智能化、自动化和高效化。 它通过将传感器、物联网、云计算、大数据分析、人工智能等先进技术与制造业相结合,实现生产过程的数字化、网络化和智能化…

【原创】实现ChatGPT中Transformer模型之Encoder-Decoder

作者:黑夜路人 时间:2023年7月 Transformer Block (通用块)实现 看以上整个链路图,其实我们可以很清晰看到这心其实在Encoder环节里面主要是有几个大环节,每一层主要的核心作用如下: Multi-he…

Flask 分页Demo

项目结构 app.py from flask import Flask, render_template, requestapp Flask(__name__)books [{title: Book 1, author: Author 1, year: 2020},{title: Book 2, author: Author 2, year: 2021},{title: Book 3, author: Author 3, year: 2022},{title: Book 4, author: …

《面试1v1》面试官让我讲一下Kafka的性能哪里好

🍅 作者简介:王哥,CSDN2022博客总榜Top100🏆、博客专家💪 🍅 技术交流:定期更新Java硬核干货,不定期送书活动 🍅 王哥多年工作总结:Java学习路线总结&#xf…

公钥加密之『迪菲–赫尔曼密钥交换』,颜色混合的把戏

前奏: 迪菲-赫尔曼密钥交换是一种安全协议。它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道创建起一个密钥。这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。 颜色混合: 如图所示,蛇和老鼠要交换一个共享密钥&…

Springboot热部署相关功能

文章目录 前言一、Springboot如何在IDEA中开启热部署二、热部署的相关知识1.热部署的范围2.关闭热部署 前言 环境是Mac电脑下的IDEA 2023.1.X版本 如何在修改程序后自动进行加载修改后的程序而不是重启加载所有资源而更新程序,这就使用到了Springboot相关的热部署功…

120页商业银行企业级IT架构规划ppt

导读:原文《商业银行企业级IT架构规划ppt》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 完整版领取方式 完整版领取方式: 如需获取完整的电…

2023年7月17日,比较器,TreeMap底层,LinkedHashMap,Set接口

比较器 Comparator是外部比较器,用于比较来对象与对象之间的,两个对象进行比较,多用于集合排序 Comparable可以认为是一个内比较器,根据对象某一属性进行排序的。 1. 使用场景 ​ 内置比较器(Comparable)的…

Windows10下ChatGLM2-6B模型本地化安装部署教程图解

随着人工智能技术的不断发展,自然语言处理模型在研究和应用领域备受瞩目。ChatGLM2-6B模型作为其中的一员,以其强大的聊天和问答能力备受关注,并且最突出的优点是性能出色且轻量化。然而,通过云GPU部署安装模型可能需要支付相应的…

手把手带你创建微服务项目

1.先创建以下项目结构 2.在父项目中导入以下依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!-- Web依赖 --><dependency>&l…

关于Java集合框架的总结

关于Java集合框架的总结 本篇文章先从整体介绍了java集合框架包含的接口和类&#xff0c;然后总结了集合框架中的一些基本知识和关键点&#xff0c;并结合实例进行简单分析。当我们把一个对象放入集合中后&#xff0c;系统会把所有集合元素都当成Object类的实例进行处理。从JDK…

分享四款导航页 个人主页html源码

一、开源免费&#xff0c;可以展示很多社交账号&#xff0c;也可以更换社交账号图标指向你的网站&#xff0c;上传后即可使用 https://wwwf.lanzout.com/ik7R912s031g 二、开源免费&#xff0c;不过部署稍微麻烦点 https://wwwf.lanzout.com/iCq2u12s02wb 三、适合做成导航页面…

Android性能优化篇[谷歌官方]

网上看到了个和Android性能优化相关的系列文章&#xff0c;觉的还不错&#xff0c;和大家分享下。 在Android领域&#xff0c;性能永远是一块大头。市场对这类人才的需求也是有增不减&#xff0c;而且薪资待遇也不错。如果大家想深入学习Android某个领域&#xff0c; 那性能这块…

190 → 169,50天瘦20斤随感

一头猪瘦二十斤没有人会在意&#xff0c;但一个人猛地瘦二十斤或许就会有意思~ 从五月底到7月中旬&#xff0c;大致50天瘦了21斤。本文大致从我自己的感想、方法、减肥前后的心态及身体变化等方面来给予你一些关键信息&#xff0c;希望对你有用吧。 当你发现自己真的在一斤一斤…

react CSS :last-child 最后一个下边框线如何去掉

需求&#xff1a;调用分类接口后&#xff0c;tab的最后一个border不要横线。 代码如下 逻辑是 i是否等于books数组的长度-1。 books.map((book, i) > { return( <View style{borderBottom:idx ! dictype.length - 1 && "1px solid #ECEFF7"} key…

CentOS7 mariadb10.x 安装

1、添加mariabd yum源 vi /etc/yum.repos.d/mariadb.repo [mariadb] name MariaDB baseurl https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/10.5/centos7-amd64/ gpgkey https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck 12、建立yum…