一文搞懂 chatGPT 原理

2023-12-04

目前关于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类似的工作

  • 引用

资料1
在这里插入图片描述

资料2
在这里插入图片描述

训练过程总览

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

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

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

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

在这里插入图片描述

理清演化路径

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

图片

img

图片

预训练(pretrain)

GPT-3概述

图片

图片

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

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

图片

GPT 3模型的理念

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

  • 不需要微调

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

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

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

GPT-3如何学习

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

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

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

图片

数据集

模型 发布时间 参数量 预训练数据量
BERT-large 2019 年 3 月 3.75 亿 约3.3GB
GPT 2018 年 6 月 1.17 亿 约 5GB
GPT-2 2019 年 2 月 15 亿 40GB
GPT-3 2020 年 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数据。

    图片

指令微调 (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 使用的是用户提交的反馈。

图片

其他方法

这部分简单介绍一下和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

引用

  • TRANSFORMER MODELS: AN INTRODUCTION AND CATALOG

  • WebGPT: Browser-assisted question-answering with human feedback

  • Training language models to follow instructions with human feedback

  • https://mp.weixin.qq.com/s/b0AI01-pUnXVWPPXix-hew

  • https://openai.com/blog/chatgpt/

  • https://mp.weixin.qq.com/s/eYmssaPFODjC7xwh1jHydQ

  • https://mp.weixin.qq.com/s/mXViN_GB9VC1WrXP1Q1iug

  • https://mp.weixin.qq.com/s/y9Jy9AyAyTCgCOKyMgTo3w

  • https://zhuanlan.zhihu.com/p/595891945

  • https://www.hpc-ai.tech/blog/colossal-ai-chatgpt

  • https://yaofu.notion.site/GPT-3-5-360081d91ec245f29029d37b54573756

  • https://arxiv.org/pdf/1706.03762.pdf

  • https://arxiv.org/pdf/2005.14165.pdf

  • https://arxiv.org/pdf/1810.04805.pdf

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一文搞懂 chatGPT 原理 的相关文章

随机推荐

  • 字符串的旋转

    字符串的旋转 左旋 逆时针 示例 abcd gt bcda 右旋 顺时针 示例 abcd gt dabc 例 输入若干个字符串 1 长度 1000 右旋转串后的n 长度 n 长度 个字符转移到字符串的首部 题干 输入若干个字符串 1 长度
  • c语言练习13周(1~5)

    输入任意整数n求以下公式和的平方根 读取一系列的整数 X 对于每个 X 输出一个 1 2 X 的序列 编写double fun int a M M 函数 返回二维数组周边元素的平均值 M为定义好的符号常量 编写double fun int
  • 从0到字节跳动30W年薪,我在测试行业“混”的第5个年头····

    一些碎碎念 什么都做了 和什么都没做其实是一样的 走出 瞎忙活 的安乐窝 才是避开弯路的最佳路径 希望我的经历能帮助到有需要的朋友 在测试行业已经混了5个年头了 以前经常听到开发对我说 天天的点点点有意思没 我的职业生涯开始和大多数测试人一
  • 【C++】string模拟

    string讲解 C String类 CSDN博客 gt https blog csdn net 2301 77649794 article details 134625480 spm 1001 2014 3001 5502 基本框架 pr
  • 避免20种常见Selenium自动化测试异常,让你的测试更加稳定和可靠!

    常见的Selenium异常 以下是所有Selenium WebDriver代码中可能发生的一些常见Selenium异常 1 ElementClickInterceptedException 由于以某种方式隐藏了接收到click命令的元素 因
  • 数据接口测试工具 Postman 介绍!

    此文介绍好用的数据接口测试工具 Postman 能帮助您方便 快速 统一地管理项目中使用以及测试的数据接口 1 Postman 简介 Postman 一款非常流行的 API 调试工具 其实 开发人员用的更多 因为测试人员做接口测试会有更多选
  • 2023测试工程师核心软技能「情绪管理」

    大家好呀 我是小码哥 我之前经常提到一句话 大多数时候所谓的 技术之玻璃天花板 其实只是缺乏软技能而已 所以粉丝朋友们 我们除了需要关注技术 更需要注重软技能的提高 关于软技能相关的文章 之前写过学习方法 职业规划 时间管理 项目管理 团队
  • java spring cloud 企业电子招标采购系统源码:营造全面规范安全的电子招投标环境,促进招投标市场健康可持续发展

    功能描述 1 门户管理 所有用户可在门户页面查看所有的公告信息及相关的通知信息 主要板块包含 招标公告 非招标公告 系统通知 政策法规 2 立项管理 企业用户可对需要采购的项目进行立项申请 并提交审批 查看所有的立项信息 主要功能包含 招标
  • Jmeter测试移动接口性能 —— 压测

    一般的公司都想知道自己产品的性能瓶颈和以及提升性能 以期大流量来了还撑得住 其实性能测试很难 难点在你不知道性能要达到怎样的需求 难点在于你没有实际的环境场景给你测试 总不能给线上环境你测试吧 难点在于找性能瓶颈 即便找出来了 调优也是一件
  • 快速提升测试技术:必备技能大揭秘!

    很多小伙伴在成功入职后 进入测试开发发展后 都会进入一个瓶颈过渡期 当然能够自己意识到这个问题说明还来得及 那么作为测试开发人员 如何走出舒适区 需要学习和掌握那些内容 从而实现自己的最终目标呢 今天我们就来说一说 在职场中如何不断的提升自
  • 从容应对:如何精准分析测试风险并制定有效策略?

    软件测试 是一项高风险的工作 它是不可避免的 总是存在的 作为一名测试管理人员必须在平时的工作中 分析这些风险的类别 并且想出对策尽最大程度的降低这些风险 01 软件需求的风险 主要表现在以下的几个方面 需求变更风险 在项目的后期用户总是不
  • 夯实c基础

    夯实c基础 区别 图一的交换 交换的是地址而不是两数 无法实现两数的交换 题干 以下程序的输出结果为 c void fun int a int b int c c a b void main int c 6 fun 3 5 c printf
  • 测试人员为什么要去了解业务架构和技术架构?

    问题 在入职公司不久 我参加老员工再给新来的员工和管培生宣讲产品的业务 功能 直接拿着功能清单和实际页面在讲解 等把产品功能讲完了 我问了一下实习生和管培生怎么样 他们都说功能讲的太多 太乱 不清楚讲解产品的核心业务逻辑及操作流程 后来发现
  • UI自动化测试的正确姿势 —— Airtest设备连接&API详解第一篇

    一 背景 Airtest作为一款优秀的自动化测试工具 有着强大的API功能 处理日常自动化测试过程中需要的各类操作 今天就给大家逐一介绍关于设备连接和常用API部分 结合自动化测试中的各类需求 看看如何通过使用Airtest来快速实现 二
  • 7个简单技巧,让你从容应对压力面试!

    01 什么是压力面试 压力面试是指有意制造紧张 以了解求职者将如何面对工作压力的一种面试形式 事实上 压力面试不是单独存在的一类面试 往往是穿插在面试过程中 面试人通过提出不礼貌 冒犯的问题 或者用怀疑 尖锐 挑衅的语气发问 使应聘者感到不
  • 商城免费搭建之java商城 鸿鹄云商 B2B2C产品概述

    B2B2C平台 以传统电商行业为基石 鸿鹄云商支持 商家入驻 平台自营 多运营模式 积极打造 全新市场 全新 模式 企业级B2B2C电商平台 致力干助力各行 互联网创业腾飞并获取更多的收益 从消费者出发 助力企业构建完整 电商交易生态 整合
  • 【涨薪技术】深入接口测试之Mock技术

    01 为什么要用Mock 服务端与客户端约定了接口 但服务端还没有完成开发时 客户端一般由如下处理方式 1 在程序中写模拟数据 程序中增加垃圾代码 后期还要删除 可能对代码造成影响 模拟异步请求不方便 服务端接口开发完成后 需要重新书写网络
  • OBC、DCDC自动化测试解决方案!

    OBC 车载充电机 和DCDC 直流 直流变换器 是电动汽车的核心部件 DCDC和OBC的功能质量对于整车的性能和安全性至关重要 在OBC和DCDC 以及整车开发测试过程中 需要对OBC和DCDC进行功能和性能方面进行全面的测试 针对OBC
  • 鸿鹄工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统项目背景

    鸿鹄工程项目管理系统 Spring Cloud Spring Boot Mybatis Vue ElementUI 前后端分离构建工程项目管理系统 1 项目背景 一 随着公司的快速发展 企业人员和经营规模不断壮大 为了提高工程管理效率 减轻
  • 一文搞懂 chatGPT 原理

    目前关于chatGPT的资料过于零散 没有详尽所有知识点 系统概述的文章 因此 笔者作了这篇总结性文章 训练过程总览 理清演化路径 预训练 pretrain GPT 3概述 GPT 3模型的理念 GPT 3如何学习 数据集 指令微调 Ins