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,一经查实,立即删除!

相关文章

修改 Ganglia 监控 Grid Report timezone 时区 为 东八区 +8 PRC

Ganglia 监控 Grid Report timezone 默认时区 为 零时区 0 现在要修改为 东八区 8 具体操作如下 modify ganglia-web report timezone 0 --> 8 vim /apps/svr/httpd-2.4.48/htdocs/ganglia/header.php // add timezone GMT8 ini_set(date.timezone, PRC);详细记录&#x…

【面试】测试/测开(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 {"(":")","{":"}","["…

List截取指定长度(java截取拼接URL)

场景&#xff1a; N多个参数&#xff0c;截取指定个数&#xff0c;拼接URL public static void main(final String[] args) {int count 0;//每页数量final int pageSize 5;final List<Integer> memberNos ListUtil.toList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13…

python格式化内容

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

C++知识 抽象基类

抽象基类通常包含至少一个纯虚函数&#xff0c;即一个没有具体实现的虚函数&#xff0c;通过在基类中声明纯虚函数&#xff0c;它强制派生类提供这个函数的具体实现。 通过在类的声明中使用 virtual 关键字和 0 初始化来创建纯虚函数&#xff0c;这样的类就成为抽象基类。以下…

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

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

MySQL_6.MySQL常用创建语句

1.数据库创建,查询,删除 (1)创建一个test数据库 CREATE DATABASE test ; CREATE DATABASE IF NOT EXISTS test; # default character set :默认字符集 CREATE DATABASE IF NOT EXISTS test default character set UTF8; # default collate&#xff1a;默认排序规格 # utf8_g…

前端知识(七)———HTTPS:保护网络通信安全的关键

当谈到网络通信和数据传输时&#xff0c;安全性是一个至关重要的问题。在互联网上&#xff0c;有许多敏感信息需要通过网络进行传输&#xff0c;例如个人身份信息、银行账户信息和商业机密等。为了保护这些信息不被未经授权的人访问和篡改&#xff0c;HTTPS&#xff08;超文本传…

AI:大语言模型LLM

LLM 大语言模型&#xff08;Large Language Model&#xff0c;LLM&#xff09;是一种利用大量文本数据进行训练的自然语言处理模型&#xff0c;其评价可以从多个方面进行。 以下是一些主要的评价方面&#xff1a; 语言理解和生成能力&#xff1a;评价大语言模型在自然语言理…

模型评价指标

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

PostgreSQL pgvector:如何利用向量数据库提升搜索效率和精度

LLMs模型实战教程 文章来源&#xff1a;https://zhuanlan.zhihu.com/p/641516393 Kevin 一、介绍 随着基础模型的兴起&#xff0c;向量数据库的受欢迎程度也飙升。事实上&#xff0c;在大型语言模型环境中&#xff0c;向量数据库也很有用。 在机器学习领域&#xff0c;我们经…

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

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

C#反射加载程序集并使用

具体实现参考&#xff1a; C# 动态加载DLL通过反射调用参数、方法、窗体_c#反射加载dll并传入参数-CSDN博客 C#进阶学习--反射(Reflection) - 知乎 走进C#反射机制 - 知乎 1.使用过程 //创建数据集 Assembly outerAsm Assembly.LoadFile("D:/your.dll");//获取…