大白话chatGPT & GPT的发展区别

chatGPT今年年初的时候是非常火爆的,现在也有很多相关的应用和插件。当然现在也有很多新的技术出现,比如autoGPT,它实际上就是嵌套chatGPT。所以这里笔者我希望通过通俗易懂的语言描述一下chatGPT的原理。当然这里笔者是根据自己看的知识进行快速的印象中的总结,如果有不对的地方,非常欢迎指正,也欢迎大家互相学习与交流。

从GPT名字理解chatGPT

chatGPT它是基于GPT3的。GPT也就是Generative Pre-training Transformer模型。从名字上来看,其实也可以知道GPT模型其实有三个核心点:
在这里插入图片描述

  • 一个是Generative生成式,也就是说GPT它其实是一个生成模型,而且这个生成模型它是基于NLP领域的,所以chatGPT就可以看成一个文字接龙的生成式模型(从外观上看,像前端的流式输出)。
  • 第二个是Pre-train预训练,也就是说GPT是一个基于预训练微调的模型,而且GPT是基于大语言模型(LLM)的,因为需要有足够多的数据才能保证更好的语义理解和上文理解。
  • 第三个是Trasformer,也就是说GPT模型都使用了Transformer的架构,这就意味着它们都有编码器和解码器来处理输入输出并且都基于多头自注意力机制来实现的,这样子可以使模型关注会话中的不同部分,从而来推断出会话本身的含义和上下文。因为句子中不同词的重要性是不一样的。除此之外,GPT的解码器利用了掩码来进一步构建训练的数据集,这样子其实就像挖词填空,更加有利于模型学习文字跟文字的关系,更有利于文字接龙的准确性。
    如果对Transformer不是很理解,可以看我的另外一篇博客《从前端角度快速理解Transformer》

chatGPT三步曲

因为chatGPT是基于GPT的嘛,所以它的原理其实跟GPT是有些类似的,但它引入评分反馈的训练机制来进行强化学习【人类反馈强化学习RLHF】。主要实现的流程也一样是三部曲:

  • 第 1 步:监督微调 (SFT) 模型,利用海量的问答式样本数据集对GPT模型的输出方向进行监督训练,引导GPT采用问答对话的形式进行内容输出。通过微调策略得到GPT-3.5模型。
  • 第 2 步:训练一个奖励模型(RM)。训练一个奖励模型对GPT-3.5模型的输出进行一个排序评分,就相当于一个老师,当给出一个问题和四个答案,老师负责按照人类的偏好给这些答案进行打分,将答案进行排序。所以这里的设计跟以往的模型不太一样,因为这里是对输出结果进行排序而不是取值或者取分布。【这里也是有监督数据集的】,基于对比的数据训练建立模型。
  • 第 3 步:利用强化学习最大化奖励。基于上面的两步,就可以拥有一个具备对话的GPT和一个能够按照人类偏好进行打分的奖励模型,因此到这里我们就可以利用强化学习来进行一步的自我训练,从而最大化第二步里面的评分。
    在这里插入图片描述
    通过上面的训练就可以得到最后的chatGPT模型。

GPT-1到GPT-4

GPT-1~GPT-4的相同点

GPT-1到GPT-4,包括chatGPT的结构其实都是大语言模型,都是基于Transformer的Decoder层,都秉承着不断堆叠Trasnformer的思想,通过不断替身训练的预料规模和质量,提升网络的参数量来完成进一步的迭代更新和性能优化,所以我们也可以看到GPT发展到现在它的参数量从以前GPT-1的1点多个亿的参数量到现在GPT-4的100万亿的参数量,增长速度我认为是堪比指数的😂。迭代速度也非常快。它们之间的区别主要在于它们的核心改进要点的不同(为什么是改进要点,因为它是继承发展的)。
在这里插入图片描述

GPT-1~GPT-4的区别

GPT-1——pre-training + fine-tune,自监督学习=无监督预训练+有监督微调

📎 论文:https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf
📎 代码:GitHub - karpathy/minGPT: A minimal PyTorch re-implementation of the OpenAI GPT (Generative Pretrained Transformer) training

首先,GPT-1出现的背景原因有两个:一个是大量且高质量的标注数据是难以获取的,而且标签label并不一定唯一,存在界限模糊的现象;另外一个是以往的NLP模型大多是领域专家,也就是说它很难泛化到其他任务中,这也是它基于固定任务有监督学习所导致的。
在这里插入图片描述

所以GPT-1为了改善上面所说的两个局限性,提出了一种半监督(后面也普遍称之为自监督)的方法,也就是现在没有标注的数据上无监督地训练一个预训练模型,再在特定的任务上利用少量标注数据上有监督地训练一个分辨的微调模型。通过无监督预训练和有监督微调的结合的生成预训练模式来提高语言模型的泛化性同时也解决无大量标注数据的情况。
在这里插入图片描述

  • 与BERT的比较:是否带有Mask的Attention(GPT只看上问),在同等参数条件下 效果不如Bert-Base
  • GPT-1中:Decoder部分采用Masked-Attention(有遮盖的注意力机制,每个词只能看到它的上文)Encoder部分采用的是普通Attention(每个词可以同时看到上下文)为什么只看到上文,其实也可以理解,因为GPT是一个文字接龙的模型。而且长远来看,Masked-Attention是push模型更好理解文字的重要手段,毕竟在现实中,我们更希望培养模型知上文补下文,而不是单纯地做完形填空。
    在这里插入图片描述

GPT-2——zero-shot,无监督学习,多任务学习

📎 论文:https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf
📎 代码:GitHub - openai/gpt-2: Code for the paper "Language Models are Unsupervised Multitask Learners"

与GPT-1相比,GPT-2主要面向的是多任务的场景。GPT-2去掉了GPT-1中有监督的微调fine-tune阶段,也就是去掉根据特定任务微调的策略,使模型成为完全的无监督模型,能更多的去执行多样性的任务。所以,GPT-2也就相当于无监督的预训练阶段+zero-shot的下游任务。

🤔 什么是zero-shot?
这个概念其实来源于元学习,而且一般提到zero-shot,我们都会跟one-shot,few-shot进行对比。
Zero-shot:只给出任务描述(description)和任务提示(prompt)
One-shot:给出任务描述,给出一个例子(example),给出任务提示
Few-shot:给出任务描述,给出若干个例子,给出任务提示

因此,GPT-2希望利用Zero-shot这种类型的数据,让模型自己去学习怎么做,做什么,从而训练一个通用的模型。从上面样本的构建也可以看出来,利用zero-shot构建的样本模板更加符合人的一个输入输出(日常表达)。但如果后期还是不做微调的话,很难有较高的精度。

GPT-2的局限性:
在这里插入图片描述

GPT-3——zero-shot+few-shot,海量参数

📎 论文:[2005.14165] Language Models are Few-Shot Learners
📎 代码:GitHub - openai/gpt-3: GPT-3: Language Models are Few-Shot Learners

与GPT-2相比,GPT-3同样沿用去除微调的策略,继续沿用zero-shot来训练一个通用模型的思路。同时,为了解决zero-shot带来的问题,GPT-3引入了few-shot,用少量的文本来提升模型的有效性。
在这里插入图片描述

GPT-4——多模态模型,海量参数

GPT-4的重点可以其实就是工程化的一个过程——模块化(充分利用小模型),安全化(做了相关的安全保护措施),通用化(多模态模型使其可以接收多样化的数据,在更多的领域得以应用)。

GPT-4 的重点是提供更强大的功能和更有效的资源使用。它不是依赖大型模型,而是经过优化以充分利用较小的模型。通过足够的优化,小模型可以跟上甚至超越最大模型。此外,较小模型的实施允许创建更具成本效益和环境友好的解决方案。

而且因为GPT-3的泄漏问题,GPT-4其实也做了相应的措施。在内部评估中,与GPT-3.5相比,GPT-4对不允许内容做出回应的可能性降低82%,给出事实性回应的可能性高40%。

在这里插入图片描述

相关参考文献积推荐阅读的文献

<think>嗯,用户之前问了开源的BPMS推荐,现在又转向LangChain,可能需要解释这两个问题之间的联系,或者用户可能正在研究自动化流程中的自然语言处理部分。 首先,我需要确认用户对LangChain的了解程度。用户要求用“大白话”解释,所以可能对技术术语不太熟悉,或者希望得到一个直观的理解。之前的回答结构清晰,用户可能也期望类似的格式,比如分点说明、例子等。 接下来,我得回忆LangChain的基本概念。LangChain是一个用于构建基于大型语言模型(如GPT)的应用的框架。用户可能听说过ChatGPT,但不知道如何将其应用到自己的项目中,或者如何扩展其功能。这时候需要将LangChain比喻成“中间人”或“工具包”,帮助连接不同组件。 用户可能的需求是希望利用AI模型处理更复杂的任务,比如结合数据库、搜索或自定义数据。需要解释LangChain如何简化这些集成,比如通过链式调用、记忆功能等。可能需要用日常例子,比如客服机器人自动查订单,来说明LangChain的作用。 还要注意避免技术术语,比如“向量数据库”可以简化为“资料库”或者“数据库”,用“记住对话历史”代替“记忆机制”。同时,可能需要对比没有LangChain的情况,突出其优势,比如省去重复开发的时间。 另外,用户可能关心实际应用场景,比如企业内部的数据处理、自动化流程中的自然语言交互,或者是否需要编程知识。这时候需要说明LangChain适合开发者使用,但降低了集成复杂度。 最后,确保回答结构清晰,分点解释,可能用比喻和例子让用户更容易理解。同时,参考之前的回答风格,使用标题、核心功能、例子和总结,保持一致性。</think>好的!用大白话解释 **LangChain**: --- ### 一句话总结: **LangChain 是一个“搭积木工具箱”,帮你把 ChatGPT 这类大语言模型(AI大脑)和其他工具(数据库、搜索引擎、文件等)连起来,解决更复杂的任务。** --- ### 类比: 想象你有一个很聪明的助手(比如 ChatGPT),但它只会回答自己学过的知识。如果让它帮你做实际工作,比如: - **查公司内部数据**(比如订单记录) - **联网搜最新信息**(比如股票价格) - **操作其他软件**(比如发邮件) 这助手就懵了——因为它只会“动嘴”,不会“动手”。**LangChain 就是教这个助手“动手干活”的中间人**,告诉它什么时候该调用什么工具,再把结果拼起来给你。 --- ### 核心功能: 1. **连接器** - 把 AI 和你的工具连起来,比如:数据库、Excel、谷歌搜索、代码解释器等。 - *例子*:让 AI 先查数据库里的订单号,再根据订单号写一封催款邮件。 2. **分步骤处理任务** - 复杂任务拆成多步,让 AI 一步步思考(比如先查资料,再总结结论)。 - *例子*:用户问“公司去年利润多少?比前年增长了吗?”,AI 会先查财务数据,再对比计算,最后用大白话解释。 3. **记忆功能** - 让 AI 记住之前的对话或操作记录,避免重复劳动。 - *例子*:客服机器人记得你上周的投诉记录,不用从头解释。 4. **模板化流程** - 把常用任务做成“流水线”,一键复用。 - *例子*:自动生成周报的模板——先汇总本周数据,再分析问题,最后写建议。 --- ### 典型场景: - **企业客服机器人**:自动查订单、退换货政策,甚至调用内部系统处理请求。 - **个人知识助手**:把你的笔记、论文丢给它,让它帮你总结、回答问题。 - **数据分析**:让 AI 从Excel里提取数据,生成图表和分析报告。 --- ### 不用 LangChain 会怎样? - 需要自己写代码连接 AI 和其他工具,相当于每次都要“重新造轮子”。 - LangChain 把这些常见需求打包好了,开发者直接“拼积木”就行。 --- ### 总结: **LangChain = AI 大脑(如 ChatGPT)的“手和脚”** ——让 AI 不仅能聊天,还能真正帮你干活。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaobai_Ry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值