State of ChatGPT ---- ChatGPT的技术综述

news/2024/12/21 22:12:56/

        声明:该文总结自AI菩萨Andrej Karpathy在youtube发布的演讲视频。

        原视频连接:State of GPT | BRK216HFS

        基础知识:

Transformer原文带读与代码实现icon-default.png?t=O83Ahttps://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的输出

更改模型的权重。

以上就是关于内容的总结。欢迎大家交流讨论~~~


http://www.ppmy.cn/news/1537060.html

相关文章

在线JSON可视化工具--支持缩放

先前文章提到的超好用的JSON可视化工具,收到反馈,觉得工具好用,唯一不足就是不能缩放视图,其实是支持的,因为滚轮有可能是往下滚动,会与缩放冲突,所以这个工具设计为需要双击视图来触发打开缩放…

10.MySql全局参数优化

从上图可以看出SQL及索引的优化效果是最好的,而且成本最低,所以工作中我们要在这块花更多时间。 一、全局参数 配置文件my.ini(windows)或my.cnf(mac)的全局参数: 假设服务器配置为: CPU:32核 内存:64G…

线程同步的机制有哪些?区别是什么

AutoResetEvent、ManualResetEvent、EventWaitHandle 以及 lock 都是 C# 中用于线程同步的机制,但它们在使用方式和功能上有所不同。 AutoResetEvent 功能:允许一个线程将事件的状态设置为有信号状态,从而允许一个正在等待该事件的线程继续…

[已完结] Authentication Lab —— 靶场笔记合集

Authentication Labhttps://authlab.digi.ninja/ 0x01:Authentication Lab 靶场简介 Authentication Lab 是由 DigiNinja 提供的,一个专注于身份验证和授权漏洞的实验平台。该网站旨在提供一个可以让用户探索和实践各种常见与不常见的身份验证与授权漏…

花8000元去培训机构学习网络安全值得吗,学成后就业前景如何?

我就是从培训机构学的网络安全,线下五六个月,当时学费不到一万,目前已成功入行。所以,只要你下决心要入这一行,过程中能好好学,那这8000就花得值~ 因为只要学得好,工作两个多月就能赚回学费&am…

Python简介与入门

如果你要用计算机做很多工作,最后你会发现有一些任务你更希望用自动化的方式进行处理。比如,你想要在大量的文本文件中执行查找/替换,或者以复杂的方式对大量的图片进行重命名和整理。也许你想要编写一个小型的自定义数据库、一个特殊的 GUI …

孩子用的台灯哪个牌子好?必须了解白炽灯和led哪个护眼

我国是近视眼发病率最高的国家之一,尤其在青少年学生中,更有逐年增加的趋势。目前中小学生戴眼镜的现象非常普遍,学生视力下降明显。这既影响我们的学习和生活也影响我们未来对于某些职业的选择。因此,许多家长朋友们试图购买护眼…

性能优化-SQL查询优化技巧全解

SQL查询优化技巧全解 在数据库操作中,SQL查询的性能直接影响到应用程序的响应速度。本文将深入探讨SQL查询优化的关键技术,并结合实例展示如何使用itBuilder这款强大的数据库设计、建模软件,来辅助提升开发效率。 1. SQL查询基础与执行计划…