总结:一文搞懂chatGPT原理

news2024/11/23 9:20:07

目前关于chatGPT的资料过于零散,没有详尽所有知识点、系统概述的文章,因此,笔者作了这篇总结性文章。

  • 训练过程总览

  • 理清演化路径

  • 预训练(pretrain)

    • GPT-3概述

    • GPT 3模型的理念

    • GPT-3如何学习

    • 数据集

  • 指令微调 (Instruction Fine-Tuning,IFT)

  • 有监督微调 (Supervised Fine-tuning, SFT)

  • 人类反馈强化学习 (Reinforcement Learning From Human Feedback,RLHF)

  • 其他方法

    • 思维链 (Chain-of-thought,CoT)

  • 与chatGPT类似的工作

训练过程总览

OpenAI 使用了 175B参数的大型语言模型(LM) 和 6B参数的奖励模型 (RM)。除预训练之外,训练过程分为三步:

  1. 收集NLP各种任务的数据集,加上任务描述和提示组装成新的数据集,并使用这些数据微调预训练的大型语言模型。包括指令微调有监督微调

  2. 从上述数据集中采样,使用大型语言模型生成多个响应,手动对这些响应进行排名,并训练奖励模型 (RM) 以适应人类偏好。

  3. 基于第一阶段的有监督微调模型和第二阶段的奖励模型,使用强化学习算法进一步训练大型语言模型。

理清演化路径

GPT-3.5 参数量仍然为175B,总体进化树如下:

img

img

预训练(pretrain)

GPT-3概述

  • GPT-3是一种自回归模型,仅使用解码器,训练目标也是预测下一个单词(没有判断下一句任务)。

  • 最大的GPT-3模型有175B参数,是BERT模型大470倍(0.375B)

image-20230221144754842

GPT 3模型的理念

  • 不需要接新的模型结构:如bert用于NER任务一般接LSTM+CRF

  • 不需要微调

  • 一个模型解决NLP多种任务

  • NLP任务都可以用生成模型解决

  • 和人类一样,只需要看极少数量的样例就能学会

GPT-3如何学习

  • 零样本学习:提供任务描述、提示

  • 单样本学习:提供任务描述、一个样例、提示

  • 少样本学习:提供任务描述、几个样例、提示

数据集

模型发布时间参数量预训练数据量
BERT-large2019 年 3 月3.75 亿约3.3GB
GPT2018 年 6 月1.17 亿约 5GB
GPT-22019 年 2 月15 亿40GB
GPT-32020 年 5 月1,750 亿45TB
  • BERT-large:BooksCorpus 800M words、 English Wikipedia 2.5Bwords

  • GPT:WebText2, BooksCorpus、Wikipedia超过 5GB。

  • GPT-2:WebText2, BooksCorpus、Wikipedia总量达到了40GB。

  • GPT-3:**WebText2, BooksCorpus、Wikipedia、Common Crawl **等数据集45TB数据。

    image-20230221153905277

指令微调 (Instruction Fine-Tuning,IFT)

收集NLP各种任务的数据集,加上任务描述和提示组装成新的数据集。chatGPT使用到的数据集如下:

image-20230221113507381

相关的一些论文:

  • Unnatural Instructions (Honovich 等, '22): https://arxiv.org/abs/2212.09689

  • Super-natural instructions (Wang 等, '22): https://arxiv.org/abs/2204.07705

  • Self-Instruct (Wang 等, '22): https://arxiv.org/abs/2212.10560

  • T0 (Sanh 等, '22): https://arxiv.org/abs/2110.08207

  • Natural instructions 数据集 (Mishra 等, '22): https://arxiv.org/abs/2104.08773

  • FLAN LM (Wei 等, '22): https://arxiv.org/abs/2109.01652

  • OPT-IML (Iyer 等, '22): https://arxiv.org/abs/2212.12017

有监督微调 (Supervised Fine-tuning, SFT)

此步骤未为了防止遇到敏感话题时,回复【不知道】这种无意义的回答,以加入一些人工标注数据,增加回复安全性,百级别的数据集即可完成。

相关的一些论文:

  • Google 的 LaMDA:附录 A https://arxiv.org/abs/2201.08239

  • DeepMind 的 Sparrow: Sparrow :附录 F https://arxiv.org/abs/2209.14375

人类反馈强化学习 (Reinforcement Learning From Human Feedback,RLHF)

描述:

  • 策略 (policy) :一个接受提示并返回一系列文本 (或文本的概率分布) 的 LM。

  • 行动空间 (action space) :LM 的词表对应的所有词元 (一般在 50k 数量级) ,

  • 观察空间 (observation space) 是可能的输入词元序列,也比较大 (词汇量 ^ 输入标记的数量) 。

  • 奖励函数是偏好模型和策略转变约束 (Policy shift constraint) 的结合。

此过程分为两步

  1. 聚合问答数据并训练一个奖励模型 (Reward Model,RM)

  2. 用强化学习 (RL) 方式微调 LM

开源数据集:

Anthropic/hh-rlhf · Datasets at Hugging Face

OpenAI 使用的是用户提交的反馈。

image-20230221111329526

其他方法

这部分简单介绍一下和chatGPT使用的微调并列的一些方法

思维链 (Chain-of-thought,CoT)

如下图所示使用一些带有逐步推理的数据集进行微调

橙色是任务描述,粉色是问题和答案,蓝色是推理过程

思维链提示 (Wei 等, '22): https://arxiv.org/abs/2201.11903

与chatGPT类似的工作

  • Meta 的 BlenderBot: https://arxiv.org/abs/2208.03188

  • Google 的 LaMDA: https://arxiv.org/abs/2201.08239

  • DeepMind 的 Sparrow: https://arxiv.org/abs/2209.14375

  • Anthropic 的 Assistant: https://arxiv.org/abs/2204.05862

文章内容来自总结:一文搞懂chatGPT原理。

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

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

相关文章

八大排序之交换排序与计数排序

此篇更新完成后,八大排序已经全部写完,还请各位可以多多支持!🥰 八大排序之选择排序_冷兮雪的博客-CSDN博客 八大排序之插入排序和归并排序_冷兮雪的博客-CSDN博客 目录 交换排序的基本思想🍭 一、冒泡排序&#x1f…

JS文件断点续传的切割与合并

总结一下大文件分片上传和断点续传的问题。因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况。http的网络请求中本身就已经具备了分片上传功能,当传输的文件比较大时,http协议自动会将文件切片(…

基于html+css的图展示43

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

制冷暖通工业互联网平台建设

制冷暖通工业互联网平台建设需要遵循一定的流程,具体步骤如下: 需求分析:了解客户需求,包括业务流程、系统功能、界面设计等方面。 系统设计:基于需求分析,进行系统设计,包括系统结构、数据库设…

【细读Spring Boot源码】prepareContext之load

前言 启动过程中准备上下文中有一步加载在资源,下面看下详情 详情 调用点 private void prepareContext(DefaultBootstrapContext bootstrapContext, ConfigurableApplicationContext context,ConfigurableEnvironment environment, SpringApplicationRunListen…

大模型跨界研究:计算精神病学发现,大模型居然比人类更焦虑

夕小瑶科技说 原创作者 | 小戏、iven 纽约时报的记者凯文鲁斯(Kevin Roose)在 2 月份和必应的大模型 Sydney 聊了两个小时天,却惊讶的收到了这样一条回复“我是 Sydney,我爱上了你”。 鲁斯向 Sydney 讲了一些关于荣格“黑暗自我”…

python哲学

进入python编辑器模式下,输入import this 会打印python之禅(The Zen of Python) Beautiful is better than ugly. 优美胜于丑陋。 Explicit is better than implicit. 明了胜于晦涩。 Simple is better than complex. 简单胜过复杂。 Complex is better than co…

写给初学者的YOLO目标检测 概述

文章目录 什么是目标检测What is YOLO?为什么YOLO在目标检测领域如此流行?1. 速度快2. 高检测精度3. 更好的泛化性4. 开源 YOLO架构YOLO目标检测是如何工作的?残差块(Residual blocks)边界框回归(Bounding box regression)交并比…

项目中的统一异常处理

目录 1:异常处理 1.1:异常问题分析 1.2:统一异常处理实现 1.2.1:全局异常处理器 1.2.2:自定义异常类 1.2.3:统一响应前端异常信息封装类 1.2.4:通用的异常信息枚举类 1.2.5:…

Android Studio小白安装教程,以及第一个Android项目案例的调试运行

小白友好型教学: 本文从小白角度出发,手把手教你一步一步成功安装“Android Studio”,并结合案例,编写你的第一个手机APP到手机上运行。由于安装过程较长,建议大家跟着截图,注意细节,不然容易出…

改进YOLOv8 | Neck篇 | YOLOv8 应用轻量级通用上采样算子CARAFE | 《特征的内容感知重组》

特征上采样是现代卷积神经网络架构中的关键操作,例如特征金字塔。其设计对于密集预测任务,如目标检测和语义/实例分割至关重要。在本研究中,我们提出了一种称为内容感知特征重组(CARAFE)的通用、轻量级且高效的操作符,以实现这一目标。CARAFE具有以下几个优点:(1)大的…

Visual Studio 2019 C# 上位机入门(1):如何创建工程编写一个简单应用

Visual Studio 2019下载安装步骤可以看:https://blog.csdn.net/weixin_44788542/article/details/114271126 这里不赘述,默认电脑上已经安装好了。 1、打开安装好的Visual Studio后,选择创建新项目。 2、找到选择C#下面的Windows 窗体应用&…

【源码】Spring Cloud Gateway 是在哪里调用后端真实服务的?

前言 我们知道 Spring Cloud Gateway 最终一定会将请求路由到后端的真实服务上,那么你知道 Spring Cloud Gateway 是在哪里调用的后端服务吗? 源码之下无秘密,让我们一起从源码中寻找答案。 源码分析 上图是来自Spring Cloud Gateway 官网…

Apache Druid RCE漏洞复现(QVD-2023-9629)

0x01 产品简介 Apache Druid是一个高性能的实时大数据分析引擎,支持快速数据摄取、实时查询和数据可视化。它主要用于OLAP(在线分析处理)场景,能处理PB级别的数据。Druid具有高度可扩展、低延迟和高吞吐量的特点,广泛应…

快手智能处理与编码算法产品化之路

视频转码过程中涉及方方面面的视频图像算法,如何将算法有机地结合起来,打造成为行业领先的视频转码算法产品?通过多年的业务场景打磨和积累,快手音视频走出了一条自己的产品化之路。LiveVideoStackCon 2022北京站邀请到了快手视频…

生成式AI火爆全球,你是否已经做好了准备?

2023年,随着ChatGPT的火爆全球,生成式AI也引发了各界人士的广泛关注。一时间,从国际科技巨头到国内人工智能企业,几乎所有我们耳熟能详的科技公司,都纷纷杀入了生成式AI市场。 作为全球云计算技术的开创者和领导者&…

【python中的对象存储:堆?栈?】

堆空间和栈空间 堆空间和栈空间是计算机内存中的两个存储区域,主要的区别有以下几点: 分配方式:栈空间中的内存由编译器或解释器自动分配和释放,无需手动干预。堆空间中的内存则需要由程序员手动申请和释放。内存大小&#xff1…

招商基金数字化转型下的研发管理|发布会精彩回顾

在 4 月 20 日举行的《中国企业软件研发管理白皮书》发布会上,招商基金信息技术部副总监、研发中心主管刘志昆作了《招商基金数字化转型下的研发管理》主题演讲,从数字化转型背景、研发管理所遇到的挑战出发,讲述招商基金如何摸索出适合自身环…

Java多线程与锁

前文中,我们已经了解了什么是线程,线程间常用通信方式,线程池以及其相关特性,可以看出锁在多线程环境中充当着重要作用,不管是线程间的数据通信,还是线程间的等待和唤醒,都依赖于锁,…

《编码——隐匿在计算机软硬件背后的语言》精炼——第13-14章(二进制减法器——1位存储器)

“成功不是最终的,失败不是致命的,勇气才是最关键的。” - 温斯顿丘吉尔 文章目录 如何实现减法计算机进行减法运算的逻辑借位的代替机制二进制下的替代机制 减法的电路实现 反馈与触发器电铃触发器R-S触发器 电平触发的D型触发器 如何实现减法 计算机进…