![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
语言模型
风吹草地现牛羊的马
这个作者很懒,什么都没留下…
展开
-
beam_search
import torchimport torch.nn.functional as Ffrom src.utils import generate_square_subsequent_maskimport mathclass Translator(): def __init__(self, bos_idx, eos_idx, device, max_steps=64, beam_size=3, length_norm_coefficient=0.6): '''原创 2022-03-31 14:27:10 · 653 阅读 · 0 评论 -
预训练语言模型mask函数DataCollatorForLanguageModeling和DataCollatorForWholeWordMask解析
预训练语言模型中的非常重要的任务是MLM任务,MLM任务需要对原始文本进行mask。transformers库已经集成了预训练语言模型中的mask机制,这里分析其中的两个函数DataCollatorForLanguageModeling和DataCollatorForWholeWordMask。1.1DataCollatorForLanguageModeling这个类实现了Bert模型中的MLM任务中提出的mask机制。下面我对照transformers库中的原始代码讲解。class DataCol原创 2022-02-27 22:29:54 · 5967 阅读 · 0 评论 -
wordnet的使用
wordnet教程原创 2021-04-25 16:18:01 · 266 阅读 · 0 评论 -
图解Transformer(转)
图解Transformer原创 2019-10-23 19:23:43 · 202 阅读 · 0 评论 -
pytorch-pretrained-bert简单使用
转载自:9012年,该用bert打比赛了从下载模型权重开始# 切换到你的anaconda gpu 环境# source activate 你的conda环境名称# 安装加载预训练模型&权重的包pip install pytorch-pretrained-bert接着就是下载模型权重文件了,pytorch-pretrained-bert官方下载地址太慢了…,推荐去kaggle下载L...转载 2020-04-15 16:41:12 · 23567 阅读 · 15 评论 -
自回归语言模型(AR)和自编码语言模型(AE)
自回归语言模型(Autoregressive LM)在ELMO/BERT出来之前,大家通常讲的语言模型其实是根据上文内容预测下一个可能跟随的单词,就是常说的自左向右的语言模型任务,或者反过来也行,就是根据下文预测前面的单词,这种类型的LM被称为自回归语言模型。GPT 就是典型的自回归语言模型。ELMO尽管看上去利用了上文,也利用了下文,但是本质上仍然是自回归LM,这个跟模型具体怎么实现有关系。E...转载 2020-04-15 17:58:29 · 4574 阅读 · 3 评论 -
Transformer与Transformer-XL
回顾Transformer在NLP领域,对语言建模最常用的模型就是RNNS(包括LSTM),但是RNNS存在一些问题,比如学习长期依赖的能力很弱(LSTM语言模型平均只能建模200个上下文词语),而且学习速度也很慢。在2017年,谷歌的一位学者提出了Transformer架构,其示意图如下图所示:Transformer不懂的可以看博客图解Transformer虽然Transformer相比...原创 2020-04-16 01:28:53 · 1019 阅读 · 0 评论 -
XLNet与Bert
XLNet原理解读XLNet:运行机制及和Bert的异同比较原创 2020-04-16 21:26:41 · 724 阅读 · 0 评论 -
finetuning Bert时的权重衰减
权重衰减L2正则化的目的就是为了让权重衰减到更小的值,在一定程度上减少模型过拟合的问题,所以权重衰减也叫L2正则化。Bert中的权重衰减并不是所有的权重参数都需要衰减,比如bias,和LayerNorm.weight就不需要衰减。from transformers import BertConfig, BertForSequenceClassification, AdamWimport...原创 2020-05-08 13:36:00 · 2560 阅读 · 4 评论 -
Transformers库简单使用
Transformers库也叫(pytorch-transformers and pytorch-pretrained-bert),提供了很多SOTA的预训练模型,比如BERT, GPT-2, RoBERTa, XLM, DistilBert, XLNet, CTRL…这个库比上一篇博客中讲的 pytorch-pretrained-bert库更完整,bert的使用方法略有不同,不需要自己手动去下...原创 2020-04-17 18:02:40 · 5216 阅读 · 0 评论 -
pytorch单机多GPU训练方式(微调bert)
本来是用Dataparallel来微调,但是发现gpu0上负载太大了,后来上面一看,pytorch官网推荐使用DistributedDataParallel,这个方法可以用于多机多卡或者单机多卡,速度和各方面都比Dataparallel要好很多。我主要看了下面两个博客:【分布式训练】单机多卡的正确打开方式(三):PyTorchpytorch(分布式)数据并行个人实践总结——DataParallel/DistributedDataParallel这里说一下Dataparallel和Distribute原创 2020-08-26 14:43:32 · 3705 阅读 · 2 评论 -
统计机器翻译工具kenlm使用
python | 高效统计语言模型kenlm:新词发现、分词、智能纠错原创 2020-08-20 13:52:21 · 244 阅读 · 0 评论 -
BERT等语言模型的BertForMaskedLM避的坑
在用transformers中的BertForMaskedLM来预测被mask掉的单词时一定要加特殊字符[CLS]和[SEP][CLS]和[SEP][CLS]和[SEP]。不然效果很差很差!!!from transformers import AlbertTokenizer, AlbertForMaskedLMimport torchtokenizer = AlbertTokenizer.from_pretrained('albert-base-v2', cache_dir='E:/Projects原创 2020-08-11 18:36:03 · 9389 阅读 · 6 评论