ChatGPT是如何生成长文的

说实话,现在我们对chatGPT的最深的印象就是他是一个各方面知识都比较全面的机器助手,我们的问题他都能生成答案,不过大家发现没有,它生成相对应的长文的时候,都是一个词一个词蹦出来的,有的时候是一个个词组蹦出来的。

所以很简单,chatGPT在做的事情就是生成下一个词!!!

那么问题就来了,chatGPT是怎么知道下一个词是什么的呢?对于同一个问题它每次生成的回答会不会一样呢?第二个问题相信大家已经知道了,基本上不会一样,可能大体意思是差不多的,大家可以想象跳迷宫,可能你第一次跳迷宫到了A宫格,下一步选择了B宫格,但是下一次到了A宫格的时候你也可以选择C宫格了。

chatGPT其实是在做选择题,它并不知道下一个词是什么,只是选择概率比较大的词,然后生成对应的文章,所以问题的关键就是,如何知道下一个概率最大的词呢?

我们先假设这样一个场景,选取一篇小说,比如大概有500万词,先对500万个词进行一个去重,比如得到了5万个词,然后统计下这5万个词互相之间下一个的概率,怎么说呢?比如我们先选取第一个词为我,我们可以从这500万个词中找到我后面跟的所有词吧,然后对应的这些词的出现次数我们可以拿到吧,比如”的”出现的次数为1万,”是”出现的次数为0.5万,所以”我” 后面出现的”的”概率相对来说最大,这样”我”后面是不是就可以跟”的”了,依次类推,”的”后面跟的词可能就是”家”,这样下来也可以让chatGPT生成一部短篇小说了;

上面是500万个词,可能生成出来的答案不够通俗,那如果我们的训练数据进一步扩大呢,到达了亿级别,10亿,百亿或者万亿级别的词,这样的话是不是基本上把握我们人类产生的几乎所有可以生成的词都囊括进去了,理论上来说,ChatGPT 是不是就可以几乎以人类的想法去合理地帮我们去生成同样的文本了呢。其实这和我们常听的大道理差不多,正所谓看得多知道的也多,就是说白了是量变可以到达质变

这个只是基于单个词去生成,实际上我们有的时候人类是会一次写一个词或者一个词组的,上面的词我们也可以替换成我们常见的词组,去计算对应的概率,只不过这样的话计算的量级会比较大,大家设想下,5万个词组成二元词组有多少对,是不是25亿;如果是三元词组呢,125万亿了吧,四元词组就是625亿亿了,就是625兆了,这个计算量可能稍微有点大,但是如果进一步扩大呢,比如20元词组呢,是不是可能比宇宙中的沙粒都多,我们计算机可能就存不下了。不过chatGPT是怎么做的呢,chatGPT就是建立一个模型,这个模型到底是如何实现的呢,我们下一步揭晓答案!

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

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

相关文章

iClient3D for Cesium在Vue中快速实现场景卷帘

作者:gaogy 1、背景 iClient3D for Cesium是由SuperMap提供的一个前端3D地图客户端,提供了丰富的功能与接口,使得开发者能够在Web应用中快速集成并展现3D地理信息。而在Vue框架中集成iClient3D,不仅可以利用Vue的响应式特性提高开…

postgresql ERROR: cannot drop the currently open database

postgresql ERROR: cannot drop the currently open database 解释: 这个错误表明你正在尝试删除或者切换当前正在使用的数据库。在PostgreSQL中,一个数据库对应着一个进程,当一个数据库处于打开状态时,你不能直接删除或者切换它…

KaiOS 4.0 | DataCall and setupData implemention

相关文档 1、KaiOS 3.1 系统介绍 KaiOS 系统框架和应用结构(APP界面逻辑)文章浏览阅读842次,点赞17次,收藏5次。对于Java开发者而言,理解JS的逻辑调用是有点困难的。而KaiOS webapp开发又不同于现代的web开发,更像chrome浏览器内嵌模式。在这里梳理一下kaios平台web应用…

【星海随笔】删除ceph

cephadm shell ceph osd set noout ceph osd set norecover ceph osd set norebalance ceph osd set nobackfill ceph osd set nodown ceph osd set pause参考文献: https://blog.csdn.net/lyf0327/article/details/90294011 systemctl stop ceph-osd.targetyum re…

MySQL敏感数据进行加密的几种方法

使用MySQL内置的加密函数 AES_ENCRYPT和AES_DECRYPT函数 方法介绍: AES(Advanced Encryption Standard)是一种对称加密算法。在MySQL中,可以使用AES_ENCRYPT函数对数据进行加密,使用AES_DECRYPT函数进行解密。这种加密…

「Mac畅玩鸿蒙与硬件48」UI互动应用篇25 - 简易购物车功能实现

本篇教程将带你实现一个简易购物车功能。通过使用接口定义商品结构,我们将创建一个动态购物车,支持商品的添加、移除以及实时总价计算。 关键词 UI互动应用接口定义购物车功能动态计算商品管理列表操作 一、功能说明 简易购物车功能包含以下交互&#…

json的作用?

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,具有简洁、易读、易于解析和生成等特点,在前后端数据交互、配置文件、数据存储等多个领域发挥着重要作用,以下是具体介绍: JSON 的作用 数据…

PlantUML 入门使用指南

PlantUML 入门使用指南 一、PlantUML介绍二、PlantUML的用途三、PlantUML的语法及示例3.1 用例图(Use Case Diagram)3.2 类图(Class Diagram)3.3 对象图(Object Diagram)3.4 序列图(Sequence Di…

springboot maven 构建 建议使用 --release 21 而不是 -source 21 -target 21,因为它会自动设置系统模块的位置

使用 --release 选项代替 -source 和 -target 是一种更安全、更兼容的方式,特别是在构建使用较新版本 JDK 的项目时。以下是详细解释和建议: 1. 为什么推荐使用 --release 问题点: 使用 -source 和 -target 标志时,仅设置了代码的语言级别和字节码目标版本,但编译器仍可…

快速下载pytorch_geometric

注意:千万不要一上去就使用pip去安装!!! 1.找到GitHub手动下载所需依赖: https://github.com/pyg-team/pytorch_geometric 进入网址后点击此处: 2.点击here进去后寻找自己的torch版本(我的是torch2.1.2的…

微服务-1 认识微服务

目录​​​​​​​ 1 认识微服务 1.1 单体架构 1.2 微服务 1.3 SpringCloud 2 服务拆分原则 2.1 什么时候拆 2.2 怎么拆 2.3 服务调用 3. 服务注册与发现 3.1 注册中心原理 3.2 Nacos注册中心 3.3 服务注册 3.3.1 添加依赖 3.3.2 配置Nacos 3.3.3 启动服务实例 …

GNN图神经网络模型详解与代码复现

图结构数据 图结构数据是一种 非线性数据结构 ,由顶点和边组成,能够灵活表达复杂的关系网络。常见的图结构包括: 类型 特点 无向图 边没有方向 有向图 边有明确的方向 加权图 边附加权重信息 层次图 节点间存在层次关系 这种高度灵活的数据组织方式使得图结构特别适合模拟各…

QT-【常用容器类】-QList类 QLinkedList类

QList 和 QLinkedList 是 Qt 框架中提供的两个重要容器类,用于存储和管理一组数据。它们各自具有不同的特点和优缺点,适用于不同的场景。 1. QList 类概述 QList 是一个动态数组类,提供了对元素的快速随机访问。它的实现类似于 C 标准库中的…

SQLAlchemy示例(连接数据库插入表数据)

背景需求 连接数据库,插入表中一些数据。 其用户是新建用户,所以只能插入,不能更新。 再次输入数据则使用更新数据语法,这个没调试。 #! /usr/bin/env python # -*- coding: utf-8 -*-from sqlalchemy import create_engine, …

低代码开发中 DDD 领域驱动的页面权限控制

在低代码开发的领域中,应用安全与灵活性是两大关键考量因素。领域驱动设计(DDD)作为一种在软件设计领域广泛应用且颇具影响力的方法论,正逐渐在低代码开发的页面权限控制方面展现出其独特的价值与潜力。本文旨在客观地探讨如何借助…

找到一个linux静态库动态库的好资料.3

# 正文 继续整理从这个页面学到的东西:https://tldp.org/HOWTO/Program-Library-HOWTO。 之前的在这里:找到一个linux静态库动态库的好资料.0找到一个linux静态库动态库的好资料.1找到一个linux静态库动态库的好资料.2 这一篇继续看这个: https://tldp…

智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之6

本文提要 一些补充 在为前端和后端 锁定的两个中心词“概念”(命题“作文”的 程序 公共逻辑语言 )和“描述”(谓词“描述” 的 自然 描述语言)的基础上 ,暂时将中端的中心词 锁定在“环境” (情境 “意义…

uniapp小程序实现弹幕不重叠

uniapp小程序实现弹幕不重叠 1、在父组件中引入弹幕组件 <template><!-- 弹幕 --><barrage ref"barrage" class"barrage-content" reloadDanmu"reloadDanmu"></barrage> </template> <script>import barr…

区块链平台安全属性解释

区块链平台安全属性解释 双向认证 解释:双向认证是指在通信过程中,**通信双方都需要对对方的身份进行验证,确保对方是合法的、可信任的实体。**只有双方身份都得到确认后,通信才会被允许进行,从而防止非法用户的接入和数据的窃取或篡改。举例:在基于区块链和联邦学习的数…

nginx 基于 geoip 模块限制地区访问

1、安装 geoip 库 [rootVM-0-15-centos ~]# yum -y install geoip geoip-devel 2、下载并安装 MaxMind 的免费 GeoIP 数据库。这里我选择下载 GeoLite2 数据库&#xff0c;适用于大多数应用。 访问 maxmind 官网&#xff08;https://www.maxmind.com/&#xff09;&#xff0c…