BERT 学习推荐资源(文章讲解+视频讲解+BERT模型运行指导)

前言

最近个人对NLP (自然语言处理)方向比较感兴趣,经同学推荐先学习了BERT模型,BERT模型是近几年来NLP领域最火的一个模型,算是NLP领域一个里程碑式的改变。谷歌公司AI团队新发布的BERT模型,在机器阅读理解顶级水平测试SQuAD1.1中表现出惊人的成绩:全部两个衡量指标上全面超越人类,并且还在11种不同NLP测试中创出最佳成绩,包括将GLUE基准推至80.4%(绝对改进7.6%),MultiNLI准确度达到86.7% (绝对改进率5.6%)等。

Transformer学习

在学习BERT模型之前建议先学习一下transformer模型,这是BERT模型中所使用到的。

Transformer的本质上是一个Encoder-Decoder的结构,在transformer模型诞生之前,很多Encoder-Decoder 都是基于CNN和RNN的,而transformer模型是基于attention机制( 附上关于Attention机制的介绍:一文看懂 Attention(本质原理+3大优点+5大类型) - 知乎 (zhihu.com)

这篇文章简单说明了transformer的结构以及和CNN,RNN的一些差别:

简单介绍Transformer模型 - 知乎 (zhihu.com)

在Transformer的学习中,大力推荐的是李宏毅老师对transformer的讲解,其中包括对自注意机制的讲解,以及模型结构的具体讲解,非常通俗易懂,是我目前看到的最棒的对transformer模型讲解的视频了

视频链接:B站:搜索:BV1J441137V6 或者直接搜索:李宏毅transformer

​ 油管链接:Transformer - YouTube

对应的图文讲解版链接:Transformer模型详解(图解最完整版) - 知乎 (zhihu.com)

BERT学习

了解完transformer模型,接下来就要开始正题了:对BERT模型的学习

BERT论文和代码地址:

Refrence Code :https://github.com/google-research/bert

Paper : https://arxiv.org/abs/1810.04805

建议可以先看一些那种CSDN上对于BERT模型的一文介绍:

NLP必读:十分钟读懂谷歌BERT模型 - 知乎 (zhihu.com)

一文读懂BERT(原理篇)_sunhua93的博客-CSDN博客_bert (文章较长,将NLP发展史进行了梳理)

看了对BERT的简单介绍如果还有不太懂的,可以在B站搜索:BV1Ey4y1874y 这个up主的视频比较通俗易懂,他的主页里面也有对transformer的讲解,也可以多看一看

看了这些之后,可以就可以开始看BERT论文啦

看完论文可以尝试着运行一下Google发布的开源代码

本人也是做了一个关于BERT预训练模型运行的博客,欢迎各位大佬前来指正!

附上博客链接:谷歌经典bert模型从下载源码到运行成功_qq_44532527的博客-CSDN博客

结语

目前本人还是个小菜鸡,对于机器学习、NLP方向还只停留在表面的理解,若有地方写的不妥,还希望各位读者们指正!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BERT(Bidirectional Encoder Representations from Transformers)是一种预训练语言模型,采用的是Transformer的编码器结构。它是由Google在2018年推出的,是自然语言处理领域的一个重要突破,也是目前最先进的自然语言处理模型之一。 BERT的核心思想是通过预训练来学习语言模型,然后在具体任务上进行微调。预训练过程主要有两个任务:Masked Language Model(MLM)和Next Sentence Prediction(NSP)。 在MLM任务中,BERT模型会将输入的文本中的一些单词随机替换成“[MASK]”,然后模型需要根据上下文预测被替换的单词是什么。这个任务的目的是让模型学会理解上下文中单词的语义和语法。 在NSP任务中,BERT模型需要判断两个输入的文本是否是连续的,并输出一个分类结果。这个任务的目的是让模型学习到文本之间的关系,例如问答、句子分类等任务的基础。 下面是BERT模型的具体结构,以BERT-base为例: ![BERT-base](https://cdn.jsdelivr.net/gh/shijiatongxue/blog_img/20210713122538.png) 其中,输入层是将单词转化为向量表示。BERT采用的是WordPiece词汇切分方法,将单词切分成多个子单词,并对每个子单词进行向量表示。然后,将这些向量经过位置嵌入、类型嵌入和层归一化等处理后,输入到Transformer编码器中。 Transformer编码器由多个Transformer block组成,每个block中包含一个multi-head self-attention层和一个feed-forward层。其中,multi-head self-attention层用于学习单词之间的依赖关系,feed-forward层则用于学习语义信息。 最后,经过多个Transformer block的处理后,将最后一层的输出作为模型的表示结果,输入到具体任务的模型中进行微调。 下面是使用Hugging Face库实现BERT模型的代码: ```python from transformers import BertTokenizer, BertModel # 加载预训练模型和tokenizer tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = BertModel.from_pretrained('bert-base-uncased') # 输入文本 text = "Hello, this is a test sentence." # 将文本转化为token tokenized_text = tokenizer.tokenize(text) # 加入特殊标记 tokenized_text = ['[CLS]'] + tokenized_text + ['[SEP]'] # 将token转化为索引 indexed_tokens = tokenizer.convert_tokens_to_ids(tokenized_text) # 将索引转化为PyTorch张量 tokens_tensor = torch.tensor([indexed_tokens]) # 获取BERT模型的输出 outputs = model(tokens_tensor) # 获取最后一层的输出 last_hidden_states = outputs[0] ``` 以上是BERT模型的简单介绍和代码实现,希望能对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值