NLP基础知识1【BERT】

[NLP自然语言处理]谷歌BERT模型深度解析 全部两个衡量指标上全面超越人类,并且还在11种不同NLP测试中创出最佳成绩,包括将GLUE基准推至80.4%(绝对改进7.6%),MultiNLI准确度达到86.7% (绝对改进率5.6%)等。可以预见的是,BERT将为NLP带来里程碑式的改变,也是NLP领域近期最重要的进展。BERT模型开启了NLP的新时代!从现在的大趋势来看,使用某种模型预训练一个语言模型看起来是一种比较靠谱的方法。 阅读详情

  • 总结整理BERT和BERT以前预训练模型的知识

BERT之前的语言编码

one-hot的问题

  • 维度灾难:由于将文本按01进行编码,维度过高,会遇到维度灾难的困扰,妹子词语的维度是语料库词典的长度。
  • 向量离散、稀疏问题:因为one-hot中,句子向量中,如果词出现为1,没出现为0,但是由于维度远远大于句子长度,所以句子中的1远小于0。
  • 词语的编码是随机的,不能表示词之间的联系

word2vec存在的问题

  • 领域问题:word2vec为静态方式,训练好以后,每个词表达固定。
  • 个人认为:可以通过连接线性变换缓解,但是预训练模型的缺点仍无法根治。

elmo存在的问题

  • 做编码时使用LSTM,速度较慢
  • 使用双向拼接的特征,比BERT效果较差

BERT

  • BERT是一种Transformer的双向编码器,旨在通过在左右上下文中共有的条件计算来预先训练来自无标号文本的深度双向表示。因此,经过预先训练的BERT模型只需一个额外的输出层就可以进行微调,从而为各种自然语言处理任务生成最新模型。
    • Trainsformer encoder架构
    • 大量语料训练(33亿token)
    • 双向模型

BERT的输入输出

input组成:Token embedding,Segment embedding,Position embedding,其中

  • Token Embedding: 表示单词或子词。
  • Position Embedding: 表示字/词在句子中的位置。
  • Segment Embedding: 表示单词属于哪个句子或段落(A/B)。
    在这里插入图片描述
实现步骤:
  1. 准备数据:将句子对拼接起来,中间用特殊的 [SEP] 标记分隔。例如,句子 A 和句子 B 拼接为:[CLS] 句子A [SEP] 句子B [SEP]。
  2. 标记 Segment:为句子 A 的每个 Token 分配 Segment ID 0;为句子 B 的每个 Token 分配 Segment ID 1。
  3. 嵌入表示:
    • 使用嵌入层将 Token ID 转换为 Token Embedding。
    • 使用嵌入层将位置 ID 转换为 Position Embedding。
    • 使用嵌入层将 Segment ID 转换为 Segment Embedding。
  1. 将 Token Embedding、Position Embedding 和 Segment Embedding 相加,得到每个 Token 的最终表示。
嵌入特点
  1. 词表30000
  2. 使用word pieces: playing -> play ##ing
  3. 长度512
  4. 区分句子语序: 1. 句子间使用【SEP】隔开 2. 第i句的每一个token添加一个句子i的嵌入
预训练步骤

bert的预训练包含两个任务:Masked LM,Next Sentence Prediction

1. Masked LM
  • 做法:随机遮蔽,仅预测遮蔽模块,被遮盖的标记对应的最终隐藏向量被当做softmax关于该词的一个输出。
  • 问题:
      1. 预训练和微调任务的不匹配
      1. 收敛速度慢(由于每个batch中仅预测了15%的词语)
  • 解决问题:
      1. 使用一定概率用mask遮蔽随机选择的(15%)单词,例如:
    • 80%使用mask替换单词
    • 10%使用随机词
    • 10%不变
  • 目的:模型可以学习每个输入词块的分布式语境表征
2. Next Sentence Prediction
  • 动机:下游任务中有一些是基于对两个句子的关系理解做的,需要设置模板训练模型的此类能力。
  • 方法:设置一个二值化的NSP任务学习句子间的关系
  • 具体:选择句子A,B,句子B可能是A的下一句,也可能是随机的一句话,需要判断是否真的是下一句。
微调
  • BERT为什么要微调?
  • 要适应下游任务和领域做表征。
  • 在BERT最后一层添加分类器(或者继续提取编码后做某种任务)
BERT的loss
  • BERT的两个预训练任务对应的损失函数是什么?
  • L o s s ( θ , θ 1 , θ 2 ) = L o s s 1 ( θ , θ 1 ) + L o s s 2 ( θ , θ 2 ) Loss(\theta,\theta_1,\theta_2) = Loss_1(\theta,\theta_1) + Loss_2(\theta,\theta_2) Loss(θ,θ1​,θ2​)=Loss1​(θ,θ1​)+Loss2​(θ,θ2​)
  • θ 1 \theta_1 θ1​是完形填空任务在Encoder上所接的输出层中的参数。其损失函数中:在第一部分的损失函数中,如果被 mask 的词集合为 M,因为它是一个词典大小 上的多分类问题,所用的损失函数叫做负对数似然函数(且是最小化,等价于最大化对数似然函数)。
    L o s s 1 ( θ , θ 1 ) = − ∑ i = 1 M l o g ( p ) ( m = m i ∣ θ , θ 1 ) , m i ϵ [ 1 , 2 , … … , ∣ V ∣ ] Loss_1(\theta,\theta_1) = -\sum_{i=1}^{M} log(p)(m = m_i|\theta,\theta_1),m_i\epsilon[1,2,……,|V|] Loss1​(θ,θ1​)=−i=1∑M​log(p)(m=mi​∣θ,θ1​),mi​ϵ[1,2,……,∣V∣]
  • θ 2 \theta_2 θ2​是句子预测任务在Encoder上所接的分类器的参数。在其损失函数中,也可以人是一个分类任务的损失函数。
    L o s s 2 ( θ , θ 2 ) = − ∑ i = 1 N l o g ( p ) ( n = n i ∣ θ , θ 1 ) , n i ϵ [ i s N e x t , n o t N e x t ] Loss_2(\theta,\theta_2) = -\sum_{i=1}^{N} log(p)(n = n_i|\theta,\theta_1),n_i\epsilon[isNext,notNext] Loss2​(θ,θ2​)=−i=1∑N​log(p)(n=ni​∣θ,θ1​),ni​ϵ[isNext,notNext]
    L o s s ( θ , θ 1 , θ 2 ) = − ∑ i = 1 M l o g ( p ) ( m = m i ∣ θ , θ 1 ) − ∑ i = 1 N l o g ( p ) ( n = n i ∣ θ , θ 1 ) Loss(\theta,\theta_1,\theta_2) =-\sum_{i=1}^{M} log(p)(m = m_i|\theta,\theta_1)-\sum_{i=1}^{N} log(p)(n = n_i|\theta,\theta_1) Loss(θ,θ1​,θ2​)=−i=1∑M​log(p)(m=mi​∣θ,θ1​)−i=1∑N​log(p)(n=ni​∣θ,θ1​)

对比问题

1. 多义词问题:bank,银行,河岸;爱:喜爱,热爱;寄:死了,寄送。

2. w2v为什么解决不了多义词问题:

  • w2v无法参与训练,静态的,训练时不能根据上下文场景变化。

3.和GPT有什么区别

  • GPT是生成模型,BERT是编码模型。
  • GPT根据解码器构建,BERT根据编码器构建。
  • GPT是单向的注意力,通过下三角形的Mask将后面的单词掩盖;BERT是双向注意力,而且Mask方法是掩盖和替换单词。
  • 训练任务:
    • GPT-2 自回归(auto-regression):效果好因为是在每个新单词产生后,该单词就被添加在之前生成的单词序列后面,这个序列会成为模型下一步的新输入
    • Bert 自编码(auto-encoder):获得了结合单词前后的上下文信息的能力,从而取得了更好的效果。

4.传统词向量有什么缺点?

  • 除了One-hot来说,使用矩阵分解的LSA,拥有全局信息,但过于复杂,难以应用。
  • w2v这类模型语料较少(模型较小没法用很多语料训,有容量上限)
  • elmo,bert,gpt是根据上下文的动态特征
自然语言处理中的Transformer和BERT 2018年马上就要过去,回顾深度学习在今年的进展,让人印象最深刻的就是谷歌提出的应用于自然语言处理领域的BERT解决方案,BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding(https://arxiv.org/abs/1810.04805)。BERT解决方案刷新了各大NLP任务的榜单,在各... 阅读详情

相关推荐

NLP自然语言处理Bert大模型系列学习

本文介绍了BERT模型的几种主要变体及其代码实现,包括原始BERT、RoBERTa和ALBERT。原始BERT提供基础和大型版本,RoBERTa通过优化训练策略提升性能,ALBERT则采用参数共享技术降低资源消耗。文章提供了详细的PyTorch训练和推理代码示例,涵盖数据预处理、模型配置和预测流程,适用于文本分类任务。不同变体适用于不同场景,如RoBERTa适合性能优先的任务,ALBERT适合资源受限环境。

日常分享模型调优、Data Agent 搭建实操案例与行业技术思考,记录从数据预处理到智能体迭代的完整实践。沉心打磨可落地的算法方案,输出干货向技术内容,与同好一同探索数据智能与大模型进阶路径。 1503

NLP中BERT模型详解

研究BERT模型,实际需要了解transformer和自注意力机制。通过论文分析理解,讲述相关BERT模型

lichji2016的博客 4530

BERT--自然语言处理的革命性进展

BERT的提出是深度学习在自然语言处理领域的一次革命,它通过双向的Transformer架构和预训练-微调的方式,在多个NLP任务上都取得了显著的性能提升。尽管BERT仍然面临一些挑战,如计算资源的消耗和对长文本的处理,但它为NLP领域的研究人员和工程师提供了一个强大的工具,推动了整个行业的发展。随着BERT模型的优化与变种(如RoBERTa、DistilBERT等)不断涌现,BERT将在未来的语言理解任务中继续扮演重要角色,成为推动人工智能进步的重要力量。

SWZ156的博客 1035

NLP之Bert详解

感谢DataWhale的学习机会,这里做总结参考,原文见:基于transformers的自然语言处理(NLP)入门https://datawhalechina.github.io/learn-nlp-with-transformers/#/./%E7%AF%87%E7%AB%A02-Transformer%E7%9B%B8%E5%85%B3%E5%8E%9F%E7%90%86/2.3-%E5%9B%BE%E8%A7%A3BERT 在学习完Transformer之后,我们来学习一下将Transformer模

Ibrahimovic1的博客 1558

STM32G030C8T6 ADC+DMA实战:同时采集外部电压和芯片温度的完整代码流程

本文详细介绍了STM32G030C8T6芯片通过ADC+DMA实现外部电压和芯片内部温度采集的完整流程。从硬件设计到CubeMX配置,再到驱动模块化实现与系统优化,提供了高精度多通道采集系统的实战指南,特别适合嵌入式开发者在工业控制和环境监测项目中应用。

weixin_42653691的博客 467

手把手教你用示波器测试DDR5 DRAM信号完整性(附眼图分析技巧)

本文详细介绍了如何使用示波器测试DDR5 DRAM信号完整性,包括眼图分析技巧。从DDR5的核心挑战、测试设备选型到实测工作流程,提供了全面的指导。特别强调了DFE功能验证和系统级协同测试,帮助工程师解决信号完整性问题,提升测试效率。

g2h3i4j5的博客 1155

12-NLP之Bert实现文本分类

NLP之Bert实现文本分类

weixin_46713695的博客 3305

鸿蒙手机卸载内置应用 adb连接

**傻瓜式删除鸿蒙系统内置应用,自己亲测有效。**

JJDXBT的博客 3万+

【NLP】第 3 章 :BERT

在本章中,您将学习由 Google 开发的 Transformer 架构的实现之一,称为 BERT。Google AI Language 的研究人员最近所做的工作导致发表了一篇名为“BERT(来自变形金刚的双向编码器表示)”的论文。BERT取得的最重要的技术进步是将流行的注意力模型Transformer的双向训练 应用于语言建模。根据语言模型的研究结果,与仅在一个方向上训练的模型相比,同时在两个方向上训练的语言模型能够更好地了解语言的流动和上下文。

sikh_0529的博客 6285

非华为电脑也能用!华为电脑管家完美安装教程来了

GitHub 上有一个开源项目 ​****​,专门解决“非华为设备无法安装华为电脑管家”的问题。它通过智能模拟 + DLL 劫持技术,绕过官方对硬件型号的检测,让你在联想、戴尔、华硕甚至 DIY 主机上也能流畅使用华为电脑管家!⭐ 项目已获 ​700+ Stars​,社区活跃,持续更新,兼容性优秀!科技不该有围墙。如果你成功在非华为电脑上跑起了 PCManager,欢迎在评论区晒出你的设备型号 + 使用体验!也别忘了把这篇推文分享给同样“眼馋”华为生态的朋友 ~📱 ​关注我们。

程序员朱永胜 4928

Human3.6M 数据集介绍及下载

360 万张 3D 人体姿势和对应图像11 名专业演员(6 男 5 女)7 个场景(讨论、吸烟、拍照以及打电话等等)

XavierJ的博客 3万+

11-NLP之Bert介绍和简单示例

Bert简介

weixin_46713695的博客 1145

全网首发!Yolov8_obb旋转框训练、测试、推理手把手教学(DOTA1.0数据集map50已达80%)

其中,images/train和images/val放置原始图片文件,labels/train_original和labels/val_original分别放置原始的标签文件,labels/train和labels/val为空,然后运行步骤(3)的代码,运行结束转换后的标签会保存在labels/train和labels/val中,格式如下。(4)新建yolov8-obb.yaml,修改nc和scales,我使用的是yolov8n.(2)构建数据集,安装下面目录格式,其他test可为空,一定要对应。

小嘤熊的博客 2万+

1.6万字全面掌握 BERT:自然语言处理(NLP)从初学到高级的全面指南

在不断发展的自然语言处理(NLP)领域中,一项被称为 BERT 的突破性创新已经崭露头角,成为一场变革的推手。BERT代表双向编码器来自 Transformer 的表示,它不仅仅是机器学习术语浩瀚海洋中的又一个缩写。它代表了机器理解语言方式的转变,使它们能够理解使人类沟通丰富而有意义的复杂细微差异和上下文依赖关系。

2201_75499313的博客 3270

DBC到ARXML:AUTOSAR CAN通信栈自动化配置完整指南

在AUTOSAR架构下,DBC(CAN数据库文件)与ARXML(AUTOSAR XML)分别扮演着描述总线通信和ECU内部配置的关键角色。DBC定义了网络上的报文与信号,而ARXML则是AUTOSAR工具链交换配置数据的标准格式。在实际的ECU开发中,如何将DBC中的通信信息高效、准确地转换为ARXML,并自动生成可编译的CAN通信栈BSW配置,是许多工程师面临的痛点。借助DaVinci Configurator等工具,我们可以通过自动化导入链路消除手工映射带来的字节序错误、信号起始位偏差等高风险问题,大幅

weixin_34183910的博客 539

极智芯 | 解读国产CPU之海光

大家好,我是极智视界,本文分享一下 解读国产CPU之海光。希望我的分享能对你的学习有一点帮助。

极智视界 3319

自然语言处理的革命:BERT模型在NLP领域的巨大影响

1.背景介绍 自然语言处理(NLP)是人工智能领域的一个重要分支,其主要目标是让计算机理解、生成和翻译人类语言。自从2012年的深度学习革命以来,深度学习技术在NLP领域取得了显著的进展,尤其是自从2017年Google发布的Attention机制以来,NLP的表现得到了显著提升。然而,这些方法仍然存在一些局限性,如需要大量的训练数据和计算资源,且无法充分利用上下文信息。 2018年,Goog...

AI天才研究院 1359

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

BERT 模型 – NLP 的解释

该模型旨在最小化 Masked LM 和 Next Sentence Prediction 的组合损失函数,从而产生一个强大的语言模型,在理解句子内的上下文和句子之间的关系方面具有增强的能力。因此,同时训练这两种策略可确保 BERT 学习对语言的广泛而全面的理解,捕捉句子中的细节和句子之间的流动。例如,它可能会学习预测句子中缺失的单词(掩蔽语言模型或 MLM 任务),理解两个句子之间的关系,或预测成对的下一个句子。在训练过程中,模型会提供问题和相应的段落,并学习预测段落中答案的开始和结束位置。

jianqimingtian的博客 1082

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

NLP发展史及Transformer、Bert详细介绍

一文读懂BERT(原理篇) 2018年的10月11日,Google发布的论文《Pre-training of Deep Bidirectional Transformers for Language Understanding》,成功在 11 项 NLP 任务中取得 state of the art 的结果,赢得自然语言处理学界的一片赞誉之声。 本文是对近期关于BERT论文、相关文章、代码进行学...

lty_sky的专栏 3824

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

自然语言处理(NLP):如使用RNN、LSTM、BERT等模型进行文本分析

自然语言处理(NLP)是机器学习的一个重要领域,涉及到如何让计算机理解、处理和生成自然语言(如英语、中文等)。NLP的应用非常广泛,从文本分类、情感分析到机器翻译、自动摘要等。在NLP中,我们通常使用不同类型的神经网络模型,如(Long Short-Term Memory)和(Bidirectional Encoder Representations from Transformers)来处理和理解文本数据。下面,我们将深入了解这些模型,并展示它们在NLP任务中的应用。

Python/R 1972

【NLP】BERT模型

BERT(Bidirectional Encoder Representation from Transformers)是2018年10月由Google AI研究院提出的一种预训练模型,该模型在机器阅读理解顶级水平测试SQuAD1.1中表现出惊人的成绩: 全部两个衡量指标上全面超越人类,并且在11种不同NLP测试中创出SOTA表现,包括将GLUE基准推高至80.4% (绝对改进7.6%),MultiNLI准确度达到86.7% (绝对改进5.6%),成为NLP发展史上的里程碑式的模型成就。

GG_Bruse的博客 1559

深度学习机器学习面试题——自然语言处理NLP,transformer,BERT,RNN,LSTM

1)transformer是BERT的基本结构,self-attention又是transformer的重要核心,transformer比CNN,RNN,LSTM牛逼多了,BERT是预训练大模型。 2)Tranformer已经在CV中开挂了,所以不只是NLP里面有这个玩意 3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。

weixin_46838716的博客 2874

掌握 BERT:自然语言处理 (NLP) 从初级到高级的综合指南(1)

BERT(来自 Transformers 的双向编码器表示)是 Google 开发的革命性自然语言处理 (NLP) 模型。它改变了语言理解任务的格局,使机器能够理解语言的上下文和细微差别。在本文[1]中,我们将带您踏上从 BERT 基础知识到高级概念的旅程,并配有解释、示例和代码片段。在不断发展的自然语言处理 (NLP) 领域,一项名为 BERT 的突破性创新已经成为游戏规则的改变者。BERT 代表 Transformers 的双向编码器表示,它不仅仅是机器学习术语海洋中的另一个缩写词。

python1234_的博客 1646

NLP面试之bert的细节问题

当输入信息的维度 d 比较高,点积模型的值通常有比较大方差,从而导致 softmax函数的梯度会比较小。因此,缩放点积模型可以较好地解决这一问题。常用的Attention机制为加性模型和点积模型,理论上加性模型和点积模型的复杂度差不多,但是点积模型在实现上可以更好地利用矩阵乘积,从而计算效率更高(实际上,随着维度d的增大,加性模型会明显好于点积模型)。

AI前沿技术的分享! 1562

视频教程-Python自然语言处理-BERT模型实战-NLP

Python自然语言处理-BERT模型实战 计算机博士,专注于机器学习与计算...

weixin_33689005的博客 1954

nlp bert 教程_Google BERT NLP机器学习教程

nlp bert 教程There are plenty of applications for machine learning, and one of those is natural language processing or NLP. 机器学习有很多应用程序,其中之一是自然语言处理或NLP。 NLP handles things like text responses, figurin...

cumian9828的博客 1059
上一篇: 大模型学习笔记1【大模型】
下一篇: 大模型相关代码1 -- 注意力机制【手撕基础模型】
WHY-233
博客等级 码龄7年 450粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值