ChatGPT第二讲

news/发布时间2024/5/15 1:14:32

ChatGPT神话”背后的原理是什么?

        关于ChatGPT,我们之前已经听到了很多讨论、看到了很多信息。其实可惜的是,绝大部分人在谈论ChatGPT时,甚至没有搞清楚最基本的概念。

        就是说ChatGPT到底是什么?我先下个判断:它是一个被神化了的语言模型的衍生品。

        在1972年,贾里尼克博士在IBM公司的沃森实验室建立了人类第一个语言模型,并且创造出这个名词的时候,他也没想到这个概念今天会这么火。

        ChatGPT所依赖的语言模型技术有50多年的历史了。换句话说,ChatGPT的底层技术是50年前的。

        今天在很多媒体上,很多没有开发过相应技术的人,甚至很多学了一点技术的都会有一个疑问,说技术发展了这么多年,难道不应该早就超越了当时的极限了吗?

        其实,无论是在工业上,还是在信息产业上,技术确实是可以改变的,但是物理学和信息论的原理和极限是无法改变的。虽然今天人工智能使用的语言模型和50年前在技术上有很大的不同,但是它们的原理是一样的。这一节课,我们就来把ChatGPT的底层技术,也就是语言模型说明白。

1、什么是语言模型?

        什么是语言模型?顾名思义,就是对人类的语言建立数学模型。这里面最重要的关键词是“数学”。语言模型不是逻辑框架,也不是什么生物学的反馈系统,而是由数学公式构建的模型。

        那么解决和语言相关的问题,为什么要用数学模型呢?

        因为这是一条捷径。我们想让计算机理解自然语言,让计算机回答问题,或者进行几种语言之间的翻译,其实第一反应会是,应该让计算机理解人的语言,让它学会语法……但是人们经过很多次尝试,都失败了,或者说至少到今天还没有做到。而换个思路,如果想办法把这些问题变成数学问题,然后通过计算,就能间接解决这些自然语言处理的问题。于是,语言模型的想法就被提出来了。

        刚开始人们主要是从语音学和语言学入手研究这个问题。贾里尼克和之前那些研究人员所不同的是,他不是语音学家,也不是语言学家,而是一个数学基础非常好的通信专家。因此,贾里尼克的想法不受之前的限制,他以一种独特的视角来看待自然语言处理问题,把它们都看成是一种通信问题。

        自然语言和通信问题,这两件事又有什么关联呢?

        根据目前确立的现代通信原理,所谓的通信,也被称为信道的编码和解码,无非是信息源先产生一个原始信息,然后在接收方在接收到后还原一个和原始信息最接近的信息。

        比如,你传输一句话,“中国是一个古老的国家”。在传输前要对它进行编码,比如编成我们所熟知的二进制010101111000…...但是,传输中一定会有噪音和信号损失,接收方接收到的编码可能是1010111000…...在传递的过程中丢了几个码,这样就翻译不回原来的句子了。

那怎么办呢?我们可以把和接收到的编码相似的句子都列举出来。比如:

国中是一个古老的国家

中国是一个古老的国家

国是一个古老的国家

中国一个古老的国

等等。

        然后,通信系统会计算哪一种可能性的概率最大,然后把它选出来。只要传输中的噪音不是太大,而且传输的信息有冗余,我们就都能复原原来的信息。

        从这个角度来看待其实语音识别也是一样的。当人和人交谈的时候,我说“中国是一个古老的国家”这句话,在空气中或者电话线上传播的是声音的波形,而在接听者那里听到的,其实是带有噪音的声音,他需要接收声音的波形,来还原讲话人说的话。只要噪音不是太大,人是能够做到这件事的(开玩笑)。

        当然,要让计算机来做这件事,不是让计算机学着人的做法去理解语言,而是最好能够让计算机计算出来哪一种可能的语句概率最大。这种计算自然语言每个句子概率的数学模型,就是语言模型。

        比如在刚才讲的例子中:

        “国中是一个古老的国家”的概率是0.05,“中国是一个古老的国家”的概率是0.2,其它几个候选句子的概率都是0.01,于是我们就认为,概率最高的“中国是一个古老的国家”,就是讲话人讲的句子。

2、如何消除不确定性?

        当然,爱动脑筋的同学就会问道,如果我想讲的就是那些小概率的事情呢?你用最大的概率来预测不是就错了吗?

        那这个同学的观察就很敏锐了,这确实是语言模型的问题。而解决这个问题的办法就是利用更多的上下文信息,消除所有的不确定性。

        比如,第一代语言模型用的上下文信息就很少,但是到了GPT-3,就用到了前后2000个词的信息,包括标点符号等,都算成是词。

        由于自然语言中有信息冗余,在这么多上下文里,几乎就不存在不确定性了。这也是为什么今天ChatGPT产生的语句,已经很像人说的话了。但从本质上讲,它的原理依然是在很多种候选中,选择一个概率或者是可能性最大的句子。这一点是没有改变的。        

3、模型的概率怎么计算?

        接下来的问题是,这个概率该怎么计算,或者说好坏该如何评估呢?

        早期的语言模型只是看上下文。咱们还拿“中国是一个古老的国家”举例子,在这句话里,“中国”这个词就比“国中”放到开头要来的通顺。什么叫通顺?就是大家都这么说,用的时候多,并不一定要符合语法。事实上,在生活中很多常见的说法其实都是病句,但是语言模型不考虑这种情况,它只是认为人们说得多的就是好的句子。

        那怎么准确计算这个概率呢?这时候就要做一些统计了,统计一下在相同的上下文的条件下,每个词具体出现了多少次。因此,语言模型也被称为是统计语言模型,因为它模型的参数,也就是用来计算各种概率的参数,都是靠统计得出的。

        讲到统计之前,我们先要做一个说明,就是今天对于语言模型参数的统计并不是简单的数数,而是要用很复杂的机器学习方法反复计算。我们后面会讲语言模型的三个发展阶段,就是根据如何得到模型参数来区分的。但是为了简单起见,我们可以先把它理解为数数。

        为了统计出语言模型的参数,就需要事先准备好大量的文本供统计使用。

        比如有两个句子,“天为什么是蓝色的”和“天为什么是绿色的”,哪一个概率更大?

        我们很容易想到,“蓝色”的概率更大,这是因为我们经常会在文本中看到这句话,比如在1亿篇文章和书籍的章节中看到了100次,它的概率就是百万分之一。而后一句话没有看到,概率就认为是零。

        但是,如果某句话,比如“天为什么是黄色的”在统计的文本中出现了一次,是否我们可以认为它比那些没有出现过的句子概率大呢?这就不好说了,因为这些小概率事件,出现不出现,都有很大的随意性。出现两次的随机事件,也未必能说明它比出现一次的随机事件发生的概率更大。

        为了避免这种所谓小概率事件所带来的噪音,我们能做的就是增加数据量。

        2000年前后,训练语音识别所使用的语言模型时,只用到了几千万个英语的句子。但是到了2012年,开发计算机问答时,训练的数据就扩大到当时互联网上能找到的全部、上百亿个句子,也就是说,十多年增加了上千倍。

        今天,ChatGPT的语言模型所用的训练数据量也是很大的,第一个版本使用的GPT-3用了大约5000亿个词,换算成句子大约是500亿个。GPT-4因为模型规模增加了将近一个数量级,训练数据可能增幅更大了。

        当然,提高语言模型的准确性,光增加数据量不够,还需要保证数据的质量,这一点我们后面会讲到。

4、如何利用语言模型写唐诗?

        好,语言模型介绍得差不多了。现在,我们用上刚刚讲的知识,解释一下如何利用语言模型写唐诗。

        唐诗大多属于韵律诗,它不仅最后一个字押韵,而且每一句诗都是按照一组两个字或者三个字的单元构成的。

        比如王之涣的《登鹳雀楼》:“白日依山尽,黄河入海流,欲穷千里目,更上一层楼。”每一句都可以拆成“2-3”组合。杜甫的《登高》:“无边落木萧萧下,不尽长江滚滚来。”每一句都可以拆成“2-2-3”组合。

        于是,我们就可以把所有的绝句拆成“2-3”或者“2-2-3”的组合,然后以两个字或者三个字作为基本单元进行统计,得到它们在上下文中的概率,然后就可以写出一句句概率比较大的诗句了。

        当然,我们还要再根据每一个词的语义,把唐诗中出现的词归类,让一首诗中的每一句符合同一个主题。这里面还有一些具体的细节,我就省略了。总之,只要搞懂了语言模型的道理,有现成的诗供机器来学习,让计算机写诗并不是一件很难的事情。

        类似地,让计算机写每周汇报,方法也大致相似,因为这类文章几乎都遵循固定的模版。美国很多作家在测试了ChatGPT后,对它进行了逆向工程,认为它是按照五段论写作的,也就是包括开头和结论,以及中间的三个要点,当然这个要点可以增加或者减少,要点之间再做一些承接和转折。五段论是美国初中教学生们写作的基本方法,美国大部分篇幅不长的公文,比如电子邮件,都是这么写的。

总结一下;

1.语言模型不是逻辑框架,也不是生物学的反馈系统,而是由数学公式构建的模型。

2.今天对于语言模型参数的统计并不是简单的数数,而是要用很复杂的机器学习方法反复计算得来的。

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

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

相关文章

Easy-Jmeter: 性能测试平台

目录 写在开始1 系统架构2 表结构设计3 测试平台生命周期4 分布式压测5 压力机管理6 用例管理6.1 新增、编辑用例6.2 调试用例6.3 启动测试6.4 动态控量6.5 测试详情6.6 环节日志6.7 实时数据6.8 测试结果 7 测试记录7 用例分析8 系统部署8.1普通部署8.2容器化部署 写在最后 写…

Python中的functools模块详解

大家好,我是海鸽。 函数被定义为一段代码,它接受参数,充当输入,执行涉及这些输入的一些处理,并根据处理返回一个值(输出)。当一个函数将另一个函数作为输入或返回另一个函数作为输出时&#xf…

【SpringBoot】Spring常用注解总结

目录 ⭐spring springmvc和springboot的区别 Autowired 和Resource的区别和联系 1. SpringBootApplication 2. Spring Bean 相关 2.1. Autowired 2.2. Component,Repository,Service, Controller 2.3. RestController 2.4. Scope 2.5. Configuration 3. 处理常见的 HT…

基于Springboot的校园求职招聘系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的校园求职招聘系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构…

HTTP---------状态码

当服务端返回 HTTP 响应时,会带有一个状态码,用于表示特定的请求结果。比如 HTTP/1.1 200 OK,里面的 HTTP/1.1 表示协议版本,200 则是状态码,OK 则是对状态码的描述。 由协议版本、状态码、描述信息组成的行被称为起始…

读取7400MB/s!华为发布eKitStor Xtreme M.2闪存条

今日,华为举行数据存储新春新品发布会,不仅发布全新数据湖解决方案,华为还针对商业市场与分销市场发布了全闪存存储新品。 据介绍,面向游戏加速、影视编辑、户外作业等场景,华为发布eKitStor Xtreme系列高性能M.2闪存条…

设置主从复制时发生报错Could not find first log file name in binary log index file‘;解决方案

如图所示,slave_io_runnind:no,slave_sql_running:yes 此时,主从配置错误,我们可以查看Last_IO_Error:来查看报错信息 此时,我们需要停止从服务器的主从服务, mysql> stop slave; Query OK, 0 rows affected, 1 w…

k8s kubectl陈述式资源管理及命令详解,项目流程与发布示例

目录 Kubernetes kubectl 命令表 _ Kubernetes(K8S)中文文档_Kubernetes中文社区http://docs.kubernetes.org.cn/683.html kubectl概念 概述 用途 kubectl语法 基本语法 简单举例 kubectl使用详解 set:更新 部署发布操作 暴露service service的作用 使…

我的服务器为什么会被攻击?

时常的网站运行中,很多站长可能会遇到网站被黑客攻击的情况,其中同行之间恶性竞争,不正当的竞争关系,导致互联网关系越来越差,攻击的方式多种多样,网站遭受攻击的频次也越来越高。其次,就网络黑…

ChatGPT国内快速上手指南

ChatGPT简介 ChatGPT是由OpenAI团队研发的自然语言处理模型,该模型在大量的互联网文本数据上进行了预训练,使其具备了深刻的语言理解和生成能力。 GPT拥有上亿个参数,这使得ChatGPT在处理各种语言任务时表现卓越。它的训练使得模型能够理解上…

【算法与数据结构】127、LeetCode单词接龙

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:示例1为例,hit到达cog的路线不止一条,如何找到最短是关键。广度优先搜索是一圈…

设计模式之模板方法

模式定义 定义一个操作中的算法的骨架 (稳定),而将一些步骤延迟(变化)到子类中。Template Method使得子类可以不改变(复用)一个算法的结构即可重定义(override 重写)该算法的某些特定步骤。 …

HDL FPGA 学习 - Avlon 总线,从端口传输、主端口传输,单周期、可变周期传输

目录 1.1 Avlon 总线 定制 外设 IP 核的框架 从端口传输 从端口信号类型 从端口传输模式列举 基本单周期读写传输 固定等待周期的读写传输 可变等待周期的读写传输(推荐) 具有建立时间和保持时间读写传输 主端口传输 主端口信号类型 主端口传…

Arduino中安装ESP32网络抽风无法下载 暴力解决办法 python

不知道什么仙人设计的arduino连接网络部分,死活下不下来。(真的沙口,第一次看到这么抽风的下载口) 操作 给爷惹火了我踏马解析json选zip直接全部下下来 把这个大家的开发板管理地址下下来跟后面python放在同一目录下&#xff0c…

Linux环境基础开发工具使用篇(三) git 与 gdb

一、版本控制器-git 1.简单理解: ①git既是服务端,又是客户端 ②git会记录版本的变化 ③git是一个去中心化的分布式软件 git/gitee 是基于git仓库搭建的网站,让版本管理可视化 2.git 三板斧提交代码 查看安装的git版本 git--version 命令行提交代…

【机器学习科学库】全md文档笔记:Matplotlib详细使用方法(已分享,附代码)

本系列文章md笔记(已分享)主要讨论人工智能相关知识。主要内容包括,了解机器学习定义以及应用场景,掌握机器学习基础环境的安装和使用,掌握利用常用的科学计算库对数据进行展示、分析,学会使用jupyter note…

Jmeter学习系列之八:控制器Controllers 的入门介绍

一、Controllers 简介 Jmeter有两种类型的控制器:Samplers(取样器)和Logical Controllers(逻辑控制器);它们驱动着测试的进行取样器:让jmeter发送请求到服务器以及接收服务器的响应数据逻辑控制…

Wagtail安装运行并结合内网穿透实现公网访问本地网站界面

文章目录 前言1. 安装并运行Wagtail1.1 创建并激活虚拟环境 2. 安装cpolar内网穿透工具3. 实现Wagtail公网访问4. 固定的Wagtail公网地址 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂,风趣幽默&#xf…

数学建模【粒子群算法】

一、粒子群算法简介 这里通过共享信息的鸟群来引出粒子群算法 场景:一群鸟在森林随机寻找食物,目标是找到食物量最多的位置关键:鸟群通过叫声交流,随时共享自己的位置和发现的食物量这样鸟群就知道当前在哪个位置食物的量最多每…

开关电源PFC电路原理详解及matlab仿真

PFC全称“Power Factor Correction”,意为“功率因数校正”。PFC电路即能对功率因数进行校正,或者说能提高功率因数的电路。是开关电源中很常见的电路。 在电学中,功率因数PF指有功功率P(单位w)与视在功率S&#xff08…
推荐文章