学习入门 chatgpt原理 一

学习文章:人人都能看懂的chatGpt原理课
笔记作为学习用,侵删

Chatph和自然语言处理

什么是ChatGpt

ChatGPT(Chat Generative Pre-training Transformer) 是一个 AI 模型,属于自然语言处理( Natural Language Processing , NLP ) 领域,NLP 是人工智能的一个分支。

NLP(自然语言处理)是指,让计算机来理解并正确地操作自然语言(人们日常生活中接触和使用的英语、汉语、德语等等),完成人类指定的任务,比如关键词抽取,文本分类,机器翻译,对话系统(聊天机器人,也是chatgpt完成的工作)

ChatGPT 的建模形式

Chatgpt的工作形式:
在这里插入图片描述在这里插入图片描述
多轮对话时,一般来讲模型仅会保留最近几轮对话的信息,此前的对话信息将被遗忘。
且Chatgpt在输出的时候,并不是直接一口气直接生成的,而是一个字一个字生成的,这种组逐字生成,即生成式,如
在这里插入图片描述

Chatgpt和NLP的发展历程

基于规则的NLP->基于统计的NLP->基于强化学习的NLP
  • 基于规则的NLP:顾名思义就是人工编写规则,让计算机根据规则来解析和生成自然语言。但是缺点很明显:规则无穷无尽,且自然语言中,任何规则都无法覆盖需求,本质上也没有将自然语言处理的方式交给计算机,仍然是人在主导。比如早期的"人工智能"。
  • 基于统计的NLP:利用机器学习算法,从大量的语料库中学习自然语言的规律特征(如chatGpt)。规则是隐形的,暗含在模型参数重,由模型根据训练得到,而基于规则的NLP,规则就是显性的,是人工编写的。但基于统计的也有缺点:黑盒不确定性,即规则是隐形的,暗含在参数中,比如gpt 有时候会给出云里雾里模糊的答案。
    预训练:
    在 ChatGPT 中,主要采用预训练( Pre-training ) 技术来完成基于统计的 NLP 模型学习。
    它的重点在于,根据大规模原始语料学习一个语言模型,而这个模型并不直接学习如何解决具体的某种任务,而是学习从语法、词法、语用,到常识、知识等信息,把它们融汇在语言模型中。直观地讲,它更像是一个知识记忆器,而非运用知识解决实际问题。
基于强化学习的NLP

Chatgpt是基于统计的,然而他又利用新方法,带人工反馈的强化学习(Reinforcement Learning with Human Feedback,RLHF),所谓强化学习,就是一种机器学习的方式,旨在让chatGpt(智能体,如NLP中的深度神经网络模型)通过与环境的交互来学习如何做出最优决策。

比如训练小狗,小狗就是chatGpt,通过听口令(环境)来做出对应的动作(学习目标)
一只小狗,当听到主人吹哨后,就会被奖励食物;而当主人不吹哨时,小狗只能挨饿。通过反复的进食、挨饿,小狗就能建立起相应的条件反射,实际上就是完成了一次强化学习。

在NLP领域,环境是人为构造出来的一种语言环境模型。
在这里插入图片描述
基于统计的方式,能让模型以最大自由度去拟合训练数据集,而强化学习,就是赋予模型更大的自由度,让模型能够自主学习,突破既定的数据集限制,chatGpt模型就是融合统计学习方法+强化学习方法,如
在这里插入图片描述

NLP 技术的发展脉络

基于规则,基于统计,基于强化学习这三种方式,并不仅仅是一种处理自然语言的手段,而是一种思想。一个解决某一个问题的模型,往往是融合了这三种解决思想的产物。

如果把计算机当作一个小孩,自然语言处理就像是人类来教育小孩子成长

基于规则:家长百分之百控制小孩子,强调手把手教。

基于统计:家长只告诉小孩子学习方法,而不教每一道题,让小孩子自己去学习,强调半引导,对于NLP,学习重心放在了神经网络模型上,但主动权仍有算法工程师执导。

基于强化学习:家长只给小孩制定目标,比如我要你考90分,然后就不管孩子如何学习,全靠孩子自学。小孩拥有极高的自由度和主动权,家长只对最终结果做出奖励和惩罚,不参与整个教育过程。对于NLP来说:整个过程的重心和主动权都在模型本身。

NLP 的发展一直以来都在逐渐向基于统计的方式靠拢,最终由基于强化学习的方式取得完全的胜利,胜利的标志,即 ChatGPT 的问世;

ChatGPT 的神经网络结构 Transformer

ChatGPT 是一个大型的神经网络,其内部结构是由若干层 Transformer 构成的,Transformer 是一种神经网络的结构。

在这里插入图片描述
Transformer 的核心是自注意力机制(Self-Attention),它可以帮助模型在处理输入的文字序列时,自动关注与当前位置字符相关的,其他位置字符,自注意力机制可以将输入序列中的每个位置当作一个向量,他们可以同时参与计算,从而实现高效的并行运算。也就是
Transformer 能够更好地捕捉句子中,跨越很长距离的词汇之间的关系,解决文本上下文的长依赖

总结
  • NLP 领域的发展逐渐由人为编写规则、逻辑控制计算机程序,到完全交由网络模型去适应语言环境。
  • ChatGPT 的工作流程是一个生成式的对话系统。
  • ChatGPT 的训练过程包括语言模型的预训练,RLHF 带人工反馈的强化学习。
  • ChatGPT 的模型结构采用以自注意力机制为核心的 Transformer。

从Gpt1.0到ChatGPT

在这里插入图片描述
若把 ChatGPT 比作一个健康聪明的青年人,那么早期的模型就是他的婴儿时期、青少年时期,GPT 的发展历程像是朝着模拟人类发展。

GPT 初代

GPT,Bert,ELMO模型,一起将 NLP 带进了大规模神经网络语言模型(Large Language Model, LLM)时代。它们正式标志着 NLP 领域开始全面拥抱预训练的方式。

GPT 的语言建模

GPT 初代所做的事就是从从大规模的文本语料中,将每一条文本随机地分成两部分,只保留上半部分,让模型学习下半部分学习到底该填写什么,这种学习方法让模型具备了在当时看来非常强的智能。所谓语言模型(Language Model,LM),就是从大量的数据中学习复杂的上下文联系

在这里插入图片描述

GPT-2

GPT-2 的论文名就叫做【Language Models are Unsupervised Multitask Learners】,语言模型是多任务学习者。
GPT-2 主要就是在 GPT 初代的基础上,又添加了多个任务,比如机器翻译、问答、文本摘要等等,扩增了数据集和模型参数,又训练了一番。
元学习(meta-learning),实际上就是语言模型的一脑多用。

GPT-3

大模型中的大模型
在这里插入图片描述

小样本(Few-Shot)学习

GPT3 的论文标题叫做【Language Models are Few-Shot Learners】,语言模型是小样本学习者
以往在训练 NLP 模型的时候,都需要用到大量的标注数据。可是标注数据的成本实在是太高了,这些都得人工手工一个个来标注完成!有没有什么不这么依赖大量标注的方式吗?

GPT3 就提出了小样本学习的概念,简单来讲,就是让模型学习语言时,不需要那么多的样例数据。

假设,我们训练一个可抽取文本中人名的模型,就需要标注千千万万个人名,比如“张雪华”、“刘星宇”等。千千万万个标注数据,就像是教了模型千千万万次同一个题目一样,这样才能掌握。

而人脑却不是这样,当被告知“山下惠子”是一个日本人名以后(仅仅被教学了一次),人脑马上就能理解,“中岛晴子”大概率也是一个日本人名,尽管人脑从来没听说过这个名字。

ChatGPT

ChatGPT 模型结构上和之前的几代都没有太大变化,主要变化的是训练策略变了。

强化学习

ChatGPT 将 NLP 带入了强化学习时代。

训练 ChatGPT 所需要的文本,主要来自于互联网,这是一个有限的集合,但是我们提出的问题,无穷无尽,有的在网上根本找不到。

对于传统的深度神经网络模型的训练思路,只能根据网上已有的数据做训练,学习的只是已有的数据本身。

而chatgpt的强化学习思路,则是模拟一个环境模型(Reward)。
chatgpt会根据一个问题给出一个答案,而环境模型则会给他打分。高分代表奖励,低分代表惩罚,不会给出标准答案。
而chatgpt接收到评价反馈后,可以根据这个数值做模型的进一步训练,朝着生成更加恰当答案的方向拟合。

在这里插入图片描述
由此,chatgpt 模型已经不再局限于已有的训练数据集,可以扩展至更大的范围,应对从未见过的问题。

总结
  • 纵观 ChatGPT 模型的进化历史,可以看出,模型的发展脚步就是在朝着模拟人类的方式前进着
  • 人类接收语言文字信息,输出语言文字,应用了编解码方式,ChatGPT 也利用了编解码的方式(编码解码)。
  • 人类的大脑神经元数量是所有生物中最多的,ChatGPT 应用了超千亿的大规模参数模型(gpt3的模型参数量达1750亿)。
  • 人类采用了对话的方式进行交流,ChatGPT 建模也采用了对话的方式(对话方式学习)。
  • 人类的大脑具有多种多样的功能,ChatGPT 也融合了多任务,各种各样的NLP任务(gpt2 多任务学习)。
  • 人类可以通过极少量的样例进行学习,ChatGPT 也可以完成小样本学习(gpt3 小样本学习,比如日本名中上惠子)。
  • 人类可以在与实际环境的交互中学习知识,塑造语言,ChatGPT 也添加了强化学习,模拟与人类的交互(环境模型打分机制)。
  • ChatGPT 的发展史,就是人工智能模拟人脑的历史。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/361563.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度神经网络(dnn)--风格迁移(简单易懂)

概括 深度神经网络(DNN)在风格迁移领域的应用,实现了将一幅图像的艺术风格迁移到另一幅图像上的目标。该技术基于深度学习模型,特别是卷积神经网络(CNN),通过提取内容图像的内容特征和风格图像的…

SK Hynix 3D DRAM良率突破56.1%,开启存储新时代

根据韩国财经媒体Business Korea独家报道:在刚刚结束的VLSI 2024国际研讨会上,韩国半导体巨头SK Hynix公布了一项振奋人心的进展:其五层堆叠3D DRAM的制造良率已达到56.1%。此成果标志着3D DRAM技术在商业化道路上迈出了坚实的一步&#xff0…

VS 在多线程中仅调试某个线程

调试多线程程序时,只想观察某个线程的运行情况; 但是,由于线程切换执行,会导致调试时焦点在几个代码块之间跳来跳去,故需要解决这个问题。 参考文章: C#使用线程窗口调试多线程程序。 1 打开线程窗口&…

Hadoop 2.0 大家族(一)

目录 一、Hadoop 2.0大家族概述(一)分布式组件(二)部署概述 二、ZooKeeper(一)ZooKeeper简介(二)ZooKeeper 入门 一、Hadoop 2.0大家族概述 (一)分布式组件 …

CVPR讲座总结(二)-探索图像生成基础模型的最新进展探索多模态代理的最新进展:从视频理解到可操作代理

引言 在CVPR24上的教程中,微软高级研究员Linjie Li为我们带来了多模态代理的深入探索。这些代理通过整合多模态专家和大语言模型(LLM)来增强感知、理解和生成能力。本文总结了Linjie Li的讲座内容,重点介绍了多模态记忆、可操作代…

ElementUI搭建

概述 Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组 件库. 安装 ElementUI npm 安装 推荐使用 npm 的方式安装,它能更好地和 webpack 打包工具配合使用。 npm i element-ui -S 在控制台输入此命令来安装ElementUI 在 main.j…

低代码平台实践:打造高效动态表单解决方案的探索与思考

🔥需求背景 我司业务同事在抓取到候选人的简历之后,经常会出现,很多意向候选人简历信息不完整,一个个打电话确认的情况,严重影响了HR的工作效率,于是提出我们可以通过发送邮件、短信、H5链接的方式来提醒候…

迈巴赫S480升级增强现实AR抬头显示hud比普通抬头显示HUD更好用吗

增强AR实景抬头显示HUD(Augmented Reality Head-Up Display)是一种更高级的驾驶辅助技术,相比于普通抬头显示HUD,它提供了更丰富、更具沉浸感的驾驶体验。以下是它比普通抬头显示HUD多的一些功能: • 信息呈现方式&am…

七天速通javaSE:第二天 基础:标识符与数据类型

文章目录 前言一、注释与标识符1. 注释2. 标识符2.1 标识符2.2 关键字 二、数据类型1. 语言类型2. 数据类型2.1 基本数据类型2.2引用数据类型 三、类型转换1. 自动转换2. 强制转换(不建议) 四、代码规范 前言 今天将学习Java语法的基础,认识…

idea添加文档注释

一、easy javadoc插件 在settings的plugins中下载easy javadoc插件。 安装完成后重启idea,再次打开settings界面。会出现easyDoc相关配置。 二、设置模版以及使用 类描述模版参考设置: /** * 类描述 -> * * Author: ywz * Date: $Date$ */ 方法描述…

【SSM】

Spring常见面试题总结 Spring 基础 什么是 Spring 框架? Spring 是一款开源的轻量级 Java 开发框架,旨在提高开发人员的开发效率以及系统的可维护性。 我们一般说 Spring 框架指的都是 Spring Framework,它是很多模块的集合,使用这些模块…

AI助力校园安全:EasyCVR视频智能技术在校园欺凌中的应用

一、背景分析 近年来,各地深入开展中小学生欺凌行为治理工作,但有的地方学生欺凌事件仍时有发生,严重损害学生身心健康,引发社会广泛关注。为此,教育部制定了《防范中小学生欺凌专项治理行动工作方案》进一步防范和遏…

布隆过滤器(Bloom Filter)

什么是布隆过滤器 它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。主要用于判断一个元素是否在一个集合中。 布…

Go语言学习:每日一练1

Go语言学习:每日一练1 目录 Go语言学习:每日一练1变量声明函数定义流程控制 ifrange遍历switch 变量声明 package main//定义变量 var a 1 const Message “hello,world”func main() {b : 2 //短变量声明var c 3c TestMethod(a, b, c)} //定义函数…

铸就创新之盾:知识产权管理体系认证,赋能企业卓越前行

在当今知识经济时代,知识产权已成为企业竞争力的核心要素。知识产权的有效管理不仅关乎企业的技术创新和市场竞争力,更是推动整个行业乃至社会经济发展的重要驱动力。随着全球化进程的加速,知识产权的保护和管理愈发受到重视,企业…

国产车规MCU OTA方案总结

目录 1. 旗芯微FC4150 OTA 2. 云途YTM32B1MD OTA 3.小结 今天没有废话,啪一下很快,把目前接触到的国内带eFlash的车规MCU硬件OTA方案做一个梳理。 1. 旗芯微FC4150 OTA 旗芯微FC4150是基于ARM Cortex(快去审核下官网介绍,少了个T)-M4F内…

【low-ui-vue】实现原生可扩展动态表格组件

本文字数:3520字 预计阅读时间:20分钟 所谓动态列的表格,就是列数不固定。像广为使用的elementUI的table组件就是表头写死的,这种也叫列数固定的表格。 01 效果 当然,动态性增加了,当然要做出一定“牺牲”。…

C#基于SkiaSharp实现印章管理(2)

上一篇文章最后提到基于System.Text.Json能够序列化SKColor对象,但是反序列化时却无法解析本地json数据。换成Newtonsoft.Json进行序列化和反序列化也是类似的问题。   通过百度及查看微软的帮助文档,上述情况下需自定义转换类以处理SKColor类型数据的…

Vite响应Ajax请求

Vite响应Ajax请求 陈拓 2024/06/20-2024/06/24 1. 概述 http-server、live-server 等常用于本地测试和开发的http服务器不能很好的支持 ES 模块,在测试ES 模块时浏览器控制台经常显示错误: Failed to load module script: Expected a JavaScript modu…

C++用Crow实现一个简单的Web程序,实现动态页面,向页面中输入数据并展示

Crow是一个轻量级、快速的C微框架,用于构建Web应用程序和RESTful API。 将处理前端页面的POST请求以添加数据的逻辑添加到 /submit 路由中,并添加了一个新的路由 / 用于返回包含输入框、按钮和表格的完整页面。当用户向表格添加数据时,JavaS…