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

洛阳网站建设价格汕头百度关键词推广

洛阳网站建设价格,汕头百度关键词推广,长沙圭塘网站建设公司,魔智科技logo在线设计(PyTorch)BERT文本分类:七种模型架构 🌟 1. 介绍 使用BERT完成文本分类任务(如情感分析,新闻文本分类等等)对于NLPer已经是很基础的工作了!虽说已迈入LLM时代,但是BERT…

(PyTorch)BERT文本分类:七种模型架构

🌟 1. 介绍

使用BERT完成文本分类任务(如情感分析,新闻文本分类等等)对于NLPer已经是很基础的工作了!虽说已迈入LLM时代,但是BERT这类较小的传统预训练模型的作用同样不可小觑,常常在某些场景下达到出乎意料的效果。本文介绍了一个利用BERT完成文本分类的开源项目,项目源码 Bert-Text-Classification。项目包含了7条基线,每条基线运行起来所需的显存都很小,用来作baseline非常的不错。

为方便下载:夸克网盘链接,大家也可直接进入GitHub地址访问项目(同时给作者点个🌟哈哈哈)
另外,当前很多的BERT文本分类项目都是很老的包了,可能在配置环境时会出现问题。但本项目使用的包在当前主流的服务器上肯定可以配置成功!按照本项目的依赖文件去安装肯定不会出问题!

🔍 2. 模型架构解析

模型类型模型描述适用场景
BertOrigin标准BERT实现基线对比实验
BertATT动态注意力机制增强长文本关键信息提取
BertLSTMRNN时序建模能力融合序列依赖性强的任务
BertCNN局部特征提取器设计短文本模式识别
BertDPCNN深度金字塔卷积架构层次化特征学习
BertRCNNRNN-CNN混合架构上下文敏感的分类任务
BertCNNPlus全局-局部特征融合机制需要综合语义理解的场景

🛠 3. 快速开始

话不多说,直接开始复现步骤(作者已按照以下步骤完成复现,若遇到问题,欢迎在评论区提出,或者在GitHub的issue中提出,issue中提出问题会有邮件通知作者)

3.1 环境要求

  • Python 3.8
  • 依赖安装:pip install -r requirements.txt
# 创建conda环境
conda create -n bert2text python=3.8
# 安装依赖
cd xx/xx/Bert-Text-Classification
pip install -r requirements.txt

3.2 数据准备

  • 文本分类数据集,包含训练集、验证集、测试集
  • 单条数据格式:label \t text,如:
  • 0	我爱北京天安门
    1	这个电影真好看
    
  • 数据集存放路径:data/,数据集文件名:train.tsvdev.tsvtest.tsv

源码中的数据集因版权,只保留了前100条数据,若需要情感二分类SST2的完整数据集,可通过链接 SST2 访问下载。若是自己的数据集,请自行按照以上格式修改(注意分类类别需自行转换为数字标签)!比如:0对应“消极”,1对应“积极"

3.3 模型训练和评估

0️⃣ 修改相应的运行文件的配置信息,如run_STT2.py

# 数据集路径
data_dir = "./data/SST2"
# 标签列表
label_list = ["0", "1"] # SST2数据集标签列表(SST2是情感二分类数据集)
# 所需运行的模型名称列表
model_name_list = ["BertOrigin", "BertATT", "BertCNN", "BertCNNPlus", "BertDPCNN", "BertRCNN", "BertLSTM"] # 运行七条基线模型
# 模型保存路径、缓存保存路径、日志保存路径
output_dir = "./sst2_output/"
cache_dir = "./sst2_cache/"
log_dir = "./sst2_log/"
# BERT预训练模型路径,中文数据集使用"bert-base-chinese",英文数据集使用"bert-base-uncased"
model_name_or_path = "XXXX/XXX/bert-base-uncased"

需要运行几条基线,就在model_name_list 中保留哪几个模型的名称。中文文本分类需要使用中文版的BERT。

1️⃣ 运行训练脚本:

# 注意修改执行的数据集脚本名称,如运行SST2数据集时,run.sh中应该是python3 run_SST2.py
CUDA_VISIBLE_DEVICES=0 bash run.sh# run.sh中的参数说明:
max_seq_length:句子截断长度
num_train_epochs:训练轮数
do_train:是否训练
gpu_ids:使用的GPU编号,注意单卡训练时,gpu_ids为0
gradient_accumulation_steps:梯度累积步数
print_step:打印训练信息的步数(验证频率)
early_stop:早停步数,即验证集准确率连续early_stop次不再提升时,停止训练。当设置很大时,相当于关闭了早停功能。
train_batch_size:训练批次大小

第一次跑可以直接使用默认配置,看是否能运行成功。若爆显存可修改max_seq_length和train_batch_size大小。

2️⃣ 测试模型:

# 训练完成后,模型保存在`output_dir`目录下,如`./sst2_output/BertOrigin/`,包含模型文件、词表文件、配置文件等。
# 移除`run.sh`中的`do_train`参数,运行测试脚本
CUDA_VISIBLE_DEVICES=0 bash run.sh

在源码的设置中,其实每训练一个epoch后,都在测试集上进行了预测,同时记录了对应的结果。所以做不做步骤2其实都可以。保存的结果在./sst2_output/BertXXX/BertXXX/metric_info_for_test.json中。记录的指标包含:

{"epoch": 1,"auc": 0.5,"accuracy": 66.69859514687101,"P_macro_avg": 44.97381885071993,"R_macro_avg": 45.84622325341583,"F1_macro_avg": 44.36622804917629,"P_weighted_avg": 63.133033572230936,"R_weighted_avg": 66.69859514687101,"F1_weighted_avg": 63.44510333347591}

注意,若分类类别大于2,则AUC指标设置为0.5不变。

3.4 训练监控

可通过TensorBoard查看训练日志,日志路径示例:./sst2_log/
tensorboard的使用在此处就不再赘述了,若有需要可自行搜索教程!

http://www.dtcms.com/wzjs/279143.html

相关文章:

  • 马云有没有学过做网站网页设计模板html代码
  • 苏州哪里做网站好网络推广方法
  • 外贸网站建设网站开发上海百度推广公司排名
  • wordpress导航单页武汉seo公司出 名
  • 自己做的网站和淘宝店的区别长春百度关键词优化
  • 青岛百度网站排名中国最好的网络营销公司
  • 建设网站所采用的技术方案注册网站免费注册
  • 域名建议网站程序员培训班要多少钱
  • 可以自己做直播网站吗seo网站优化快速排名软件
  • 男的做直播哪个网站好江门seo推广公司
  • 时时彩做假网站怎么做快速搭建网站的工具
  • 网盘网站开发云盘搜索
  • 沈阳网站建设公司怎么样百度手机助手下载安卓版
  • 龙华住房和建设局网站获客
  • 长春做网站网站营销咨询师
  • 找个做网站的广州各区最新动态
  • 网站如何制作的厦门seo公司到1火星
  • 网站的根目录百度排名查询
  • 规划院网站建设书长尾词在线挖掘
  • 企业站模板互联网营销案例分析
  • 网站推广软文范例软文营销成功案例
  • 网站开发与设计的实训场地12月10日新闻
  • 如何远程连接 网站 数据库今天中国新闻
  • 潍坊做网站优化广州全网推广
  • flask网站开发源码郴州seo快速排名
  • 百度权重高的网站长沙疫情最新数据消息
  • 怎么做百度提交入口网站什么叫软文推广
  • 网上三维展馆网站是怎么做的销售
  • 设计网站页面注意事项企业宣传片
  • 做网站推广多少钱网络推广平台有哪些渠道