学习入门 chatgpt原理 一

news2024/10/6 22:22:57

学习文章:人人都能看懂的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.coloradmin.cn/o/1866316.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【vue】vue响应式原理

vue响应式原理 vue2的响应式原理 vue2对对象类型的监听是通过Object.defineProperty实现的,给想要实现响应式的数据对象每个属性加上get,set方法,以实现数据劫持的操作。而对数组类型的监听是通过重写数组的方法实现的。 Object.defineProperty的定义…

Modbus TCP什么场景用?

什么是Modbus TCP Modbus TCP是一种基于TCP/IP网络的通信协议,它允许不同的设备通过以太网进行数据交换。Modbus协议最初是为串行通信设计的,但随着网络技术的发展,Modbus TCP应运而生,它继承了Modbus RTU和Modbus ASCII的许多优点…

C++基础编程100题-015 OpenJudge-1.3-13 反向输出一个三位数

更多资源请关注纽扣编程微信公众号 http://noi.openjudge.cn/ch0103/13/ 描述 将一个三位数反向输出。 输入 一个三位数n。 输出 反向输出n。 样例输入 100样例输出 001参考程序 #include<bits/stdc.h> using namespace std;int main(){int n;cin>>n;cou…

印刷企业数字工厂管理系统如何保障产品质量

一、引言 随着信息技术的迅猛发展&#xff0c;印刷行业也迎来了数字化转型的浪潮。数字工厂管理系统作为这一转型的核心工具&#xff0c;不仅在提高生产效率、优化资源配置方面发挥了重要作用&#xff0c;更在保障产品质量上扮演着关键角色。本文将深入探讨印刷企业数字工厂管…

021.合并两个有序链表,递归和遍历

题意 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 难度 简单 标签 链表、排序 示例 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]输入&#xff1a;l1 [], l2 [] 输出&#xff1a;[]…

常用组件详解(二):torch.nn.Flatten、torch.flatten()

文章目录 torch.nn.Flattentorch.flatten() 官方API文档&#xff1a;点击跳转。torch.nn.Flatten是Pytorch提供的类&#xff0c;常用于将输入数据进行展平&#xff0c;而torch.flatten()函数与之功能相同。 torch.nn.Flatten 类初始化方式&#xff1a; torch.nn.Flatten(star…

微信小程序-自定义组件checkbox

一.自定义Coponent组件 公共组件&#xff1a;将页面内公共的模块抽取为自定义组件&#xff0c;在不同页面复用。 页面组件&#xff1a;将复杂页面进行拆分&#xff0c;降低耦合度&#xff0c;有利于代码维护。 可以新建文件夹component放组件&#xff1a; 组件名为custom-che…

(2024,频域 LoRA,DFT,DCT,自适应门控,基于适配器组合的图像编辑)FouRA:傅里叶 LoRA

FouRA: Fourier Low Rank Adaptation 公和众与号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 2. 相关工作 3. 提出的方法 3.1 低秩适应的公式 3.2 频域中的低秩适应 3.3 频率变换 …

三十九篇:UML与SysML:掌握现代软件和系统架构的关键

UML与SysML&#xff1a;掌握现代软件和系统架构的关键 1. 引言 1.1 为什么系统设计如此关键 在当今快速发展的技术环境中&#xff0c;系统设计的重要性不言而喻。无论是软件开发还是复杂的系统工程&#xff0c;良好的设计是确保项目成功的基石。系统设计不仅关系到功能的实现…

搜维尔科技:【研究】触觉手套比控制器更能带来身临其境、更安全、更高效的虚拟体验

自然交互可提高VR模拟的有效性。研究表明&#xff0c;触觉手套比控制器更能带来身临其境、更安全、更高效的虚拟体验。 以下是验证 医疗培训中的触觉技术 “ 95.5%的参与者表示触摸是 XR 教育的重要组成部分&#xff0c;90.9% 的参与者表示 XR 触觉将提供一个安全的学习场所。…

Hadoop 2.0 大家族(一)

目录 一、Hadoop 2.0大家族概述&#xff08;一&#xff09;分布式组件&#xff08;二&#xff09;部署概述 二、ZooKeeper&#xff08;一&#xff09;ZooKeeper简介&#xff08;二&#xff09;ZooKeeper 入门 一、Hadoop 2.0大家族概述 &#xff08;一&#xff09;分布式组件 …

Mybatis 系列全解(2)——全网免费最细最全,手把手教,学完就可做项目!

Mybatis 系列全解&#xff08;2&#xff09; 1. ResultMap结果集映射2. 日志2.1 日志工厂2.2 log4j 3. 分页3.1 实现SQL分页3.2 RowBounds 分页3.3 分页插件 4. 使用注解开发4.1 面向接口编程4.2 使用注解4.3 Mybatis 详细执行过程4.4 CRUD 增删改查 5. Lombok 1. ResultMap结果…

Android Studio中HAXM安装失败的解决方案(HAXM installation failed)

文章目录 错误示例Hyper-VWindows SandboxWindows Hypervisor Platform&#xff08;Windows 虚拟化监控程序平台&#xff09; 出现原因解决方法虚拟机平台方案一方案二方案三 错误示例 表明HAXM (Hardware Accelerated Execution Manager)安装失败了。HAXM是一个硬件辅助虚拟化…

查询DBA_TEMP_FILES报错,删除临时表空间报错ORA-60100

SYMPTOMS 查询DBA_TEMP_FILES报错如下图 ORA-01157: cannotidentify/ock data fle 201 -see DBWR trace fle ORA-01110: data fle 20 1: D:APPADMINISTRATORIORADATA MARTIDATAFILE 01157,00000-"cannotidentify/ock data fle %s -see DBWR trace fle"*Cause: The b…

番外篇 | YOLOv8改进之利用轻量化卷积PConv引入全新的结构CSPPC来替换Neck网络中的C2f | 模型轻量化

前言:Hello大家好,我是小哥谈。本文使用轻量化卷积PConv替换Neck中C2f模块中Bottleneck里的传统卷积核得到CSPPC模块,使得模型更加轻量化。🌈 目录 🚀1.基础概念 🚀2.网络结构 🚀3.添加步骤 🚀4.改进方法 🍀🍀步骤1:block.py文件修改 🍀🍀步…

【MySQL】数据库事务详解

文章目录 前言1. 事务的定义2. 事务的四个特性2.1 原子性2.2 一致性2.3 隔离性2.4 持久性 3. 事务的并发问题3.1 脏读3.2 不可重复读3.3 幻读3.4 更新丢失 4. 事务的隔离级别5. 事务的使用结语 前言 假设我们现在需要操作数据库进行转账&#xff0c;A 给 B 转账 100 块钱&…

【Text2SQL 论文】MCS-SQL:利用多样 prompts + 多项选择来做 Text2SQL

论文&#xff1a;MCS-SQL: Leveraging Multiple Prompts and Multiple-Choice Selection For Text-to-SQL Generation ⭐⭐⭐ arXiv:2405.07467 一、论文速读 已有研究指出&#xff0c;在使用 LLM 使用 ICL 时&#xff0c;ICL 的 few-shot exemplars 的内容、呈现顺序都会敏感…

Apple - View Programming Guide

本文翻译整理自&#xff1a;View Programming Guide&#xff08;更新&#xff1a;2013-08-08 https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/CocoaViewsGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40002978-CH1-SW1 文章目录…

Java学习笔记(多线程):CompetableFuture

本文是自己的学习笔记&#xff0c;主要参考资料如下 https://www.cnblogs.com/dolphin0520/p/3920407.html JavaSE文档 https://blog.csdn.net/ThinkWon/article/details/102508721 1、Overview2、重要参数3、主要方法3.1、创建实例&#xff0c;获取返回值3.2、线程执行顺序相关…

基于Springboot+Vue的校友社交系统(带1w+文档)

基于SpringbootVue的校友社交系统(带1w文档) 校友社交系统作为一种典型的管理系统也迅速的发展并深入人们的日常生活中&#xff0c;它使用户足不出户就可以管理自己的校友社交信息等&#xff0c;最大化减缩了用户的管理时间&#xff0c;提高了管理效率。 项目简介 基于SSMVUE的…