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作用是什么?
避免模型过早进入局部最优而过拟合、避免后期训练还出现较大的参数变化
相关文章:
LNWT--篇章三小测
问题1: BERT训练时候的学习率learning rate如何设置? 在训练初期使用较小的学习率(从 0 开始),在一定步数(比如 1000 步)内逐渐提高到正常大小(比如上面的 2e-5),避免模型过早进入…...
【NoSQL】Redis练习
1、redis的编译安装 systemctl stop firewalld systemctl disable firewalld setenforce 0 yum install -y gcc gcc-c make wget cd /opt wget https://download.redis.io/releases/redis-5.0.7.tar.gz tar zxvf redis-5.0.7.tar.gz -C /opt/cd /opt/redis-5.0.7/ # 编译 make…...
Git 和 Github 的使用
补充内容:EasyHPC - Git入门教程【笔记】 文章目录 常用命令配置信息分支管理管理仓库 概念理解SSH 密钥HTTPS 和 SSH 的区别在本地生成 SSH key在 Github 上添加 SSH key 使用的例子同步本地仓库的修改到远程仓库拉取远程仓库的修改到本地仓库拉取远程仓库的分支并…...
学习分享-断路器Hystrix与Sentinel的区别
断路器(Circuit Breaker)简介 断路器(Circuit Breaker)是一种用于保护分布式系统的服务稳定性和容错性的设计模式。它的主要作用是在检测到某个服务的调用出现故障(如超时、异常等)时,快速失败…...
社区物资交易互助平台的设计
管理员账户功能包括:系统首页,个人中心,管理员管理,基础数据管理,论坛管理,公告信息管理 前台账户功能包括:系统首页,个人中心,论坛,求助留言板,公…...
19-Nacos-服务实例的权重设置
19-Nacos-服务实例的权重设置 1.根据权重负载均衡: 1.服务器设备性能有差异,部分实例所在及其性能较高,有一些较差,我们希望性能好的机器承担更多的用户请求 Nacos提供了权重配置来控制访问频率,权重越大则访问频率…...
R语言数据探索和分析23-公共物品问卷分析
第一次实验使用最基本的公共物品游戏,不外加其他的treatment。班里的学生4人一组,一共44/411组。一共玩20个回合的公共物品游戏。每回合给15秒做决定的时间。第十回合后,给大家放一个几分钟的“爱心”视频(链接如下)&a…...
Webix前端界面框架:深度解析与应用实践
Webix前端界面框架:深度解析与应用实践 Webix,作为一款功能强大的前端界面框架,近年来在开发社区中逐渐崭露头角。本文将从四个方面、五个方面、六个方面和七个方面,深入剖析Webix的特性、优势、应用实践以及面临的挑战ÿ…...
Qt基于SQLite数据库的增删查改demo
一、效果展示 在Qt创建如图UI界面,主要包括“查询”、“添加”、“删除”、“更新”,四个功能模块。 查询:从数据库中查找所有数据的所有内容,并显示在左边的QListWidget控件上。 添加:在右边的QLineEdit标签上输入需…...
新书推荐:2.2.4 第11练:消息循环
/*------------------------------------------------------------------------ 011 编程达人win32 API每日一练 第11个例子GetMessage.c:消息循环 MSG结构 GetMessage函数 TranslateMessage函数:将虚拟键消息转换为字符消息 DispatchMessage函数…...
MASA:匹配一切、分割一切、跟踪一切
文章目录 摘要1、引言2、相关工作2.1、学习实例级关联2.2、Segment and Track Anything 模型 3、方法3.1、预备知识:SAM3.2、通过分割任何事物来匹配任何事物3.2.1、MASA流程3.2.2、MASA适配器3.2.3、推理 4、实验4.1、实验设置4.2、与最先进技术的比较4.3、消融研究…...
Websocket前端传参:深度解析与实战应用
Websocket前端传参:深度解析与实战应用 在现代Web开发中,Websocket作为一种双向通信协议,已经广泛应用于实时数据传输场景。前端传参作为Websocket通信的重要组成部分,其正确性和高效性直接影响到应用的性能和用户体验。本文将深…...
造假高手——faker
在测试写好的代码时通常需要用到一些测试数据,大量的真实数据有时候很难获取,如果手动制造测试数据又过于繁重无聊,显得不够优雅,今天我们介绍的faker这个轮子可以完美的解决这个问题。faker是一个用于生成各种类型假数据的库&…...
前端工程化工具系列(十二)—— PostCSS(v8.4.38):CSS 转换工具
PostCSS 是转换 CSS 语法的工具。它提供 API 来对 CSS 文件进行分析和修改它的规则。 PostCSS 本身并不能直接使用,主要是使用基于 PostCSS 编写的插件。 1 安装 pnpm add -D postcss-import postcss-nested postcss-preset-env cssnano2 配置 在项目根目录下创…...
Scanpy(3)单细胞数据分析常规流程
单细胞数据分析常规流程 面对高效快速的要求上,使用R分析数据越来越困难,转战Python分析,我们通过scanpy官网去学习如何分析单细胞下游常规分析。 数据3k PBMC来自健康的志愿者,可从10x Genomics免费获得。在linux系统上,可以取消注释并运行以下操作来下载和解压缩数据。…...
【Stable Diffusion】(基础篇二)—— Stable Diffusion图形界面介绍和基本使用流程
本系列笔记主要参考B站nenly同学的视频教程,传送门:B站第一套系统的AI绘画课!零基础学会Stable Diffusion,这绝对是你看过的最容易上手的AI绘画教程 | SD WebUI 保姆级攻略_哔哩哔哩_bilibili 在上一篇博客中,我们成功…...
OpenCv之简单的人脸识别项目(动态处理页面)
人脸识别 准备九、动态处理页面1.导入所需的包2.设置窗口2.1定义窗口外观和大小2.2设置窗口背景2.2.1设置背景图片2.2.2创建label控件 3.定义视频处理脚本4.定义相机抓取脚本5.定义关闭窗口的函数6.按钮设计6.1视频处理按钮6.2相机抓取按钮6.3返回按钮 7.定义关键函数8.动态处理…...
【Linux】进程间通信
目录 一、进程间通信概念 二、进程间通信的发展 三、进程间通信的分类 四、管道 4.1 什么是管道 4.2 匿名管道 4.2 基于匿名管道设计进程池 4.3 命名管道 4.4 用命名管道实现server&client通信 五、system V共享内存 5.1 system V共享内存的引入 5.2 共享内存的…...
UI与前端:揭秘两者的微妙差异
UI与前端:揭秘两者的微妙差异 在数字化时代的浪潮中,UI设计和前端开发已成为塑造用户体验的两大核心力量。然而,这两者之间究竟有何区别?本文将深入剖析UI设计与前端开发的四个方面、五个方面、六个方面和七个方面的差异…...
idea如何根据路径快速在项目中快速打卡该页面
在idea项目中使用快捷键shift根据路径快速找到该文件并打卡 双击shift(连续按两下shift) -粘贴文件路径-鼠标左键点击选中跳转的路径 自动进入该路径页面 例如:我的实例路径为src/views/user/govType.vue 输入src/views/user/govType或加vue后缀src/views/user/go…...
OpenClaw极简部署:5分钟体验Qwen3.5-9B基础自动化功能
OpenClaw极简部署:5分钟体验Qwen3.5-9B基础自动化功能 1. 为什么选择这个组合? 第一次听说OpenClaw时,我正被日常重复性工作困扰——每天要手动整理会议纪要、归档文件、检查数据报表。作为一个技术背景的产品经理,我既想要自动…...
个人知识库构建:OpenClaw+GLM-4.7-Flash自动归档网页与文档
个人知识库构建:OpenClawGLM-4.7-Flash自动归档网页与文档 1. 为什么需要自动化知识管理 作为一个长期与技术文档打交道的开发者,我发现自己陷入了一个典型的知识管理困境:每天浏览的优质技术文章、收藏的GitHub仓库、订阅的RSS源越来越多&…...
CosyVoice 2 目标音色替换技术解析:从原理到小白友好实现
音色替换,简单说就是让一段语音听起来像是另一个人在说话,但内容不变。这技术现在需求挺多的,比如虚拟主播、有声书、游戏角色配音,甚至一些辅助沟通的场景。但说实话,以前想自己搞一个,门槛不低。要么效果…...
MacOS极简部署OpenClaw:GLM-4.7-Flash云端沙盒体验
MacOS极简部署OpenClaw:GLM-4.7-Flash云端沙盒体验 1. 为什么选择云端沙盒体验 作为一个长期在本地折腾各种AI工具的技术爱好者,我最近被OpenClaw的自动化能力深深吸引。但在第一次尝试本地部署时,就被Node环境配置、依赖冲突等问题劝退。直…...
达摩院智能客服人工智能训练师实战:从模型训练到生产部署的全链路优化
在智能客服系统的开发过程中,我们常常面临一个核心矛盾:业务方希望模型能快速迭代、精准理解用户意图,而技术团队则受困于漫长的训练周期、复杂的多轮对话逻辑以及繁琐的生产部署流程。传统的自建训练环境,从数据清洗、特征工程到…...
从零构建 eNSP 小型校园网络毕业设计:架构解析与避坑指南
最近在帮学弟学妹们看网络相关的毕业设计,发现很多同学在用华为 eNSP 搭建小型校园网络时,思路容易混乱。要么是拓扑图画得一团麻,分不清层次;要么是配置完 VLAN 后,不同网段的电脑死活 ping 不通;还有的干…...
如何快速掌握云端几何计算:5步实现设计自动化革命
如何快速掌握云端几何计算:5步实现设计自动化革命 【免费下载链接】compute.rhino3d REST geometry server based on RhinoCommon and headless Rhino 项目地址: https://gitcode.com/gh_mirrors/co/compute.rhino3d Rhino Compute是基于RhinoCommon和无头Rh…...
别再只跑DESeq2了!R语言RNA-seq差异分析保姆级避坑指南(从数据清洗到结果解读)
别再只跑DESeq2了!R语言RNA-seq差异分析保姆级避坑指南(从数据清洗到结果解读) 当你第一次看到DESeq2分析结果中满屏的NA值,或是发现热图里所有样本都挤成一团时,是否感到一阵绝望?作为生物信息学分析中最常…...
mFS:面向EEPROM的轻量级嵌入式文件系统
1. mFS 文件系统概述mFS(micro File System)是一个专为串行 EEPROM 存储器芯片设计的轻量级嵌入式文件系统库。它不依赖于任何操作系统或硬件抽象层,以纯 C 实现,代码体积紧凑(典型编译后 ROM 占用 < 4 KBÿ…...
Cortex-M软件串口库SoftwareSerialM原理与实战
1. SoftwareSerialM 库概述SoftwareSerialM 是一款专为 Cortex-M 系列微控制器设计的软件串口(Software UART)实现库。其核心目标是在硬件 UART 资源受限或已全部占用的嵌入式系统中,通过纯 GPIO 模拟 UART 协议时序,扩展异步串行…...
