大模型学习之GPT系列

GPT系列

  • 预备知识
  • GPT-1
    • 无监督预训练
    • 有监督的微调
    • 训练
  • GPT-2
    • 数据集:
    • 输入表示
    • 模型
    • 实验
  • GPT-3
    • 模型
    • 数据集
    • 实验
    • 局限性
  • InstructGPT
  • GPT-4
    • GPT-4 新特性
    • 基础能力
  • 参考文献

大模型
在这里插入图片描述
GPT演进路线图
在这里插入图片描述

预备知识

Transformer 结构图
在这里插入图片描述

GPT-1

GPT1
首先使用未标注的数据训练一个预训练语言模型,然后再使用有标注的数据在子任务上做微调。
下图为Transformer Decoder 和 GPT1结构图的对比
在这里插入图片描述
GPT只能关注上文的信息,无法关注到下文的信息。

无监督预训练

GPT使用标准的语言模型的目标函数来最大化似然函数:
在这里插入图片描述

语言模型就是要预测第 i 个词出现的概率

Transformer 编码器和解码器的区别:输入一个序列到编码器中,对第 i 个元素抽取特征的时候,可以看到整个序列的所有元素,而对于解码器来说,因为有掩码的存在,在对第 i 个元素抽取特征的时候,只能看到当前元素和它前边的元素,它后边的元素通过一个掩码使得在计算注意力机制的时候变为0。

GPT和BERT的区别:
BERT 用的不是标准的语言模型,用的是一个带掩码的语言模型,是一个完形填空,给定一个句子,把中间的词挖掉,然后预测中间的那个词,在预测这个词的时候既能看到它之前的词,又能看到它之后的词,所以用的是Transformer 的编码器。
主要区别在于两者目标函数的选取:GPT的预测更难,只通过前边的来预测下一个词。

有监督的微调

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

训练

GPT数据集:

  • BooksCorpus:7000多本未出版的书籍
  • Word Benchmark:10亿

GPT模型大小:12层,768维
参数量:1.17亿

BERT数据集:

  • BooksCorpus:8亿个词
  • English Wikipedia:25亿词

BERT大小:

  • base:12层,768维(对标GPT)
  • large:24层,1024维

GPT和BERT实验对比
在这里插入图片描述

GPT-2

在这里插入图片描述

增大数据集 + 增大模型 + zero-shot

通过任务提示来训练一个预训练模型,然后无需进行有监督的fine-tune就可以执行下游任务。比如翻译任务可以输入为
(translate to french, english text, french text),阅读理解任务可以输入为 (answer the question, document, question, answer)

数据集:

  • 网页爬取:WebText 只抓取了人类策划/过滤的网页,800万文档(40G)

输入表示

BPE(Bype Pair Encoder)这种输入表示能够将词级 LM 的经验优势与字节级方法的通用性相结合。由于我们的方法可以为任何 Unicode 字符串分配一个概率,这允许我们在任何数据集上评估我们的 LM,而不管预处理、标记化或词汇大小。

https://zhuanlan.zhihu.com/p/589086649

模型

与 GPT1 类似,有如下的修改

  1. 层归一化移动到每个子块的输入,并且在最终的子注意力块之后额外添加了一个层归一化
  2. 改进初始化:按残差层个数进行缩放,缩放比例为 1 N \frac{1}{\sqrt{N}} N 1, N N N 是残差层数
  3. 词汇表扩展到 50257
  4. 上下文大小从 512 增加到 1024,使用 512 的batch size
    在这里插入图片描述

实验

zero-shot
在这里插入图片描述
在这里插入图片描述

GPT-3

在这里插入图片描述
Few-shot(不做梯度)

in-context learning

在这里插入图片描述

模型

与GPT-2类似,但是使用稀疏注意力机制

在这里插入图片描述

数据集

在这里插入图片描述

  1. 根据与一系列高质量参考语料库的相似性下载和过滤了 CommonCrawl 版本
  2. 文档级别、内部和跨数据集执行模糊重复数据删除,以防止冗余并保持验证集的完整性作为过度拟合的准确度量
  3. 已知的高质量参考语料库

实验

局限性

虽然 GPT-3 取得了非常亮眼的效果,但是出于严谨的学术态度,论文里还是客观的分析了自己的一些局限性:

  1. 当生成文本长度较长时,GPT-3 还是会出现各种问题,比如重复生成一段话,前后矛盾,逻辑衔接不好等等;

  2. 模型和结构的局限性,对于某一些任务,比如填空类型的文本任务,使用单向的自回归语言模型确实存在一定的局限性,这时候如果同时考虑上文和下文的话,效果很可能会更好一些;

  3. 预训练语言模型的通病,在训练时,语料中所有的词都被同等看待,对于一些虚词或无意义的词同样需要花费很多计算量去学习,无法区分学习重点;

  4. 样本有效性或者利用率过低,训一个模型几乎要把整个互联网上的文本数据全都用起来,这与我们人类学习时所需要的成本存在非常大的差异,这方面也是未来人工智能研究的重点;

  5. 有一个不太确定的点是,模型到底是在“学习”还是在“记忆”?我们当然希望它能够学习,但是在使用数据量如此大的情况下,很难去判断它到底是什么样的;

  6. 众所周知,GPT-3 的训练和使用成本都太大了;

  7. GPT-3 跟很多深度学习模型一样,都是不可解释的,没办法知道模型内部到底是如何作出一系列决策的;

  8. 模型最终呈现的效果取决于训练数据,这会导致模型会出现各种各样的“偏见”;

InstructGPT

在这里插入图片描述

使用标注的数据集在比GPT-3小100倍的模型微调的效果甚至比GPT-3还要好一点(标注的数据信噪比更小)

GPT-3 虽然在各大 NLP 任务以及文本生成的能力上令人惊艳,但是他仍然还是会生成一些带有偏见的,不真实的,有害的造成负面社会影响的信息,而且很多时候,他并不按人类喜欢的表达方式去说话。在这个背景下,OpenAI 提出了一个概念“Alignment”,意思是模型输出与人类真实意图对齐,符合人类偏好。因此,为了让模型输出与用户意图更加 “align”,就有了 InstructGPT 这个工作。

在这里插入图片描述
InstructGPT总共干了三件事情:

1、将 prompt 和答案标出来,然后用最正常的 GPT 微调出一个模型

2、训练一个奖励模型去拟合人对模型中多个输出之间的排序,训练好之后将其放入到强化学习的框架中

3、通过强化学习模型调整 SFT 模型,使得输出的结果在排序上更符合人的喜好

GPT-4

GPT-4是一个大型多模态模型(Large Multimodal Model),能够接受图像和文本输入,并输出文本。 OpenAI首先发布了GPT-4的文本输入功能,图像输入功能敬请期待。
实验表明,GPT-4 在各种专业和学术考试中表现出了与人类水平相当的性能(human-level performance)。例如,它通过了模拟律师考试,且分数在应试者的前 10% 左右;相比之下,GPT-3.5 的得分在倒数 10% 左右。
GPT-4的训练稳定性是史无前例的,这得益于对抗性测试计划和来自于ChatGPT的经验教训,对 GPT-4 进行迭代调整,从而在真实性、可控性等方面取得了有史以来最好的结果。
在过去的两年里,OpenAI重建了整个深度学习堆栈,并与Azure共同设计了一台超级计算机以便于应付他们的工作负载。 将继续专注于可靠的扩展,进一步完善方法,以帮助其实现更强大的提前预测性能和规划未来的能力,这对安全至关重要。
OpenAI还开源了OpenAI Evals,这是他们的自动化评估AI模型性能的框架,任何人都可以提交他们模型的缺陷以帮助改进。
OpenAI 正在通过 ChatGPT 和 API(有候补名单)发布 GPT-4 的文本输入功能。图像输入功能方面,为了获得更广泛的可用性,OpenAI 正在与其他公司展开合作。
OpenAI 还在为机器学习模型设计的传统基准上评估了 GPT-4。GPT-4 大大优于现有的大型语言模型,以及大多数 SOTA 模型

GPT-4 新特性

  • 重点强化了创作能力,作曲,写小说,能够生成歌词、创意文本、实现风格变化等
  • 强大的识图能力,除本身带了对于图片 OCR 外,还有对位置和细节的理解能力。解析报表图片并进行汇总,直接回答图片中包含的提问内容等
  • 增加了对于长文本的处理能力:GPT-4 文字输入限制提升至 2.5 万字,ChatGPT 4096字
  • 回答准确性显著提高
  • 多了一种新的交互方式,就是对于图片的理解

基础能力

GPT-4 是一个多模态大模型,支持接受图像和文本输入,输出文本。
虽然没一步到位,把音视频也覆盖上,但如果能把图像与文本这两块做好,相信其应用潜力无限。
在团队进行的多个 GPT-4 与 GPT-3.5 的考试测试中,发现这两个模型间存在很微妙的差异。当任务的复杂性足够高时,GPT-4 比 GPT-3.5 更可靠、更有创意,并且能够处理更细微的指令。
在 GPT-4 发布之前,Open AI 团队花了 6 个月的时间 ,使用对抗性测试程序,以及从 ChatGPT 得到的经验教训,对 GPT-4 进行了迭代调整 ,进而在其真实性、可操控性等方面取得了有史以来最好的结果。

专业和学术表现
即便 GPT-4 在许多现实世界场景中能力不如人类,但在各种专业和学术基准上的表现,还是超过了人类的平均水平。这里有一个数据是,在律师模拟考中,GPT-4 的成绩排在应试生的前 10% 中,而此前发布的 GPT-3.5,则在倒数 10% 的行列。参加的多种不同领域的专业应试,能够排到多靠前的位置。

模型评估对比
在与当前机器学习模型进行基准评估对比后,GPT-4 大大优于现有的大型语言模型,以及大多数最先进的 (SOTA) 模型。

图像处理能力
GPT-4 本次最为令人看重的,还是它接受与处理图像的具体能力。

GPT-4可以接受文本和图像输入,并且这两个是可以掺杂着用,它允许你用跟之前文本一样的使用方式。

在官方报告中,团队提供了多个实际交互示例。一共有7个例子,总结起来,它可以识别搞笑图片,可以做复杂的物理化学之类的题目,可以做看图题,可以读论文,可以识别meme图片,总之,非常的强,可惜还不能开放使用。

GPT-4 技术报告
OpenAI 公开的技术报告中,不包含任何关于模型架构、硬件、算力等方面的更多信息。

下面是稍微具体一点的技术报告 https://cdn.openai.com/papers/gpt-4.pdf

与 GPT-3.5/ChatGPT 技术路线完全相同。GPT-4 is a Transformer-style model pre-trained to predict the next token in a document, using both publicly available data (such as internet data) and data licensed from third-party providers. The model was then fine-tuned using Reinforcement Learning from Human Feedback (RLHF). ;
用一系列 alignment 方案来确保 GPT-4 输出的安全性。The post-training alignment process results in improved performance on measures of factuality and adherence to desired behavior.
用千分之一的计算量去预测 GPT-4 在一定计算规模下的性能,不用花时间训练大模型去探索,即 Predictable Scaling。A core component of this project was developing infrastructure and optimization methods that behave predictably across a wide range of scales. This allowed us to accurately predict some aspects of GPT-4’s performance based on models trained with no more than 1/1,000th the compute of GPT-4.
很想看到 OpenAI 是如何做到 Multi-modal GPT 的,我大致是这么猜的:GPT-4 的训练方法应当与最近微软发布的 KOSMOS-1 相同 (Language Is Not All You Need: Aligning Perception with Language Models)。预训练阶段,输入任意顺序的文本和图像,图像经过 vision encoder (如 ViT,CLIP ViT)成 embedding,文本经过 text tokenizer 也成 embedding,组成 multimodal sentence embedding,训练目标仍然是 next-token generation。KOSMOS-1 数据从哪来,直接爬网页训,网页里有图有文字。别看 KOSMOS-1 性能比较拉,那是因为它参数量少,就 1.3 B。同样的方式放到 GPT-4 的参数规模,能成大事。
GPT-4参数量,没有找到相关描述。

训练过程
与之前的 GPT 模型一样,GPT-4 基础模型经过训练可以预测文档中的下一个单词。OpenAI 使用公开可用的数据(例如互联网数据)以及已获得许可的数据进行训练。训练数据是一个网络规模的数据语料库,包括数学问题的正确和错误解决方案、弱推理和强推理、自相矛盾和一致的陈述,以及各种各样的意识形态和想法。

因此,当提出问题时,基础模型的回应可能与用户的意图相去甚远。为了使其与用户意图保持一致,OpenAI 依然使用强化学习人类反馈 (RLHF) 来微调模型的行为。请注意,该模型的能力似乎主要来自于预训练过程 ——RLHF 不会提高考试成绩(甚至可能会降低它)。但是模型的控制来自后训练过程 —— 基础模型甚至需要及时的工程设计来回答问题。

GPT-4 的一大重点是建立了一个可预测扩展的深度学习栈。主要原因是,对于像 GPT-4 这样的大型训练,进行广泛的特定模型调整是不可行的。团队开发了基础设施和优化,在多种规模下都有可预测的行为。为了验证这种可扩展性,他们提前准确地预测了 GPT-4 在内部代码库(不属于训练集)上的最终损失,方法是通过使用相同的方法训练的模型进行推断,但使用的计算量为 1/10000。

局限性
尽管功能已经非常强大,但 GPT-4 仍与早期的 GPT 模型具有相似的局限性,其中最重要的一点是它仍然不完全可靠。OpenAI 表示,GPT-4 仍然会产生幻觉、生成错误答案,并出现推理错误。
目前,使用语言模型应谨慎审查输出内容,必要时使用与特定用例的需求相匹配的确切协议(例如人工审查、附加上下文或完全避免使用) 。
GPT-4 跟 GPT-3.5 类似,对训练数据中断后(2021 年 9 月)所发生的事情不太了解,也会犯一些在我们看来很简单的推理性错误,给用户提供不合理的建议,以及在生成的代码中引入安全漏洞。
总的来说,GPT-4 经过多次迭代和改进,在 OpenAI 的内部对抗性真实性评估中,GPT-4 的得分比最新的 GPT-3.5 模型高 40%

GPT-4 风险和应对措施
GPT-4 的训练在去年 8 月完成,剩下的时间都在进行微调提升,以及最重要的去除危险内容生成的工作。
OpenAI一直在对GPT-4进行迭代,以使其更加安全。
GPT-4与以前的模型一样具有风险,但由于其额外的能力,从而会导致新的风险。
邀请了50多名专家对模型进行对抗测试,以提高模型的安全性能。
GPT-4在RLHF训练过程中加入了额外的安全奖励信号,通过训练模型拒绝对此类内容的请求来减少有害的输出。
为了防止模型拒绝有效请求,收集了多样化的数据集,并在允许和不允许的类别上应用安全奖励信号。
缓解措施显著提高了GPT-4的安全性能,例如将模型对于不允许内容请求的响应率降低了82%。 对敏感请求(如医疗建议和自我伤害)的响应符合政策的频率提高了 29%。

开源项目:OpenAI Evals
为了让开发者能更好的评测 GPT-4 的优缺点,OpenAI 的技术团队还开源了 OpenAI Evals 项目,可用于自动评估 AI 模型性能的框架,以便用户能更专业的指导团队,进一步优化与改进模型。

该项目具有以下功能特性:

使用数据集生成提示;
衡量 OpenAI 模型提供的补全质量;
比较不同数据集和模型的性能。
GitHub:https://github.com/openai/evals

参考文献

GPT,GPT-2,GPT-3论文精读
https://github.com/Mooler0410/LLMsPracticalGuide
拆解追溯 GPT-3.5 各项能力的起源

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

速学数据结构 | 树 森林 二叉树 的概念详讲篇

🎬 鸽芷咕:个人主页 🔥 个人专栏:《速学数据结构》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活! 📋 前言 🌈hello! 各位宝子们大家好啊,关于线性表我们已经在前面更新完了…

c YUV 转 JPEG(准备霍夫曼编码)

先取yuv 文件中一个168的块,跑通全流程 理解与思路: 1.块分割 YUV 文件分为:YUV444 YUV 422 YUV420。444:就是:12个char 有4个Y,4个U,4个 U,422:8个char 中有4个Y &#x…

西科大微机原理实验四(定时器程序设计)

任务一、 按实验要求内容新建一个ASM41.ASM文件,使用masm命令生成obj文件并输入 上述源程序中使用了外部资源,该外部资源存在于文件 LIB_TIM.OBJ中,因此使用link命令将 ASM41.OBJ 和 LIB_TIM.OBJ 一起链接生成可执行文件 使用debug加载程序并进行调试 使用-g指令,回显如下…

技术分享 | 想做App测试就一定要了解的App结构

app 的结构包含了 APK 结构和 app 页面结构两个部分 APK结构 APK 是 Android Package 的缩写,其实就是 Android 的安装包。通过将 APK 文件直接传到 Android 模拟器或 Android 手机中执行即可安装。 APK 文件其实是 zip 格式,但后缀名被修改为 apk&…

Mysql进阶-InnoDB引擎事务原理及MVCC

事务原理 事务基础 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系 统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 事务的四大特性: 原子性(A…

抖去推--短视频剪辑、矩阵无人直播saas营销工具一站式开发

抖去推是一款短视频剪辑和矩阵无人直播SAAS营销工具一站式开发平台。它提供了以下功能和特点: 1. 短视频剪辑:抖去推提供了一系列的剪辑工具,包括自动剪辑、特效制作、配音配乐等,可以帮助用户轻松制作出高质量的短视频。 2. 矩阵…

Java实现一个简单的贪吃蛇小游戏

一. 准备工作 首先获取贪吃蛇小游戏所需要的头部、身体、食物以及贪吃蛇标题等图片。 然后,创建贪吃蛇游戏的Java项目命名为snake_game,并在这个项目里创建一个文件夹命名为images,将图片素材导入文件夹。 再在src文件下创建两个包&#xff0…

阿里云SLB的使用总结

一、什么是SLB 实现k8s的服务service的一种推荐方式,也是服务上云后,替代LVS的一个必选产品。 那么它有什么作用呢? 1、负载均衡,是它与生俱来的。可以配置多个服务器组:包括虚拟服务器组、默认服务器组、主备服务器…

鸿蒙原生应用/元服务开发-Stage模型能力接口(二)

ohos.app.ability.AbilityConstant (AbilityConstant)一、说明 AbilityConstant提供Ability相关的枚举,包括设置初次启动原因、上次退出原因、迁移结果、窗口类型等。本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口…

python读取csv文件

在Python中,你可以使用pandas库来读取CSV文件。以下是一个基本的例子: import pandas as pd# 读取CSV文件data pd.read_csv(filename.csv)# 显示前几行数据print(data.head()) 这里,filename.csv应该被替换为你的CSV文件的实际路径和名称。…

多合一iPhone 解锁工具:iMyFone LockWiper iOS

多合一iPhone 解锁工具 无需密码解锁 iPhone/iPad/iPod touch 上所有类型的屏幕锁定 在几分钟内解锁 iPhone Apple ID、Touch ID 和 Face ID 立即绕过 MDM 并删除 iPhone/iPad/iPod touch 上的 MDM 配置文件 支持所有 iOS 版本和设备,包括最新的 iOS 17 和 iPhone 1…

学生管理系统 数据库版

1.写SQL语句 创建school_java数据库 创建student数据表包含 id、name姓名、tel电话、sex性别字段 往student表中加10条数据 2.写Java代码(要求只用PreparedStatement对象,变化的值都用?代替) 查询student表中所有学生信息 student表中新增三…

2023年国赛高教杯数学建模A题定日镜场的优化设计解题全过程文档及程序

2023年国赛高教杯数学建模 A题 定日镜场的优化设计 原题再现 构建以新能源为主体的新型电力系统,是我国实现“碳达峰”“碳中和”目标的一项重要措施。塔式太阳能光热发电是一种低碳环保的新型清洁能源技术[1]。   定日镜是塔式太阳能光热发电站(以下…

Spring Security 6.x 系列(10)—— SecurityConfigurer 配置器及其分支实现源码分析(二)

一、前言 在本系列文章: Spring Security 6.x 系列(4)—— 基于过滤器链的源码分析(一) 中着重分析了Spring Security在Spring Boot自动配置、 DefaultSecurityFilterChain和FilterChainProxy 的构造过程。 Spring …

HarmonyOS应用程序框架——UIAbility实操

UIAbility概述 UIAbility是一种包含用户界面的应用组件,主要用于和用户进行交互。UIAbility也是系统调度的单元,为应用提供窗口在其中绘制界面。 每一个UIAbility实例,都对应于一个最近任务列表中的任务。 一个应用可以有一个UIAbility&…

定时器TIM HAL库+cubeMX(上)

定时器时钟源APB1 36MHz 一.基本定时器 1.基本框图 2.溢出时间计算 3.配置定时器步骤 TIM_HandleTypeDef g_timx_handle;/* 定时器中断初始化函数 */ void btim_timx_int_init(uint16_t arr, uint16_t psc) {g_timx_handle.Instance TIM6;g_timx_handle.Init.Prescaler p…

【C语言(十三)】

自定义类型:结构体 一、结构体类型的声明 1.1、结构体回顾 结构是⼀些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 1.1.1、结构的声明 例如描述⼀个学生: struct Stu {char name[20];//名字int age;//年龄c…

uniapp点击按钮,防止按钮多次点击多次触发事件【防抖操作】

图片、 一、在根目录下新建common文件并创建common.js文件,输入下面代码 // 防止处理多次点击function noMultipleClicks(methods, info) {// methods是需要点击后需要执行的函数, info是点击需要传的参数let that this;if (that.noClick) {// 第一次点…

【EI会议征稿中】2024年第四届人工智能、自动化与高性能计算国际会议(AIAHPC 2024)

2024年第四届人工智能、自动化与高性能计算国际会议(AIAHPC 2024) 2024 4th International Conference on Artificial Intelligence, Automation and High Performance Computing 2024第四届人工智能、自动化与高性能计算国际会议(AIAHPC 2024)将于20…

ubuntu下搜索文件的几种方法

一、whereis命令: whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。 whereis的命令格式: whereis [-bmsu] [BMS 目录名 -f ] 文…