草庐IT

chatGPT笔记

智聊对话机器人 2024-03-21 原文

文章目录


欢迎大家关注我的公众号:智聊对话机器人,我会定期分享技术观点、投资心得、生活随想等内容。

一、GPT之技术演进时间线

GPT从开始至今,其发展历程如下:

  1. 【Transformer模型】
    2017年6月,Google发布论文《Attention is all you need》​,首次提出Transformer模型,成为GPT发展的基础。 论文地址
  2. 【GPT模型】
    2018年6月,OpenAI 发布论文《Improving Language Understanding by Generative Pre-Training》(通过生成式预训练提升语言理解能力)​,首次提出GPT模型(Generative Pre-Training)。
  3. 【GPT2模型】
    2019年2月,OpenAI 发布论文《Language Models are Unsupervised Multitask Learners》(语言模型应该是一个无监督多任务学习者),GPT2更加侧重于 Zero-shot 设定下语言模型的能力。GPT-2使用了与 GPT-1相同的模型和架构,在 GPT-1的基础上引入任务相关信息作为输出预测的条件,将 GPT-1 中的条件概 率 p(output|input) 变为 p(output|input; task);并继续增大训练的数据规模 以及模型本身的参数量,最终在 Zero-shot 的设置下对多个任务都展示了巨大的潜力。这样的思想事实上是在传达只要模型足够大,学到的知识足够多,任何有监督任务都可以通过无监督的方式来完成,即任何任务都可以视作生成任务。
  4. 【GPT3模型】
    2020年5月,OpenAI 发布论文《Language Models are Few-Shot Learners》(语言模型应该是一个少量样本(few-shot)学习者)。GPT-3使用了与GPT-2相同的模型和架构。GPT-3最显著的特点就是大。大体现在两方面,一方面是模型本身规 模大,参数量众多,具有 96 层 Transformer Decoder Layer,每一层有 96 个 128 维的注意力头,单词嵌入的维度也达到了12288;另一方面是训练过程中使用到的数据集规模大,达到了45TB。在这样的模型规模与数据量的情况下,GPT-3 在多个任务上均展现出了非常优异的性能,延续 GPT-2将无监督模型应用到有监督任务的思想,GPT-3在Few-shot,One-shot 和 Zero-shot 等设置下的任务表现都得到了显著的提升。
  5. 【Instruction GPT模型】
    2022年2月底,OpenAI 发布论文《Training language models to follow instructions with human feedback》(使用人类反馈指令流来训练语言模型)​,公布Instruction GPT模型。
  6. 【ChatGPT模型】
    2022年11月30日,OpenAI推出ChatGPT模型,并提供试用,全网火爆。

二、chatGPT中的语言模型instructGPT跟传统语言LM模型最大不同点是什么?

目标不一样。传统语言模型主要是预测一句话中下一个词是什么。而instructGPT的目标是:follow the user’s instructions helpfully and safely

三、instructGPT跟GPT-3的网络结构是否一样

instructGPT跟GPT-3的网络结构是一样的,区别在于训练阶段的不同,instructGPT使用了标注数据进行fine-tune

四、GPT和BERT有啥区别

GPT 中训练的是单向语言模型,其实就是直接应用 Transformer Decoder;
Bert 中训练的是双向语言模型,应用了 Transformer Encoder 部分,不过在 Encoder 基础上还做了 Masked 操作;
BERT Transformer 使用双向 self-attention,而 GPT Transformer 使用受限制的 self-attention,其中每个 token 只能处理其左侧的上下文。

五、chatGPT的训练过程是怎样的?


六、GPT3在算数方面的能力

七、GPT相比于bert的优点是什么

GPT-3主要聚焦于更通用的NLP模型,解决当前BERT类模型的两个缺点:

  1. 对领域内有标签数据的过分依赖:虽然有了预训练+精调的两段式框架,但还是少不了一定量的领域标注数据,否则很难取得不错的效果,而标注数据的成本又是很高的。
  2. 对于领域数据分布的过拟合:在精调阶段,因为领域数据有限,模型只能拟合训练数据分布,如果数据较少的话就可能造成过拟合,致使模型的泛华能力下降,更加无法应用到其他领域。

因此GPT-3的主要目标是用更少的领域数据、且不经过精调步骤去解决问题。

八、元学习(meta-learning)是什么

对于一个少样本的任务来说,模型的初始化值非常重要,从一个好的初始化值作为起点,模型能够尽快收敛,使得到的结果非常快的逼近全局最优解。元学习的核心思想在于通过少量的数据寻找一个合适的初始化范围,使得模型能够在有限的数据集上快速拟合,并获得不错的效果。

九、chatGPT的优缺点

chatGPT有很强的归纳能力和泛化记忆能力。但是在推演和演绎方面,超大规模语言模型在符号推理、输出可控和可解释方面还较弱,并且容易犯事实性错误。
例如,你问刘德华的电影有哪些,但是chatGPT却返回一堆周星驰或者其他人的电影

十、调用openAI接口的代码示例

import os
import openai

openai.api_key = os.getenv("OPENAI_API_KEY")
# ------- 文本生成 ---------
prompt = """We’re releasing an API for accessing new AI models developed by OpenAI. Unlike most AI systems which are designed for one use-case, the API today provides a general-purpose “text in, text out” interface, allowing users to try it on virtually any English language task. You can now request access in order to integrate the API into your product, develop an entirely new application, or help us explore the strengths and limits of this technology."""

response = openai.Completion.create(model="davinci", prompt=prompt, stop="\n", temperature=0.9, max_tokens=100)

# ------- 其它应用 ---------
response = openai.Completion.create(
  engine="davinci",
  prompt="The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.\n\nHuman: Hello, who are you?\nAI: I am an AI created by OpenAI. How can I help you today?\nHuman: I'd like to cancel my subscription.\nAI:",
  temperature=0.9,
  max_tokens=150,
  top_p=1,
  frequency_penalty=0.0,
  presence_penalty=0.6,
  stop=["\n", " Human:", " AI:"]
)

print(response)

十一、chatGPT离完全的人类智能还有多少距离

人类大脑有860亿神经元、100-1000万亿联接,能处理的任务也远远超过GPT-3。如果一个联接就相当于有一个参数,那么粗略估计人脑可能可以通过100-1000万亿的模型参数来模拟,目前的chatGPT的1750亿参数看来,参数规模还需要再扩大571倍至5710倍。

十二、chatGPT的输入有长度限制,怎么办

AI分四个阶段来总结:比如这样一段121567词的《傲慢与偏见》原文:
先把原文总结成276个摘要(24796词),然后进一步压缩成25个摘要(3272词),再到4个摘要(475词)。
最终得到一段175词的摘要,长度只有原片段的千分之一:

十三、基于人类反馈的强化学习(Reinforcement Learning with Human Feedback,RLHF)

【奖励模型训练】 该阶段旨在获取拟合人类偏好的奖励模型。奖励模型以提示和回复作为输入,计算标量奖励值作为输出。奖励模型的训练过程通过拟合人类对于不同回复的倾向性实现。具体而言,首先基于在人类撰写数据上精 调的模型,针对同一提示采样多条不同回复。然后,将回复两两组合构成一 条奖励模型训练样本,由人类给出倾向性标签。最终,奖励模型通过每条样本中两个回复的奖励值之差计算倾向性概率拟合人类标签
【生成策略优化】 给定习得的奖励模型,ChatGPT/InstructGPT 的参数将被 视为一种策略,在强化学习的框架下进行训练。首先,当前策略根据输入的查询采样回复。然后,奖励模型针对回复的质量计算奖励,反馈回当前策略用以更新。值得注意的是,为防止上述过程的过度优化,损失函数同时引入了词级别的 KL 惩罚项。

十四、什么是LoRA训练

LoRA: Low-Rank Adaptation of Large Language Models 是微软研究员引入的一项新技术,主要用于处理大模型微调的问题。目前超过数十亿以上参数的具有强能力的大模型 (例如 GPT-3) 通常在为了适应其下游任务的微调中会呈现出巨大开销。LoRA 建议冻结预训练模型的权重并在每个 Transformer 块中注入可训练层 (秩-分解矩阵)。因为不需要为大多数模型权重计算梯度,所以大大减少了需要训练参数的数量并且降低了 GPU 的内存要求。研究人员发现,通过聚焦大模型的 Transformer 注意力块,使用 LoRA 进行的微调质量与全模型微调相当,同时速度更快且需要更少的计算。

十四、目前已有的大规模参数训练框架

目前,已经公布明确已经完成 千亿参数规模大模型训练的框架主要是 NVIDIA 开发的 Megatron-LM 、经 过微软深度定制开发的DeepSpeed、国产百度飞浆 PaddlePaddle 和华为昇思 MindSpore。大多数并行框架都支持 PyTorch 分布式训练,可以完成百亿参数规模的模型训练。

十五、开源项目

1. RLHF的开源实现

https://github.com/lucidrains/PaLM-rlhf-pytorch

2. 目前复现水平最接近chatGPT的开源模型是Vicuna

https://github.com/lm-sys/FastChat
Vicuna 在总分上达到了 ChatGPT 的 92%

下面是LLaMA、Alpaca、Vicuna几个模型的差别

3. 其他

ChatGPT的核心模块包括SFT、RM、RLHF三个,当前的很多工作主要集中在复现SFT模块,只有ColossalChat 目前复现了SFT+RM+RLHF整个流程
1.1. 算法工作

项目模块备注
LLaMA基础提供了一个pre-train的backbone
AlpacaSFT模块基于self-instruct技术,做了指令微调 instruction fine-tune
Alpaca-LoraSFT模块利用LoRa技术,大大减少了需要微调的参数量
VicunaSFT模块目前最接近chatGPT的模型
LMFlowSFT模块基于 70 亿参数的 LLaMA,只需 1 张 3090、耗时 5 小时,就可定制自己的GPT并完成网页端部署
ColossalChat提供了SFT+RM+RLHF整个流程

1.2. 数据集

项目备注
AlpacaDataCleaned对Alpaca提供的52k数据进行了进一步清理
Alpaca-CoT加入了思维链chain-of-thought数据
InstructionWildcolossalChat开放的数据集
shareGPT一个 ChatGPT 数据共享网站,用户会上传自己觉得有趣的 ChatGPT 回答。

1.3. 有限资源下的部署
llama.cpp
alpaca.cpp

欢迎大家关注我的公众号:智聊对话机器人,我会定期分享技术观点、投资心得、生活随想等内容。

参考文献

  • https://www.51cto.com/article/743197.html
  • https://wqw547243068.github.io/gpt#nanogpt
  • Training langeuage models to follow instructions with human feedback
  • https://www.inside.com.tw/article/30032-chatgpt-possible-4-steps-training
  • https://www.youtube.com/watch?v=e0aKI2GGZNg&t=1074s (李宏毅讲解chatGPT)
  • https://www.youtube.com/watch?v=DOG1L9lvsDY (李宏毅讲解GPT3)
  • https://www.zhihu.com/question/398114261
  • https://mp.weixin.qq.com/s/CwYb1uLnzrz7s9jXeqSynw (产生事实性错误“幻觉”的原因)
  • https://www.youtube.com/watch?v=t70Bl3w7bxY (强烈推荐李沐大神的youtube视频)
  • https://cloud.tencent.com/developer/article/1883747 (解决长文本输入的问题)
  • https://mp.weixin.qq.com/s/gq42DajNV0QvEZ_qg6iR4Q
  • https://github.com/sunlylorn/llm-pitfall-compass (孙林写的踩坑之旅)
  • https://huggingface.co/blog/zh/lora

待阅读

  • https://docs.cohere.ai/docs/prompt-engineering (prompt讲解比较好的文章)
  • http://jalammar.github.io/how-gpt3-works-visualizations-animations/ (GPT3讲解比较好的文章)
  • http://jalammar.github.io/illustrated-gpt2/ (讲解GPT2的文章)
  • https://hub.baai.ac.cn/view/23596 (独立人工智能开发者开源自己的ChatGPT训练算法实现)
  • https://mp.weixin.qq.com/s/2NZeK_HitLQsRtb9xp1jtQ
  • https://mp.weixin.qq.com/s/Vv45QCU_rGEeU8IHBrIBcQ
  • https://mp.weixin.qq.com/s/ZgZln_o6VJCrkjnvqcOlsA
  • https://mp.weixin.qq.com/s/ct2qXDXnaB5_9QfNkS_sKA
  • https://zhuanlan.zhihu.com/p/606478660
  • https://cloud.tencent.com/developer/article/2057536

有关chatGPT笔记的更多相关文章

  1. 亚特兰蒂斯的回声(中文版): chatGPT 的杰作 - 2

    英文版英文链接关注公众号在“亚特兰蒂斯的回声”中踏上一段难忘的冒险之旅,深入未知的海洋深处。足智多谋的考古学家AriaSeaborne偶然发现了一件古代神器,揭示了一张通往失落之城亚特兰蒂斯的隐藏地图。在她神秘的导师内森·兰登教授的指导和勇敢的冒险家亚历克斯·默瑟的帮助下,阿丽亚开始了一段危险的旅程,以揭开这座传说中城市的真相。他们的冒险之旅带领他们穿越险恶的大海、神秘的岛屿和充满陷阱和谜语的致命迷宫。随着Aria潜在的魔法能力的觉醒,她被睿智勇敢的QueenNeria的幻象所指引,她让她为即将到来的挑战做好准备。三人组揭开亚特兰蒂斯令人惊叹的隐藏文明,并了解到邪恶的巫师马拉卡勋爵试图利用其古

  2. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  3. Unity Shader 学习笔记(5)Shader变体、Shader属性定义技巧、自定义材质面板 - 2

    写在之前Shader变体、Shader属性定义技巧、自定义材质面板,这三个知识点任何一个单拿出来都是一套知识体系,不能一概而论,本文章目的在于将学习和实际工作中遇见的问题进行总结,类似于网络笔记之用,方便后续回顾查看,如有以偏概全、不祥不尽之处,还望海涵。1、Shader变体先看一段代码......Properties{ [KeywordEnum(on,off)]USL_USE_COL("IsUseColorMixTex?",int)=0 [Toggle(IS_RED_ON)]_IsRed("IsRed?",int)=0}......//中间省略,后续会有完整代码 #pragmamulti_c

  4. Tcl脚本入门笔记详解(一) - 2

    TCL脚本语言简介•TCL(ToolCommandLanguage)是一种解释执行的脚本语言(ScriptingLanguage),它提供了通用的编程能力:支持变量、过程和控制结构;同时TCL还拥有一个功能强大的固有的核心命令集。TCL经常被用于快速原型开发,脚本编程,GUI和测试等方面。•实际上包含了两个部分:一个语言和一个库。首先,Tcl是一种简单的脚本语言,主要使用于发布命令给一些互交程序如文本编辑器、调试器和shell。由于TCL的解释器是用C\C++语言的过程库实现的,因此在某种意义上我们又可以把TCL看作C库,这个库中有丰富的用于扩展TCL命令的C\C++过程和函数,所以,Tcl是

  5. 智能客服 | 浅谈人工智能聊天机器人ChatGPT - 2

    2022年底,OpenAI的预训练模型ChatGPT给人工智能领域的爱好者和研究人员留下了深刻的印象和启发,他展现的惊人能力将人工智能的研究和应用热度推向高潮,网上也充斥着和ChatGPT的各种聊天,他可以作诗、写小说、写代码、讨论疫情问题等。下面就是一些他的神回复:人命关天的坑: 写歌,留给词作者的机会不多了。。。 回答人类怎么样面对人工智能: 什么是ChatGPT?借用网上的一段介绍,ChatGPT是由人工智能研究实验室OpenAI在2022年11月30日发布的全新聊天机器人模型,一款人工智能技术驱动的自然语言处理工具。它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动

  6. 【ChatGPT】ChatGPT 的 N 种用法 - 2

    目录ChatGPT简介技术原理应用未来发展ChatGPT的10 种用法ChatGPT简介ChatGPT是一种基于深度学习的大型语言模型,由OpenAI公司开发。技术原理GPT是GenerativePre-trainedTransformer的缩写,意为生成式预训练变压器。它的技术原理是使用了一个基于注意力机制的变压器(Trans

  7. 「想体验ChatGPT中文聊天?」那快进来,你用不上算我输 - 2

    ♥️作者:白日参商🤵‍♂️个人主页:白日参商主页♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!!🎈🎈加油!加油!加油!加油🎈欢迎评论💬点赞👍🏻收藏📂加关注+!「想体验ChatGPT中文聊天?」那快进来,你用不上算我输项目场景:项目条件一、那就开始吧1、安装ChatGPT-Desktop2、OpenAPI设置二、使用实例恭喜你!!!配置成功了!!!API和URL都是博主免费提供给大家的!!!恭喜你!!!配置成功了!!!API和URL都是博主免费提供给大家的!!!🎈🎈加油!加油!加油!加油🎈欢迎评论💬点赞👍🏻收藏📂加关注+!项目场景:近几个月可以说ChatGPT是火得一

  8. 计算机网络笔记:TCP三次握手和四次挥手过程 - 2

    TCP是面向连接的协议,连接的建立和释放是每一次面向连接的通信中必不可少的过程。TCP连接的管理就是使连接的建立和释放都能正常地进行。三次握手TCP连接的建立—三次握手建立TCP连接①若主机A中运行了一个客户进程,当它需要主机B的服务时,就发起TCP连接请求,并在所发送的分段中用SYN=1表示连接请求,并产生一个随机发送序号x,如果连接成功,A将以x作为其发送序号的初始值:seq=x。主机B收到A的连接请求报文,就完成了第一次握手。客户端发送SYN=1表示连接请求客户端发送一个随机发送序号x,如果连接成功,A将以x作为其发送序号的初始值:seq=x②主机B如果同意建立连接,则向主机A发送确认报

  9. 半个月狂飙1000亿,ChatGPT概念股凭什么? - 2

    ChatGPT掀起了AI股历史上最疯狂的一轮市值狂飙。自春节后至今,ChatGPT概念股开始了暴走模式,短短半月时间,海天瑞声、开普云等ChatGPT概念股市值累计增加了近1400亿。如此的爆炸效应,得益于ChatGPT所展现出商业化落地的巨大潜力。要知道,在此之前,无论是十年AI投入超千亿的百度,还是困在硬件化里的AI四小龙,都在重复着AI商业化难落地的故事。ChatGPT的出现,让AI从生产力的赋能者直接成为一种创造生产力的工具。随着订阅模式的推出,ChatGPT已经成为第一个以AI技术为核心直接变现的消费者应用。本文持有以下核心观点:1、ChatGPT是AI技术迭代的受益者。过去受限技术

  10. 未来的趋势————以ChatGPT为标杆的AI对生活的影响是巨大的 - 2

    文章目录前言1.AI的发展历程2.我是如何接触到人工智能的概念和产品的3.对于ChatGPT的一点看法4.AI对大学毕业生的职业发展的利与弊5.对于AI的思考和问题前言随着ChatGPT的爆火,生成式AI,大模型的人工智能被越来越多的人注意到,同时他也带来了许多问题。本文将对几方面进行探讨。1.AI的发展历程远古时期在公元前第一个千禧年,中国,印度和希腊哲学家都提出了一些推理的研究理论,比如亚里士多德(Aristotle)进行了演绎推理三段论的完整分析,欧几里得(Euclid)所著Elements是一种形式推理的模型,MuḥammadibnMūsāal-Khwārizmī,发明了代数学,即我们

随机推荐