nlp下的bert模型的一些学习

CR1820 CR1820     2022-11-29     796

关键词:

自然语言处理NLP

最近在着手一个跨模态情绪识别项目中自然语言处理 在经过训练LSTM与Bert两款模型后 发现Bert是真的强 BERT是2018年10月由Google AI研究院提出的一种预训练模型。BERT在机器阅读理解顶级水平测试SQuAD1.1中表现出惊人的成绩: 全部两个衡量指标上全面超越人类,并且在11种不同NLP测试中创出SOTA表现,包括将GLUE基准推高至80.4% (绝对改进7.6%),MultiNLI准确度达到86.7% (绝对改进5.6%),成为NLP发展史上的里程碑式的模型成就。
此文章基于 https://www.bilibili.com/video/BV1tG411x7yq?p=12&spm_id_from=pageDriver&vd_source=606928d0775e26f8833c726f83b3abd3

RNN适用于NLP CNN适用于CV

一句话中 前面的单词会对后面的单词产生影响 存在时间序列 同时记录前面的所有中间结果

串行工作 无法并行工作---->transformer可以并行

LSTM

存在过滤判断

词向量模型–Word2vec

  • 词义相近的词在词向量空间中靠的越近

  • 词向量的维度较高 (50-300)来描述词语 300最好 词向量可以用来求相似度



此处可以发现man和boy在些许地方是相似的

  • 输入输出

    • 我喜欢电影-----输入我+喜欢 训练神经网络输出电影
    • 实际上是一个分类任务 输入我+喜欢 通过神经网络---->多个词语 输出概率最大的一个 torch.argmax(会存在问题 问题在后面会说到)
  • 神经网络

    • 每个词进来 去look up embeddedings(词语大表)找到对应的n维词向量
    • look up embeddedings是随机初始化的 前向传播计算loss_fn 反向传播更新权重参数
    • 在这个模型中 经过无数次训练后 每个词都进行了更新
  • 构建训练数据 I think the film is great

    • 存在滑动窗口 I think the 输入I think 输出the

    • think the film 输入think the 输出film

    • .训练模型有很多:输入上下文输出中间词 输入中间词输出上下文

  • 问题

    • 分类任务 输入我+喜欢 通过神经网络---->多个词语 输出概率最大的一个 torch.argmax运算量巨大
    • 改进1:输入输出一起输入–>target 1 0
    • 改进1问题:所有标签都是1 效果不好
    • 改进2:缺少0 输入I think 输出the 让他输出happy---->0(负样本) 人为创造0 负样本

transformer神经网络

最重要的在于对每一个词 都需要考虑上下文的语境

self-attention机制

给词作编码时 上下文的文本信息加到该词的词向量中 分配权重

计算


eg.计算 想要去查询第一个与其他的关系 查询第一个–>q1 其他的是被查询–>k1 k2…

然后去做内积 内积若为0 则垂直–>没有关系 内积越大 则相关程度越大 就需要分配更多的权重

softmax归一化返回权重 然后去×对应的v向量

总体流程

multi-headed多头机制

多个head 多组qkv得到多个特征z 所有特征拼接在一起 通过一层全连接层降维 可以有多层

位置信息表达


positional encoding在attention is all you need原文中 使用正余弦周期函数

transformer整体梳理


1.输入 输入一个句子inputs 把里面的词语拿出来(根据任务不同 语言不同视情况而定)直接使用bert的预训练模型 得到embedding 并加入周期信号编码
2.做n层的多头self-attention
3.在层数堆叠的过程中 可能效果变差 此处使用残差连接 确保两条路
4.右侧仅仅是多出mask机制
最重要的在于self-attention机制

bert模型 Bidirectional Encoder Representations from Transformer

bert模型基于transformer网络结构的训练
这主要解决得到特征

方法一 mask机制

句子中有15% 的词汇被随机mask掉 交给模型去预测被mask的是什么

方法二:预测两个句子是否应该连在一起


cls做编码时要考虑其他所有字符 最后cls做二分类(判断两句话是否应该连在一起)

系统学习nlp(二十九)--bert(代码片段)

...tml1.前言在本文之前我们已经介绍了ELMo和GPT的两个成功的模型,今天给大家介绍google新发布的BERT模型。BERT来头可不小,其性能超越许多 查看详情

系统学习nlp(三十二)--bertxlnetrobertaalbert及知识蒸馏

...m/p/84559048一.BERTBERT是一种基于TransformerEncoder来构建的一种模型,它整个的架构其实是基于DAE(DenoisingAutoencoder)的,这部分在BERT文章里叫作MaskedLanaugeModel(MLM)。MLM并不是严格意义上的语言模型,因为整个训练过程并... 查看详情

nlp模型bert和经典数据集!(代码片段)

 Datawhale干货 作者:陈安东,中央民族大学,Datawhale成员对于刚入门NLP的伙伴来说,看到NLP任务很容易觉得眼花缭乱,找不到切入点。总的来说,NLP分为五大类无数小类,虽然种类繁多,却环环相... 查看详情

nlp模型bert和经典数据集!(代码片段)

↑↑↑关注后"星标"Datawhale每日干货 & 每月组队学习,不错过 Datawhale干货 作者:陈安东,中央民族大学,Datawhale成员对于刚入门NLP的伙伴来说,看到NLP任务很容易觉得眼花缭乱,找不到切入点... 查看详情

深度学习核心技术精讲100篇(八十一)-nlp预训练模型ernie实战应用案例

...习的语义理解框架ERNIE2.0,及基于此框架的ERNIE2.0预训练模型,在共计16个中英文任务上超越了BERT和XLNet,取得了SOTA效果。本文带你进一步深入了解ERNIE的技术细节。一:ERNIE简介1.1简介Google最近提出的BERT模型,通过随机屏蔽15%的... 查看详情

深度学习核心技术精讲100篇(八十一)-nlp预训练模型ernie实战应用案例

...习的语义理解框架ERNIE2.0,及基于此框架的ERNIE2.0预训练模型,在共计16个中英文任务上超越了BERT和XLNet,取得了SOTA效果。本文带你进一步深入了解ERNIE的技术细节。一:ERNIE简介1.1简介Google最近提出的BERT模型,通过随机屏蔽15%的... 查看详情

小白学习pytorch教程十六在多标签分类任务上微调bert模型(代码片段)

@Author:RunsenBERT模型在NLP各项任务中大杀四方,那么我们如何使用这一利器来为我们日常的NLP任务来服务呢?首先介绍使用BERT做文本多标签分类任务。文本多标签分类是常见的NLP任务,文本介绍了如何使用Bert... 查看详情

NLP 预训练模型(例如 ELMo、Bert)的数据预处理

】NLP预训练模型(例如ELMo、Bert)的数据预处理【英文标题】:DataPreprocessingforNLPPre-trainingModels(e.g.ELMo,Bert)【发布时间】:2019-07-2303:26:04【问题描述】:我计划根据手头的数据(人们输入的笔记)从头开始训练ELMo或Bert模型。我现... 查看详情

图解bert模型结构输入输出

参考技术A本文首先介绍BERT模型要做什么,即:模型的输入、输出分别是什么,以及模型的预训练任务是什么;然后,分析模型的内部结构,图解如何将模型的输入一步步地转化为模型输出;最后,我们在多个中/英文、不同规模... 查看详情

bert模型的优化改进方法!(代码片段)

 Datawhale干货 来源:Coggle数据科学本文为论文《BERT模型的主要优化改进方法研究综述》的阅读笔记,对BERT主要优化改进方法进行了研究梳理。BERT基础BERT是由GoogleAI于2018年10月提出的一种基于深度学习的语言表示模型。B... 查看详情

bert模型介绍

  前不久,谷歌AI团队新发布的BERT模型,在NLP业内引起巨大反响,认为是NLP领域里程碑式的进步。BERT模型在机器阅读理解顶级水平测试SQuAD1.1中表现出惊人的成绩:全部两个衡量指标上全面超越人类,并且还在11种不同NLP测试... 查看详情

小白学习pytorch教程十六在多标签分类任务上微调bert模型(代码片段)

@Author:RunsenBERT模型在NLP各项任务中大杀四方,那么我们如何使用这一利器来为我们日常的NLP任务来服务呢?首先介绍使用BERT做文本多标签分类任务。文本多标签分类是常见的NLP任务,文本介绍了如何使用Bert... 查看详情

最强nlp模型-bert

...oder Representationsfrom Transformers,是一个预训练的语言模型,可以通过它得到文本表示,然后用于下游任务,比如文本分类,问答系统,情感分析等任务.BERT像是word2vec的加强版,同样是预训练得到词级别或者句子级别的向量表示,word2ve... 查看详情

nlp(十八)利用albert提升模型预测速度的一次尝试(代码片段)

...然会使得模型的训练、预测耗时增加,但也是小样本语料下的最佳模型工具之一,因此,BERT在模型的架构上是不可缺少的。那么,该如何避免使用预训练模型带来的模型预测耗时过长的问题呢???本文决定尝试使用ALBERT,来验证... 查看详情

nlp(十九)首次使用bert的可视化指导(代码片段)

...面情感(取值为1),或者标注为负面情感(取值为0)。模型:句子情感分类??我们的目标是创建一个模型,它能够处理一个句子(就行我们数据集中的句子那样)并且输出1(表明该句子具有正面情感)或者0(表明该句子具有负... 查看详情

训练 BERT 模型并使用 BERT 嵌入

】训练BERT模型并使用BERT嵌入【英文标题】:TrainingaBERTmodelandusingtheBERTembeddings【发布时间】:2020-12-0802:46:28【问题描述】:我一直在阅读有关BERT的信息,并将BERT嵌入用于分类任务。我已经阅读了很多文章,但我对它的理解仍然... 查看详情

翻译图解bertelmo等|nlp迁移学习开端(代码片段)

...lustratedBERT,ELMo,andco.(HowNLPCrackedTransferLearning)正文2018年是NLP模型发展的转折点。我们不断探索单词和句子的表示方法,以求能最好地捕捉其中潜在的语义和关系。此外,NLP领域已经提出了一些功能 查看详情

nlp方向----面试笔试题集:预训练模型bert

文章大纲TransformerBERT简介1.AR与AE语言模型2.1.1Bert是什么?2.1.2Bert有那几个关键点?2.2Bert输入输出表征篇2.2.1Bert输入输出表征长啥样?2.3Bert预训练2.3.1Bert预训练任务介绍2.3.2Bert预训练任务之MaskedLM篇2.3.2.1Bert为什么需要预训练任务Ma... 查看详情