当前位置: 首页 > news >正文

从代码学习深度学习 - 针对序列级和词元级应用微调BERT PyTorch版

文章目录

  • 前言
  • 针对序列级和词元级应用微调BERT
  • 单文本分类
  • 文本对分类或回归
  • 文本标注
  • 问答
  • 总结


前言

在自然语言处理(NLP)的广阔天地里,预训练模型(Pre-trained Models)的出现无疑是一场革命。它们如同站在巨人肩膀上的探索者,使得我们能够利用在大规模文本语料上学到的丰富知识,来解决各种具体的NLP任务。在这其中,由Google开发的BERT(Bidirectional Encoder Representations from Transformers)模型是一个里程碑式的存在。BERT凭借其强大的双向Transformer编码器结构,对语言的理解达到了新的高度。

本文旨在详细阐述如何针对不同的自然语言处理应用场景,对强大的BERT模型进行微调(Fine-tuning)。我们将深入探讨两大类应用:序列级(Sequence-Level)词元级(Token-Level) 任务。我们将从理论架构出发,解释如何通过最小的架构改动,将预训练的BERT模型适配到具体任务上,释放其巨大潜力。


针对序列级和词元级应用微调BERT

在深入具体的应用之前,我们首先需要理解BERT的宏观定位。BERT模型本身是一个为通用语言理解而设计的庞然大物,其基础版和大型版分别拥有高达1.1亿和3.4亿的参数。为每一个独立的NLP任务从零开始设计和训练一个复杂的模型,既耗时又耗力。而微调BERT则提供了一个高效且效果卓越的解决方案。

微调的核心思想是:在一个巨大的通用文本语料库(如维基百科)上预训练好的BERT模型已经具备了深厚的语言结构和语义知识。 对于下游的具体任务,我们不再需要从头学习所有参数。取而代之的是,我们在预训练的BERT模型之上,增加一个或少数几个简单的全连接层(也称为稠密层)。在针对下游任务进行监督学习时,我们只需要从零开始学习这些新增层的参数,同时对BERT模型原有的海量参数进行“微调”——即在新的任务数据上以较小的学习率进行更新。 这种“最小架构更改”的策略是BERT能够灵活适配多种NLP任务的关键。

接下来,我们将分别探讨序列级和词元级的应用如何通过微调BERT来实现。

单文本分类

单文本分类 是最常见的NLP任务之一,其目标是接收一个单独的文本序列作为输入,然后输出该文本的所属类别。典型应用包括我们熟知的情感分析(判断评论是正面还是负面)和语言可接受性判断。

语言可接受性语料库(Corpus of Linguistic Acceptability, COLA)便是一个用于此任务的数据集,它要求模型判断一个给定的句子在语法上是否成立。 例如,“I should study.” 是一个符合语法的句子,而 “I should studying.” 则不是。

架构说明:

为了处理单文本分类任务,BERT的输入表示经过了精心设计。在输入序列的开头,我们会添加一个特殊的分类标记 [CLS]。这个标记的特殊之处在于,经过BERT模型的多层Transformer编码器处理后,其对应的最终隐藏状态向量被视为整个输入序列的聚合

http://www.dtcms.com/a/273839.html

相关文章:

  • 线程池拒绝策略执行之后的补偿案例
  • Express + @vladmandic/face-api + mySql 实现人脸识别
  • Oracle 数据库 Dblink
  • 【项目经理】实施项目技术问题
  • 5G标准学习笔记14 - CSI--RS概述
  • Telnet远程连接实验(Cisco)
  • 包稳定的Docker 安装方式(CentOS)
  • 前端实现 MD5 加密
  • 【Linux应用】Ubuntu20.04 aarch64开发板一键安装ROS2(清华源)
  • 登录超时问题的排查方法与预防经验分享
  • 【机器学习】机器学习基础
  • 设计模式笔记_结构型_代理模式
  • GPT3/chatGPT/T5/PaLM/LLaMA/GLM主流大语言模型的原理和差异
  • 触觉反馈手套技术是迈向远程机器人系统灵巧操作的关键一步
  • 【Linux】系统引导修复
  • 【八股消消乐】浅尝Kafka性能优化
  • 服务器机柜与网络机柜各自的优势
  • 微信小程序111~120
  • 十二、k8s工程化管理Helm
  • Docker部署私有仓库
  • Linux_3:进程间通信
  • 全面掌控 Claude Code:命令 + 参数 + 快捷键一文全整理(建议收藏)
  • DVWA靶场通关笔记-反射型XSS(Reflected Medium级别)
  • react打包发到线上报错Minified React error #130
  • 在HP小机上跑了1432天的Oracle RAC,能不能重启?
  • 【ECharts】多个ECharts版本共存解决方案
  • 日历插件-FullCalendar的详细使用
  • git lfs部署及报错处理
  • 静态路由综合配置实验报告
  • 如何安装和配置Autoptimize插件以提高WordPress网站访问速度