基于垂直领域语料,使用MaskLM任务预训练Bert模型
项目介绍
使用Mask LM预训练任务来预训练Bert模型。
基于pytorch框架,训练关于垂直领域语料的预训练语言模型,目的是提升下游任务的表现。
代码及示例数据:https://github.com/wzzzd/Pretrain_Bert_with_MaskLM
预训练任务
Mask Language Model,简称Mask LM,即基于Mask机制的预训练语言模型。
同时支持 原生的MaskLM
任务和Whole Words Masking
任务。默认使用Whole Words Masking
。
MaskLM
使用来自于Bert的mask机制,即对于每一个句子中的词(token):
- 85%的概率,保留原词不变
- 15%的概率,使用以下方式替换
- 80%的概率,使用字符
[MASK]
,替换当前token。 - 10%的概率,使用词表随机抽取的token,替换当前token。
- 10%的概率,保留原词不变。
- 80%的概率,使用字符
Whole Words Masking
与MaskLM类似,但是在mask的步骤有些少不同。
在Bert类模型中,考虑到如果单独使用整个词作为词表的话,那词表就太大了。不利于模型对同类词的不同变种的特征学习,故采用了WordPiece的方式进行分词。
Whole Words Masking
的方法在于,在进行mask操作时,对象变为分词前的整个词,而非子词。
模型
使用原生的Bert模型作为基准模型。
数据集
项目里的数据集来自wikitext
,分成两个文件训练集(train.txt)和测试集(test.txt)。
数据以行为单位存储。
若想要替换成自己的数据集,可以使用自己的数据集进行替换。(注意:如果是预训练中文模型,需要修改配置文件Config.py
中的self.initial_pretrain_model
和self.initial_pretrain_tokenizer
,将值修改成 bert-base-chinese
)
自己的数据集不需要做mask机制处理,代码会处理。
训练目标
本项目目的在于基于现有的预训练模型参数,如google开源的bert-base-uncased
、bert-base-chinese
等,在垂直领域的数据语料上,再次进行预训练任务,由此提升bert的模型表征能力,换句话说,也就是提升下游任务的表现。
环境配置
项目主要使用了Huggingface的datasets
、transformers
模块,支持CPU、单卡单机、单机多卡三种模式。
可通过以下命令安装依赖包
pip install -r requirement.txt
主要包含的模块如下:
python3.6torch==1.3.0tqdm==4.61.2transformers==4.6.1datasets==1.10.2numpy==1.19.5pandas==1.1.3
Get Start
单卡模式
直接运行以下命令
python train.py
或修改Config.py文件中的变量self.cuda_visible_devices
为单卡后,运行
chmod 755 run.sh./run.sh
多卡模式
如果你足够幸运,拥有了多张GPU卡,那么恭喜你,你可以进入起飞模式。
基于垂直领域语料,使用MaskLM任务预训练Bert模型相关推荐
- 基于朴素贝叶斯和预训练Bert模型的中文句子情感分类实践
基于朴素贝叶斯和预训练Bert模型的中文句子情感分类实践 1.任务介绍 本次实践选题为AI研习社2019年9月份举办的中文对话情感分析任务,并在原任务基础上进行了拓展.任务首先给定一中文语句数据集 ...
- 垂直领域出海,多语言预训练好使吗?
©PaperWeekly 原创 · 作者|刘世兴.程任清 单位|腾讯游戏知几AI团队 研究方向|自然语言处理 简介 垂直领域业务出海,往往面临着新语种.低资源语言数据不足等多语言挑战,其中一条技术路线 ...
- 革命性提升-宇宙最强的NLP预训练BERT模型(附官方代码)
编辑 忆臻 公众号 | 机器学习算法与自然语言处理 yizhennotes 1. Bert官方源码公开 终于是千呼万唤始出来,Google AI 发表于10月中旬的论文: <BERT: Pre ...
- 【AI Code】CodeGeex:你的免费AI编程助手——基于清华ChatGLM的130亿参数预训练大模型
CodeGeex官网:https://codegeex.cn/zh-CN 在线体验地址:https://codegeex.cn/zh-CN/playground 论文:https://arxiv.o ...
- NeurIPS 2022 | 清华提出P2P:基于预训练图像模型的点到像素提示学习方法
点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入-> CV 微信技术交流群 在这里和大家分享一下我们被NeurIPS 2022录用的点云理解工 ...
- NLP之PTM:自然语言处理领域—预训练大模型时代的各种吊炸天大模型算法概述(Word2Vec→ELMO→Attention→Transfo→GPT系列/BERT系列等)、关系梳理、模型对比之详细攻略
NLP之PTM:自然语言处理领域-预训练大模型时代的各种吊炸天大模型算法概述(Word2Vec→ELMO→Attention→Transformer→GPT系列/BERT系列等).关系梳理.模型对比之 ...
- Python Djang 搭建自动词性标注网站(基于Keras框架和维基百科中文预训练词向量Word2vec模型,分别实现由GRU、LSTM、RNN神经网络组成的词性标注模型)
引言 本文基于Keras框架和维基百科中文预训练词向量Word2vec模型,分别实现由GRU.LSTM.RNN神经网络组成的词性标注模型,并且将模型封装,使用python Django web框架搭建 ...
- 卷积神经网络:VGG16 是基于大量真实图像的 ImageNet 图像库预训练的网络
卷积神经网络:VGG16 是基于大量真实图像的 ImageNet 图像库预训练的网络 图片输入->卷积->填充(Padding)->池化(pooling)->平坦(Flatte ...
- 超越Facebook、谷歌、微软,百度发布全球首个百亿参数对话预训练生成模型PLATO-XL...
点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来自:机器之心 和 AI 进行无障碍的对话,是什么样的体验?你或许能够在这篇文章里找到 ...
最新文章
- 左右上下都能滚动的效果
- 观看自由!B站上线斯坦福最新「机器学习系统(MLSys)」全集
- 华盛顿大学《生成模型》2020秋季课程完结,课件、讲义全部放出
- Notepad++安装教程
- linux下var权限是什么?,linux – 在/ var / www中处理Apache 2用户www-data权限的最佳方法是什么?...
- 作为初学者,应该如何系统学习Java呢?
- mac下natapp使用
- ubuntu11.10安装mysql+handlersocket
- IMDb、烂番茄、MTC、各种电影行业评分名字整理
- QT打开ROS工作空间时遇到的问题和解决方法
- AR引擎vuforia源码分析、中文注释(2)用手势控制来与模型简单交互
- [gdc17]《守望先锋》的EntityComponent架构
- php 外包 上海,== | php外包与php技术服务商
- 频繁项集与关联规则Frequent Itemset Mining and Association Rules、A-Priori算法 , PCY算法
- unity3d android访问剪贴板,Airtest 和 poco 的 swipe 接口使用总结
- 【javascript】收藏本站——添加到浏览器收藏夹
- 【战国策】之《齐策·张仪为秦连横说齐王曰》
- Windows 10家庭中文版中启用WSL 2
- charles 抓包显示unknown
- Please add following line to .bashrc: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/username/.muj