G1D30-NLP(Tokenizer)DP(交叠子问题)

news2024/9/23 17:20:12

一、NLP

(一)bert中一些标记

1、[SEP]

用于断句,其真实效果,有待考究,因为有segment embedding

2、[CLS]

生成一个向量,用来进行文本分类
在这里插入图片描述

(二)AutoTokenizer

关于tokenizer更加详细内容,可参考:https://zhuanlan.zhihu.com/p/390821442

这个是Transformer中的一个类,可以使用from_pretrained方法,进行实例化
在这里插入图片描述

(三)tokenizer

参考:https://zhuanlan.zhihu.com/p/121787628

1、Encoding

(1)tokenize
(2)convert to ids
--------------Roberta---------------------------------------

from transformers import RobertaTokenizer
sequence1 = "media_common.cataloged_instance award.winning_work"
sequence2 = "media _ common . cataloged _ instance award . winning _ work"

tokenizer = RobertaTokenizer.from_pretrained("roberta-base")
tokens1 = tokenizer.tokenize(sequence1)
ids1 = tokenizer.convert_tokens_to_ids(tokens1)

tokens2 = tokenizer.tokenize(sequence2)
ids2 = tokenizer.convert_tokens_to_ids(tokens2)

print('未替换:')
print(tokens1)
print(ids1)
print('替换:')
print(tokens2)
print(ids2)

运行结果是不一样的~
在这里插入图片描述

--------------------------deberta-------------------------------

from transformers import AutoModel, AutoModelForSequenceClassification, AutoTokenizer, AutoConfig, DataCollatorWithPadding
from transformers import DebertaTokenizer
sequence1 = "media_common.cataloged_instance award.winning_work"
sequence2 = "media _ common . cataloged _ instance award . winning _ work"
sequence3 = "media_common.cataloged _ instance award . winning _ work"

tokenizer = DebertaTokenizer.from_pretrained("microsoft/deberta-base")
tokens1 = tokenizer.tokenize(sequence1)
ids1 = tokenizer.convert_tokens_to_ids(tokens1)

tokens2 = tokenizer.tokenize(sequence2)
ids2 = tokenizer.convert_tokens_to_ids(tokens2)

tokens3 = tokenizer.tokenize(sequence3)
ids3 = tokenizer.convert_tokens_to_ids(tokens3)
print('未替换:')
print(tokens1)
print(ids1)

print('替换:')
print(tokens2)
print(ids2)

print('替换:')
print(tokens3)
print(ids3)

好玩欸,deberta 的tokenize也变成这样了~加了空格之后,'_‘和’.'会被重新解读
在这里插入图片描述

2、decode

就是反向查看

3、padding

为了做matrix处理,加入pad,可以指定pad的id

4、mask

可以用mask mask掉上面的pad,这样使运算结果不受影响。

(四)动态masking的好处

每个epoch的训练内容不同,增加了训练的多样性
https://adaning.github.io/posts/24649.html

纯静态Mask: 就是BERT中使用的Mask, 在数据预处理阶段就进行, 每个Epoch所Mask同一句中的Token位置都是相同的.
改进一点的静态Mask: 将每个Sentence都重复N次, 这样可能在预处理阶段能得到N种不同的Mask.
因为扩大了每个Epoch的数据量, 训练的Epoch要是原来的1/N倍. 动态Mask: 每个Sentence给BERT之前动态Mask,
即生成一种新的Mask方式. 这样每个Epoch拿到的Mask基本上是不同的. 从Mask的方法上来看,
动态Mask并没有引入太多的计算花费, 但是却大大提升了训练时句子的多样性. 为了证明其有效性,

(五)BPE

参考:https://zhuanlan.zhihu.com/p/424631681
Byte-Pair Encoding
这是一种数据压缩的方式,主要压缩词表,把慈悲压缩为sub-word的形式。

之所以叫byte-pair是因为该算法以byte为编码,作为subword聚合的基本单位——先将单词拆为byte,统计频率;然后不断结合。
参考:https://zhuanlan.zhihu.com/p/170656789
使用bytes-based BPE不会引入位置字符;
原BERT对应vocab大小,3万;
现在:5万

Radford在GPT2[2]里提出了一种更巧妙的BPE实现版本,该方法使用bytes(字节)作为基础的子词单元,这样便把词汇表的大小控制到了5w。它可以在不需要引入任何未知字符前提下对任意文本进行编码。
BERT原始版本使用一个字级(character-level)的BPE词汇表,大小是3w,是用启发式分词规则对输入进行预处理学习得到的。

(六)MASK

具体mask是如何作用的呢?源代码中是不去计算了嘛

DP

(一)交叠子问题是什么

很多子问题被一次次求解

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

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

相关文章

JMeter入门教程(16)——非GUI运行

文章目录1.任务背景2.任务目标3.任务实操1.任务背景 JMeter的场景运行方式分为两种,一种是GUI(视窗运行,即我们可以看到的运行界面)方式,另一种是非GUI(命令窗口)方式运行,在Window…

HTML网页大作业代码【免费代码已上传】

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

[附源码]计算机毕业设计校园便携系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

基于springboot的智慧养老平台

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:springboot 前端:html、Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#…

SpringBoot+Vue项目便捷洗衣服务平台

文末获取源码 开发语言:Java 使用框架:spring boot 前端技术:JavaScript、Vue.js 、css3 开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code 数据库:MySQL 5.7/8.0 数据库管理工具:phpstudy/Navicat JD…

线程间实现通信的几种方式

目录线程通信相关概述提出问题方式一:使用Object类的wait() 和 notify() 方法方式二:Lock 接口中的 newContition() 方法返回 Condition 对象,Condition 类也可以实现等待/通知模式方法三:使用 volatile 关键字方法四:…

微服务系列之微服务架构

引言 他发现了人类行为的一大法则,那就是,为了要使一个大人或小孩极想干某样事情,只需要设法把那件事情弄得不易到手就行了----《汤姆索亚历险记》 参考书籍: “凤凰架构”“微服务架构设计模式” 在了解微服务架构之前&#…

WorkTool企微机器人APP分享自定义链接

移动端应用怎么分享自定义网页链接到企业微信 前言 我们知道分享自定义网页可以采用转发形式发到企业微信的客户或群里,但是如果我们业务需要配置每次链接入口不同,如链接附带一些业务参数,这时单纯使用转发常常不能满足需求。找到一种替代…

脉冲触发的触发器

唯一的不同在于时钟信号的控制不一样 前面的叫做主触发器,后面叫做从触发器 为什么在一个时钟周期内只可能改变一次?(工作原理) 在时钟信号等于0期间,看看时钟信号的工作 CLK1期间,主FF工作,…

JeecgBoot搭建(低代码)

环境安装 后端:JDK: 1.8 (小于11)、Maven: 3.5、MySql: 5.7、Redis: 3.2 前端:Node Js: 14.18 / 16、Npm: 5.6.0、Yarn: 1.21.1 、Pnpm 工具: IDEA、Navicat、Git、TortoiseGit拉取代码 后端:git clone https://gitee.com/jeecg/…

[附源码]计算机毕业设计网上电影购票系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

升级Seata Server 1.5.2

目录引言下载地址配置初始Mysql数据库支持TCC Fence引言 最近在做Seata TCC集成,集成过程中将Seata Server由原来的1.4.2升级为最新的1.5.2,本文记录了Seata 1.5的升级过程。 原Seata 1.4.2的安装过程可参见我之前的博客: 分布式事务 - Seat…

TPU编程竞赛系列|基于TPU平台的人车目标检测初赛收官!

近日,AI算法创新赛-“基于TPU平台的人车目标检测”初赛正式结束,经过激烈地角逐,最终排名TOP20的队伍成功进入复赛,开启新的赛程! 目标检测是计算机视觉的热门方向,广泛应用于各种智能视频监控系统中。人、…

Flink系列之Flink中State设计详解与企业案例实践

title: Flink系列 二、Flink State 设计详解 Flink 官网解释:Apache Flink — Stateful Computations over Data Streams 前课中 WordCount 的例子,可以得知:其实我们会发现,单词出现的次数有累计的效果。如果没有状态的管理&am…

自制肥鲨HDO2电源升压延长线

自制肥鲨HDO2电源升压延长线1. 问题源由2. 解决方案3. 材料准备4. 最终延长线产出4.1 裸照4.2 成品5. 参考资料1. 问题源由 之前我们介绍了【自制肥鲨HDO2电源降压延长线,支持3S~6S动力电池】,主要解决使用动力电池给眼镜供电的问题。 但是马上有兄弟反…

SpringMVC执行流程

SpringMVC的流程 整个过程开始于客户端发出的一个HTTP请求,Web应用服务器接收到这个请求。如果匹配DispatcherServlet的请求映射路径,则Web容器将该请求转交给DispatcherServlet处理。DispatcherServlet接收到这个请求后,将根据请求的信息&a…

Linux环境下Vivado和HLS功能测试

一. 简介 针对已经完成的Vivado在Linux下的安装与运行,本文主要通过一个LED灯闪烁的案例对Vivado和HLS在Linux操作系统下的运行流程进行介绍,并对已安装软件功能进行一个简单的测试。 HLS将C代码的编译综合为Verilog或VHDL代码,本文对HLS生成…

[附源码]计算机毕业设计JAVA医院门诊信息管理系统

[附源码]计算机毕业设计JAVA医院门诊信息管理系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM my…

MySQL视图

MySQL视图 VIEW(视图) 概念 可以被当作是虚拟表或存储查询 视图跟表格的不同是,表格中有实际储存资料,而视图是建立在表格之上的一个架构,它本身并不实际储存资料。 临时表在用户退出或同数据库的连接断开后就自动…

[LeetCode解题报告] 1610. 可见点的最大数目

[LeetCode解题报告] 1610. 可见点的最大数目一、 题目1. 题目描述2. 原题链接二、 解题报告1. 思路分析2. 复杂度分析3. 代码实现三、 本题小结四、 参考链接一、 题目 1. 题目描述 可见点的最大数目 难度:2147 给你一个点数组 points 和一个表示角度的整数 ang…