Other -- ChatGPT 原理

本文为个人理解,帮助小白(本人就是)了解正在创建新时代的 AI 产品,如文中理解有误欢迎留言。

[参考链接--](https://baijiahao.baidu.com/s?id=1765556782543603120&wfr=spider&for=pc)

1. 了解一些基本概念

  1. 大语言模型(Large Language Model,LLM)
           
    是指使用大量文本数据训练的深度学习模型,可以生成自然语言文本或理解语言文本的含义。大语言模型可以处理多种自然语言任务,如文本分类、问答、对话等,是通向人工智能的一条重要途径。
  2. GPT(Generative Pre-Trained Transformer,生成式预训练变换器
           是一种基于互联网的、可用数据来训练的、文本生成的深度学习模型。
  3. Transformer
    Transformer 模型是一种基于自注意力机制的深度学习模型,它可以用于各种自然语言处理任务.
  4. 语言信息处理(LIP,Language Information Processing)
           
    是语言学与计算机科学交叉形成的一门以计算语言学理论为基础,具有广泛应用价值的语言工程学科,是应用语言学的重要组成部分。有时也称作自然语言处理(NLP, Natural Language Processing)自然语言理解(NLU, Natural Language Understanding)术语辨析:自然语言处理是上位概念,包括理解和生成,而语言信息处理可以分别理解为语言信息 | 处理” 和 “语言 | 信息处理”。 前者指的是对各种语言信息进行处理, 后者指对语言本身进行信息化的处理。
    NLP 相关产品(如 ChatGPT)将其拆分为两个关键步骤:自然语言理解(NLU,Natural Language Understanding)和自然语言生成(NLG,Natural Language Generation)。下文详解。
  5. LLM 和 NLP 间关系
           在 NLP 领域,LLM 被视为一种重要的基础模型,它可以为各种自然语言处理任务提供强大的支持。LLM 与 NLP 之间有着密切的联系。LLM 可以通过学习大量文本数据来掌握语言知识和语法规则,这使得它在许多 NLP 任务中表现出色。例如,在文本分类、情感分析、文本摘要、机器翻译等任务中,LLM 都展现出了极高的性能和效果。此外, LLM 还可以从海量文本中提取语义信息和知识,这有助于提高 NLP 应用的准确性和效率。
  6. GPT 和 LLM 关系
           GPT 模型可以看作是 LLM 的一种实现方式。GPT 模型使用    Transformer 结构进行训练,这种结构可以学习文本生成过程中的长距离依赖关系和上下文信息。通过训练 GPT 模型,我们可以生成高质量的文本,这有助于提高 NLP 应用的效率和准确性。
           其次,LLM 和 GPT 模型之间也存在一些差异。GPT 模型强调生成文本的能力,它通过预测文本的后续内容来生成文本。而 LLM 则更注重从海量文本中学习语言规律和知识,它可以通过无监督学习来提高性能和效率。因此,在具体应用中,我们需要根据任务的不同来选择适合的模型。
  7. Transformer 和 LLM 及 GPT 间的关系
    Transformer是 LLM和 GPT 模型的基础。无论是 LLM 还是 GPT 模型,它们的核心结构都是基于 Transformer 模型搭建的。通过在海量文本数据上进行训练,Transformer模型可以学习到文本中的语义信息和语法规则,从而为各种NLP任务提供支持。
  8. 传统 AI 和现在的基于 LLM 的 AI 的联系
           传统 AI也要训练,但专注于某一个领域,因此只能处理特定问题。也就是一个完整的模型数据量相对较小。如很会下棋的 AlphaGO,它的输入可能就是一个开始下棋的命令。
    那么以传统 AI 理念衍生出的 NLP 相关产品概念拆分为两个关键步骤:自然语言理解(NLU)自然语言生成(NLG,Natural Language Generation
    如:
           以 SIRI 为代表的人工智能助手统一了 NLU 层,用一个模型理解用户的需求,然后将需求分配给特定的 AI 模型进行处理,实现 NLG 并向用户反馈。然而,这种模式存在显著缺点。如微软官方图例所示,和传统 AI 一样,用户每遇到一个新的场景,都需要训练一个相应的模型,费用高昂且发展缓慢,NLG 层亟需改变。
           基于 LLM 的 AI也要训练,但专注的是通用领域(也就是人类所能了解的所有知识,如下象棋、画图等等),那么也就意味着它需要进行各种不同领域的训练(这个训练就基于 LLM )。同时这种模型都是针对用户输入的文本或语音进行理解处理后回复相应的结果给用户。
    如:

           大型语言模型(如GPT)采用了一种截然不同的策略,实现了 NLG 层的统一。秉持着“大力出奇迹”的理念,将海量知识融入到一个统一的模型中,而不针对每个特定任务分别训练模型,使 AI 解决多类型问题的能力大大加强。
    以 GPT-3 为例,其训练数据源为互联网的各种精选信息以及经典书籍,规模达到了 45 TB,相当于阅读了一亿本书。GPT-4的模型参数量甚至达到了GPT-3.5的五倍之多,这也解释了为何GPT-4表现得如此聪明(因为它啥都知道啊,你要是看过那么多资料并且全都记住,那你比它牛多了,别人问你啥你都能多少知道点)。​​​​​​
           总结:
           由上可知以特定领域数据训练实现的 NLP 相关的 AI 产品一套下来占用空间很小,响应速度会快,而基于 LLM 实现的 NLP 相关的 AI 产品占用空间会特别大,响应速度可想而知会相对较慢。

2. 了解什么是 NLP 类的 AI 产品(以 ChatGPT 为例)

        ChatGPT 是基于 GPT 模型的 AI 聊天产品,一般也称为 GPT。也就是上文提到的 NLP 相关的 AI 产品。输入主要是人类输入的文本或语音,然后进行相应的处理并返回结果给用户。

3. 了解 NLP 类 AI 产品的实现原理( ChatGPT 为例)

上文提过 NLP 由 NLU 和 NLG 组成。

NLU 都是 基于 LLM 的,大都大差不差,但是注意这里有一个 语言类型的区别,即 中文 和 英文的区别,如 ChatGPT 等美国的 NLP 产品的训练数据主要是英文,而国内如文心一言基于中文的数据,那么输入相同的文本或语音就会有很大的差别,如果大家都用同一个数据源去训练,也会因为不同公司对 NLG 的不同实现而呈现出不同的结果。

3.1 理解 NLG (ChatGPT为例)

        不同 NLP 产品类公司产品好不好用的最大区别就是 NLG 的实现区别,也是这类公司的核心技术。

  1. 一个简单地 NLG 实现的例子
    AI 本质上就是个逆概率问题。以 GPT 的自然语言生成实际上是一个基于概率的“文字接龙”游戏。我们可以将GPT模型简化为一个拥有千亿参数的“函数”。当用户输入“提示词(prompt)”时,模型按照以下步骤执行:
    ①将用户的“提示词”转换为token(准确地说是“符号”,近似为“词汇”,下同)+ token的位置。
    ②将以上信息“向量化”,作为大模型“函数”的输入参数。
    ③大模型根据处理好的参数进行概率猜测,预测最适合回复用户的词汇,并进行回复。
    ④将回复的词汇(token)加入到输入参数中,重复上述步骤,直到最高概率的词汇是【END】,从而实现一次完整的回答。这种方法使得GPT模型能够根据用户的提示,生成连贯、合理的回复,从而实现自然语言处理任务。
  2. 上下文理解的关键技术
    GPT 不仅能理解用户当前的问题,还能基于前文理解问题背景。这得益于 Transformer 架构中的“自注意力机制(Self-attention)”。该机制使得 GPT 能够捕捉长文本中的依赖关系。通俗地说,GPT 在进行文字接龙判断时,不仅基于用户刚输入的“提示”,还会将之前多轮对话中的“提示”和“回复”作为输入参数。然而,这个距离长度是有限的。对于 GPT-3.5 来说,其距离限制为 4096 个词汇(tokens);而对于 GPT-4,这个距离已经大幅扩展至 3.2 万个tokens。
    这也就是不同公司 NLP 类产品间存在差异的地方,

       3. 等等其他技术

当然这两个只是很小的例子来帮助理解 NLP 产品 NLG 的实现。

4. 基于大模型的 ChatGPT 为何如此惊艳

①自监督学习:利用海量的文本进行自学,让 ChatGPT 具备预测上下文概率的基本能力。

②监督学习:人类参与,帮助 ChatGPT 理解人类喜好和期望的答案,本质为微调(fine-tune)【不同公司 NLG 的实现】。

③强化学习:根据用户使用时的反馈,持续优化和改进回答质量。

其中,自监督学习最关键。因为,大模型的魅力在于其“大”——大在两个方面:

训练数据量大

即训练大模型的数据规模,以ChatGPT -3为例,其训练数据源为互联网的各种精选信息以及经典书籍,规模达到了 45TB相当于阅读了一亿本书

模型参数量大

参数是神经网络中的一个术语,用于捕捉数据中的规律和特征。通常,宣称拥有百亿、千亿级别参数的大型模型,指的都是其参数量。

追求大型模型的参数量是为了利用其神奇的“涌现能力”,实现所谓的“量变引起质变”。举例来说,如果要求大模型根据emoji猜电影名称,如代表《海底总动员》。可以看到,当模型参数达到千亿级别时,匹配准确度大幅度提升。这表明模型参数量的增加对提高模型表现具有重要意义。

  只有当模型参数达到千亿级别,大模型的优势才得以凸显。GPT 之外的其他大模型,也有类似的表现。

为什么?

        目前主流观点认为,要完整完成一个任务,实际上需要经过很多子步骤。当模型大小不足时,大语言模型无法理解或执行所有步骤,导致最终结果不正确,达到千亿级参数时,其解决问题的全链路能力已经足够。人们以最终结果的正误作为评判标准,导致认为是一种“涌现”。

       在“涌现”问题上,人与猩猩的比喻很有趣。人类的大脑容量比猩猩大3倍,这种差异使得人类能够进行更复杂的思考、沟通和创造。两者的结构没有显著差异,这不也是“涌现”吗?

       ChatGPT -3.5正是千亿模型,参数达到了1750亿。相较于 ChatGPT -3,ChatGPT -3.5主要针对模型参数进行了微调,使其在问答时更符合人类的习惯。据悉,ChatGPT -4 的模型参数量甚至达到了 ChatGPT -3.5的五倍之多,这也解释了为何 ChatGPT -4 表现得如此聪明(体验过的人应该都能理解)。下面是GPT模型演进历史:

5. 基于 LLM 的 GPT 的优势及其局限性

5.1 优势

GPT模型具有明显的、突破性的优势。

典型的优势包括:

①强大的语言理解能力;

②极为广泛的知识储备;

③学习能力与推理能力等等。

这些能力让人们感觉人工智能真正拥有了“脑子”,想象着使用GPT解决一切问题。

5.2 局限性

1.逻辑不透明

GPT模型的回答本质上是概率。传统的软件开发中,接口的输入和输出参数都是确定的,而在给定输入参数(即提示词)的情况下,GPT的回复却有一定随机性。当大家将ChatGPT作为聊天工具使用时,这种不精确可以是用户的谈资;当涉及到商业化软件应用时,设计时就需要特别注意降低不确定性,在大部分产品场景下,用户都很重视确定性。

2.短期记忆差

得益于自注意力机制,ChatGPT具备了多轮对话能力。然而,它的记忆长度相当有限,GPT-3.5模型仅支持向前追溯4096个tokens用于回复的参考。更糟糕的是,这4096个tokens还包括ChatGPT之前回复用户的部分!这使得其捉襟见肘的记忆更加难堪,堪称电子金鱼。好在GPT-4已经将上下文token上限扩展至3.2万个,一定程度上缓解了这个问题。


 

3.资源消耗多

ChatGPT的智能需要消耗大量算力,而运行大规模高端显卡需要消耗大量电力。在五年之内,依靠半导体制程的进一步升级和大模型的广泛应用,算力与电力的边际成本将逐渐转变为固定成本,也就解决了本问题。

4.响应速度慢

由于模型极大,ChatGPT 在回复时也无法做到瞬时响应,正如用户实际体验,ChatGPT是逐词回复的。企业在设计相关产品时需要特别关注应用场景:

①需要避免将 ChatGPT 用于高并发的场景,本服务依赖的接口调用并发上限非常低。

②产品设计上避免用户急切需要结果的应用场景,确保用户能够“等得起”。

5.行业认知浅

诚然,ChatGPT 拥有来自互联网和经典书籍的丰富知识。然而,真正的企业级专业知识往往源于特定领域的深入研究和实践,这些真知灼见无法仅凭互联网上的知识获取。因此,若希望ChatGPT 充当企业参谋,只能帮助梳理战略框架,但难以为企业提供颇具洞察的策略建议。

6.价值未对齐

①在自监督学习阶段,以 ChatGPT 为例 训练数据英文占比高达92%。

②在监督学习阶段,以 ChatGPT 为例 传授道德观的工程师主要来自英语世界。

③在强化学习环节,也可能受到恶意用户输入错误价值观的影响。

因此,目前主流 NLP 类产品(以 ChatGPT 为例)的“精神内核”是以西方价值观为基石的,这可能导致生成的文字难以符合我国的文化背景和价值观。

6. NLP 类 AI 产品的应用

详请百度吧。

7. 总结

总之是个足以创建时代的产品,简单点预测依靠电脑的重复劳动将会消失,因为大模型最擅长学这个了。所以 AI 时代真的已经到来。

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

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

相关文章

【面试】测试/测开(ING)

63. APP端特有的测试 参考:APP专项测试、APP应用测试 crash和anr的区别 1)网络测试 2)中断测试 3)安装、卸载测试 4)兼容测试 5)性能测试(耗电量、流量、内存、服务器端) 6&#xf…

画对比折线图【Python】

出这一期想必是我做某个课程作业遇到了。 由于去各个官网下载对比图要钱,我还是不想花钱的!真讨厌!浅浅水一期。 以下是要做的对比图的数据: 代码: from matplotlib import pyplot as plt#设置中文显示plt.rcParams[…

CSS新手入门笔记整理:CSS浮动布局

文档流概述 正常文档流 “文档流”指元素在页面中出现的先后顺序。正常文档流,又称为“普通文档流”或“普通流”,也就是W3C标准所说的“normal flow”。正常文档流,将一个页面从上到下分为一行一行,其中块元素独占一行&#xf…

ChatGPT OpenAI API请求限制 尝试解决

1. OpenAI API请求限制 Retrying langchain.chat_models.openai.ChatOpenAI.completion_with_retry.._completion_with_retry in 4.0 seconds as it raised RateLimitError: Rate limit reached for gpt-3.5-turbo-16k in organization org-U7I2eKpAo6xA7RUa2Nq307ae on reques…

让内存无处可逃:智能指针[C++11]

智能指针 文章目录 智能指针前言RAII什么是智能指针智能指针的应用示例 C98的auto_ptr共享型智能指针:shared_ptrshared_ptr的使用初始化获取原生指针指定删除器默认删除器default_delete指定删除器指定删除器管理动态数组 shared_ptr的伪实现shared_ptr的注意事项避…

【Docker】进阶之路:(五)Docker引擎

【Docker】进阶之路:(五)Docker引擎 Docker引擎简介Docker引擎的组件构成runccontainerd Docker引擎简介 Docker引擎是用来运行和管理容器的核心部分。Docker首次发布时,Docker 引擎由LXC 和 Docker daemon 两个核心组件构成。 …

linux驱动开发——内核调试技术

目录 一、前言 二、内核调试方法 2.1 内核调试概述 2.2 学会分析内核源程序 2.3调试方法介绍 三、内核打印函数 3.1内核镜像解压前的串口输出函数 3.2 内核镜像解压后的串口输出函数 3.3 内核打印函数 四、获取内核信息 4.1系统请求键 4.2 通过/proc 接口 4.3 通过…

算法:有效的括号(入栈出栈)

时间复杂度 O(n) 空间复杂度 O(n∣Σ∣),其中 Σ 表示字符集,本题中字符串只包含 6 种括号 /*** param {string} s* return {boolean}*/ var isValid function(s) {const map {"(":")","{":"}","["…

python格式化内容

1.字符串格式化: 定义列表 [{"姓名": "张三", "年龄": 18, "性别": "男"}, {"姓名": "里斯李四李斯", "年龄": 18, "性别": "男"}, {"姓名": "斯托夫斯基…

上位机与PLC:ModbusTCP通讯之数据类型转换

前请提要: 从PLC读取的数值,不管是读正负整数还是正负浮点数,读取过来后都会变成UInt16,也就是Ushort类型 一、ushort(UInt16)转成 Int32 源代码方法: //ushort类型转Int32类型的方法private int ushortToInt32(ushort[] date, int start){//先进行判断,长度是否正确…

模型评价指标

用训练好的模型结果进行预测,需要采用一些评价指标来进行评价,才可以得到最优的模型 常用的指标: 1.分类任务 ConfusionMatrix 混淆矩阵Accuracy 准确率Precision 精确率Recall 召回率F1 score H-mean值ROC Curve ROC曲线PR …

天池SQL训练营(三)-复杂查询方法-视图、子查询、函数等

-天池龙珠计划SQL训练营 SQL训练营页面地址:https://tianchi.aliyun.com/specials/promotion/aicampsql 3.1 视图 我们先来看一个查询语句(仅做示例,未提供相关数据) SELECT stu_name FROM view_students_info;单从表面上看起来…

rancher harvester deploy demo 【部署 harvester v1.2.1】

简介 Harvester 是一个现代的、开放的、可互操作的、基于Kubernetes的超融合基础设施(HCI)解决方案。它是一种开源替代方案,专为寻求云原生HCI解决方案的运营商而设计。Harvester运行在裸机服务器上,提供集成的虚拟化和分布式存储功能。除了传统的虚拟机…

SQL SELECT 语句

SELECT 语句用于从数据库中选取数据。 SQL SELECT 语句 SELECT 语句用于从数据库中选取数据。 结果被存储在一个结果表中,称为结果集。 SQL SELECT 语法 SELECT column1, column2, ... FROM table_name; 与 SELECT * FROM table_name; 参数说明: …

二分查找|双指针:LeetCode:2398.预算内的最多机器人数目

作者推荐 本文涉及的基础知识点 二分查找算法合集 滑动窗口 单调队列:计算最大值时,如果前面的数小,则必定被淘汰,前面的数早出队。 题目 你有 n 个机器人,给你两个下标从 0 开始的整数数组 chargeTimes 和 runnin…

算法:最长公共前缀(横向扫描和纵向扫描)

横向扫描 时间复杂度 O(m * n),空间复杂度O(1) /*** param {string[]} strs* return {string}*/ var longestCommonPrefix function(strs) {// 先把第一个字符串拿出来let str strs[0]// 用 startsWith 检查数组中每个字符串是否以当前字符串为前缀while(!strs.e…

听GPT 讲Rust源代码--src/tools(11)

File: rust/src/tools/rust-analyzer/crates/hir/src/lib.rs 在Rust源代码中,rust/src/tools/rust-analyzer/crates/hir/src/lib.rs文件的作用是定义了Rust语言的高级抽象层次(Higher-level IR,HIR)。它包含了Rust语言的各种结构和…

智能优化算法应用:基于蜉蝣算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于蜉蝣算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于蜉蝣算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蜉蝣算法4.实验参数设定5.算法结果6.参考文献7.MA…

JAVA+SSM+springboot+MYSQL企业物资库存进销存管理系统

。该系统从两个对象:由管理员和员工来对系统进行设计构建。主要功能包括首页、个人中心、员工管理、项目信息管理、仓库信息管理、供应商管理、项目计划管理、物资库存管理、到货登记管理、物资出库管理、物资入库管理等功能进行管理。本企业物资管理系统方便员工快…

linux 定时任务

使用 crontab Usage: crontab [-u user] [-e|-l|-r] Crontab 的格式说明如下: * 逗号(‘,’) 指定列表值。如: “1,3,4,7,8″ * 中横线(‘-’) 指定范围值 如 “1-6″, 代表 “1,2,3,4,5,6″ * 星号 (‘*’) 代表所有可能的值 */15 表示每 15 分钟执行一次 # Use the ha…