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年)࿰…...
OpenClaw新手避坑指南:nanobot部署5大常见配置错误
OpenClaw新手避坑指南:nanobot部署5大常见配置错误 1. 为什么需要这份避坑指南 上周我在本地部署OpenClaw的nanobot时,经历了整整两天的痛苦调试。明明按照文档一步步操作,却总是卡在奇怪的错误上。最崩溃的是,有些问题在官方文…...
TrafficMonitor插件系统:5个技巧打造你的个性化Windows监控中心
TrafficMonitor插件系统:5个技巧打造你的个性化Windows监控中心 【免费下载链接】TrafficMonitorPlugins 用于TrafficMonitor的插件 项目地址: https://gitcode.com/gh_mirrors/tr/TrafficMonitorPlugins 想要让Windows任务栏上的TrafficMonitor变得更加强大…...
格式排版改到崩溃?高校教授说用这几个AI论文写作工具
论文写作总让人头大?格式排版改到崩溃、文献检索效率低、逻辑结构不清晰……这些痛点你是不是也遇到过?其实,只要用对 AI 工具、走对流程,就能事半功倍。资深教授建议,从选题到降重,全程使用专业工具辅助&a…...
Translumo实时屏幕翻译工具:5分钟解决你的多语言障碍难题
Translumo实时屏幕翻译工具:5分钟解决你的多语言障碍难题 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo 你是…...
Pixel Dream Workshop 团队协作:基于 GitHub 管理提示词库与生成资产
Pixel Dream Workshop 团队协作:基于 GitHub 管理提示词库与生成资产 1. 创意协作的痛点与解决方案 在数字创意领域,团队协作往往面临诸多挑战。创意想法难以系统化管理,优秀提示词散落在各个成员手中,生成参数缺乏统一标准&…...
CentOS 9 Stream 中 Git 的快速部署与基础配置指南
1. 为什么选择CentOS 9 Stream部署Git? 如果你正在寻找一个稳定且现代化的Linux发行版来搭建开发环境,CentOS 9 Stream绝对是个不错的选择。相比传统的CentOS Linux,Stream版本提供了更频繁的更新,能够让你第一时间用上最新的软件…...
终极OptiScaler配置指南:3步掌握免费游戏画质提升神器
终极OptiScaler配置指南:3步掌握免费游戏画质提升神器 【免费下载链接】OptiScaler DLSS replacement for AMD/Intel/Nvidia cards with multiple upscalers (XeSS/FSR2/DLSS) 项目地址: https://gitcode.com/GitHub_Trending/op/OptiScaler 想要在不升级硬件…...
OpenClaw技能扩展:Qwen3.5-9B加持下的Markdown文章自动发布
OpenClaw技能扩展:Qwen3.5-9B加持下的Markdown文章自动发布 1. 从手动到自动的内容发布革命 作为一个技术博客作者,我每天最耗时的不是写作本身,而是反复复制粘贴内容到各个平台。上周尝试用OpenClawQwen3.5-9B实现公众号自动发布时&#x…...
智慧医院的“新基建”:从顶层设计到全栈式智能运维的深度解构(PPT)
“未来的医院,其核心竞争力将不再仅仅是顶尖的医生和昂贵的设备,而是由数据驱动、以患者为中心、能自我优化的智慧生命体。”在“健康中国2030”与“数字中国”两大国家战略交汇的时代背景下,医疗健康产业正经历一场前所未有的数字化重构。传…...
前端面试高频考点总结(不仅有考点,还有对应解答)
2026年 AI面试 经验分享 前端面试核心要点 技术考察转向实际场景与新兴技术,重点包括: JavaScript/TypeScript核心机制与编码能力React/Vue3的高阶特性与原理工程化与性能优化体系网络/安全与综合性场景题 3-5年经验者需突出: 技术原理深度&a…...
