翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习一

合集 ChatGPT 通过图形化的方式来理解 Transformer 架构

  1. 翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习一
  2. 翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习二
  3. 翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习三
  4. 翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习四
  5. 翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习五
  6. 翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习六

Generative Pre-trained Transformer (生成式预训练Transformer)

GPT 是 Generative Pre-trained Transformer 的缩写。

前面的词比较直白,它们是指能生成新文本的机器人。

"Pre-trained"指的是模型已经经历了从大量数据中学习的过程,暗示着模型在特定任务上还有进一步训练和微调的潜力。
在这里插入图片描述

然而,最后一个词才是真正重要的部分。

Transformer(Transformer)是一种特定类型的神经网络,一种机器学习模型,它是当今人工智能快速发展的核心。
在这里插入图片描述

通过这个视频和接下来的章节,我希望能以一种易于理解的方式解释Transformer内部究竟发生了什么。
在这里插入图片描述

我们将一步步探索其中的数据流。
在这里插入图片描述

你可以用Transformer构建许多不同类型的模型。
在这里插入图片描述

有些模型接受音频输入并生成文本。
在这里插入图片描述

这句话来自一个反向的模型,它只需要文本输入就能生成人工语音。
在这里插入图片描述

所有那些在2022年席卷全球的工具,例如DALL-E和MidJourney,它们能够将文本描述转换为图像,这些都是基于Transformer的。

即使我无法让它完全理解什么是"π生物",我仍然对这样的事情能够发生感到惊讶。
在这里插入图片描述

最初的Transformer由谷歌在2017年推出,
在这里插入图片描述

主要用于将文本从一种语言翻译成另一种语言。
在这里插入图片描述

但我们将重点关注的版本,也就是像ChatGPT这样的工具所依赖的类型,将是一个接受一段文本(可能伴随一些图像或声音)然后预测接下来会出现什么文章的模型。
在这里插入图片描述

这个预测以概率分布的形式呈现,涵盖了大量可能出现的下一个文本片段。

乍一看,你可能会认为预测下一个词似乎与生成新词相去甚远。

但当你有了这样一个预测模型,你就可以尝试通过给它一个初始片段,然后从你刚刚生成的概率分布中随机抽取一个样本,将该样本附加到文本中,然后再进行一轮预测,这次是基于所有新生成的文本。

我不知道你怎么想,但我真的不认为这种方法会很有效。
在这里插入图片描述

例如,在这个动画中,我在笔记本电脑上运行GPT-2,让它不断预测和抽样下一段文本,试图根据一个开始的文本片段生成一个故事。

结果是,这个故事基本上没有任何逻辑。
在这里插入图片描述

但如果我切换到GPT-3的API调用,这是相同的基本模型,只是规模大得多,突然之间就像魔术一样,我们不仅得到了一个有逻辑的故事,甚至还暗示了一个π生物如何栖息在一个充满数学和计算的世界里。
在这里插入图片描述

这个过程就是通过反复预测和选择来生成文本,这正是你在使用ChatGPT或其他大型语言模型时所体验到的,它们逐字生成文本。

实际上,我希望有一个功能,可以让我看到它为每个新选择的词所基于的潜在概率分布。
在这里插入图片描述

让我们从宏观层面看看数据如何在Transformer模型中流动。

接下来,我们将详细探索、解释和扩展每一步。

但总的来说,当聊天机器人生成一个特定的词时,它是这样工作的。
在这里插入图片描述

首先,输入被分割成许多小片段。这些小片段被称为标记(token)。

对于文本,这些标记通常是单词、单词的小部分或其他常见的字符组合。
在这里插入图片描述
在这里插入图片描述

如果是图像或声音,一个标记可能代表图像的一小块区域或声音的一小段片段。
在这里插入图片描述

然后,每个标记都对应一个向量,即一串数字,其目的是以某种方式传达该片段的含义。
在这里插入图片描述

如果你把这些向量看作高维空间中的坐标,那么具有相似含义的词往往位于彼此接近的向量上。
在这里插入图片描述
这些向量序列
在这里插入图片描述

然后经过一个称为"注意力块"(attention blocks)的过程,允许向量相互"交谈",并根据彼此的信息更新自己的值。
在这里插入图片描述

例如,"model"这个词在"fashion model"中的含义与在其他上下文中不同。
在这里插入图片描述

注意力模块的目的是确定上下文中的哪些词与更新其他词的含义相关,以及这些含义应该如何精确地更新。
在这里插入图片描述

每当我说"含义"这个词时,都是指向量中的数字。
在这里插入图片描述

之后,这些向量经过另一个过程,根据数据的不同,可能被称为多层感知器(multilayer perceptron)或前馈层(feedforward layer)。
在这里插入图片描述

在这个阶段,向量不再相互"交流",而是并行地经历相同的过程。
在这里插入图片描述

虽然这一步有点难以理解,我们稍后会讨论,它有点像为每个向量提出一系列问题,然后根据这些问题的答案更新向量。
在这里插入图片描述
在这里插入图片描述

这两个处理阶段本质上都是大量的矩阵乘法,我们要学习的是如何解释其背后的矩阵。
在这里插入图片描述

在解释中,我省略了一些中间步骤的归一化细节,毕竟这只是一个宏观概述。
在这里插入图片描述

接下来,这个过程基本上会重复。
在这里插入图片描述

你需要不断在注意力模块和多层感知器(MLP)模块之间切换,直到结束,我们期望以某种方式,文章的核心含义已经完全整合到序列的最后一个向量中。
在这里插入图片描述

然后,这个最后的向量经过一个特定的操作,产生一个概率分布,涵盖了所有可能出现的下一个标记,代表任何可能出现的小文本片段。
在这里插入图片描述

就像我说的,一旦你有了一个根据一小段文本预测下一步的工具,你就可以给它一些初始文本,让它不断预测下一步,从概率分布中抽样,添加到现有文本中,
在这里插入图片描述

然后一遍又一遍地重复这个过程。
在这里插入图片描述

了解这一点的人可能会回想起,早在ChatGPT出现之前,GPT-3的早期演示就是这样,根据一段起始文本自动完成故事和文章。
在这里插入图片描述

将这样一个工具转变为聊天机器人的一个简单方法是准备一段文本,
在这里插入图片描述

设定一个用户与有用的AI助手互动的场景,称为系统提示(system prompt)。
在这里插入图片描述

然后,你可以用用户的初始问题或提示开始对话,
在这里插入图片描述

然后让AI开始预测有用的AI助手将如何回应。

为了让这个过程更好地工作,还有额外的训练步骤,但总的来说,这就是基本思路。

参考

https://youtu.be/wjZofJX0v4M?si=DujTHghH5dYM3KpZ

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

强网杯 2019]随便注解题方式

先来看题 这里只有一个提交,那我们就先提交看看情况找找思路 这里提交以后发现也没有什么有用的信息 这样我们只能根据我们的经验先试试 输入1发现有报错 有报错信息就可以试试报错注入了,但是这种ctf题通常会有限制字符所以我使用 1 select 1,2# 来…

c#数据库: 4.修改学生成绩

将4年级的学生成绩全部修改为100分,。修改前的学生信息表如图所示: using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks;namespace StudentUpdate {internal class Program{s…

Apache SeaTunnel k8s 集群模式 Zeta 引擎部署指南

SeaTunnel提供了一种运行Zeta引擎(cluster-mode)的方法,可以让Kubernetes在本地运行Zeta引擎,实现更高效的应用程序部署和管理。在本文中,我们将探索SeaTunnel k8s运行zeta引擎(cluster-mode模式)的更多信息,了解如何更好地利用Ze…

JavaScript基础(二)

JS语法结构——引入方式 js很明显可以是一个后缀名为js的文件&#xff0c;js的引入方式和css一样&#xff0c;也有三种方式。 1.外部 使用script表现&#xff0c;只不过增加一个src属性&#xff0c;把js文件的路径src属性中。 <script src "js文件路径">&l…

h5+Vant左滑删除

介绍&#xff1a;这是一个上拉加载下拉刷新的列表&#xff0c;外加左滑删除。废话不多说&#xff0c;直接上代码&#xff01;&#xff01;&#xff01;&#xff01; <template><div class"info-list"><div class"top-bar"><van-nav-…

深入解析Floyd Warshall算法:原理、Java实现与优缺点

Floyd Warshall算法的简介 在我们的日常生活中&#xff0c;常常会遇到需要找出两点之间最短路径的问题。比如&#xff0c;从家到公司的最短路线&#xff0c;或者在旅行时&#xff0c;从一个景点到另一个景点的最快路线。 为了解决这类问题&#xff0c;科学家们设计出了许多算法…

利用大型语言模型提升数字产品创新:提示,微调,检索增强生成和代理的应用

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

code-server容器webpack的ws无法连接解决方法

TLDR 通过指定client的wsrul去连接ws devServer.client.webSocketURL ‘wss://<Forwarded uri>/ws’ 拓扑 1、code-server: 用于编写代码、启动webpack dev-server 服务&#xff1b;[https://<domain>:8001] 2、webpack: 用于浏览dev-server服务&#xff1b;[ht…

spring-boot示例

spring-boot版本&#xff1a;2.0.3.RELEASE 数据库: H2数据库 &#xff08;嵌入式内存性数据库&#xff0c;安装简单&#xff0c;方便用于开发、测试&#xff0c;不适合用于生产&#xff09; mybatis-plus框架&#xff0c;非常迅速开发CRUD

如何去掉引用网址的小尾巴

引用文章的链接时会出现很长冗余信息&#xff0c;删&#xff0c;删&#xff0c;删……&#xff0c;直到从平流层删到地平线 使用 Neat URL&#xff08;支持 google 系、Firefox&#xff09;扩展中的【拦截参数】可以去除的这类百无聊赖的小尾巴。 安装后&#xff0c;点击【Pr…

C语言——单链表实现数据增删查改

一.前言 嗨嗨嗨&#xff0c;我们又见面了。前面我们已经学习了关于数据结构中的顺序表&#xff0c;今天我们来学习数据结构中的单链表。废话不多说让我们直接开始吧。 二.正文 1.1链表的概念 链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺…

【C#】基础知识

0.参考 C#语言入门详解 1.几种打印hello_world的方式 1.1 console控制台 新建一个console&#xff0c;直接打印&#xff1a; Console.WriteLine("Hello_world");启动一闪而过&#xff0c;在vs调试中选择开始执行不调试&#xff08;without debug&#xff09;。 …

算法效率的判断及一些典型例题的讲解

一.算法效率 1.用处&#xff1a;判断算法的好坏&#xff0c;好的算法应该是高效的 2算法效率取决于时间复杂度和空间复杂度 <1>时间复杂度 1.1概念&#xff1a;算法中基本操作的执行次数就是算法的时间复杂度 1.2表示&#xff1a;大O的渐进表示法&#xff0c;例如O(N)…

java技术栈快速复习02_前端基础知识总结

前端基础 经典三件套&#xff1a; html&#xff08;盒子&#xff09;css&#xff08;样式&#xff09;JavaScript&#xff08;js&#xff1a;让盒子动起来&#xff09; html & css HTML全称&#xff1a;Hyper Text Markup Language(超文本标记语言)&#xff0c;不是编程语…

记一次生产事故的排查和解决

一. 事故概述 春节期间, 生产系统多次出现假死不可用现象, 导致绝大部分业务无法进行. 主要表现现象为接口无法访问. 背景为900W客户表和近实时ES, 以及春节期间疫情导致的普通卖菜场景近似秒杀等. 二. 排查过程 优先排查了info, error, catalina日志, 发现以下异常: 主要的…

边循环边删除List中的数据

List边循环&#xff0c;边删除&#xff1b;这种一听感觉就像是会出问题一样&#xff0c;其实只要是删除特定数据&#xff0c;就不会出问题&#xff0c;你如果直接循环删除所有数据&#xff0c;那可能就会出问题了&#xff0c;比如&#xff1a; public static void main(String[…

公考学习平台|基于SprinBoot+vue的公考学习平台(源码+数据库+文档)

公考学习平台目录 目录 基于SprinBootvue的公考学习平台 一、前言 二、系统设计 三、系统功能设计 5.1用户信息管理 5.2 视频信息管理 5.3公告信息管理 5.1论坛信息管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&…

React的useEffect

概念&#xff1a;useEffect是一个React Hook函数&#xff0c;组件渲染之后执行的函数 参数1是一个函数&#xff0c;可以把它叫做副作用函数&#xff0c;在函数内部可以放置要执行的操作参数2是一个数组&#xff08;可选参&#xff09;&#xff0c;在数组里放置依赖项&#x…

Liunx发布tomcat项目

Liunx在Tomcat发布JavaWeb项目 1.问题2.下载JDK3.下载Tomcat4.Tomcat本地JavaWeb项目打war包、解压、发布5.重启Tomcat,查看项目 1.问题 1.JDK 与 Tomcat 版本需匹配&#xff0c;否则页面不能正确显示 报错相关&#xff1a;Caused by: java.lang.ClassNotFoundException: java…

十一、大模型-Semantic Kernel与 LangChain 的对比

Semantic Kernel 与 LangChain 的对比 Semantic Kernel 和 LangChain 都是用于开发基于大型语言模型&#xff08;LLM&#xff09;的应用程序的框架&#xff0c;但它们各有特点和优势。 基本概念和目标 Semantic Kernel 是一个由微软开发的轻量级 SDK&#xff0c;旨在帮助开发…