[学习笔记-AI基础篇]04_chatGPT原理和发展

发布于:2025-08-06 ⋅ 阅读:(17) ⋅ 点赞:(0)


在这里插入图片描述

深入理解ChatGPT:从原理到发展的学习笔记

最近深入学习了ChatGPT相关的知识,从它的发展脉络到核心原理,每一部分都让我觉得奇妙又深刻。这篇笔记就来梳理一下我的学习心得,希望能帮到同样对ChatGPT感兴趣的朋友。

一、ChatGPT是什么?

ChatGPT是一种基于GPT-3.5的聊天机器人模型。它的核心能力来源于GPT-3.5的语言生成能力,能与用户进行自然语言对话。简单来说,当我们向ChatGPT发送消息后,它会依据消息内容生成合适的回复。

这里要区分一下ChatGPT和GPT-3.5的关系:GPT-3.5是一个更大的自然语言处理模型,而ChatGPT则是借助GPT-3.5构建的聊天机器人,ChatGPT的对话功能完全依赖于GPT-3.5的语言生成能力。

不过目前,关于ChatGPT的论文还没有公布,所以我们对它原理的解析,主要是基于周边模型和技术发展脉络。

二、ChatGPT的发展脉络

ChatGPT的出现并非一蹴而就,而是经过了一系列技术的积累和迭代,让我们沿着时间线来看一看:

  • 2017年6月,Transformer横空出世,这为后续的模型发展奠定了重要基础。
  • 2018年6月,GPT诞生,参数量为1.1亿,其核心是基于Transformer Decoder的masked multi-head self-attention。
  • 2019年2月,GPT2发布,参数量提升到15亿,核心是融合了prompt learning,省去了微调步骤。
  • 2020年5月,GPT3登场,参数量高达1750亿,通过ICL(In-Context Learning)开启了prompt新范式。值得一提的是,2020年9月OpenAI已在内部秘密研究GPT3 + RLHF的组合,采用的策略优化算法为PPO。
  • 2021年7月,Codex出现,它是基于GPT3进行大量代码训练产生的模型,具备代码编写和代码推理能力,而ChatGPT直接继承了这一能力,所以ChatGPT也能轻松应对代码相关任务。
  • 2021年9月,Google发布FLAN大模型,基于指令微调技术Instruction Fine-Tuning(IFT)。Google发现基于GPT3做微调后的模型在zero-shot上的表现胜过不微调的GPT3,这引起了OpenAI的高度重视,此后OpenAI放弃了完全不微调的模型训练范式,转而加强Instruct Learning + RLHF。
  • 2021年10月,OpenAI内部发展出了GPT3.5,但未对外公开。
  • 2022年1月,Google提出思维链技术CoT(Chain of Thought),这一技术在提升模型推理能力上有重要作用。
  • 2022年3月,OpenAI发布instructGPT,核心是GPT3 + instruct tuning + RLHF + PPO。
  • 2022年4月,OpenAI将GPT3.5作为baseline,融合Codex + instructGPT的能力,不断迭代。
  • 2022年11月30日,OpenAI正式发布chatGPT,其核心是基于GPT3.5,融合了Codex + instruct tuning + RLHF + PPO的技术。
  • 2023年3月,OpenAI发布GPT4,增加了多模态能力,ChatGPT底层的baseline模型也升级到了GPT4。
  • 之后,OpenAI等公司又陆续发布了Sora、GPT-4o、o1等模型,国内的DeepSeek、阿里巴巴、百度等也发布了各自的大模型,推动着AI领域的快速发展。

GPT-4 VS o1(推理大模型)
Think针对于Post-Training的强化学习。
在这里插入图片描述

三、ChatGPT的核心原理

在了解ChatGPT原理之前,有一个问题值得思考:“模型越大、参数越多,模型的效果就越好吗?”答案是否定的。模型越大可能导致结果越专一,但这个结果未必是我们期望的,这就是大型语言模型的能力不一致问题,类似于机器学习中的“过拟合”——模型在训练集上表现好,在测试集上表现差。

原始的GPT-3.5就是非一致模型,虽然能基于互联网大量文本数据生成类人文本,但输出不一定符合人类期望。而ChatGPT为解决这一问题,采用了人类反馈来指导学习过程,具体技术就是强化学习(RLHF),它也是第一个将此技术用于实际场景的模型。

(一)什么是强化学习 阿尔法狗

铺垫:可以认为AI的独立分支,其他分支如CV 、NLP、 推荐。比这三者都难。

强化学习(Reinforcement Learning,RL)是一种机器学习方法,用于描述和解决智能体(Agent)在与环境的交互过程中,通过学习策略以达成回报最大化或实现特定目标的问题。其关键信息包括:是一种机器学习方法、关注智能体与环境之间的交互、目标是追求最大回报

**强化学习的架构是一个循环过程:**从当前状态St出发,智能体做出行为At后,环境会反馈奖励信号Rt和新的环境状态Ot,进而形成新的状态,智能体再做出新的行为,如此循环。
在这里插入图片描述

我们可以结合超级玛丽小游戏来理解强化学习的基本要素:

  • Agent(智能体):强化学习训练的主体,在超级玛丽中就是马里奥。
  • Environment(环境):整个游戏的大背景,包括马里奥、敌人、金币、草地板块等。
  • State(状态):当前环境和智能体所处的状态,会随着马里奥的移动、金币数目的变化等而变化。
  • Policy(策略):根据观测到的状态进行决策,控制智能体运动,在数学上一般定义为概率密度函数π( a | s ) = P(A = a | S = s )。
  • Reward(奖励):智能体在当前状态下采取特定行为后获得的反馈,比如吃到金币奖励+1,打赢游戏奖励+10000,碰到敌人奖励-10000等,强化学习的目标就是使奖励总和尽量高。
    在这里插入图片描述
    如何让AI实现⾃动打游戏?
    第⼀步: 通过强化学习(机器学习⽅法)学出Policy函数, 该步骤⽬的是⽤Policy函数来控制Agent.
    第⼆步: 获取当前状态为s1, 并将s1带⼊Policy函数来计算概率, 从概率结果中抽样得到a1, 同时环境⽣成
    下⼀状态s2, 并且给Agent⼀个奖励r1.
    第三步: 将新的状态s2带⼊Policy函数来计算概率, 抽取结果得到新的动作a2、状态s3、奖励r2.
    第四步: 循环2-3步骤, 直到打赢游戏或者game over, 这样我们就会得到⼀个游戏的trajectory(轨迹),
    这个轨迹是每⼀步的状态, 动作, 奖励.

(二)ChatGPT的强化学习步骤

从人类反馈中进行强化学习(RLHF),总体包括三个步骤:

  1. 有监督的调优(SFT模型):预训练的语言模型在少量已标注的数据上进行调优,以学习从给定的prompt列表生成输出的有监督的策略。

    • 数据收集:选择提示列表,标注人员按要求写下预期输出,数据来源包括标注人员或研究人员准备的,以及从OpenAI的API请求获取的,最终得到一个小而高质量的数据集。
    • 模型选择:选用GPT-3.5系列中的预训练模型,基线模型是text-davinci-003。
    • 不过由于数据量有限,SFT模型可能会输出非用户关注的文本,出现不一致问题。
  2. 训练奖励模型(RM):标注者对大量SFT模型输出进行投票,创建由比较数据组成的新数据集,在此数据集上训练奖励模型。

    • 工作原理:选择prompt列表,SFT模型为每个prompt生成多个输出,标注者将输出从最佳到最差排序,形成新的标签数据集(大小约为SFT模型数据集的10倍),用于训练RM模型。
    • 模型选择:RM模型是GPT-3的蒸馏版本(参数量6亿),目的是得到预测得分,其损失函数有特定的公式定义。
  3. 近端策略优化(PPO):RM模型用于进一步调优和改进SFT模型,PPO输出结果的是策略模式。

    • 工作原理:获取数据输入PPO模型得到输出结果,将结果输入RM奖励模型得到奖励分数,若分数低,利用PPO算法更新ChatGPT模型参数,不断循环更新。

其中步骤1只进行一次,步骤2和步骤3可以持续重复进行。

监督调优模型
在这里插入图片描述

⼯作原理:
第⼀步是收集数据, 以训练有监督的策略模型.
数据收集: 选择⼀个提示列表, 标注⼈员按要求写下预期的输出. 对于 ChatGPT, 使⽤了两种不同的 prompt 来源: ⼀些是直接使⽤标注⼈员或研究⼈员准备的, 另⼀些是从 OpenAI 的 API 请求(即从 GPT-3 ⽤户那⾥)获取的. 虽然整个过程缓慢且昂贵, 但最终得到的结果是⼀个相对较⼩、⾼质量的数据集, 可⽤于调优预训练的语⾔模型.
模型选择: ChatGPT 的开发⼈员选择了 GPT-3.5 系列中的预训练模型, ⽽不是对原始 GPT-3 模型进⾏调优. 使⽤的基线模型是最新版的 text-davinci-003(通过对程序代码调优的 GPT-3 模型)由于此步骤的数据量有限, 该过程获得的 SFT 模型可能会输出仍然并⾮⽤户关注的⽂本, 并且通常会出现不⼀致问题. 这⾥的问题是监督学习步骤具有⾼可扩展性成本.
为了克服这个问题, 使⽤的策略是让⼈⼯标注者对 SFT 模型的不同输出进⾏排序以创建 RM 模型, ⽽不是让⼈⼯标注者创建⼀个更⼤的精选数据集.

训练奖励模型
这⼀步的⽬标是直接从数据中学习⽬标函数. 该函数的⽬的是为 SFT 模型输出进⾏打分, 这代表这些输出对于⼈类来说可取程度有多⼤. 这强有⼒地反映了选定的⼈类标注者的具体偏好以及他们同意遵循的共同准则. 最后, 这个过程将从数据中得到模仿⼈类偏好的系统.

⼯作原理:
选择 prompt 列表, SFT 模型为每个 prompt ⽣成多个输出(4 到 9 之间的任意值),标注者将输出从最佳到最差排序. 结果是⼀个新的标签数据集, 该数据集的⼤⼩⼤约是⽤于 SFT 模型的精确数据集的 10 倍;
此新数据⽤于训练 RM 模型 . 该模型将 SFT 模型输出作为输⼊, 并按优先顺序对它们进⾏排序. 模型选择: RM模型是GPT-3的蒸馏版本(参数量为6亿), ⽬的是通过该训练模型得到⼀个预测值(得分), 模型损失函数为下图表示:

在这里插入图片描述
公式参数解析: x代表prompt原始输⼊, yw代表SFT模型输出的得分较⾼的结果, yl代表SFT模型输出得分较低的结果, rθ代表RM模型即GPT-3模型, σ代表sigmoid函数, K代表SFT 模型为每个 prompt ⽣成多个输出, 这⾥K个任选2个来模型训练.
在这里插入图片描述
讲人话就是:希望让得分较高和得分较低的差值越大越好
在这里插入图片描述

使⽤ PPO 模型微调 SFT 模型
这⼀步⾥强化学习被应⽤于通过优化 RM 模型来调优 SFT 模型. 所使⽤的特定算法称为近端策略优化(PPO, Proximal Policy Optimization), ⽽调优模型称为近端策略优化模型.
在这里插入图片描述

⼯作原理: (明确任务 - 模型是通过RL来更新)
第⼀步: 获取数据.
第⼆步: 将数据输⼊PPO模型 (这⾥直接也可以理解为chatGPT模型), 得到⼀个输出结果.
第三步: 将第⼆步得到的结果输⼊到RM奖励模型中, 然后得到⼀个奖励分数. 如果奖励分数⽐较低, 代表chatGPT模型输出结果不对, 此时需要利⽤PPO算法更新chatGPT模型参数.
第四步: 循环上述步骤, 不断更新chatGPT, RM模型.
在这里插入图片描述

四、ChatGPT的特点

(一)优点

  • 回答理性又全面,能做到多角度全方位回答。
  • 降低学习成本,用户可以快速获取问题答案。

(二)缺点

  • 不向中国区提供开放服务。
  • 对于部分任务,如“查询某语言系统关键字”等,可能会给出没有意义的答案。

通过对ChatGPT的学习,我对人工智能语言模型有了更深入的认识,其背后的技术原理和发展历程都充满了智慧和创新。未来,随着技术的不断进步,相信这些模型会给我们的生活和工作带来更多改变。


网站公告

今日签到

点亮在社区的每一天
去签到