BERT 详解(一)

作者: 6c643a7fc0e6 | 来源:发表于2019-12-26 21:17 被阅读0次

    今天来聊聊谷歌的自然语言处理框架 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 一样,在做出预测之前,同时考虑左右上下文。

    相关文章

      网友评论

        本文标题:BERT 详解(一)

        本文链接:https://www.haomeiwen.com/subject/iybloctx.html