学习Transformer,应该从词嵌入WordEmbedding开始_trasnformer模型中embedding

其中的2号位置,就是词嵌入层。

Embedding层用于将离散的单词数据,转换为连续且固定长度的向量:

这样使模型才能处理和学习这些数据的语义信息。

例如,我们希望将“Are you OK ?”这句话,作为神经网络模型的输入。

此时神经网络是没办法直接处理这句文本的。

我们需要先将“Are you OK ?”,基于词表vocab,转为整数索引序列的形式。
在这里插入图片描述

例如,转为1、2、3、4。

然后再基于Embedding层,将整数索引序列,转换为单词向量的序列。

过程如下图所示:

这里假设每个单词用4维的向量表示。

那么四个词的句子“Are you OK ?”,就会被转换为4*4的词向量矩阵;

每行对应一个单词。

得到输入文本的词向量矩阵后,才可以继续使用神经网络对文本进行特征提取和处理。

下面,我就重点讲解词嵌入技术的三个关键部分:

1.词嵌入的作用

2.嵌入矩阵的计算

3.Embedding层的代码实验

帮助大家理解词嵌入(Embedding)技术的原理和使用方法。

1.词嵌入有什么用

词嵌入是一种将词汇表中的词或短语,映射为固定长度向量的技术。

通过词嵌入,我们可以将高维且稀疏的单词索引,转为低维且连续的向量。

转换后的连续向量,可以表示出单词与单词之间的语义关系。

例如,假设词汇表中有10000个单词:

此时我们希望表示出man、woman、king、queen四个词语

这四个词语的索引是1~10000中的4个整数。

如果用one-hot向量表示这4个词;

那么就需要4个10000维度的one-hot向量。

这种表示方法,不仅维度高,而且非常的稀疏。

在向量中,只有1个维度是1,其他维度都是0。

不仅如此,单词向量和单词向量之间,都是正交的,没有任何语义关系。

我们使用词嵌入技术,可以把上述的4四个高维稀疏的onehot向量,转换为低维连续向量。

转换后的向量,每个维度都是一个浮点数。

图中就表示了,将单词映射到一个7维的空间中;

那么每个词语就都对应了一个7维的浮点数向量。

为了进一步说明词与词之间的关系:

我们还可以使用PCA降维算法,将7维的词嵌入向量降维至2维。

从而将单词向量在平面上绘制出来。

例如,在下图中:

语义相近的词语,词语对应的向量位置也更相近。

例如,cat猫与kitten小猫的含义相近,它们就聚在一起。

horse、dog与cat的语义差异比kitten大,所以它们距离cat,就相对较远。

不仅如此,我们还可以通过词嵌入向量的数学关系,来描述词语之间的语义关联。

例如,从图中可以看出:

向量(“king”)−向量(“man”)≈向量(“queen”)-向量(“woman”)。

总结来说:

词嵌入技术能够有效地将自然语言中的词语,转换为数值向量;

从而表达词语之间的语义关系。

这种技术也为后续更高级的自然语言处理任务,提供了坚实的基础。

2.嵌入矩阵的计算

为了实现词嵌入,我们会通过特定的词嵌入算法;

例如,word2vec、fasttext、Glove等等,训练一个通用的嵌入矩阵。

下图就表示了一个嵌入矩阵:

这个嵌入矩阵,就是embedding层。

矩阵中的每一行都代表了一个词向量。

这些词向量,都是连续的浮点数。

一旦训练完成,就可以用在不同的NLP任务中。

具体来说:

嵌入矩阵的行,是语料库中词语的个数。

矩阵的列是表示词语的维度。

例如:

上图中的嵌入矩阵,就表示了语料库中包括了5000个单词;

每个单词,都使用一个128维的向量表示;

这个嵌入矩阵是一个5000*128维的矩阵。

下面我们详细说明嵌入矩阵的使用方法。

我们具体使用两种方式来解释:

第1种方式,基于矩阵相乘说明嵌入矩阵。

第2种方式,基于索引的查找说明嵌入矩阵。

首先声明一些关键信息:

设词表中包括5000个单词;

每个词使用一个128维的向量表示。

因此嵌入矩阵的大小就是5000*128;

我们将该矩阵记为E。

我们要将句子“Are you OK ?”进行词嵌入。

通过词嵌入,会将句子中的每个词,都表示为一个128维的向量。

例如:

图中就表示了“Are you OK ?”4个词的嵌入矩阵;

每一行是一个单词的词向量;

4个词的词向量矩阵,大小是4*128。

第1种解释方式,基于矩阵相乘的进行解释。

将“Are you OK ?”中的每个词,进行One-Hot编码:

编码后得到如图中的矩阵。

其中每个词是一个5000维的向量;

整个句子是4*5000的矩阵。

我们将这个矩阵记作V。

将矩阵V和嵌入矩阵E相乘,就会得到一个4*128的矩阵。

计算过程如下:

这个4×128的矩阵,就是句子“Are you OK ?”的嵌入向量。

第2种解释方式,基于索引查找的进行解释。

对于“Are you OK ?”中的4个单词,每个单词都对应一个1~5000的整数索引。

这个整数,就是它们的one-hot向量中,不是0的那个维度数。

例如在图中:

不为1的位置就对应了单词的索引序号。

也就是“Are you OK ?”的整数索引,分别对应2、1、3和5000。

此时,我们根据2、1、3、和5000;

获取嵌入矩阵的第2行、第1行、第3行与第5000行就可以了。

计算过程如下:

最后获取到的四行向量,

就代表“Are”、“you”、“OK”和“?”四个词的词向量。

这相当于词语1就是you;

词语2是are;

词语3是OK;

词语5000是问号。

总结来说:

使用矩阵V和矩阵E相乘得到的词向量矩阵;

与通过索引获取到的词向量矩阵;

它们的结果是完全一样的。

3.Embedding层的使用

最后,我们要讲解如何基于Pytorch,创建词嵌入层。

具体会使用torch.nn,创建一个embedding层;

然后使用这个embedding层,计算出单词的词向量;

最后并将词向量其进行可视化。

实验代码如下:

1)首先从torchtext.vocab中导入GloVe词向量

简单介绍GloVe词向量,它是斯坦福大学的研究者在2014年开发和发布的。

GloVe和word2vec与fasttext,是当前最常用的3个词向量版本。

这里调用GloVe接口,传入词向量的名字6B与对应维度300。

6B表示了模型是基于60 亿个单词的语料库训练的;

300表示一个单词,使用300维的向量表示。

2)接着使用nn.Embedding创建词嵌入层

将glove.vectors,通过from_pretrained接口,导入到Embedding层中。

此时的embedding层,就载入了GloVe词向量数据。

打印embedding层中的weight的尺寸。

可以看到,程序的输出是一个400000×300尺寸的矩阵。

它代表了该词向量层,包含40万个单词,每个单词使用300维来表示。

3)获取单词的索引形式

接着,我们要将man、woman、king、queen等8个词语的索引和对应的词向量打印出来。

首先需要将单词word,通过glove的词汇表,转换为单词的索引index。

然后将这些索引index保存到indices数组中。

打印单词word和索引index的对应关系。

观察程序输出,可以看到:

man对应300、woman对应787等等。

4)根据单词的索引获得词向量

得到单词的索引后,将索引列表,使用torch.tensor,转为张量的形式。

然后通过embedding层,将索引列表indices转换为,词向量的矩阵vector。

打印vector的尺寸,可以看到vector是一个8×300的矩阵。

8代表8个单词,300代表每个单词是一个300维的向量。

5)通过PCA降维和plt接口,绘制词向量

最后,我们使用PCA降维算法,将向量vectors进行降维。

这里使用pca.fit_transform接口,参数n_components设置为2;

将vectors从300维降维到2维。

最后调用plt.scatter和plt.annotate,将单词和向量,绘制到二维平面上。

观察绘制效果:

可以看到,cat和dog位置相近;

king和queen相近;

father、mother、man、woman四个词位置相近。

那么到这里,什么是词嵌入,Embedding技术,就讲完了。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

最后如果您也对AI大模型感兴趣想学习却苦于没有方向👀
小编给自己收藏整理好的学习资料分享出来给大家💖

在这里插入图片描述

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉如何学习AI大模型?👈

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费
在这里插入图片描述

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
在这里插入图片描述

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
在这里插入图片描述

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
在这里插入图片描述

四、AI大模型商业化落地方案

在这里插入图片描述

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。
在这里插入图片描述

### 关于Cadence 17.2版本中Pspice的教程 #### 安装指南 对于希望安装Cadence PSpice 17.2版本的用户来说,需注意几个关键步骤。当点击安装Cadence软件时,应指定添加安装包路径以及设定不含空格和汉字字符的安装路径[^1]。完成基础软件部署后,还需通过加入Hotfix文件的方式安装必要的更新补丁。最后,在一切设置妥当之后,务必记得重启计算机以使更改生效。 #### 绘制原理图 一旦上述准备工作就绪,则可以在重新启动后的环境中利用OrCAD Capture CIS工具着手绘制所需的电路原理图。此阶段涉及的具体操作包括但不限于元件的选择、放置及其间的连接构建等动作。 #### 创建自定义电路模块 针对那些想要进一步定制化工作流或者提高效率的技术人员而言,掌握如何基于个人需求创建专属的电路组件显得尤为重要。在Cadence PSpice环境下,这意呸着能够把一系列预设好的子电路打包成独立单元以便重复调用或分享给团队成员。具体实现过程涵盖了从草稿构思到最后成品导出的一系列环节[^2]。 #### 设计流程概览 在整个电子设计自动化领域里,由概念验证直至最终产品成型往往遵循一套既定的工作模式。对于采用Cadence平台开展工作的工程师们来讲,这套方法论通常始于案例研究进而过渡至详尽的设计实施;期间会经历诸如原理图表绘、错误检测修正、性能测试评估等多个重要节点直到所有目标达成为止[^3]。 #### 原理图设计概述 深入探讨一下项目结构的话就会发现,“Design Resources”部分主要负责存储整个项目的配置信息。“Outputs”则用于汇总各类中间产物或是终期报告文档。“Referenced Projects”允许设计师轻松关联其他辅助性的外部资料库从而促进跨部门协作交流活动顺利展开。值得注意的是如果当前任务涉及到仿真的话那么这里还会额外显示出专门用来支持此类作业的相关条目——即所谓的“PSpice Resources”。 ```python # Python代码示例仅作为装饰用途,并不实际参与解释说明逻辑 def example_function(): pass ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值