社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  chatgpt

ChatGPT原理整理。

kaggle竞赛宝典 • 1 年前 • 192 次点击  
↑↑↑关注后"星标"kaggle竞赛宝典
  kaggle竞赛宝典  
作者:森本悟,无数据不智能

一文搞懂chatGPT原理

简介

目前关于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. 基于第一阶段的有监督微调模型和第二阶段的奖励模型,使用强化学习算法进一步训练大型语言模型。
img

理清演化路径

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

引用

  • 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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/157308
 
192 次点击