论文阅读笔记-How to Fine-Tune BERT for Text Classification?

news/2024/10/7 15:24:15 标签: python

前言

How to Fine-Tune BERT for Text Classification?

预训练语言模型很强,通过微调可以给你的任务模型带来明显的提升,但是针对具体的任务如何进行微调使用,就涉及到了考经验积累的tricks,最近在打文本相关的比赛,正好用预训练模型为基础构建下游任务模型,所以着重的关注一些相关的BERT微调tricks,凑巧看到这篇文章,里面专门介绍 BERT 用于中文文本分类的各种 tricks,所以在此分享一下。这篇文章分别介绍了Fine-Tuning Strategies、Further Pre-training和Multi-Task Fine-Tuning,具体见后文总结介绍。
关于预训练语言模型,可以看论文团队的另一篇文章更新的文章:Pre-trained Models for Natural Language Processing: A Survey(论文阅读笔记:超详细的NLP预训练语言模型总结清单!)

前情提要

首先先确定一下BERT在Text Classification上的一般应用,我们都知道BERT喂入的输入有两个特殊的Token,即[CLS]置于开头,[SEP]用于分隔句子,最后的输出取[CLS]的最后隐藏层状态 h h h 作为整个序列的表示,然后使用全连接层映射到分类任务上,及:
p ( c ∣ h ) = s o f t m a x ( W h ) p(c|h)=softmax(Wh) p(ch)=softmax(Wh)
基于此,论文分别讨论通用微调BERT的方法流程,Fine-Tuning Strategies、Further Pre-training和Multi-Task Fine-Tuning,如下:
在这里插入图片描述
论文分析结果用的实验数据共八个,如下,可以归纳为Sentiment analysis、Question classification、Topic classification、Data preprocessing
在这里插入图片描述

Warmup是在ResNet论文中提到的一种学习率预热的方法,它在训练开始的时候先选择使用一个较小的学习率,训练了一些epoches或者steps

Fine-Tuning策略

我们来带着如下几个问题进行思考:

  • BERT的不同层对语义句法信息有着不同的抽取能力,那么那一层更有利于目标任务?
  • 如何选择优化算法和学习率

想要微调BERT适配目标任务,主要有三个因素(和上面思考相匹配):

  • BERT最大处理序列长度为512
  • BERT-base有12层,需要挑选合适的层用于目标分类任务
  • 过拟合

超参:

batch_size = 24; dropout = 0.1; learning-rate=2e-5; warm-up proportion = 0.1; max_epoch = 4;

BERT最大处理序列长度为512

针对长度超过512的文本,实验如下三种转换策略( 预留[CLS] 和 [SEP


http://www.niftyadmin.cn/n/5692968.html

相关文章

CSS——文字打字机效果

CSS——文字打字机效果 本文通过纯 CSS 实现文字的打字机效果&#xff0c;然后借助 JS 实现了扩展。 typewriter 基本思路 使用伪元素覆盖原文字&#xff0c;并且使用伪元素模拟闪烁的光标效果。 具体流程 首先是一些基本的设置 <!DOCTYPE html> <html lang"…

RabbitMQ入门3—virtual host参数详解

在 RabbitMQ 中&#xff0c;创建 Virtual Host 时会涉及到一些参数配置&#xff0c;比如 tags 和 Default Queue Type。下面是对这两个参数的详细解释&#xff1a; 1. Tags Tags 是 Virtual Host 的标记&#xff0c;用来为 Virtual Host 添加元数据&#xff0c;帮助你管理和组…

MoveIt2-humble----在 RViz 中实现可视化

官方文档上的教程&#xff0c;从moveit1的melodic到moveit2的foxy基本一致&#xff0c;但是从最新的humble开始有了很大的变化&#xff0c;其中之一便是 lambda表达式 的广泛使用。 本节为教程的第二节&#xff0c;会介绍一个工具&#xff08;moveit_visual_tools&#xff09;…

allegro 不同页面相同网路的连接

一、cadence学习笔记&#xff08;1&#xff09;-原理图库制作 绘制好各个界面 放置OFFPAGE 绘制好单个界面是这个样子的&#xff0c;并将剩下的界面进行相同的操作 所有界面完成后&#xff0c;进入设计界面 右键design1.dsn选择Annotate… 点击OK后可以看到WiFi界面OFFPAGE旁边…

windows下DockerDesktop命令行方式指定目录安装

windows下DockerDesktop指定目录安装(重新安装) 因为DcokerDesktop占用内存较大, 并且拉去镜像后占用本地空间较多,所以建议安装时就更改默认安装路径和镜像存储路径 这里,展示了从下载到安装的过程: 首先下载DcokerDesktop;找到Docker Desktop Installer.exe 并重命名为 do…

TM1618控制共阳极数码管的数据传送问题

数据传送中的问题 首先每个字节是按照一个地址写入的&#xff0c;而共阳极数码管的公共端是SEG引脚连接的。这使得数码管显示的编码是按照竖向的字节。如下图所示中&#xff0c;横向是公共端&#xff0c;竖向是实际编码字符字节。 数据转换方式 这样可以一次写入所有需要显示…

请描述一下数据库的负载测试和压力测试。请简要描述不同类型的联接(如内联接、左外联接、右外联接、全外联接等)。

请描述一下数据库的负载测试和压力测试。 一、数据库的负载测试 定义&#xff1a; 负载测试是通过模拟实际用户量和操作情况来评估数据库系统的性能和稳定性的过程。它主要通过逐步增加系统负载&#xff0c;测试系统性能的变化&#xff0c;并最终确定在满足性能指标的情况下&a…

MySql的基本语法操作

查看数据库和表 查看所有的数据库 show databases; 建立一个新的数据库 create database database_name; 也可以是 create database if not exists database_name; 表示这个数据库不存在才建立 而不会打断其他sql语句的执行&#xff0c;而如果没有加的话&#xff0c;创建…