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

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

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

在这里插入图片描述

例如,GPT-3中的1750亿个权重
在这里插入图片描述

被组织成大约28000个不同的矩阵。
在这里插入图片描述

这些矩阵然后被分为8个不同的类别,
在这里插入图片描述

你和我要做的就是一个一个地理解每一个类别,了解每种类型的功能。
在这里插入图片描述

接下来的过程将非常有趣,我们将查看GPT-3的具体数据,以弄清楚1750亿是如何分配的。
在这里插入图片描述

尽管现在有更大更好的模型可用,但GPT-3模型仍然具有独特的魅力,作为第一个吸引全球关注的大型语言模型,其影响不限于机器学习社区。
在这里插入图片描述

事实上,对于更现代的模型,公司往往对具体数据保持更严格的保密。
在这里插入图片描述

在这里,我想说明的是,当你深入研究像ChatGPT这样的工具的内部工作原理时,
在这里插入图片描述

你会发现几乎所有的计算过程都体现为矩阵和向量的乘积。

在这里插入图片描述

在大量的数字中很容易迷失方向,
在这里插入图片描述

但你需要在脑海中清楚地区分两个概念:模型的权重(我用蓝色或红色表示)和你正在处理的数据(我用灰色表示)。
在这里插入图片描述

权重是模型的"大脑"。
这些是在训练期间学习的,它们决定了模型的行为模式。
在这里插入图片描述

正在处理的数据只是对模型在一次操作中接收的特定输入进行编码,例如一段文本。
在这里插入图片描述

记住上面的基础知识,让我们探索文本处理示例的第一步:将输入分割成小片段并将这些片段转换为向量。
在这里插入图片描述

我之前提到过,这些小片段被称为tokens,它们可能是单词的一部分或标点符号,但在本章中,特别是在下一章中,我倾向于简化理解,假设它们对应于完整的单词。
因为我们人类是用词来思考的,通过参考小例子并解释每一步,我们可以让这个过程更容易理解。

在这里插入图片描述

该模型预设了一个包含所有可能单词的词汇表,比如说有50000个。
在这里插入图片描述

我们要遇到的第一个矩阵称为嵌入矩阵(embedding matrix),它为每个单词分配了一个单独的列。
在这里插入图片描述

这些列定义了第一步中每个单词转换成的向量。
在这里插入图片描述

我们称之为 W E W_E WE,就像我们看到的所有其他矩阵一样,
在这里插入图片描述

它的初始值是随机的,
在这里插入图片描述

但会根据数据进行学习和调整。
在这里插入图片描述

在Transformer出现之前,将单词转换为向量的做法在机器学习中已经很普遍,

虽然对于第一次接触的用户来说这可能看起来很奇怪,但它为接下来的一切奠定了基础,所以需要花一些时间来熟悉它。
在这里插入图片描述

我们通常将这种转换称为词嵌入(word embedding),它是一种表示,允许你从几何角度理解这些向量,将它们视为高维空间中的点。
在这里插入图片描述

将三个数字视为三维空间中的坐标很容易,但词向量的维度远远超过这个数量。
在GPT-3中,它们有惊人的12288个维度,正如你所看到的,选择一个有很多不同方向的空间来工作是很重要的。

在这里插入图片描述

就像你可以在三维空间中选择一个二维切片,并将所有点投影到这个切片上一样,为了使一个简单模型输出的词向量能够动态显示,
在这里插入图片描述

我采取了类似的方法,在高维空间中选择一个三维"切片",并将词向量映射到这个切片上进行显示。
在这里插入图片描述

这里的关键思想是,模型在训练过程中调整和微调权重,以确定单词如何具体嵌入为向量,并且它倾向于找到一组嵌入,使得这个空间中的方向具有特定的语义含义。
在这里插入图片描述

对于到目前为止我运行的这个简单的词向量模型,如果我搜索并找到与"tower"最相似的所有词向量,你会发现它们都有类似的"tower感"。
如果你想在家用Python试一试,这就是我用来制作动画的模型。
虽然它不是一个Transformer模型,但它足以说明空间中的方向能够传达特定的语义这一点。

在这里插入图片描述

一个经典的例子是,如果你计算"woman"和"man"向量之间的差异,你会发现这个差异可以可视化为连接一个词的尖端到另一个词的尖端的空间中的一个小向量,而这个差异与"king"和"queen"之间的差异非常相似。
在这里插入图片描述

因此,假设你不知道表示"女性君主"的词,你可以通过将"woman减去man"的方向加到"king"向量上,并搜索最接近该点的词向量来找到它。
至少在理论上是这样。
在这里插入图片描述

虽然这是我正在研究的模型的一个经典例子,但真正的"queen"嵌入实际上比这种方法可能设想的要远一些,
在这里插入图片描述

可能是因为在训练数据中,"queen"不仅仅是"king"的女性版本。
在这里插入图片描述

当我深入研究时,我发现似乎用家庭关系来解释这种现象更合适。
在这里插入图片描述

关键是,在训练过程中,模型发现采用这种嵌入方法更有利,即空间中的一个方向可以编码性别信息。
在这里插入图片描述

另一个例子是,如果你用意大利的向量表示减去德国的向量表示,再加上希特勒的向量表示,结果非常接近墨索里尼的向量表示。
在这里插入图片描述

就好像模型学会了将某些方向与"意大利"特征相关联,
在这里插入图片描述

而将其他方向与二战轴心国领导人相关联。
在这里插入图片描述

我个人最喜欢的一个例子是,在某些模型中,如果你计算"德国"和"日本"向量之间的差异,然后加上"寿司"的向量,你会得到一个非常接近"德国香肠"的结果。
在这里插入图片描述

此外,在搜索最近邻的过程中,我惊喜地发现"猫"与"野兽"和"怪物"非常接近。
在这里插入图片描述

一个有用的数学概念,特别是对于接下来的章节,是两个向量的点积
在这里插入图片描述

可以被看作是衡量它们是否对齐的一种方式。
在这里插入图片描述

从计算的角度来看,点积涉及将对应的元素逐一相乘,然后求和,这很好,因为我们的很多计算看起来都像是权重的总和。
在这里插入图片描述

从几何的角度来看,当两个向量指向相似的方向时,点积为正;
在这里插入图片描述

如果它们垂直,点积为零;
在这里插入图片描述

当它们指向相反的方向时,点积为负。
在这里插入图片描述

例如,假设你正在测试这个模型,通过从"cats"的向量表示中减去"cats"的向量表示。
有可能在这个空间中找到代表复数概念的方向。
在这里插入图片描述

为了测试这一点,我将计算一些特定单数名词的嵌入向量的点积,并将其与相应复数名词的点积进行比较。
在这里插入图片描述

如果你尝试一下,你会发现复数名词的点积通常高于单数名词,这表明它们在某个方向上更紧密地对齐。
在这里插入图片描述

更有趣的是,如果你将这个点积应用于像"one"、“two”、"three"等词的嵌入,你可以看到结果值逐渐增加,就像我们可以定量地衡量模型认为一个词有多"复数"一样。

参考

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

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

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

相关文章

java-spring-mvc(服务端接收客户端传参)

目录 🎯 服务端接收参数 ✨HttpServletRequest接收 ✨ 声明参数接收 ✨声明pojo类来接收 🔪小试牛刀 🎯 服务端接收参数 ✨HttpServletRequest接收 HttpServletRequest是Java Servlet规范中定义的一个接口,它提供了与HTTP请求…

解决Redis的键值前出现类似\xAC\xED\x00\x05t\x00*这样的字符序列

文章目录 1.问题2.解决方法3.StringRedisTemplate和RedisTemplate的区别 1.问题 在使用RedisTemplate对Redis进行操作时,发现Reids键值对前有\xAC\xED\x00\x05t\x00*这样的字符序列 如图所示: 虽说不影响使用,但是听影响观感的 2.解决方法 查找了很多方法,可以指定RedisTem…

用户中心(下)

文章目录 计划登录逻辑接口简单说明cookie和session写代码流程后端逻辑层控制层测试用户管理接口 前端简化代码对接后端代理 计划 开发完成后端登录功能 (单机登录 > 后续改造为分布式 / 第三方登录)✔开发后端用户的管理接口 (用户的查询…

基于EO平衡优化器算法的目标函数最优值求解matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于EO平衡优化器算法的目标函数最优值求解matlab仿真。提供九个测试函数,分别对九个测试函数仿真输出最优解以及对应的优化收敛曲线。 2.测试软件版…

树莓派点亮LED灯

简介 使用GPIO Zero library 的 Python库实现点亮LED灯。接线 树莓派引脚参考图如下: LED正极 接GPIO17 LED负极 接GND 权限 将你的用户加到gpio组中, 否则无法控制GPIO sudo usermod -a -G gpio 代码 from gpiozero import LED from time impor…

ES全文检索支持拼音和繁简检索

ES全文检索支持拼音和繁简检索 1. 实现目标2. 引入pinyin插件2.1 编译 elasticsearch-analysis-pinyin 插件2.2 安装拼音插件 3. 引入ik分词器插件3.1 已有作者编译后的包文件3.2 只有源代码的版本3.3 安装ik分词插件 4. 建立es索引5.测试检索6. 繁简转换 1. 实现目标 ES检索时…

Springboot+Vue+小程序+基于微信小程序护农远程看护系统

开发平台为idea,maven管理工具,Mybatis操作数据库,根据市场数字化需要为农户打造小程序可远程查看农场的种植情况。项目是调试,讲解服务均可有偿获取,需要可在最下方QQ二维码处联系我。 SpringbootVue小程序&#xff…

【UE5】数字人基础

这里主要记录一下自己在实现数字人得过程中涉及导XSens惯性动捕,视频动捕,LiveLinkFace表捕,GRoom物理头发等。 一、导入骨骼网格体 骨骼网格体即模型要在模型雕刻阶段就要雕刻好表捕所需的表情体(blendshape),后面表捕的效果直…

API安全

一,什么是API API指的是应用程序编程接口(Application Programming Interface),是一组定义了软件组件如何相互交互的规范。通过API,不同的软件可以相互通信和交换数据,实现不同软件之间的集成和互操作。 …

代码随想录算法训练营DAY45|C++动态规划Part7|70.爬楼梯(进阶版)、322. 零钱兑换、279.完全平方数

文章目录 70.爬楼梯(进阶版)322. 零钱兑换思路CPP代码 279.完全平方数思路CPP代码 70.爬楼梯(进阶版) 卡码网:57. 爬楼梯 文章讲解:70.爬楼梯(进阶版) 322. 零钱兑换 力扣题目链接 文章讲解:322…

llama_index微调BGE模型

微调模型是为了让模型在特殊领域表现良好,帮助其学习到专业术语等。 本文采用llama_index框架微调BGE模型,跑通整个流程,并学习模型微调的方法。 一、环境准备 Linux环境,GPU L20 48G,Python3.8.10。 pip该库即可。 二、数据准备 该框架实现了读取各种类型的文件,给…

LNMP部署及应用(Linux+Nginx+MySQL+PHP)

LNMP 我们为什么采用LNMP这种架构? 采用Linux、PHP、MySQL的优点我们不必多说。 Nginx是一个小巧而高效的Linux下的Web服务器软件,是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,已经在一些俄罗斯的大型网站上运行多年,目…

数据分析及AI技术在旅游行业的应用

引言 旅游行业是一个充满潜力和机遇的领域,而数据分析和人工智能(AI)技术的迅猛发展为这个行业带来了前所未有的机遇和挑战。本文将探讨数据分析及AI技术在旅游行业中的具体应用及其带来的影响。 数据分析在旅游行业的4种应用 在旅游行业…

windows编程中的位图操作,界面中插入位图方法

在界面中插入位图,主要用到BitBlt这个函数 BOOL CDC::BitBlt(int x, int y, int width, int height, CDC *src, int src_x, int src_y, DWORD dwRop)用法说明见官方说明 这里要注意的是,这个函数是把源图像从src这个设备上下文传递到目标设备上下文(这…

如何从 iPhone 恢复已删除或丢失的联系人?

不小心删除了您的 iPhone 联系人?不用担心。我们将向您展示如何从 iPhone或 iPad恢复已删除或丢失的联系人。当您从 iPhone 中删除联系人时,您可能认为无法将其恢复。但事实是,您可以从 iPhone 或 iPad 恢复已删除的联系人,因为它…

链表经典练习题

目录 前言: 一、反转单链表 二、链表的中间结点 三、合并两个有序链表 四、分割链表 五、约瑟夫问题 六、判断链表是否有环? 七、求环形链表的入口点 八、输入一个链表,输出该链表中倒数第k个结点 九、输入两个链表,找出…

云原生Kubernetes: K8S 1.29版本 部署Sonarqube

一、实验 1.环境 (1)主机 表1 主机 主机架构版本IP备注masterK8S master节点1.29.0192.168.204.8 node1K8S node节点1.29.0192.168.204.9node2K8S node节点1.29.0192.168.204.10已部署Kuboard (2)master节点查看集群 1&…

开箱子咸鱼之王H5游戏源码_内购修复优化_附带APK完美运营无bug最终版__GM总运营后台_附带安卓版本

内容目录 一、详细介绍二、效果展示2.效果图展示 三、学习资料下载 一、详细介绍 1.包括原生打包APK,资源全部APK本地化,基本上不跑服务器宽带 2.优化后端,基本上不再一直跑内存,不炸服响应快! 3.优化前端&#xff0c…

WSL2-Ubuntu使用Conda配置百度飞浆paddlepaddle虚拟环境

0x00 缘起 本文将介绍在WSL2-Ubuntu系统中,使用Conda配置百度飞浆paddlepaddle虚拟环境中所出现的各种问题以及解决方法,最终运行"run_check()"通过测试。 在WSL2中配置paddlepaddle不像配置Pytorch那样顺滑,会出现各种问题(如:库的文件缺失、不知道如何匹配C…

Web后端开发中对三层架构解耦之控制反转与依赖注入

内聚与耦合 内聚 比如说我们刚刚书写的员工的实现类 在这里我们仅仅书写的是和员工相关的代码 而与员工无关的代码都没有放到这里 说明内聚程度较高 耦合 以后软件开发要高内聚 低耦合 提高程序灵活性 扩拓展性 分析代码 如何解耦 创建容器 提供一个容器 存储东西 存储E…