使用 T5 模型来做文本分类任务的一些总结

2023-11-17

T5

paper:Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
T5 本身是一个 Text-to-Text 模型,但其不仅仅能做传统的 text2text 任务 (如对话、QA、文本摘要等等),也能做文本分类这种任务,T5 基本可以用于所有的 NLP 任务,并且拥有很好的性能。

text2text 模型如何做 text classification?

简单来说输入就是文本句子,输出就是类别词(如 positive, negative ),当然,这可能有一个问题:模型生成的输出的单词如果不是类别词呢?但作者也在论文中说了,一个在相应数据集上训练过的 T5 模型如果在做文本分类时,模型的输出肯定是类别词,不会出现非类别词,如果模型输出是非类别词,那么很有可能就是模型训练不充分。

在训练时,以下代码即可,其中 labels 就是类别词的编码结果

outputs = model(input_ids=input_ids, attention_mask=attention_mask, labels=labels)

推理的代码如下:

out = model.generate(input_ids=input_ids, attention_mask=attention_mask, max_length=2)

具体如何做推理的代码可以参考:T5: classification using text2text?

优化器和调度器(optimizer and scheduler)

作者在论文中写了在训练时使用的优化器是 Adafactor,Adafactor 是专门为 Transformer 类模型所设计的,相比于 Adam 占用更少的显存,能够有效减少训练时所需的显存。

paper: Adafactor: Adaptive Learning Rates with Sublinear Memory Cost

关于如何调用 Adafactor,可以参考 HuggingFace Adafactor

可以通过以下示例使用:

Adafactor(model.parameters(), scale_parameter=False, relative_step=False, warmup_init=False, lr=1e-3)

有人发现下面这个设置更好:

Adafactor(model.parameters(), scale_parameter=True, relative_step=True, warmup_init=True, lr=None)

如果设置 lr=None,那么最好调度器使用 AdafactorSchedule

from transformers.optimization import Adafactor, AdafactorSchedule

optimizer = Adafactor(model.parameters(), scale_parameter=True, relative_step=True, warmup_init=True, lr=None)
lr_scheduler = AdafactorSchedule(optimizer)

使用 Adafactor 可以大大减少训练所需的显存,尤其是对于 t5-larget5-3b 这类参数量大的模型,如果数据量也比较大的话,训练时对 GPU 显存的要求比较高,对训练造成了一定困难。

当然也可以选择其他的优化器和调度器,比如 AdamW+线性衰减 等等,这个可选择的就比较多了,但正如上面所说的,Adam 类的优化器在训练时占用的显存比较多,需要足够大的显存来训练。

学习率设置

1e-4 和 3e-4 几乎适用于所有问题(classification, QA, que-gen, summ)

完整训练代码

https://github.com/friedrichor/NLP-HuggingFace-Tutorial/tree/main/text_classification/T5

Reference

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 T5 模型来做文本分类任务的一些总结 的相关文章

  • 波特 油炸的去梗

    为什么波特词干算法在线 http text processing com demo stem http text processing com demo stem stem fried to fri并不是fry 我不记得任何以以下结尾的单词
  • 在 python 中快速/优化 N-gram 实现

    python 中哪种 ngram 实现速度最快 我试图分析 nltk 与 scott 的 zip http locallyoptimal com blog 2013 01 20 elegant n gram Generation in py
  • 创建向量空间

    我有一个问题 我有很多文档 每一行都是由某种模式构建的 当然 我有这一系列的图案 我想创建一些向量空间 然后通过某种规则来向量这个模式 我还不知道这个规则是什么 即使这个模式像我的向量空间的 质心 然后向量当前文档的每一行 再次按照此规则
  • 如何获取与某个单词相关的相似单词?

    我正在尝试解决一个 nlp 问题 其中我有一个单词字典 例如 list 1 phone android chair netflit charger macbook laptop sony 现在 如果输入是 phone 我可以轻松地使用 in
  • 使用 nltk 中的meteor_score模块评估模型时如何实现meteor分数?

    我目前有 2 个文件 reference txt 和 model txt 这两个文本文件包含原始字幕和训练后生成的字幕 我可以简单地执行以下操作来获取流星分数 score nltk translate meteor score meteor
  • 在哪里可以找到英语短语列表? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我的任务是搜索文本中陈词滥调和常见短语的用法 这些短语与您在财富之轮的短语谜题中可能看到的短语类似 这
  • NLTK CoreNLPDependencyParser:无法建立连接

    我正在尝试通过 NLTK 使用斯坦福解析器 按照示例here http www nltk org api nltk parse html nltk parse corenlp CoreNLPDependencyParser 20tutori
  • 使用 Hadoop MapReduce 的计算语言学项目构想

    我需要做一个关于计算语言学课程的项目 是否有任何有趣的 语言 问题 其数据密集程度足以使用 Hadoop MapReduce 来解决 解决方案或算法应尝试分析并提供 语言 领域的一些见解 但是它应该适用于大型数据集 以便我可以使用 hado
  • 在非单一维度 1 处,张量 a (2) 的大小必须与张量 b (39) 的大小匹配

    这是我第一次从事文本分类工作 我正在使用 CamemBert 进行二进制文本分类 使用 fast bert 库 该库主要受到 fastai 的启发 当我运行下面的代码时 from fast bert data cls import Bert
  • 下载变压器模型以供离线使用

    我有一个训练有素的 Transformer NER 模型 我想在未连接到互联网的机器上使用它 加载此类模型时 当前会将缓存文件下载到 cache 文件夹 要离线加载并运行模型 需要将 cache 文件夹中的文件复制到离线机器上 然而 这些文
  • python 中单词的动名词形式

    我想获得字符串的动名词形式 我还没有找到调用库来获取动名词的直接方法 我应用了以 ing 结尾的单词的规则 但是因为异常导致我收到了一些错误 然后 我检查 cmu 单词以确保生成的动名词单词正确 代码如下 import cmudict im
  • 比较文本文档含义的最佳方法?

    我正在尝试找到使用人工智能和机器学习方法来比较两个文本文档的最佳方法 我使用了 TF IDF Cosine 相似度和其他相似度度量 但这会在单词 或 n gram 级别上比较文档 我正在寻找一种方法来比较meaning的文件 最好的方法是什
  • scikit加权f1分数计算及使用

    我有一个关于weightedsklearn metrics f1 score 中的平均值 sklearn metrics f1 score y true y pred labels None pos label 1 average weig
  • 这个 NLP 问题层次结构描述中的最大池化是什么类型

    我正在尝试实现这个描述以及我所做的 我生成了形状的 uni gram bi gram tri gram 15 512 使用填充 然后对于每个单词 我连接三个特征向量 3 512 然后我向他们申请 Globalmaxpooling1D 我不知
  • 从文本文件中提取与输入单词最相似的前 N ​​个单词

    我有一个文本文件 其中包含我使用 BeautifulSoup 提取的网页内容 我需要根据给定的单词从文本文件中找到 N 个相似的单词 流程如下 从中提取文本的网站 https en wikipedia org wiki Football h
  • 如何训练斯坦福 NLP 情感分析工具

    地狱大家 我正在使用斯坦福核心 NLP 包 我的目标是对推文直播进行情感分析 按原样使用情感分析工具对文本 态度 的分析非常差 许多积极因素被标记为中性 许多消极因素被评为积极 我已经在文本文件中获取了超过一百万条推文 但我不知道如何实际获
  • ANEW 字典可以用于 Quanteda 中的情感分析吗?

    我正在尝试找到一种方法来实施英语单词情感规范 荷兰语 以便使用 Quanteda 进行纵向情感分析 我最终想要的是每年的 平均情绪 以显示任何纵向趋势 在数据集中 所有单词均由 64 名编码员按照 7 分李克特量表在四个类别上进行评分 这提
  • 如何对德语文本进行词形还原?

    我有一篇德语文本 我想对其应用词形还原 如果不可能进行词形还原 那么我也可以接受词干提取 Data 这是我的德语文本 mails Hallo Ich spielte am fr hen Morgen und ging dann zu ein
  • NLTK:包错误?朋克和泡菜?

    基本上 我不知道为什么会收到此错误 只是为了获得更多图像 这里有一个代码格式的类似消息 由于是最新的 该帖子的答案已经在消息中提到 Preprocessing raw texts LookupError Traceback most rec
  • 如何提取句子中的主语及其各自的从属短语?

    我正在尝试在句子中进行主题提取 以便我能够根据主题获得情感 我在用nltk在 python2 7 中用于此目的 以下面的句子为例 Donald Trump is the worst president of USA but Hillary

随机推荐

  • AD altium designer 按照板子外形覆铜

    AD全是自学 遇到问题baidu 关于覆铜 之前一直看的视频 全都是选了覆铜自己画线 费劲还画不准确 尤其是异型板子还要直线曲线切来切去 其实大部分时候都是板子所有部分都要覆铜 今天终于找到如何不画线直接按照板子外形覆铜了 依次点选菜单栏的
  • Pycharm一个文件多次运行-allow parallel run

    在平时使用Pycharm的时候难免遇到同一个程序运行后 修改参数多次运行 我在平时使用的时候编写RabbitMQ的消费者程序 需要模拟多个消费者进行消费 因此一个程序需要运行数十个副本 在Pycharm里设置如下 View Appearan
  • Java 诊断神器 Arthas

    关于 Arthas Arthas 是一款开源在线 Java 诊断工具 采用命令行交互模式 支持 web 端在线诊断 同时提供丰富的 Tab 自动补全功能 进一步方便进行问题的定位和诊断 得益于 Arthas 强大且丰富的功能 让 Artha
  • mac charles4.0.2免费破解版安装

    mac charles4 0 2免费破解版安装 按相关步骤即可成功安装并使用 1 下载安装charles https www jianshu com p 4f0573f3c5db 2 安装成功之后相关配置 https www jianshu
  • python数据分页pandas,Python数据分析[3] - Pandas包

    Series Series是一个一维的向量 每个值都会有对应标签 该标签我们称之为Index Obj Series 4 5 7 8 Obj Out 5 0 4 1 5 2 7 3 8 dtype int64 Obj2 Series 4 5
  • 范数(norm) 几种范数的简单介绍

    转自 https blog csdn net a493823882 article details 80569888 https www zhihu com question 20473040 什么是范数 我们知道距离的定义是一个宽泛的概念
  • 华为OD机试 Python 观看表演

    题目 题目描述 小明爱看公园里的表演 为了庆祝一个特殊的节日 公园里会有很多并列的表演 但小明只能选择一个看 看完一场后 他需要至少15分钟才能跑到另一个地方看下一场 请帮他算一下 他最多能看几场表演 输入 第一行是一个数字 告诉你总共有多
  • MongoDB 核心技术详解

    一 NoSQL 概述 1 NoSQL 简介 NoSQL 全称是 Not Only Sql 指的是非关系型的数据库 这类数据库主要有这些特点 非关系型的 分布式的 开源的 水平可扩展的 原始的目的是为了大规模 web 应用 这场全新的数据库革
  • The breakpoint will not currently be hit. No symbols have been loaded for this document visual studi...

    问题1 环境设置问题 1 确认是在debug模式下运行 2 确认正确的项目设置 链接器 gt 调试 gt 生成调试信息 是 C gt 常规 gt 调试信息格式 Zi or Z7 问题2 当前代码与当前执行的程序不匹配 1 确认运行的是最新生
  • 2023美赛C题-Wordle预测思路及matlab代码

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab仿真内容点击 智能优化算法 神经网络预测 雷达通信
  • CSS中的弹性布局:flex

    1 flex布局 Flexible Box 1 1 任何一个容器都可以指定为flex布局 可以应用于 块级 元素 也可以用于行内元素 1 2 当父设置flex布局后 子元素的float clear vertical align属性将失效 2
  • 使用pnpm搭建workspace

    前言 上一节中我们使用vite lib打包了组件库 但发现对component调试时很不理想 而pnpm的workspace就是解决这种问题的 开始工作 在core view之上的根目录 建立pnpm workspace yaml 内容如下
  • STM32示波器设计

    目录 前言 1 硬件模块 2 示波器基础知识 2 1 当头一棒就是 波形的概念 2 2 第二就是需要观察的波形参数 2 3 第三就是示波器参数 2 3 1 采样率 2 3 2 带宽 2 3 4 刷新率 3 ADC采集和DAC输出 3 1 A
  • intel外设接口介绍(Intel Arria 10 Hard Processor System Technical Reference Manual)----SPI

    原文链接 https www intel com content www us en docs programmable 683711 21 2 features of the spi controller html 20 1 Featur
  • CSS 初始化 base.css 文件

    公共样式 body h1 h2 h3 h4 h5 h6 form fieldset div dl dt dd ul ol li input button textarea p th td a img strong margin 0px pa
  • antd Upload上传报Uncaught TypeError: items.map is not a function错误

    在写项目的时候 使用到了antd里面的Upload来上传文件 写好之后运行报错 代码是这样的 const uploadProps action createTheURL software stu score upload method PO
  • 如何查看服务器文件读写未释放流,传输管理_查看及释放请求(Requests)

    一套运维的ERP系统 通常由开发 测试 生产等多台服务器组成 测试 生产服务器常规情况是不能进行配置和程序维护 Transaction SCC4 详见 定义客户端 Client 变更是在开发服务器中完成 在开发服务器中 将配置数据和维护程序
  • 在vscode中使用xdebug调试PHP---绝对解决远程xdebug调试不了的问题

    在vscode中使用xdebug调试PHP 绝对解决远程xdebug调试不了的问题 1 vscode插件安装 2 检查并安装php的xdebug扩展 php m 3 修改远程主机上php ini中的xdebug的配置信息 vi php in
  • dubbo_远程同步调用原理

    Dubbo缺省协议采用单一长连接和NIO异步通讯 适合于小数据量大并发的服务调用 以及服务消费者机器数远大于服务提供者机器数的情况 Dubbo缺省协议 使用基于mina1 1 7 hessian3 2 1的tbremoting交互 连接个数
  • 使用 T5 模型来做文本分类任务的一些总结

    文章目录 T5 text2text 模型如何做 text classification 优化器和调度器 optimizer and scheduler 学习率设置 完整训练代码 Reference T5 paper Exploring th