神经网络算法 - 一文搞懂BERT(基于Transformer的双向编码器)

本文将从BERT的本质、BERT的原理、BERT的应用三个方面,带您一文搞懂Bidirectional Encoder Representations from Transformers | BERT。

Google BERT

**__**一、**_**_BERT_**的本质_****__**

BERT架构 一种基于多层Transformer编码器的预训练语言模型,通过结合Tokenization、多种Embeddings和特定任务的输出层,能够捕捉文本的双向上下文信息,并在各种自然语言处理任务中表现出色。

BERT架构

BERT模型的输入: 通过结合Token Embeddings、Segment Embeddings和Position Embeddings三种嵌入方式,BERT等模型能够全面捕获文本的语义和上下文信息,为各类自然语言处理任务提供强大的基础表示能力。

  • Token Embeddings:

  • 在BERT中,输入文本首先被分割成Token序列(单词、子词等),每个Token都会被映射到一个高维向量空间,形成Token Embeddings。这些嵌入捕获了Token的语义信息,是模型理解文本的基础。

  • Token Embeddings是通过在大规模语料库上进行无监督预训练得到的,这使得BERT能够理解和处理各种复杂的语言现象和语义关系。

Token Embeddings

  • Segment Embeddings:

  • 为了处理像问答这样的任务,BERT引入了Segment Embeddings来区分两个不同但相关的句子(例如问题和答案)。这些嵌入帮助模型理解句子间的关系和边界。

  • 在文本分类任务中,Segment Embeddings的作用可能不那么明显,因为输入通常是一个连续的文本段落。然而,它们仍然可以用于区分不同部分的文本,特别是在处理长文档或多个句子时。

Segment Embeddings

  • Position Embeddings:

  • 由于Transformer结构本身不具备处理序列顺序的能力,BERT引入了Position Embeddings来捕获文本中Token的位置信息。

  • 这些嵌入确保模型能够区分不同位置的相同Token,例如区分“hello,world”和“world,hello”中的“hello”和“world”。

Position Embeddings

Position Embeddings与Token Embeddings和Segment Embeddings相加,形成最终的输入嵌入,这些嵌入随后被送入[Transformer]编码器进行处理。

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈


_**二、**_**__****_BERT_****__**_**_**_**_**_****_的原理_****_**_**_**_**_

BERT的工作原理是通过在大规模未标注数据上执行预训练任务(如Masked Language Model来捕获文本中词汇的双向上下文关系,以及Next Sentence Prediction来理解句子间的逻辑关系),再将预训练的模型针对特定任务进行Fine tuning,从而在各种自然语言处理任务中实现高性能。

BERT工作原理

模型的预训练任务****:在大量未标注数据上进行自我学习的过程,通过这些任务,模型能够学习到语言的内在规律和模式,从而为其在后续的具体任务(如文本分类、问答等)中提供有力的支持。以下是两个核心的预训练任务:****

无监督预训练

  • Masked Language Model (MLM)

  • 任务描述:在输入的文本中,随机地遮盖或替换一部分词汇,并要求模型预测这些被遮盖或替换的词汇的原始内容。

  • 目的:使模型能够利用双向的上下文信息来预测被遮盖的词汇,从而学习到更深层次的语义表示。

  • 实现方式:在预训练阶段,BERT随机选择文本中15%的Token进行遮盖,其中80%的时间用[MASK]标记替换,10%的时间用随机词汇替换,剩下的10%保持不变。这种遮盖策略被称为动态遮盖,因为它在每次输入时都会随机改变遮盖的位置和词汇。

Masked Language Model (MLM)

  • Next Sentence Prediction (NSP)

  • 任务描述:给定一对句子,判断第二个句子是否是第一个句子的后续句子。

  • 目的:使模型能够理解句子间的逻辑关系,如连贯性、因果关系等,从而提高其在处理长文档或复杂文本时的能力。

  • 实现方式:在预训练阶段,BERT构造了一个二分类任务,其中50%的时间B是A的真正后续句子(标签为“IsNext”),另外50%的时间B是从语料库中随机选择的句子(标签为“NotNext”)。模型通过最后一层Transformer输出的[CLS]标记的嵌入来进行预测。

Next Sentence Prediction (NSP)

模型Fine tuning******:BERT的fine-tuning过程是针对特定任务对预训练模型进行调整的过程,使其能够更好地适应和解决具体任务。根据任务类型的不同,对BERT模型的修改也会有所不同,但通常这些修改都相对简单,往往只需要在模型的输出部分加上一层或多层神经网络。******

模型Fine tuning

  • 任务类型:根据具体任务的不同,BERT的fine-tuning可以分为以下几种类型:

  • 句子对分类任务(Sentence Pair Classification):这种任务需要判断两个句子之间的关系,如文本蕴含、问答匹配等。在fine-tuning时,将两个句子一起输入模型,并取第一个token([CLS])的输出表示作为整个句子对的表示,然后将其输入到一个额外的softmax层进行分类。

  • 单句分类任务(Single Sentence Classification):这种任务需要对单个句子进行分类,如情感分析、文本分类等。在fine-tuning时,将单个句子输入模型,并同样取第一个token([CLS])的输出表示进行分类。

  • 问答任务(Question Answering):这种任务需要模型从给定的文本中找出问题的答案。在fine-tuning时,将问题和答案一起输入模型,并取答案部分在模型输出中的起始和结束位置作为答案的预测。

  • 序列标注任务(Sequence Tagging,如命名实体识别NER):这种任务需要对输入序列中的每个token进行分类,如识别文本中的实体、词性标注等。在fine-tuning时,取所有token在最后一层Transformer的输出,然后将其输入到一个额外的softmax层进行逐token的分类。

  • 模型修改:在进行fine-tuning时,对BERT模型的修改通常包括以下几个方面:

  • 输入处理:根据任务类型的不同,对输入数据进行相应的处理,如将句子对拼接在一起、添加特殊标记等。

  • 输出层:在BERT模型的输出部分添加一层或多层神经网络,用于将模型的输出转换为任务所需的格式。对于分类任务,通常添加一个softmax层进行概率分布的计算;对于序列标注任务,则逐token进行分类。

  • 损失函数:根据任务类型选择合适的损失函数,如交叉熵损失函数用于分类任务、平方差损失函数用于回归任务等。

_**三、**_**__****_BERT的应用_****__**_****_

Question Answer(QA,问答系统)******:******BERT在问答系统(QA)中的应用通常涉及两个阶段:检索阶段和问答判断阶段。

Question Answer(QA,问答系统)

  • 一、检索阶段

  • 文档处理:

  • 切割:将长文档切割成较短的段落或句子(Passage),这些片段更容易处理和索引。

  • 建立索引:利用倒排索引技术,为每个切割后的片段(Passage)建立索引,以便快速查询。

  • 检索模型:

  • BM25模型:使用BM25或类似的检索函数(如BM25+RM3)计算问句与每个候选段落或句子的相关性得分。

  • 候选选择:根据得分选择Top K个最相关的候选段落或句子。

  • 二、问答判断阶段

  • 模型准备:

  • Fine-tuning数据:选择适当的问答数据集(如SQuAD)或任务数据进行BERT模型的fine-tuning。

  • 模型结构:在BERT模型的基础上,添加必要的输出层以适应问答任务,如分类层或起始/终止位置预测层。

  • 问答处理:

  • 输入构建:将用户问句和每个候选段落或句子组合成BERT模型的输入格式。

  • 模型预测:使用fine-tuned BERT模型对每个输入进行预测,判断候选段落或句子是否包含正确答案,或者预测答案的精确位置。

  • 答案选择:

  • 评分机制:根据BERT模型的预测结果,为每个候选段落或句子分配得分。

  • 最终答案:选择得分最高的候选段落或句子作为最终答案。

聊天机器人: BERT在聊天机器人中的应用主要涉及两个方面:用户意图分类和槽位填充(对于单轮对话),以及多轮对话中的上下文信息利用。

聊天机器人

  • 一、BERT在单轮对话中的应用

  • 用户意图分类:

  • 输入:将用户的话语作为BERT模型的输入。

  • 模型结构:在BERT模型的基础上添加分类层,用于将用户意图分类到不同的服务类型中。

  • 训练:使用带有意图标签的用户话语数据集进行fine-tuning,使模型能够准确识别用户意图。

  • 任务描述:从用户的话语中解析出用户的意图,如订餐、点歌等。

  • BERT应用:

  • 槽位填充:

  • 输入:将用户的话语以及预定义的槽位作为BERT模型的输入。

  • 模型结构:采用序列标注的方式,对每个输入token进行槽位标签的预测。

  • 训练:使用带有槽位标签的用户话语数据集进行fine-tuning,使模型能够准确填充槽位信息。

  • 任务描述:根据用户意图抽取关键元素,如订机票时的出发地、目的地等。

  • BERT应用:

  • 二、BERT在多轮对话中的应用

  • 上下文信息利用:

  • 输入:将当前用户话语以及历史对话内容作为BERT模型的输入。

  • 模型结构:可以采用多种策略来融入历史信息,如将历史对话与当前用户话语拼接、使用历史对话的嵌入表示等。

  • 训练:使用多轮对话数据集进行fine-tuning,使模型能够正确理解和利用上下文信息来生成应答。

  • 任务描述:在多轮对话中,利用历史交互信息来改进模型的应答。

  • BERT应用:

  • 模型改进:

  • 增加模型容量:通过增加BERT模型的层数或隐藏单元数来捕捉更多的上下文信息。

  • 引入注意力机制:使用注意力机制来加权历史信息的重要性,使模型能够关注与当前应答最相关的部分。

  • 记忆网络:结合记忆网络来存储和检索历史信息,以便在需要时提供给模型进行应答生成。

  • 关键问题:如何有效融入更多的历史信息,并在上下文中正确地使用这些信息。

  • 改进策略:

如何学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈

学习路线

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/406991.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue vue/cli3 与 vue/cli4 v-for 和 v-if 一起使用冲突

问题描述 异常信息:[vue/no-use-v-if-with-v-for] The this.$router.options.routers expression inside v-for directive should be replaced with a computed property that returns filtered array instead. You should not mix v-for with v-if.eslint-plugin-v…

几十块一年的网站SSL证书哪里申请

几十块一年的网站SSL证书通常可以通过以下几种途径申请: 一、选择合适的SSL证书类型 首先,您需要了解不同类型的SSL证书及其价格差异。对于预算有限的用户,域名验证(DV)SSL证书是一个经济实惠的选择。这类证书主要验…

叉车驾驶员状态监控系统,司机身份安全识别,强化监管能力建设!

人脸识别技术作为人工智能领域的一个重要分支,已经广泛应用于安全识别、个人化推荐、社交网络等多个领域。其基于计算机视觉、图像处理、人脸检测、特征提取和人脸识别等先进技术,能够实现对人脸图像的精准分析和识别。在叉车驾驶场景中,AI人…

JetBrains Rider 2024 for Mac/Win:跨平台.NET IDE集成开发环境的全面解析

JetBrains Rider 2024作为一款专为Mac和Windows用户设计的跨平台.NET IDE集成开发环境,以其强大的功能和卓越的性能,在.NET开发领域脱颖而出。这款IDE不仅集成了IntelliJ IDEA的代码编辑优势,还融合了ReSharper的C#开发体验,为开发…

计算机网络面试真题总结(一)

文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ HTTP 哪些常用的状态码及使用场景? 状态码分类 1xx&am…

Java开发笔记-小程序微信支付接入

步骤: 1.注册微信商户,开通小程序支付业务,获得必要接入参数。(Certificate、PrivateKey、merchantId、SerialNumbe、apiV3Key) 2.微信商户号关联小程序(需目标小程序审核) 3.java使用接入参数发起下单,获取下单参数。 4.小程…

设计模式反模式:UML图示常见误用案例分析

第一章 引言 1.1 设计模式与反模式概述 在软件开发领域,设计模式与反模式是两种截然不同的概念,它们在软件设计过程中起着至关重要的作用。设计模式是经过验证的最佳实践,用于解决在特定上下文中经常出现的问题,从而提高软件的可…

使用分布式锁解决IM聊天数据重复插入的问题

导航 业务背景问题分析与定位探索可行的解决方案 数据库层面处理——唯一索引应用程序层面处理——分布式锁 分布式锁概述 分布式锁需要具备哪些特性?分布式锁有哪些实现方式? 基于数据库的实现方式基于Redisson实现方式 Redission介绍 概述可重入锁 基…

精彩!双疾病搭档孟德尔随机化,中国学者得出阴性结果照样拿下一区top!

孟德尔随机化分析领域,选题新才是王道!在之前孟德尔随机化的文章中,大多是分析暴露与疾病的关系,今天分享的这篇文章与之前不同,中国学者使用双向孟德尔随机化分析两种疾病之间的关联,还是阴性结果&#xf…

MinerU pdf文档解析markdown格式、内容提取

参考: https://github.com/opendatalab/MinerU/blob/master/README_zh-CN.md demo在线网址: https://opendatalab.com/OpenSourceTools/Extractor/PDF/detail

C语言高手参考手册:网络编程高级话题与技术细节

在上一篇文章中,我们介绍了基本的网络编程概念和操作。本文将深入探讨网络编程的一些高级话题和技术细节,包括错误处理、非阻塞I/O、多路复用(select/poll/epoll)、套接字选项以及安全编程等。 1. 错误处理 1.1 错误码 在处理网…

[数据集][目标检测]红外场景下车辆和行人检测数据集VOC+YOLO格式19069张4类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):19069 标注数量(xml文件个数):19069 标注数量(txt文件个数):19069 标…

基于B站的热门视频数据分析与情感分析【关联性、主题、情感分析】

目录 2 研究内容 2.1 主要研究内容 2.2 拟解决的关键问题 2.2.1热门视频特征的识别和提取 2.2.2情感分析与用户反馈 2.3技术路线 2.3.1数据收集 2.3.2数据预处理 2.3.3数据挖掘 2.3.4 数据可视化 2.4可行性分析 2.4.1技术可行性 2.4.2数据可行性 2.4.3经济可行性 2.5数据库设计…

[000-01-011].第2节:持久层方案的对比

我的后端学习大纲 MyBatis学习大纲 1.持久层解决方案: 1.1.面试1:请说一说持久层解决方案有哪些??? 1.jdbc JDBC为访问不同的数据库提供了一种统一的途径,为开发者屏蔽了一些细节问题。Java程序员使用JDB…

关于springboot的异常处理以及源码分析(一)

一、什么是异常处理 1、文档定义 首先我们先来看springboot官方对于异常处理的定义。springboot异常处理 在文档的描述中,我们首先可以看到的一个介绍如下: By default, Spring Boot provides an /error mapping that handles all errors in a sensib…

计算机网络-2-tcpip协议

1.说说 TCP/IP 四层模型? TCP/IP(Transmission Control Protocol/Internet Protocol)模型是一种用于描述互联网通信的协议层次结构。它分为四个主要层次,每个层次都定义了不同的协议来实现特定的功能。下面是TCP/IP模型各层的常用…

Android系统安全 — 1-OpenSSL支持的常用加解密算法介绍

常用加解密算法介绍 1. 哈希算法 常见的函数包含MD系列、SHA-1、SHA-2家族、SHA-3家族、SM3等。 1.1 MD5(单向散列算法) 全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2、MD3和MD4发展而来。MD5算法的使用…

0基础学习Python路径(21)Python NameSpaceScope

命名空间定义了在某个作用域内变量名和绑定值之间的对应关系,命名空间是键值对的集合,变量名与值是一一对应关系。作用域定义了命名空间中的变量能够在多大范围内起作用。 命名空间在 Python 解释器中是以字典的形式存在的,是以一种可以看得…

【快速入门 LVGL】-- 1、STM32 工程移植 LVGL

目录 一、LVGL 简述 二、复制一个STM32工程 三、下载 LVGL 四、裁剪 源文件 五、工程添加 LVGL 文件 六、注册 显示 七、注册 触摸屏 八、LVGL 心跳、任务刷新 九、开跑 LVGL 十、控件的事件添加、响应处理 十 一、几个好玩小事情 十 二、显示中文 ~~ 约定 ~~ 在…

从【人工智能】到【计算机视觉】,【深度学习】引领的未来科技创新与变革

前几天偶然发现了一个超棒的人工智能学习网站,内容通俗易懂,讲解风趣幽默,简直让人欲罢不能。忍不住分享给大家,点击这里立刻跳转,开启你的AI学习之旅吧! 前言 – 人工智能教程https://www.captainbed.cn/l…