首页 > 编程语言 >ChatGPT背后算法

ChatGPT背后算法

时间:2024-03-11 14:23:26浏览次数:18  
标签:训练 背后 模型 算法 3.5 GPT ChatGPT 数据

ChatGPT/GPT的原理

1.NLP

NLP/NLU领域已知局限包括对重复文本、对高度专业的主题的误解,以及对上下文短语的误解。

对于人类或AI,通常需接受多年的训练才能正常对话。

NLP类模型不仅要理解单词的含义,还要理解如何造句和给出上下文有意义的回答,甚至使用合适的俚语和专业词汇。

NLP技术的应用领域

本质上,作为ChatGPT基础的GPT-3或GPT-3.5 是一个超大的统计语言模型或顺序文本预测模型。

2. GPT v.s. BERT

与BERT模型类似,ChatGPT或GPT-3.5都是根据输入语句,根据语言/语料概率来自动生成回答的每一个字(词语)。

从数学或从机器学习的角度来看,语言模型是对词语序列的概率相关性分布的建模,即利用已经说过的语句(语句可以视为数学中的向量)作为输入条件,预测下一个时刻不同语句甚至语言集合出现的概率分布。

ChatGPT 使用来自人类反馈的强化学习进行训练,这种方法通过人类干预来增强机器学习以获得更好的效果。

在训练过程中,人类训练者扮演着用户和人工智能助手的角色,并通过近端策略优化算法进行微调。

由于ChatGPT更强的性能和海量参数,它包含了更多的主题的数据,能够处理更多小众主题。

ChatGPT现在可以进一步处理回答问题、撰写文章、文本摘要、语言翻译和生成计算机代码等任务。

ChatGPT的训练

ChatGPT的训练过程分为以下三个阶段:

第一阶段:训练监督策略模型

GPT 3.5本身很难理解人类不同类型指令中蕴含的不同意图,也很难判断生成内容是否是高质量的结果。

为了让GPT 3.5初步具备理解指令的意图,首先会在数据集中随机抽取问题,由人类标注人员,给出高质量答案,然后用这些人工标注好的数据来微调 GPT-3.5模型(获得SFT模型, Supervised Fine-Tuning)。

此时的SFT模型在遵循指令/对话方面已经优于 GPT-3,但不一定符合人类偏好。

第二阶段:训练奖励模型(Reward Mode,RM)

这个阶段的主要是通过人工标注训练数据(约33K个数据),来训练回报模型。

在数据集中随机抽取问题,使用第一阶段生成的模型,对于每个问题,生成多个不同的回答。人类标注者对这些结果综合考虑给出排名顺序。这一过程类似于教练或老师辅导。

接下来,使用这个排序结果数据来训练奖励模型。对多个排序结果,两两组合,形成多个训练数据对。

RM模型接受一个输入,给出评价回答质量的分数。这样,对于一对训练数据,调节参数使得高质量回答的打分比低质量的打分要高。

第三阶段:采用PPO(Proximal Policy Optimization,近端策略优化)强化学习来优化策略。

PPO的核心思路在于将Policy Gradient中On-policy的训练过程转化为Off-policy,即将在线学习转化为离线学习,这个转化过程被称之为Importance Sampling。

这一阶段利用第二阶段训练好的奖励模型,靠奖励打分来更新预训练模型参数。在数据集中随机抽取问题,使用PPO模型生成回答,并用上一阶段训练好的RM模型给出质量分数。

把回报分数依次传递,由此产生策略梯度,通过强化学习的方式以更新PPO模型参数。

如果我们不断重复第二和第三阶段,通过迭代,会训练出更高质量的ChatGPT模型。

ChatGPT的局限

  1.  ChatGPT还没法在线的把新知识纳入其中,而出现一些新知识就去重新预训练GPT模型也是不现实的,无论是训练时间或训练成本,都是普通训练者难以接受的。如果对于新知识采取在线训练的模式,看上去可行且语料成本相对较低,但是很容易由于新数据的引入而导致对原有知识的灾难性遗忘的问题。
  2. ChatGPT仍然是黑盒模型。目前还未能对ChatGPT的内在算法逻辑进行分解,因此并不能保证ChatGPT不会产生攻击甚至伤害用户的表述。

 

标签:训练,背后,模型,算法,3.5,GPT,ChatGPT,数据
From: https://www.cnblogs.com/gzhblog/p/18065981

相关文章

  • ChatGPT 发送消息后无响应,三个办法教你解决
    问题复现1.给ChatGPT发送消息没有任何反应2.浏览器开发者工具发现很多如下错误解决办法方法一:清除浏览器缓存清除浏览器缓存这个方法适合新手,也是最简单的办法,清除浏览器缓存后重新登录账号即可恢复正常使用。方法二:清除浏览器本地缓存数据这个方法比较专......
  • ChatGPT 发送消息没有反应,手把手教你解决
    今天照常使用ChatGPT来帮忙码代码,结果发现发出去的消息完全没有反应,即不给我处理,也没有抱任何的错误,按浏览器刷新,看起来很正常,可以查看历史对话,但是再次尝试还是一样的没反应。 开始还以为是账号被封了,但是经过研究分析,发现出现这个问题的原因,应该是点击了登录后顶部的......
  • 【机器学习】机器学习创建算法第1篇:机器学习算法课程定位、目标【附代码文档】
    机器学习(算法篇)完整教程(附代码资料)主要内容讲述:机器学习算法课程定位、目标,K-近邻算法,1.1K-近邻算法简介,1.2k近邻算法api初步使用定位,目标,学习目标,1什么是K-近邻算法,1Scikit-learn工具介绍,2K-近邻算法API,3案例,4小结。K-近邻算法,1.3距离度量学习目标,1欧式距离,2......
  • 【ChatGPT】JeecgBoot v3.6.3 AI版本发布,企业级低代码平台
    项目介绍JeecgBoot是一款企业级的低代码平台!前后端分离架构SpringBoot2.x,SpringCloud,AntDesign&Vue3,Mybatis-plus,Shiro,JWT支持微服务。强大的代码生成器让前后端代码一键生成!JeecgBoot引领低代码开发模式(OnlineCoding->代码生成->手工MERGE),帮助解决Java项目70%的重复......
  • 算法面试通关40讲 - 哈希表/映射
    1.两数之和#include<iostream>#include<unordered_map>usingnamespacestd;classSolution{public:vector<int>twoSum(vector<int>&nums,inttarget){vector<int>indices;unordered_map<int,decltype(nums.siz......
  • 揭秘ChatGPT:改变你聊天方式的秘密武器
    ​世界上最受关注的对话伙伴是谁?在今天的时代,答案毫无疑问是ChatGPT。ChatGPT是一款由美国OpenAI公司开发的智能对话程序,只需简单的用户注册,就可以与这款全球参数规模最大的AI机器人进行互动。ChatGPT的能力远超常规的搜索引擎或问答机器人,它不仅能回答你的基础问题,更有创作才......
  • 并行化优化KD树算法:使用C#实现高效的最近邻搜索
    本文信息中文名:《并行化优化KD树算法:使用C#实现高效的最近邻搜索》英文名:"ParallelizedOptimizationofKD-TreeAlgorithm:ImplementingEfficientNearestNeighborSearchinC#"摘要本文介绍了如何使用并行计算技术优化KD树算法,并使用C#编程语言实现了高效的最近邻......
  • 蓝桥杯算法集训 - Week1:二分、前缀和、差分算法
    蓝桥杯算法集训-Week1本系列随笔用于整理AcWing题单——《蓝桥杯集训·每日一题2024》的系列题型及其对应的算法模板。一、二分查找二分算法原理复习参考:二分查找-Hello算法Ⅰ、二分模板boolcheck(intx){/*...*/}//检查x是否满足某种性质//区间[l,r]被划分......
  • 有限制的 bellman_ford 算法
    题目链接1.有限制的\(Bellman\_Ford\)时间复杂度:\(O(N*M)\)在传统的\(Bellman\_Ford\)中,可以处理边数不大于\(K\)条边的最短距离但我们只要加一条限制(实际上只多了两行代码)就可以实现求恰好等于\(K\)条边的最短距离具体的就在于其核心代码中:for(inti=0;i......
  • 算法题 - Shuffling Machine
    Introduction:Shufflingisaprocedureusedtorandomizeadeckofplayingcards.Becausestandardshufflingtechniquesareseenasweak,andinordertoavoid"insidejobs"whereemployeescollaboratewithgamblersbyperforminginadequatesh......