LNWT--篇章三小测

  • 问题1: BERT训练时候的学习率learning rate如何设置?

在训练初期使用较小的学习率(从 0 开始),在一定步数(比如 1000 步)内逐渐提高到正常大小(比如上面的 2e-5),避免模型过早进入局部最优而过拟合;

在训练后期再慢慢将学习率降低到 0,避免后期训练还出现较大的参数变化。

在 Huggingface 的实现中,可以使用多种 warmup 策略:

TYPE_TO_SCHEDULER_FUNCTION = {SchedulerType.LINEAR: get_linear_schedule_with_warmup,SchedulerType.COSINE: get_cosine_schedule_with_warmup,SchedulerType.COSINE_WITH_RESTARTS: get_cosine_with_hard_restarts_schedule_with_warmup,SchedulerType.POLYNOMIAL: get_polynomial_decay_schedule_with_warmup,SchedulerType.CONSTANT: get_constant_schedule,SchedulerType.CONSTANT_WITH_WARMUP: get_constant_schedule_with_warmup,
}

具体而言:

CONSTANT:保持固定学习率不变;

CONSTANT_WITH_WARMUP:在每一个 step 中线性调整学习率;

LINEAR:上文提到的两段式调整;

COSINE:和两段式调整类似,只不过采用的是三角函数式的曲线调整;

COSINE_WITH_RESTARTS:训练中将上面 COSINE 的调整重复 n 次;

POLYNOMIAL:按指数曲线进行两段式调整。 具体使用参考transformers/optimization.py: 最常用的还是get_linear_scheduler_with_warmup即线性两段式调整学习率的方案。

  • 问题2: BERT模型使用哪种分词方式?

BERT 使用的分词方式是基于 WordPiece Tokenization 的。

WordPiece 将单词分成子词单元。例如,单词 "playing" 可以被分解成 ["play", "##ing"],其中 "##" 表示这个子词不是一个独立的词,而是一个前一个词的继续

通过子词分词,BERT 可以使用较小的词汇表来覆盖更多的词汇。BERT 的词汇表大小通常是 30,000 左右

当遇到一个未登录词时,WordPiece 会将其拆分成多个子词,这些子词组合起来能够尽可能地匹配原始词

  • 问题3: 如何理解BERT模型输入的type ids?

用于区分模型输入中的不同句子,指示每个 token 属于哪一个句子

区分句子对

当输入包含两个句子时,type_ids 用于指示每个 token 属于哪个句子。句子 A 的所有 token 的 type_id 为 0,句子 B 的所有 token 的 type_id 为 1。

用于注意力机制

BERT 模型的自注意力机制会结合 type_ids 信息来学习句子间的关系。通过这种方式,模型能够区分两个句子并理解它们之间的关系。

  • 问题4: Hugginface代码中的BasicTokenizer作用是?

将输入文本分解成单独的 token:

将标点符号与单词分开、可以将文本转换为小写、去除多余的空格,确保每个 token 之间只有一个空格、确保输入文本是规范的 Unicode 格式

  • 问题5: WordPiece分词的好处是什么?

既在一定程度保留了词的含义,又能够照顾到英文中单复数、时态导致的词表爆炸和未登录词的 OOV(Out-Of-Vocabulary)问题,将词根与时态词缀等分割出来,从而减小词表,也降低了训练难度

  • 问题6: BERT中的warmup作用是什么?

避免模型过早进入局部最优而过拟合、避免后期训练还出现较大的参数变化

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

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

相关文章

Lua 元表(Metatable)深入解析

Lua 元表(Metatable)深入解析 Lua 是一种轻量级的编程语言,因其简洁性和强大的扩展能力而被广泛应用于游戏开发、脚本编写和其他领域。在 Lua 中,元表(Metatable)是一个非常重要的概念,它允许我…

hexo更新流程及解析

文章目录 文件解析md文件头部内容(1)文章顶置,排序(2)文章隐藏(3)分类和标签(4)其他属性 更新博客注意安装插件注意:1、关于中括号的问题 文件解析 . ├──…

【Redis】Redis实现分布式锁合理的控制锁的有效时长的方法

在分布式系统中,合理地控制 Redis 分布式锁的有效时长(即过期时间)非常重要,以确保锁既能防止死锁又能提供高可用性。设置合理的过期时间可以防止客户端在持有锁期间崩溃而导致其他客户端无法获取锁的情况,同时也能确保…

[数据集][目标检测]足球场足球运动员身份识别足球裁判员数据集VOC+YOLO格式312张4类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):312 标注数量(xml文件个数):312 标注数量(txt文件个数):312 标注类别…

调查显示各公司在 IT 安全培训方面存在差距

网络安全提供商 Hornetsecurity 最近进行的一项调查显示,许多组织的 IT 安全培训存在严重缺陷。 这项调查是在伦敦举行的 Infosecurity Europe 2024 期间发布的,调查发现 26% 的组织没有为其最终用户提供任何 IT 安全培训。 这些调查结果来自世界各地的…

阿里云活动推荐:AI 应用 DevOps 新体验

活动简介 阿里云新活动,体验阿里云的云效应用交付平台。体验了下,总体感觉还不错。平台把常规的开发过程封装成了模板,部署发布基本都是一键式操作,并且对自定义支持的比较好。 如果考虑将发布和部署搬到云上,可以玩一…

代码随想录算法训练营DAY32|122.买卖股票的最佳时机II、55. 跳跃游戏、45.跳跃游戏II

122.买卖股票的最佳时机II 题目链接:122.买卖股票的最佳时机II class Solution(object):def maxProfit(self, prices):""":type prices: List[int]:rtype: int"""max_profit 0profit 0buyin_idx 0for i in range(len(prices)):p…

力扣第185题:部门工资前三高的员工

关注微信公众号 数据分析螺丝钉 免费领取价值万元的python/java/商业分析/数据结构与算法学习资料 在本篇文章中,我们将详细解读力扣第185题“部门工资前三高的员工”。通过学习本篇文章,读者将掌握如何使用SQL语句来解决这一问题,并了解相关…

使用selenium/drissionpage时如何阻止chrome自动跳转http到https

加个启动参数: --allow-running-insecure-content没了 参考文章:List of Chromium Command Line Switches

Directory Opus 13.6 可用的apk文件右键菜单脚本

// apk文件的右键经过adb安装的脚本,可以在多个设备中选择function OnClick(clickData) {try {// 检查是否选中了文件if (clickData.func.sourcetab.selected_files.count 0) {DOpus.Output("没有选中任何文件");return;}// 获取选中的文件名var selectedFile clic…

JSTL知识点讲解与配置

JSTL(JavaServer Pages Standard Tag Library)是Java EE平台中的一个标准库,提供了一组用于在JSP(JavaServer Pages)中简化和标准化常见任务的标签。这些标签封装了很多常见的JSP功能,可以使得JSP页面更加简…

18-Nacos-NacosRule负载均衡

18-Nacos-NacosRule负载均衡 1.根据集群负载均衡 1.修改order-service中的application.yml,设置集群为HZ: spring:cloud:nacos:server-addr: localhost:8848 #nacos服务端地址discovery:cluster-name: HZ #配置集群名,也就是机房位置,例如:HZ,杭州2.然后在order-servi…

服务部署:Ubuntu安装搭建docker

1. 更新系统包 首先,确保你的系统包是最新的: sudo apt-get update sudo apt-get upgrade 2. 安装必要的依赖包 安装一些必要的依赖包,以便后续添加 Docker 的 APT 源: sudo apt-get install apt-transport-https ca-certifi…

LabVIEW软件开发人员如何在软件开发中捕捉需求?

在LabVIEW软件开发过程中,捕捉需求是确保项目成功的关键步骤。以下是一个系统化的方法,帮助LabVIEW软件开发人员有效地捕捉、分析和管理需求。 步骤1:需求收集 1.1 与客户沟通 与客户进行初步沟通,了解项目的背景、目标和期望。…

天工开物 #14 分析时序数据:从 InfluxQL 到 SQL 的演变

近年来,时序数据的增长是 Data Infra 领域一个不容忽视的趋势。这主要得益于万物互联带来的自然时序数据增长,以及软件应用上云和自身复杂化后的可观测性需求。前者可以认为是对联网设备的可观测性,而可观测性主要就建构在设备或应用不断上报…

【C#】WinForm关闭新(二级)界面使主程序关闭

参考视频:https://www.bilibili.com/video/BV1JY4y1G7jo?p14&vd_source1c57ab1b2e551da5b65c0dfb0f05a493 1.背景介绍 主程序界面,点击弹出二级界面(同时隐藏主界面),不做任何设置,这时关闭二级界面…

Java基础_Stream流

Java基础_Stream流 Stream流的简单使用Stream流的获取Stream流的中间方法Stream流的终结方法综合练习数字过滤字符串过滤并收集自定义对象过滤并收集 来源Gitee地址 Stream流的简单使用 public class StreamDemo01 {public static void main(String[] args) {/*** 创建集合添加…

java.lang.IllegalArgumentException: This Style does not belong to the supplied Workbook异常的解决办法

java.lang.IllegalArgumentException: This Style does not belong to the supplied Workbook异常的解决办法 文章目录 报错问题报错原因解决方法 报错问题 java.lang.IllegalArgumentException: This Style does not belong to the supplied Workbook异常 报错原因 在Java中&a…

Ubuntu虚拟机使用纯命令行对根分区进行扩展

Ubuntu虚拟机使用纯命令行对根分区进行扩展 前排提示 因为Ubuntu再安装时,根分区是没有使用LVM进行磁盘管理的,所以如果想扩展根分区,我们不得不使用另外一种暴力的方法。简单来说就是利用fdisk删除原来的根分区再基于原来的起始块号重新建…

C++对象池设计与实现

目录 一、对象池简介 1.1 池化技术 1.2 什么是对象池 1.3 对象池分配策略 二、C new和delete运算符重载 三、实现一个对象池框架 3.1 策略接口 四、实现几种对象池的分配策略 4.1 数组策略 4.2 堆策略 ​编辑 4.3 栈策略 4.4 区块策略 一、对象池简介 1.1 池化技…