State of ChatGPT ---- ChatGPT的技术综述
声明:该文总结自AI菩萨Andrej Karpathy在youtube发布的演讲视频。
原视频连接:State of GPT | BRK216HFS
基础知识:
Transformer原文带读与代码实现
https://blog.csdn.net/m0_62716099/article/details/141289541?spm=1001.2014.3001.5501
How to train your (Chat)GPT Assistant?

四个主要阶段:预训练(Pretraining)、监督微调(Supervised Finetuning)、奖励建模(Reward Modeling)、强化学习(Reinforcement Learning)。.
四个阶段按照先后顺序进行。Pretraining是99%的计算发生的地方,可能花费数月的时间进行训练;其余三个阶段都属于Finetuning,花费的算力与时间都较小。
Pretraining
在训练之前,我们首先需要获取训练所需要的数据。混合多种来源的数据(已有数据集、Github、维基百科...)按照一定的算法进行采样等数据处理,形成了GPT的数据集。
在训练之前,还有一个重要的步骤,即为Tokenization(词元化),目的在于将所有的文本变换成整数的列表。词元的划分方式有所不同,GPT采用的是一种subword的方式。

在Pretraining阶段,我们一般会发生哪些步骤呢?
这里其实考验的就是Transformer的知识点了。因为之前已经讲过,我在这里就不赘述。如果不了解的同学可以去看一下我之前发的博客,里面也给了一些老师的视频链接。这是基础。
那么我们就是在Transformer的基础上训练一个模型。将我们(B,T)的词元输入到Transformer中并进行训练。如图所示 B=4, T=10。当然实际的长度会长的多。
总而言之,模型的输入是一长串的上下文数字序列,输出的是预测的下一个token。并行训练计算并不断地调整权重。

Supervised Finetuning
在经过漫长的预训练过程后,我们得到了一个强大的,能够进行广泛表达的模型。接下来我们就需要通过一些有监督的小型数据集进行微调,以至于让大模型能够更好的帮助进行下游任务。(GPT1)
预训练模型能够通过提示完成任务。例如在这个例子中,我们存在一些段落,然后提供一些QA,QA,QA,这就也被称为Few-show prompt,然后我们完成Q,GPT在补充文档的过程中帮助我们回答了A的答案。这就是基于模型的提示工程的示例。
然后,Karpathy说了,目前最好用的Base Model 可能是Leta的LLaMA系列,虽然其参数量不大,但是其训练的数据更好。有更多的词元。

但是,总而言之,Base models不是真正意义上的助手,其只是帮助我们预测下一个Token是什么,并完成它目前认为的文档。
因此我们进入了Supervised Finetuning阶段,在这个阶段,我们需要获取的是少量但是高质量的数据集(Prompt,Response...)。我们依然要进行语言建模并进行训练,得到一个SFT模型。这样我们就得到了真正的助手,并且在某种程度上可以发挥作用。

Reward Modeling && Reinforcement learning
微调过后,我们就可以进入基于人类反馈的强化学习(reinforcement learning from human feedback)了。其包括Reward modeling && reinforcement learning。
在reward modeling过程中,我们需要把数据收集转换成比较的形式。

在训练的过程中,我们的数据集大概是如上的样式,我们生成了3段一摸一样的的提示词,然后利用Fine tuning中训练的SFT模型生成结果。生成结果后,我们通过人工的判断进行打分。这样我们就得到了自己的数据集。

我们把提示词和生成的回答以及打分都进行词元化,并将reward作为预测的结果进行训练。这样我们就可以让模型自己判断生成结果的好坏,并要求输出的结果必须远高于其他的结果。
但是在完成了奖励模型后,可能是由于在实际应用中发现奖励模型的效果欠佳,所以人们逐渐探索出强化学习的道路,并发现奖励模型在强化模型中应用效果非常好。因此逐渐对奖励模型进行强化学习。

这里不得不提一嘴,关于Finetuning后面的部分,我个人其实也不是很了解技术层面。因此若有问题,还是欢迎大家提出批评 :)
接下来我们就利用奖励模型得到的评分,进行强化学习。具体思路大概如下:评分越高,我生成completion中的token概率就会越高,反而就会越低。这样能够提升我们生成高质量回答的概率。
最后我们就可以获得一个可以部署的模型(RHLF模型)。当然市面上目前有的大多数模型是Base Model, SFT Model 与 RHLF Model。
RHLF对于专业知识的效果更好,但是会失去一些熵,这就意味着,base model的生成多样性可能是更好的。
Applications

人们在应用的过程中发现,尤其是有关于需要推理的问题,模型很少能够完成复杂的问题。这并不是模型能力不够,而是复杂的推理过程可能无法在一个token中展现出来。因此用户们尝试着让模型对任务步骤进行分解,分成多个阶段进行处理,这样可以大大提升处理任务的成功率。这种方法也被称为chain of thought。

让模型使用工具

利用记忆帮助完成任务。

强制约束LLM的输出

更改模型的权重。
以上就是关于内容的总结。欢迎大家交流讨论~~~
相关文章:
State of ChatGPT ---- ChatGPT的技术综述
声明:该文总结自AI菩萨Andrej Karpathy在youtube发布的演讲视频。 原视频连接:State of GPT | BRK216HFS 基础知识: Transformer原文带读与代码实现https://blog.csdn.net/m0_62716099/article/details/141289541?spm1001.2014.3001.5501 H…...
构建高效新闻推荐系统:Spring Boot的力量
1系统概述 1.1 研究背景 如今互联网高速发展,网络遍布全球,通过互联网发布的消息能快而方便的传播到世界每个角落,并且互联网上能传播的信息也很广,比如文字、图片、声音、视频等。从而,这种种好处使得互联网成了信息传…...
如何使用ipopt进行非线性约束求目标函数最小值(NLP非线性规划)内点法(inner point method)
非线性规划,一般用matlab调用cplex和gurobi了,但这两个一般用于线性规划和二次规划 线性规划LP,二次规划(quadratic programming),如果要求更一般的非线性规划IPOT是个很好的选择,求解器很多&a…...
【Unity学习笔记】解决疑似升级Win11或使用Unity6导致Unity旧版本无法打开的问题
【Unity学习笔记】解决疑似升级Win11或使用Unity6导致Unity旧版本无法打开的问题 一句话省流: 确保项目地址没有任何中文,重新申请个许可证,然后该咋就咋,完事。 ——————————————————————————————…...
回归分析在数据挖掘中的应用简析
一、引言 在数据驱动的时代,数据挖掘技术已成为从海量数据中提取有价值信息的关键工具。 回归分析,作为一种经典的统计学习方法,不仅在理论研究上有着深厚的基础,而且在实际 应用中也展现出强大的功能。 二、回归分析基础 2.1 回…...
【Node.js】worker_threads 多线程
Node.js 中的 worker_threads 模块 worker_threads 模块是 Node.js 中用于创建多线程处理的工具。 尽管 JavaScript 是单线程的,但有时候在处理计算密集型任务或长时间运行的操作时,单线程的运行会导致主线程被阻塞,影响服务器性能。 为了…...
贪心算法c++
贪心算法C概述 一、贪心算法的基本概念 贪心算法(Greedy Algorithm),又名贪婪法,是一种解决优化问题的常用算法。其基本思想是在问题的每个决策阶段,都选择当前看起来最优的选择,即贪心地做出局部最优的决…...
【STM32】 TCP/IP通信协议(3)--LwIP网络接口
LwIP协议栈支持多种不同的网络接口(网卡),由于网卡是直接跟硬件平台打交道,硬件不同则处理也是不同。那Iwip如何兼容这些不同的网卡呢? LwIP提供统一的接口,底层函数需要用户自行完成,例如网卡的…...
15分钟学 Python 第39天:Python 爬虫入门(五)
Day 39:Python 爬虫入门数据存储概述 在进行网页爬虫时,抓取到的数据需要存储以供后续分析和使用。常见的存储方式包括但不限于: 文件存储(如文本文件、CSV、JSON)数据库存储(如SQLite、MySQL、MongoDB&a…...
使用Pytorch构建自定义层并在模型中使用
使用Pytorch构建自定义层并在模型中使用 继承自nn.Module类,自定义名称为NoisyLinear的线性层,并在新模型定义过程中使用该自定义层。完整代码可以在jupyter nbviewer中在线访问。 import torch import torch.nn as nn from torch.utils.data import T…...
学习记录:js算法(五十六):从前序与中序遍历序列构造二叉树
文章目录 从前序与中序遍历序列构造二叉树我的思路网上思路 总结 从前序与中序遍历序列构造二叉树 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示…...
qt使用QDomDocument读写xml文件
在使用QDomDocument读写xml之前需要在工程文件添加: QT xml 1.生成xml文件 void createXml(QString xmlName) {QFile file(xmlName);if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate |QIODevice::Text))return false;QDomDocument doc;QDomProcessin…...
Oracle架构之表空间详解
文章目录 1 表空间介绍1.1 简介1.2 表空间分类1.2.1 SYSTEM 表空间1.2.2 SYSAUX 表空间1.2.3 UNDO 表空间1.2.4 USERS 表空间 1.3 表空间字典与本地管理1.3.1 字典管理表空间(Dictionary Management Tablespace,DMT)1.3.2 本地管理方式的表空…...
springboot整合seata
一、准备 docker部署seata-server 1.5.2参考:docker安装各个组件的命令 二、springboot集成seata 2.1 引入依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-seata</artifactId>&…...
鸿蒙开发(NEXT/API 12)【二次向用户申请授权】程序访问控制
当应用通过[requestPermissionsFromUser()]拉起弹框[请求用户授权]时,用户拒绝授权。应用将无法再次通过requestPermissionsFromUser拉起弹框,需要用户在系统应用“设置”的界面中,手动授予权限。 在“设置”应用中的路径: 路径…...
docker export/import 和 docker save/load 的区别
Docker export/import 和 docker save/load 都是用于容器和镜像的备份和迁移,但它们有一些关键的区别: docker export/import: export 作用于容器,import 创建镜像导出的是容器的文件系统,不包含镜像的元数据丢失了镜像的层级结构…...
明星周边销售网站开发:SpringBoot技术全解析
1系统概述 1.1 研究背景 如今互联网高速发展,网络遍布全球,通过互联网发布的消息能快而方便的传播到世界每个角落,并且互联网上能传播的信息也很广,比如文字、图片、声音、视频等。从而,这种种好处使得互联网成了信息传…...
STM32+ADC+扫描模式
1 ADC简介 1 ADC(模拟到数字量的桥梁) 2 DAC(数字量到模拟的桥梁),例如:PWM(只有完全导通和断开的状态,无功率损耗的状态) DAC主要用于波形生成(信号发生器和音频解码器) 3 模拟看门狗自动监…...
R语言绘制散点图
散点图是一种在直角坐标系中用数据点直观呈现两个变量之间关系、可检测异常值并探索数据分布的可视化图表。它是一种常用的数据可视化工具,我们通过不同的参数调整和包的使用,可以创建出满足各种需求的散点图。 常用绘制散点图的函数有plot()函数和ggpl…...
安装最新 MySQL 8.0 数据库(教学用)
安装 MySQL 8.0 数据库(教学用) 文章目录 安装 MySQL 8.0 数据库(教学用)前言MySQL历史一、第一步二、下载三、安装四、使用五、语法总结 前言 根据 DB-Engines 网站的数据库流行度排名(2024年)࿰…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
