项目介绍

使用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%的概率,保留原词不变。

Whole Words Masking

与MaskLM类似,但是在mask的步骤有些少不同。

在Bert类模型中,考虑到如果单独使用整个词作为词表的话,那词表就太大了。不利于模型对同类词的不同变种的特征学习,故采用了WordPiece的方式进行分词。

Whole Words Masking的方法在于,在进行mask操作时,对象变为分词前的整个词,而非子词。

模型

使用原生的Bert模型作为基准模型。

数据集

项目里的数据集来自wikitext,分成两个文件训练集(train.txt)和测试集(test.txt)。

数据以行为单位存储。

若想要替换成自己的数据集,可以使用自己的数据集进行替换。(注意:如果是预训练中文模型,需要修改配置文件Config.py中的self.initial_pretrain_modelself.initial_pretrain_tokenizer,将值修改成 bert-base-chinese

自己的数据集不需要做mask机制处理,代码会处理。

训练目标

本项目目的在于基于现有的预训练模型参数,如google开源的bert-base-uncasedbert-base-chinese等,在垂直领域的数据语料上,再次进行预训练任务,由此提升bert的模型表征能力,换句话说,也就是提升下游任务的表现。

环境配置

项目主要使用了Huggingface的datasetstransformers模块,支持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模型相关推荐

  1. 基于朴素贝叶斯和预训练Bert模型的中文句子情感分类实践

    基于朴素贝叶斯和预训练Bert模型的中文句子情感分类实践 1.任务介绍   本次实践选题为AI研习社2019年9月份举办的中文对话情感分析任务,并在原任务基础上进行了拓展.任务首先给定一中文语句数据集 ...

  2. 垂直领域出海,多语言预训练好使吗?

    ©PaperWeekly 原创 · 作者|刘世兴.程任清 单位|腾讯游戏知几AI团队 研究方向|自然语言处理 简介 垂直领域业务出海,往往面临着新语种.低资源语言数据不足等多语言挑战,其中一条技术路线 ...

  3. 革命性提升-宇宙最强的NLP预训练BERT模型(附官方代码)

    编辑 忆臻 公众号 | 机器学习算法与自然语言处理 yizhennotes 1.  Bert官方源码公开 终于是千呼万唤始出来,Google AI 发表于10月中旬的论文: <BERT: Pre ...

  4. 【AI Code】CodeGeex:你的免费AI编程助手——基于清华ChatGLM的130亿参数预训练大模型

    CodeGeex官网:https://codegeex.cn/zh-CN  在线体验地址:https://codegeex.cn/zh-CN/playground 论文:https://arxiv.o ...

  5. NeurIPS 2022 | 清华提出P2P:基于预训练图像模型的点到像素提示学习方法

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入-> CV 微信技术交流群 在这里和大家分享一下我们被NeurIPS 2022录用的点云理解工 ...

  6. NLP之PTM:自然语言处理领域—预训练大模型时代的各种吊炸天大模型算法概述(Word2Vec→ELMO→Attention→Transfo→GPT系列/BERT系列等)、关系梳理、模型对比之详细攻略

    NLP之PTM:自然语言处理领域-预训练大模型时代的各种吊炸天大模型算法概述(Word2Vec→ELMO→Attention→Transformer→GPT系列/BERT系列等).关系梳理.模型对比之 ...

  7. Python Djang 搭建自动词性标注网站(基于Keras框架和维基百科中文预训练词向量Word2vec模型,分别实现由GRU、LSTM、RNN神经网络组成的词性标注模型)

    引言 本文基于Keras框架和维基百科中文预训练词向量Word2vec模型,分别实现由GRU.LSTM.RNN神经网络组成的词性标注模型,并且将模型封装,使用python Django web框架搭建 ...

  8. 卷积神经网络:VGG16 是基于大量真实图像的 ImageNet 图像库预训练的网络

    卷积神经网络:VGG16 是基于大量真实图像的 ImageNet 图像库预训练的网络 图片输入->卷积->填充(Padding)->池化(pooling)->平坦(Flatte ...

  9. 超越Facebook、谷歌、微软,百度发布全球首个百亿参数对话预训练生成模型PLATO-XL...

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来自:机器之心 和 AI 进行无障碍的对话,是什么样的体验?你或许能够在这篇文章里找到 ...

最新文章

  1. 左右上下都能滚动的效果
  2. 观看自由!B站上线斯坦福最新「机器学习系统(MLSys)」全集
  3. 华盛顿大学《生成模型》2020秋季课程完结,课件、讲义全部放出
  4. Notepad++安装教程
  5. linux下var权限是什么?,linux – 在/ var / www中处理Apache 2用户www-data权限的最佳方法是什么?...
  6. 作为初学者,应该如何系统学习Java呢?
  7. mac下natapp使用
  8. ubuntu11.10安装mysql+handlersocket
  9. IMDb、烂番茄、MTC、各种电影行业评分名字整理
  10. QT打开ROS工作空间时遇到的问题和解决方法
  11. AR引擎vuforia源码分析、中文注释(2)用手势控制来与模型简单交互
  12. [gdc17]《守望先锋》的EntityComponent架构
  13. php 外包 上海,== | php外包与php技术服务商
  14. 频繁项集与关联规则Frequent Itemset Mining and Association Rules、A-Priori算法 , PCY算法
  15. unity3d android访问剪贴板,Airtest 和 poco 的 swipe 接口使用总结
  16. 【javascript】收藏本站——添加到浏览器收藏夹
  17. 【战国策】之《齐策·张仪为秦连横说齐王曰》
  18. Windows 10家庭中文版中启用WSL 2
  19. charles 抓包显示unknown
  20. Please add following line to .bashrc: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/username/.muj

热门文章

  1. 这个预售就卖掉两万册的日历,堪称解救拖延症神器
  2. 修改统计服务器ip到域名,国内、国际域名DNS解析设置详解
  3. 小区物业有权拒绝业主安装充电桩吗
  4. 求proe5.0破解软件和补丁
  5. 教育——开源在线考试系统
  6. 通过Waterdrop 进行hdfs导入ck测试踩坑
  7. 真实案例看三鹿奶粉背后的行业潜规则
  8. 合宙入门教程之luat开发教程
  9. 构建RTW下的嵌入式系统开发环境
  10. 智慧水站送水票桶装水v1.0.26