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

和嗲囡囡和做的网站wordpress如何加入点赞

和嗲囡囡和做的网站,wordpress如何加入点赞,网站软文推广好处,建设高校实验室教学网站的作用本系列用于Bert模型实践实际场景#xff0c;分别包括分类器、命名实体识别、选择题、文本摘要等等。#xff08;关于Bert的结构和详细这里就不做讲解#xff0c;但了解Bert的基本结构是做实践的基础#xff0c;因此看本系列之前#xff0c;最好了解一下transformers和Bert…本系列用于Bert模型实践实际场景分别包括分类器、命名实体识别、选择题、文本摘要等等。关于Bert的结构和详细这里就不做讲解但了解Bert的基本结构是做实践的基础因此看本系列之前最好了解一下transformers和Bert等 本篇主要讲解完形填空应用场景。本系列代码和数据集都上传到GitHub上https://github.com/forever1986/bert_task 1 环境说明 1本次实践的框架采用torch-2.1transformer-4.37 2另外还采用或依赖其它一些库如evaluate、pandas、datasets、accelerate等 2 前期准备 Bert模型是一个只包含transformer的encoder部分并采用双向上下文和预测下一句训练而成的预训练模型。可以基于该模型做很多下游任务。 2.1 了解Bert的输入输出 Bert的输入input_ids使用tokenizer将句子向量化attention_masktoken_type_ids句子序号、labels结果 Bert的输出 last_hidden_state最后一层encoder的输出大小是(batch_size, sequence_length, hidden_size)注意这是关键输出本次任务就需要获取该值可以取出那个被mask掉的token获取其前几个取score最高的当然也可以使用top_k或者top_p方式获取一定随机性 pooler_output这是序列的第一个token(classification token)的最后一层的隐藏状态输出的大小是(batch_size, hidden_size)它是由线性层和Tanh激活函数进一步处理的。通常用于句子分类至于是使用这个表示还是使用整个输入序列的隐藏状态序列的平均化或池化视情况而定。 hidden_states 这是输出的一个可选项如果输出需要指定config.output_hidden_statesTrue,它也是一个元组它的第一个元素是embedding其余元素是各层的输出每个元素的形状是(batch_size, sequence_length, hidden_size) attentions这是输出的一个可选项如果输出需要指定config.output_attentionsTrue,它也是一个元组它的元素是每一层的注意力权重用于计算self-attention heads的加权平均值。 2.2 数据集与模型 1数据集来自ChnSentiCorp该数据集本身是做情感分类但是我们只需要取其text部分即可 2模型权重使用bert-base-chinese 2.3 任务说明 完形填空其实就是在一段文字中mask掉几个字让模型能够自动填充字。这里本身就是bert模型做预训练是所做的事情之一因此就是让数据给模型做训练的过程。 2.4 实现关键 1数据集结构是一个带有text和label两列的数据我们只需要获取到text部分即可。 2随机mask掉部分数据这个本身也是bert的训练过程因此在transforms框架中DataCollatorForLanguageModeling已经实现了你也可以自己实现随机mask掉你的数据进行训练 3 关键代码 3.1 数据集处理 数据集不需要做过多处理只需要将text部分进行tokenizer并制定max_length和truncation即可 def process_function(datas):tokenized_datas tokenizer(datas[text], max_length256, truncationTrue)return tokenized_datas new_datasets datasets.map(process_function, batchedTrue, remove_columnsdatasets[train].column_names)3.2 模型加载 model BertForMaskedLM.from_pretrained(model_path)注意这里使用的是transformers中的BertForMaskedLM该类对bert模型进行封装。如果我们不使用该类需要自己定义一个model继承bert增加分类线性层。另外使用AutoModelForMaskedLM也可以其实AutoModel最终返回的也是BertForMaskedLM它是根据你config中的model_type去匹配的。 这里列一下BertForMaskedLM的关键源代码说明一下transformers帮我们做了哪些关键事情 # 在__init__方法中增加增加了BertOnlyMLMHeadBertOnlyMLMHead其实就是一个二层神经网络一层是BertPredictionHeadTransform包括lineargeluActln一层是decoderhidden_size*vocab_size大小的linear。 self.bert BertModel(config, add_pooling_layerFalse) self.cls BertOnlyMLMHead(config)# 将输出结果outputs取第一个返回值也就是last_hidden_state sequence_output outputs[0] # 将last_hidden_state输入到cls层中获得最终结果预测的score和词 prediction_scores self.cls(sequence_output)3.3 自动并随机mask数据 关键代码在于DataCollatorForLanguageModeling该类会实现自动mask。参考torch_mask_tokens方法。 trainer Trainer(modelmodel,argstrain_args,train_datasetnew_datasets[train],data_collatorDataCollatorForLanguageModeling(tokenizer, mlmTrue, mlm_probability0.15),)4 整体代码 基于BERT做完形填空 1数据集来自ChnSentiCorp 2模型权重使用bert-base-chinese# step 1 引入数据库 from datasets import DatasetDict from transformers import TrainingArguments, Trainer, BertTokenizerFast, BertForMaskedLM, DataCollatorForLanguageModeling, pipelinemodel_path ./model/tiansz/bert-base-chinese data_path ./data/ChnSentiCorp# step 2 数据集处理 datasets DatasetDict.load_from_disk(data_path) tokenizer BertTokenizerFast.from_pretrained(model_path)def process_function(datas):tokenized_datas tokenizer(datas[text], max_length256, truncationTrue)return tokenized_datasnew_datasets datasets.map(process_function, batchedTrue, remove_columnsdatasets[train].column_names)# step 3 加载模型 model BertForMaskedLM.from_pretrained(model_path)# step 4 创建TrainingArguments # 原先train是9600条数据batch_size32因此每个epoch的step300 train_args TrainingArguments(output_dir./checkpoints, # 输出文件夹per_device_train_batch_size32, # 训练时的batch_sizenum_train_epochs1, # 训练轮数logging_steps30, # log 打印的频率)# step 5 创建Trainer trainer Trainer(modelmodel,argstrain_args,train_datasetnew_datasets[train],# 自动MASK关键所在通过DataCollatorForLanguageModeling实现自动MASK数据data_collatorDataCollatorForLanguageModeling(tokenizer, mlmTrue, mlm_probability0.15),)# Step 6 模型训练 trainer.train()# step 7 模型评估 pipe pipeline(fill-mask, modelmodel, tokenizertokenizer, device0) str datasets[test][3][text] str str.replace(方便,[MASK][MASK]) results pipe(str) # results[0][0][token_str] print(results[0][0][token_str]results[1][0][token_str])5 运行效果 注本文参考来自大神https://github.com/zyds/transformers-code
http://www.hyszgw.com/news/81699.html

相关文章:

  • 做电商网站的感想软件开发模型着重研究的是
  • 曲阜市政对过做网站的是那家网站上面怎么做链接
  • 门户网站开发维护合同iis配网站
  • 网站建设公司如何进行工作那里做网站
  • 中国建设银行官网站周波个人年终总结ppt模板下载
  • 网站页面建设需要ps吗沧州公司网站建设
  • 个人免费域名空间建站网页淘宝
  • 设计视频网站垫江网站建设哪家好
  • 网站维护入口网站建设实践试卷
  • 帝国cms电影网站模板西安西工大软件园做网站的公司
  • 好用的快速网站建设平台成都企业网站建设价格
  • 本地建站discuz郑州网站建设目标
  • 教育机构做网站的目的国内的网站空间
  • 济南做网站公司电话口碑营销的案例有哪些
  • 网站建设公司专业网站研发开发山东新华电脑学院学网站开发
  • 前几年做哪个网站能致富免费装修设计app
  • win7 iis 发布asp.net网站优质高等职业院校建设申报网站
  • 行业网站建设的开发方案ysl千色t9t9t9
  • 免费网站qq抓取彩票网站建设哪家公司好
  • 做标书的网站下载站用什么网站系统
  • 电信网站备案系统做什么网站开发最简单
  • 大连坐做网站公司电脑培训网上免费课程
  • 做网站被罚款广州讯博网络科技有限公司
  • 北京建网站开发北京好的网站建设
  • 东莞阳光网站投诉平台网站做直链下载存储解决方案
  • php怎么做全网小视频网站做外贸面料哪个网站可以接单
  • 网站建设ppt模板下载建网站怎么做报分系统
  • 平台开发网站建设公司官网建设网站有什么法律么
  • 网上商城网站开发公司国内最新新闻资讯
  • 海阳市建设工程交易中心网站剑阁县规划和建设局网站