探究 ChatGPT 的心脏--Transformer(基础知识第一篇)

2024-04-12 02:20

本文主要是介绍探究 ChatGPT 的心脏--Transformer(基础知识第一篇),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        

        Transformer 是 ChatGPT 的核心部分,如果将 AI 看做一辆高速运转的汽车,那么 Transformer 就是最重要的引擎。它是谷歌于 2017 年发表的《Attention is All You Need》中提出的 Sequence-to-sequence 的模型,诞生之后便一统江湖,在 NLP, CV, Audio, Video 多个模态领域成为了遥遥领先。

  1. 如果你之前不了解 Transformer, 或者只知道大概的知识,那么这篇文章可以让你通过自己动手写代码深刻地理解 Transformer 的结构、训练方法以及实际用例等;

  2. 如果你了解 Transformer,这篇文章可以让你温习 Transformer 的知识,所谓温故而知新;

        由于内容很多,因此拆分为几篇文章的内容。

模型结构

总体流程:

        分为 输入(Input), 模型(Model), 输出(Output) 三部分。接下来详细说明每一个部分。

输入

        输入:"我有一只猫"

        分词:用某种分词方法输出 ["我",“有”,“一只”, “猫”],常用的中文分词方法有 jieba 分词,THULAC分词等(想要详细了解这些分词方法可以问 悟空 AI 助手,支持 GPT 3.5, GPT 4),这里每个词也叫做 token(token 的概念很重要,后面反复用到)

        转 Embedding: 将 ["我“,“有”,“一只”, “猫”] 的每一个词转为一个实数向量,常见的是 512 维的向量,因为有 4 个词,每个词变成 512 维向量,所以得到 4*512 维的矩阵,一般用 tensor 存储,简单的就记作 x。具体的转换方法可以问悟空AI,但是本文后面会详细讲到的。

        添加位置 Embedding: 位置 embedding 是对 token 顺序的一种表示,因为 token 顺序很重要。例如:

["我",“爱”,“你”] 跟 ["你",“爱”,“我”],token 顺序变一下含义就完全不同!那么最简单的顺序表示方法就是 1,2,3,...N,用数组索引表示位置,但是 Transformer 没有这么干而是用正弦/余弦函数来表示:

        其中,PE 就是位置编码(Positional Embedding),pos 表示单词在句子中的位置,d 表示 PE的维度 (与词 Embedding 一样),2i 表示偶数的维度,2i+1 表示奇数维度 (即 2i≤d, 2i+1≤d)。画图看一下就是这样:

        脑经急转弯:为什么位置 embedding 不用 [1,2,3,...N] 来表示顺序?

        请认真思考 5 分钟后再看下面的答案。

        有两个原因:

  1. 保证模型训练稳定性和快速收敛性:类似于 data normalization, 原始数据的取值可以是负无穷到正无穷,但是一旦输入到模型就要强制归一化到一个固定区间,常见的是 [-1, 1] 区间,这样做可以大幅加速模型收敛并减少训练误差,但是 1,2,3,...,N 是没有界限的,如果简单的除以 N 来归一化,那么 N 取多少比较合适呢?实际上很难选择 N 的值,所以一个比较合适的选择就是周期性函数,最经典好用的就是正弦/余弦,为啥嘞?因为它们很常见而且求导巨简单,忘了它们导数的去问问 悟空 AI 助手

  2. 要遵循文本结构的周期性:任何一个句子,任何一个段落都是具有周期性的。为啥呢,因为所有的句子都有固定的结构,最常见的是:主语 + 谓语 + 宾语,所以一段话的结构其实类似于这样子的:

 主语 + 谓语 + 宾语 + 标点符号 + 主语 + 谓语 + 宾语 + 标点符号, ......

        很自然地,就想到了用周期性函数来表示位置了。

        网上有人说其中一个原因是可以让模型容易地计算出相对位置,对于固定长度的间距 k,PE(pos+k) 可以用 PE(pos) 计算得到。因为 Sin(A+B) = Sin(A)Cos(B) + Cos(A)Sin(B), Cos(A+B) = Cos(A)Cos(B) - Sin(A)Sin(B)。这个我个人表示不认同,因为 1,2,3,...N 也符合这个性质,不信你算一下。

        然后,将文本的 embedding 和位置的 embedding 加起来就是模型的输入了,如下:

    

        到这里 Transformer 的输入就讲完了,下一篇将介绍模型的结构。

这篇关于探究 ChatGPT 的心脏--Transformer(基础知识第一篇)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/895838

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

计组基础知识

操作系统的特征 并发共享虚拟异步 操作系统的功能 1、资源分配,资源回收硬件资源 CPU、内存、硬盘、I/O设备。2、为应⽤程序提供服务操作系统将硬件资源的操作封装起来,提供相对统⼀的接⼝(系统调⽤)供开发者调⽤。3、管理应⽤程序即控制进程的⽣命周期:进程开始时的环境配置和资源分配、进程结束后的资源回收、进程调度等。4、操作系统内核的功能(1)进程调度能⼒: 管理进程、线

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

AI行业应用(不定期更新)

ChatPDF 可以让你上传一个 PDF 文件,然后针对这个 PDF 进行小结和提问。你可以把各种各样你要研究的分析报告交给它,快速获取到想要知道的信息。https://www.chatpdf.com/