自然语言处理(NLP)

BERT 详解(一)

2019-12-26  本文已影响0人  6c643a7fc0e6

今天来聊聊谷歌的自然语言处理框架 BERT,BERT 已经对自然语言处理有着显著的变革,那么 BERT 到底是什么呢?

bert.png

根据 BERT 论文 中定义,BERT (Bidirectional Encoder Representations from Transformers) 是一种基于 Transformer 结构的双向编码器,通过联合调节所有层的左右上下文来预训练深度双向表示。因此,经过预训练的 BERT 模型,只需要一个额外的输出层,就可以进行微调,从而可以为各种自然语言处理任务生成最先进的模型,无需对该任务进行大量模型结构的修改。

1. 数据量

BERT 的预训练数据一共 33 亿个字,包含了整个维基百科的大量语料库和图书语料库。

2.模型大小

BERT 模型的标准版有 1 亿的参数量,大号版本有 3 亿多的参数量

3. 硬件资源

谷歌用了 16 个 TPU 集群(一共 64 块 TPU)来训练大号版本的 BERT,花了 4 天时间。TPU 速度比 GPU 要快 15~30 倍左右。

4. 深度双向表示

BERT 是一个深度双向表示的模型,双向意味着 BERT 在训练阶段会从所选文本的左右上下文中汲取消息,比如:

We went to the river bank.
I need to go to the bank to make a deposit.

第 一句表示:我们走到了河边,这里的 bank 表示岸边的意思;第二句话是指,我需要去趟银行存个钱,这里的 bank 表示银行的意思。

如果仅仅汲取左上下文或右上下文,那么 bank 的意思在刚才的例子中,至少要出错一个,解决这个问题的方法就是:像 BERT 一样,在做出预测之前,同时考虑左右上下文。

上一篇 下一篇

猜你喜欢

热点阅读