当前位置: 首页 > news >正文

ChatGPT原理剖析

文章目录

  • ChatGPT常见误解
    • 1. 罐头回应
    • 2. 网络搜寻重组
  • ChatGPT真正做的事——文字接龙
  • ChatGPT背后的关键技术——预训练(Pre-train)
    • 一般机器是怎样学习的?
  • ChatGPT带来的研究问题
    • 1. 如何精准提出需求
    • 2. 如何更改错误
    • 3. 侦测AI生成的物件
    • 4. 不小心泄露秘密?

ChatGPT常见误解

1. 罐头回应

由开发者准备好的罐头回应:

在这里插入图片描述

下面是一个问答,让ChatGPT讲一个关于人工智慧的笑话,但可以看出来,这个笑话的笑点显然和我们平常人不太一样,显得笑点非常奇怪:

在这里插入图片描述

2. 网络搜寻重组

你搜寻之后,ChatGPT从网上搜寻答案,整理重组给你想要的答案:

在这里插入图片描述

但实际上,多数ChatGPT的答案在网络上都找不到一模一样的句子,甚至很多是幻想出来的。

比方说这个例子:

在这里插入图片描述

这些网站看上去有模有样,但其实都是虚构的,不是真实存在的。

官方也给出了回应,说ChatGPT是没有连网的:

在这里插入图片描述

ChatGPT真正做的事——文字接龙

ChatGPT真正在做的事情一言以蔽之就是文字接龙,可以把它理解成一个函数,输入一些东西就输出一些东西。可以输入一个句子,输出一个词汇的几率,然后做取样,举例:

在这里插入图片描述

它是从一个几率分布中做取样,所以它每次产生的答案是有随机性的。

那现在来看,它也只能回答一个字呀,它是怎么回答一个句子的呢?

在这里插入图片描述

它会将原来输出的字作为添加到输入当中去,然后继续产生新的输出,一直反复,知道最后选择出一个结束的符号为止。

在这里插入图片描述

那它怎么知道我们之前跟它说的话呢?其实原理是一样的,同一则对话的历史记录都会被作为输入,接入其中。

在这里插入图片描述

这个函数会非常复杂,可能有1700亿个以上的参数!

这么一个复杂且神奇的函数f是怎么形成的呢?

在这里插入图片描述

是通过大量网络上的资料以及人类的指导下,训练出来的,当神奇函数f找到后,ChatGPT就不需要联网了。我们平常使用的时候,就是测试,测试的时候就不需要上网搜集资料了。

ChatGPT背后的关键技术——预训练(Pre-train)

  • 预训练(Pre-train)又叫自督导式学习(Self-supervised Learning)或基石模型(Foundation Model)

其中ChatGPT中的P就是这个意思:

在这里插入图片描述

一般机器是怎样学习的?

以一个英文翻译成中文为例,我们需要提供大量的成对的句子,提供给机器:

在这里插入图片描述

这种学习成为督导式学习。

有了成堆资料机器会自动找到函数f:

在这里插入图片描述

然而要将一般的机器学习步骤运用在ChatGPT上,我们需要给它提供大量的学习资料,但人类老师提供的资料也许是不足够的,当有人问到它之前没有遇到过得问题,那么它也无法回答:

在这里插入图片描述

所以ChatGPT还运用到了另外一个技术,可以无痛制造成对资料

实际上,网络上的很多句子,都能形成成对的问答:

在这里插入图片描述

其实ChatGPT是在GPT基础上继续发展而来的,从2018年的GPT到后来的GPT2.0,GPT3.0都只是用到了网络上的大量数据,当然每一代都比上一代要多用很多的数据。但是效果并不那么好,之后加入了人类老师的指导变成了ChatGPT:

在这里插入图片描述

这其中,在没有人类老师指导的情况下,学习大量网络上的数据,此时称之为预训练(自督导式学习),而在人类老师的指导下呢,就称之为微调(finetune)。

当然,ChatGPT还有用到增强式学习:

在这里插入图片描述

当人类老师比较懒不想教AI的时候,或者人类老师也不知道标准答案的时候,就可以使用增强式学习(Reinforcement Learning,RL)这个时候我们只需要点个赞,或者点个踩就可以,比较省事。

ChatGPT带来的研究问题

1. 如何精准提出需求

  • 当我们不能精准提出需求的时候:

在这里插入图片描述

  • 当我们精准提出需求的时候:

在这里插入图片描述

2. 如何更改错误

在这里插入图片描述

如何让ChatGPT修改一个错误,并且不会导致其他错误,这是一个新的主题,叫做:Neural Editing

在这里插入图片描述

3. 侦测AI生成的物件

在这里插入图片描述

4. 不小心泄露秘密?

有时候这个大型语言模型也许会泄露秘密?

在这里插入图片描述

在这里插入图片描述

有时候我们不小心告诉它一些东西,有没有办法让它遗忘呢?这是一个新的研究主题,这个主题叫做:Machine Unlearning

相关文章:

ChatGPT原理剖析

文章目录 ChatGPT常见误解1. 罐头回应2. 网络搜寻重组 ChatGPT真正做的事——文字接龙ChatGPT背后的关键技术——预训练(Pre-train)一般机器是怎样学习的? ChatGPT带来的研究问题1. 如何精准提出需求2. 如何更改错误3. 侦测AI生成的物件4. 不…...

「C/C++」C/C++软件跨平台思维

博客主页:何曾参静谧的博客 文章专栏:「C/C」C/C学习 目录 相关术语一、编写可移植的代码:二、使用跨平台的C库和框架:三、进行兼容性测试:四、用户界面设计: 相关术语 跨平台思维:是指在软件开…...

c# 通过界面上填写的信息输出到对应的word中,并另存为一个新的文件

c# 通过界面上填写的信息输出到对应的word中,并另存为一个新的文件 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tas…...

HTML+CSS+JS 学习笔记(四)———jQuery

🌱博客主页:大寄一场. 🌱系列专栏:前端 🌱往期回顾: 😘博客制作不易欢迎各位👍点赞⭐收藏➕关注​​ 目录 jQuery 基础 jQuery 概述 下载与配置jQuery 2. 配置jQuery jQuery 选…...

TryHackMe-Mnemonic(boot2root)

Mnemonic I hope you have fun. 端口扫描 循例nmap FTP枚举 尝试anonymous Web枚举 进80 gobuster扫 对着webmasters再扫一下 对着backups继续扫 下载zip文件,发现有密码 zip2john john直接爆 查看note.txt, 给出了ftpuser hydra直接爆ftp 进到ftp 用wget下载所…...

Nacos注册中心的使用

文章目录 Nacos注册中心1. 服务注册到nacos1)引入依赖2)配置nacos地址3)重启 2.服务分级存储模型2.1.给user-service配置集群2.2.同集群优先的负载均衡 3.权重配置 Nacos注册中心 国内公司一般都推崇阿里巴巴的技术,比如注册中心…...

项目中别用 “! = null“ 做判空了

问题 为了避免空指针调用,我们经常会看到这样的语句: if (someobject ! null) {someobject.doCalc();}最终,项目中会存在大量判空代码,丑陋繁杂。。。如何避免这种情况?是否滥用了判空? 最终,项目中会存在…...

MySQL数据库——MySQL子查询

子查询是 MySQL 中比较常用的查询方法,通过子查询可以实现多表查询。子查询指将一个查询语句嵌套在另一个查询语句中。子查询可以在 SELECT、UPDATE 和 DELETE 语句中使用,而且可以进行多层嵌套。在实际开发时,子查询经常出现在 WHERE 子句中…...

工具链和其他-超级好用的web调试工具whistle

目录 whistle介绍 整体结构 能力 规则 6个使用场景示例 1.修改Host 2.代理 3.替换文件(线上报错时) 4.替换UA 5.远程调试 6.JS注入 互动 whistle介绍 整体结构 安装: npm install whistle -g cli:whistle help 启动…...

ROS第四十三节——定位

https://download.csdn.net/download/qq_45685327/87725276 1.新建launch文件 关于launch文件的实现,在amcl功能包下的example目录已经给出了示例,可以作为参考,具体实现: roscd amcl ls examples gedit amcl_diff.launch 该目录下会列出两…...

2023年第二十届五一数学建模竞赛题目 C题详细思路

详细思路以及发布视频版,大家可以去观看,这里是对应的文字版,内容相差不多。 C题:“双碳”目标下低碳建筑研究 C题的问题设置其实是本次比赛最简单的一道,就是简单的综合评价预测模型。真正提升C题难度的其实是C题的…...

模块化编程原理示意图--CommonJS 模块编程--ES6 模块编程思路分析/图解--三种导出形式--全部代码示例

目录 模块化编程 基本介绍 模块化编程原理示意图 模块化编程分类 CommonJS 模块编程 介绍 应用实例 1. 需求说明 2. 思路分析/图解 3. 代码实现 function.js use.html use.js ES6 模块编程 介绍 需求说明 思路分析/图解 代码实现 common.js use_common.js …...

Ansys Zemax | 如何模拟双折射偏振器件

这篇文章介绍了什么是双折射现象、如何在OpticStudio中模拟双折射 (birefringence)、如何模拟双晶体的双折射偏振器以及如何计算偏振器的消光比。(联系我们获取文章附件) 什么是双折射现象 一般的光学材料都是均匀的各向同性的,也就是说无论光…...

Java关键字之:this

一、this关键字的使用 1、this可以用来修饰、调用:属性、方法、构造器 2、this修饰属性和方法 this理解为:当前对象 或 当前正在创建的对象 在类的方法中。我们可以使用“this.属性"或”this.方法“的方式。调用当前对象属性或者方法。但是&#…...

嵌入式Linux驱动开发(九)Linux中断

1. Linux中断简介 1)中断号 linux内核中使用一个int变量表示中断号。 2)申请中断: 该函数可以自动激活中断,但是可能引起睡眠,所以需要小心使用。 int request_irq(unsigned int irq, //要申请中断的中断号irq_ha…...

数据库系统-并发控制

文章目录 一、为什么要并发控制1.2 并发控制解决的问题1.2.1 脏读1.2.2 幻读1.2.3 不可重复读1.2.4 数据丢失问题 二、事务调度及可串行性2.1 事务2.1.1 事务的宏观2.1.2 事务的微观2.1.3 事务的特性 ACID 2.2 事务调度与可串行性2.3 冲突可串行化判定 三、基于封锁的并发控制方…...

Java8 教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Java 8 是oracle公司于2014年3月发布,可以看成是自Java 5 以来最具革命性的版本。Java 8为Java语言、编译器、类库、开发工具与JVM带来了大量新特性。 Java 8入门教程 - 从简单的步骤了解Java…...

从零开始学架构——高可用存储架构

双机架构 存储高可用方案的本质都是通过将数据复制到多个存储设备,通过数据冗余的方式来实现高可用,其复杂性主要体现在如何应对复制延迟和中断导致的数据不一致问题。因此,对任何一个高可用存储方案,我们需要从以下几个方面去进…...

连ChatGPT都不懂的五一调休,到底怎么来的?

今天是周几? 你上了几天班了? 还要上几天班放假? 五一啥安排? 出行的票抢到了吗? 调休到底是谁发明的?! 五一劳动节是要劳动吗? 为什么昨天是周一,今天还是周一&a…...

AES工作流程

工作流程 模式 1:加密 ⚫ 复位EN 重置AES模块 ⚫ 设置模式寄存器mode[1:0]00,设置流数据处理模式寄存器CHMOD[1:0] ⚫ 写AES_KEYRx寄存器,CTR和CBC模式下写AES_IVRx寄存器 ⚫ 写EN1,使能AES ⚫ 写AES_DINR 寄存器4次 ⚫ 等待CCF标…...

C++11

C11 统一的列表初始化 在介绍这里的列表初始化之前,首先我认为这是一个比较鸡肋的功能特性,而且使用起来会和之前C98时有些区别。 // 首先可以定义普通的内置类型的变量int x1 1;int x2 { 1 };int x3{ 1 }; // 这样看起来着实有些怪int arry1[] { 1,…...

ubuntu18.04 配置zlmediakit 支持ffmpeg转码记录

1、zlmediakt 默认不支持ffmepg转码,需要在根目录下的CamkeLists.txt里面option(ENABLE_FFMPEG "Enable FFmpeg" OFF) 将OFF改成ON, 删除原有的build目录,sudo mkdir build. cd build,cmake .. 这样在编译生成文件夹release/linux/debug/生…...

H68K配置路由功能

系统环境Armbian ubuntu系统 参考 如何使用Debian/Ubuntu等Linux做软路由(物理机版本,非虚拟机容器版) - 知乎 https://zhuanlan.zhihu.com/p/587068225 按照他操作的结果,就是只有一个网卡正常 最后一顿操作就出现了我这么个配置 更新源…...

*2.5 迭代法的收敛阶与加速收敛方法

学习目标: 了解迭代法的基本概念和原理。学习者需要理解迭代法的基本概念和原理,包括迭代过程、迭代格式、收敛性等基本概念。 熟练掌握迭代法的收敛阶和收敛速度。学习者需要了解迭代法的收敛阶和收敛速度,掌握如何计算迭代法的收敛阶和收敛…...

仪表板展示 | X-lab开放实验室GitHub开源项目洞察大屏

背景介绍 X-lab开放实验室是一个开源软件产业开放式创新的共同体,由来自国内外著名高校、创业公司、部分互联网与IT企业的专家学者与工程师所构成,目前已在包括开源治理标准制定、开源社区行为度量与分析、开源社区流程自动化、开源全域数据治理与洞察等…...

【c语言】五大内存区域 | 堆区详解

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ…...

【JavaScript】动态表格

&#x1f38a;专栏【 前端易错合集】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【如愿】 大一同学小吉&#xff0c;欢迎并且感谢大家指出我的问题&#x1f970; &#x1f354;介绍 就是在输入框中输入数字后&#xff0c;再按…...

Css如何优雅的实现抽奖转盘

如图&#xff0c;抽奖转盘&#xff0c;可以拆分为几部分&#xff1a; 1.底部大圆&#xff1b; 2.中间小圆&#xff1b; 3.扇形区&#xff1b; 4.扇形内部奖品区&#xff1b; 5.抽奖按钮&#xff1b; 6.点击抽奖按钮时旋转动效及逻辑&#xff1b; 这其中&#xff0c;扇形区&am…...

在Java的小问题

问题1&#xff1a;如何在Java中创建一个对象&#xff1f; 解决方法&#xff1a; 在Java中&#xff0c;要创建一个对象&#xff0c;需要以下步骤&#xff1a; 创建一个类&#xff0c;定义对象的属性和行为。在类中定义一个构造函数&#xff0c;用于初始化对象的属性。在程序中…...

HashMap的扩容机制、初始化容量大小的选择、容量为什么是2的次幂

前置知识 先来看看HashMap中的成员属性 解释&#xff1a; size当前的容器中Entry的数量&#xff0c;也就是当前K-V的数量loadFactory装载因子&#xff0c;用来衡量HashMap满的程度&#xff0c;loadFactory的默认值是0.75threshold临界值&#xff0c;当实际KV数量超过threshol…...