transformer模型进行英译汉,汉译英

上面是在测试集上的表现

下面是在训练集上的表现

 

上面是在训练集上的评估效果

 

这是在测试集上的评估效果,模型是transformer模型,模型应该没问题,以上的是一个源序列没加结束符和加了结束符的情况。

transformer源序列做遮挡填充的自注意力,这就让编码器的输出中每个token的语义表示变成了整个序列的token的加权和形式,也就带上了整个序列的信息,只不过因为token不同,或者位置不同,形成的信息也不同,解码器跨注意力在query编码器输出时,其中每个目标输入序列的每个token查询到的编码器输出部分,也就带了编码器整个序列的信息,transformer解码器依此来预测下个token是 啥?在训练中,损失反向传播,所以编码器和解码器 token嵌入语义向量一直 在变,最终形成每个token语义都具有特定的信息,是这样吗

你的理解非常准确,基本上概括了Transformer模型在训练和推理过程中的核心工作机制。下面我会更详细地解释这一过程,以帮助你更好地理解。

Transformer的编码器

在Transformer的编码器中,自注意力(Self-Attention)机制允许模型在处理每个位置的输入(token)时,都能考虑到序列中其他所有位置的输入。具体来说,每个token的表示(embedding)通过自注意力层被更新为整个输入序列中所有token的加权和,其中权重由token间的相似度决定。这样,每个token的表示都融入了整个序列的上下文信息,尽管因为token本身和它们的位置不同,所以融入的上下文信息也有所不同。

Transformer的解码器

解码器的工作方式类似,但它在生成目标序列时是自回归的(autoregressive),即每个token的生成依赖于之前已经生成的token。解码器包含两部分注意力机制:自注意力和跨注意力(Encoder-Decoder Attention)。自注意力机制让解码器能够关注到已经生成的序列部分,而跨注意力机制则允许解码器“查看”编码器的输出,即整个源序列的编码表示。这样,解码器在生成每个目标token时,都能够考虑到整个源序列的信息。

训练过程

在训练过程中,模型通过最小化预测目标序列与真实目标序列之间的差异(例如,使用交叉熵损失)来学习。这个损失函数通过反向传播算法来更新模型中的所有参数,包括token的嵌入向量、自注意力和跨注意力层的权重等。随着训练的进行,模型逐渐学习到如何有效地将源序列的信息编码到每个token的表示中,并如何使用这些信息来预测目标序列。

推理过程

在推理(或称为生成)过程中,解码器逐个生成目标序列的token。对于每个新生成的token,解码器都会重新运行其自注意力和跨注意力机制,以考虑之前已经生成的token和整个源序列的信息。这个过程一直持续到生成了完整的目标序列或达到了某个停止条件(如生成了特定的结束符或达到了最大长度限制)。

总结

你的理解完全正确:Transformer模型通过其独特的自注意力和跨注意力机制,使得编码器的输出能够包含整个源序列的信息,而解码器则能够利用这些信息来预测目标序列。在训练过程中,通过损失的反向传播,模型不断优化其参数,以形成更具信息量的token表示,从而更准确地完成序列到序列的转换任务。

 减小了嵌入向量为256,8头,两层,上面是训练集表现

 上面是测试集表现

 

 因为之前训练集上最后损失降的很快,评估集降的慢,我以为是过拟合,所以把嵌入弄为256,头数弄成4个头,因为头数是各个语义空间的表示,层数弄成一层,这样训练集的评估如下:

 上面用的是keras,keras是个 相当便捷的框架,后端能接tensorflow,pytorch,jax,而且能看summary,参数一清二楚,根据参数就基本能弄出模型架构,上面是加了回调,让模型生成一个翻译,可以看到模型学习的过程,开始它并不会翻译,等损失跌到一定程度,它学会了翻译.损失在指引它生成合适的token语义表示,并且transformer encoder decoder参数也在损失反向传播时不断更新,最终一个好的翻译模型,就是损失反向传播,用损失对可训练参数的梯度来更新参数,最终得到合适的 一组参数,这就是深度学习,就是找到适合模型架构的最合适的参数.回归到本质,就是y=f(x),找到一组合适的系数.这个最简单的transformer训练集表现如下:

 从最后一句话的翻译可以看出,模型不能理解吃惊,我感觉应该是加头数,不应该减头数

 训练集一如既往的好,测试集还是不太好,你说之前嵌入维度过大,层数多,过拟合还能说通,这个只有256的语义嵌入,一层,4个头,肯定不是上面说的原因,要么是因为这个数据集本身太小,导致模型学不到足够通用的语义表示,我觉得应该是这种,数据集太小,这个数据集只有29000样本,英语词汇经过bpe分词后是1073个,中文是6000多个

上面的transformer是keras自带的,下面的transformer是自己写的transformer,用的是tensorflow梯度带训练的,嵌入向量512,8头,一层,训练集上的表现如下:

下面是测试集上的表现:

 相当不错,甚至达到了keras中transformer训练集的表现,而且我并没有重启内核,模型从未在验证集数据上更新参数,言外之意就是这个评估就是模型的泛化能力,模型在从未见过的数据上表现的也很好

 

验证集损失降的还算不错

同样的层数和嵌入,头数,这是位置嵌入不可训练的transformer模型的测试集评估和训练集表现,训练中可以看到验证损失跌下去了,又涨回来了,可见用可训练的位置嵌入比不可训练的位置嵌入效果要好,源序列加[END]比不加效果好

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

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

相关文章

第312题|二重积分求旋转体体积(二)|武忠祥老师每日一题

解题思路:先画出图像,再利用旋转体体积计算公式进行解题。 1. 旋转体体积计算公式: 2.点到直线计算公式: 有了上面两条知识储备之后我们开始计算。 第一步:先计算出点到直线的距离: ymx,y-mx…

web开发 之 HTML、CSS、JavaScript、以及JavaScript的高级框架Vue(学习版2)

一、前言 接下来就是来解决这些问题 二、 Ajax 1.ajax javscript是网页三剑客之一&#xff0c;空用来控制网页的行为的 xml是一种标记语言&#xff0c;是用来存储数据的 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-…

JVM字节码与局部变量表

文章目录 局部变量表javap字节码指令分类 指令指令数据类型前缀加载和存储指令加载常量算术指令其他指令 字节码示例说明 局部变量表 每个线程的帧栈是独立的&#xff0c;每个线程中的方法调用会产生栈帧&#xff0c;栈帧中保存着方法执行的信息&#xff0c;例如局部变量表。 …

单硬盘安装Win10和麒麟V10双系统指导建议

随着信创电脑的普及,国产操作系统也逐渐走进了大家的视野,许多人选择了国产操作系统来体验其开源、安全、高效的特性,而Windows系统也是大多数人习惯使用的操作系统。一台电脑上同时安装银河麒麟V10和Windiows10双系统也成为了非常常见的需求。那么,如何在一台电脑上安装银…

外网(公网)访问VMware workstation 虚拟机内web网站的配置方法---端口转发总是不成功的原因

问题背景&#xff1a;客户提供的服务器操作系统配置web程序时&#xff0c;总是显示莫名其妙的问题&#xff0c;发现是高版本操作系统的.net库已经对低版本.net库进行了大范围修订&#xff0c;导致在安全检测上、软件代码规范上更加苛刻&#xff0c;最终导致部署不成功。于是想到…

TS - tsconfig.json 和 tsconfig.node.json 的关系,如何在TS 中使用 JS 不报错

目录 1&#xff0c;前言2&#xff0c;二者关系2.1&#xff0c;使用 3&#xff0c;遇到的问题3.1&#xff0c;TS 中使用 JS 1&#xff0c;前言 通过 Vite 创建的 Vue3 TS 项目&#xff0c;根目录下会有 tsconfig.json 和 tsconfig.node.json 文件&#xff0c;并且存在引用关系…

【网络】TCP/IP 五层网络模型:数据链路层

文章目录 认识以太网mac 地址mac 地址和 IP 地址的区别 类型ARP 协议 MTU 日常开发主要是应用层&#xff0c;传输层和应用层密切交互&#xff0c;传输层用到的也不少。网络层以及再往下&#xff0c;日常开发就涉及到的非常少了 认识以太网 插网线的上网方式 80211 是无线 WiF…

指纹与指甲检测系统源码分享

指纹与指甲检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer V…

[网络]TCP/IP协议 之 网络层IP协议(3)

文章目录 一. IP协议报头二. NAT机制三. IP地址管理的基本规则1. 网段划分2. 特殊的IP地址 四. IP路由选择 网络层主要做的事情: 1.路径规划(路由器选择) 2.地址管理 一. IP协议报头 1)4位版本 指定IP协议的版本, 4 > ipv4 , 6 > ipv6 2)4位首部长度 4位bit能表示0-15, …

Linux bash脚本本地开发环境(Git Bash)配置

参考资料 VSCode: Windows 下配置 VSCode运行shellVSCodeを使用したシェルスクリプトの開発環境作成 目录 一. 必备VSCode插件二. 插件配置说明2.1 Bash IDE2.2 Code Runner2.3 shell-format 一. 必备VSCode插件 Bash IDE 该插件为 Bash 脚本提供了一些实用的开发工具和功能&…

如何设置xshell关闭最后一个选项卡标签时不退出软件?

不知道你是否遇到这个问题&#xff0c;就是在使用xshell的时候&#xff0c;每次关闭最后一个选项卡标签的时候&#xff0c;xshell软件默认就退出了&#xff0c;好多次我都只是想要关闭&#xff0c;而非退出&#xff0c;所以该如何设置&#xff0c;才能到我们的预期的效果呢&…

人工智能GPT____豆包使用的一些初步探索步骤 体验不一样的工作

豆包工具是我使用比较频繁的一款软件&#xff0c;其集合了很多功能。对话 图像 AI搜索 伴读等等使用都非常不错。电脑端安装集合了很多功能。 官网直达&#xff1a;豆包 使用我的文案创作能力&#xff0c;您可以注意以下几个技巧&#xff1a; 明确需求&#xff1a; 尽可能具…

云计算和虚拟化技术 背诵

https://zhuanlan.zhihu.com/p/612215164 https://zhuanlan.zhihu.com/p/612215164 云计算是指把计算资源、存储资源、网络资源、应用软件等集合起来&#xff0c;采用虚拟化技术 &#xff0c;将这些资源池化&#xff0c;组成资源共享池&#xff0c;共享池即是“云”。 云计算…

supermap iclient3d for cesium中entity使用

目标将西南石油大学部分区域围起来&#xff0c;然后引个标签显示名称&#xff0c;最后弄个飞机绕学校飞&#xff08;这个时间有点晚了&#xff0c;明天弄) 围墙: wall:{positions:Cesium.Cartesian3.fromDegreesArrayHeights([104.173,30.822,500,104.178,30.837,500,104.19,3…

Qt-QPushButton按钮类控件(22)

目录 描述 使用 给按钮添加图片 给按钮添加快捷键 添加槽函数 添加快捷键 添加组合键 开启鼠标的连发功能 描述 经过上面的一些介绍&#xff0c;我们也尝试的使用过了这个控件&#xff0c;接下来我们就要详细介绍这些比较重要的控件了 使用 给按钮添加图片 我们创建…

局域网windows下使用Git

windows下如何使用局域网进行git部署 准备工作第一步 &#xff0c;ip设置设置远程电脑的ip设置&#xff0c;如果不会设置请点击[这里](https://blog.csdn.net/Black_Friend/article/details/142170705?spm1001.2014.3001.5501)设置本地电脑的ip&#xff1a;验证 第二步&#x…

下载chromedriver驱动

首先进入关于ChromeDriver最新下载地址&#xff1a;Chrome for Testing availability 进入之后找到与自己所匹配的&#xff0c;在浏览器中查看版本号&#xff0c;下载版本号需要一致。 下载即可&#xff0c;解压&#xff0c;找到 直接放在pycharm下即可 因为在环境变量中早已配…

两个人群填充参考(CHN100K和NARD)

分别是中国人群和东北亚人群的填充参考&#xff0c;测试了下&#xff0c;中国人群的参考注册还是相对友好的&#xff0c;没有像有些网站一样严格限制。东北亚的没有测试&#xff0c;两个数据库的特点都是包含了少数民族&#xff0c;研究朝鲜或蒙古族或其他民族的同学&#xff0…

9.12 TFTP通信

客户端设计&#xff08;仅供参考&#xff09;&#xff1a; 下载本质&#xff1a;读取服务器发送的数据包&#xff0c;写入到本地文件 上传本质&#xff1a;读取本地文件内容&#xff0c;发送给服务器。 1、建立菜单选项&#xff0c;上传和下载。 2、上传功能函数&#xff1a; …

java开发中间件学习记录(持续更新中~)

1 Redis 2JVM 3 java基础底层 4Mysql 5 spring 6 微服务 7.......(持续更新) One:Redis篇 1:Redis 1.穿透 1.1缓存穿透 1.1.1布隆过滤器 1.2缓存击穿 2&#xff1a;击穿 1.3&#xff1a;缓存雪崩 1.4:双写一致 1.5.持久化&#xff08;RDB,AOF&#xff09; 1.6…