博客
关于我
莫烦nlp-BERT双向语言模型
阅读量:644 次
发布时间:2019-03-15

本文共 1450 字,大约阅读时间需要 4 分钟。

BERT模型基础概述

BERT(Bidirectional Entity Recognition Transformer)是一种双向的预训练语言模型,其核心目标是增强语言模型对上下文关系的理解。在语言处理领域,BERT通过其双向机制,将单词的前后信息结合起来训练模型,这种方法与传统单向的GPT(Generative Pre trained Transformer)有着本质的不同。

BERT的核心特点

BERT的主要贡献在于将Transformer结构用于双向语言模型的训练。与GPT等单向模型相比,BERT在训练时引入了两个关键任务:

  • 填空任务(Masked Language Model, MLM):在输入句子中随机替换部分词语为一个特殊标记[MASK],让模型学习如何补充这些被遮挡的位置。
  • 判断句子关系(Next Sentence Prediction, NSP):判断输入句子与随后的句子是否存在语义或上下文关系。
  • BERT的训练方法

    BERT的训练相较于GPT,加入了更多细节处理,主要体现在以下几个方面:

  • 遮挡处理(Masking)

    • 在训练过程中,会随机选择输入句子的一部分词语进行遮挡处理。
    • 为了避免模型将[MASK]视为普通词语,研究者采用了三种方法:
      • 80%情况下替换为[MASK]标记;
      • 10%情况下随机替换为其他词语;
      • 10%情况下保留原词。
  • 二分类任务

    • 在训练数据中,随机拼接两句话(确保两句话无语义关系)进行正常预测,以制造负样本。
    • 判断上下文关系时,输入模型两个句子并输出True/False标签。
  • BERT的架构与训练

    BERT基于Transformer编码器,具有以下特点:

  • 双向信息融合:通过对输入序列的双向传播,BERT能够同时捕捉句子中的前后信息。

  • 位置嵌入

    • 使用学习可调的位置嵌入(与传统的固定嵌入不同)。-嵌入方式包括:
      pos = np.arange(max_len)[:, None]pe = pos / np.power(10000, 2. * np.arange(model_dim)[None, :] / model_dim)pe[:, 0::2] = np.sin(pe[:, 0::2])pe[:, 1::2] = np.cos(pe[:, 1::2])pe = pe[None, :, :]

    -嵌入结果与词嵌入叠加后输入编码器。

  • 任务-head

    • 提供两个任务头:
      • 用于填空任务的MLM(Masked Language Model Head)。
      • 用于句子关系判断的NSP(Next Sentence Prediction Head)。
    • 因此,在模型训练后,可以直接针对不同任务进行微调,避免任务间干扰。
  • BERT训练流程总结

  • 数据准备:使用与GPT相同的数据集(如MRPC),进行横向对比'.
  • 训练步数:BERT通常需要10000步才能收敛。
  • 优化策略
    • 通过mask和NSP任务生成大量标注数据。
    • 重温损失函数设计,将无标注任务转化为有标注任务'.
  • 效率问题:每次训练只能预测15%的词,这与GPT的100%预测率相比,约低效了2/3。
  • 实际应用建议

    在实际应用中,选择合适的预训练任务模型需要综合考虑上游任务需求:

    • 如果需要通用语言理解,应重点训练语言模型。
    • 如果是定制任务,可以只微调相关头参数。

    通过以上优化,BERT在理解语言的上下文关系方面展现出独特优势,但其训练设计也需要合理选择和调整,以减少计算开销并提升实际效果。

    转载地址:http://uzymz.baihongyu.com/

    你可能感兴趣的文章
    解决数据库报ORA-02289:序列不存在错误
    查看>>
    map[]和map.at()取值之间的区别
    查看>>
    【SQLI-Lab】靶场搭建
    查看>>
    【Bootstrap5】精细学习记录
    查看>>
    Struts2-从值栈获取list集合数据(三种方式)
    查看>>
    参考图像
    查看>>
    *.json: [“usingComponents“][“van-button“] 未找到
    查看>>
    设计模式(18)——中介者模式
    查看>>
    error LNK2019:无法解析的外部符号_imp_CryptAcquireContextA@20
    查看>>
    推荐几篇近期必看的视觉综述,含GAN、Transformer、人脸超分辨、遥感等
    查看>>
    【专题3:电子工程师 之 上位机】 之 【46.QT音频接口】
    查看>>
    一文理解设计模式--命令模式(Command)
    查看>>
    VTK:可视化之RandomProbe
    查看>>
    block多队列分析 - 2. block多队列的初始化
    查看>>
    Java时间
    查看>>
    不编译只打包system或者vendor image命令
    查看>>
    【编程】C语言入门:1到 100 的所有整数中出现多少个数字9
    查看>>
    flink启动(二)
    查看>>
    pair的用法
    查看>>
    Flex 布局的自适应子项内容过长导致其被撑大问题
    查看>>