深度学习 | 复杂注意力神经网络 —— 大模型

news2024/9/21 18:54:30

         前面讲解了注意力神经网络


一、BERT模型

1、什么是BERT

        它是由谷歌在2018年提出的 双向Transformer 编码器模型。

        Bidirectional Encoder Representations from Transformers.

        主要使用了Transformer的编码器

        Transformer 编码器堆叠;

        预训练 + 精调两步结构。

        BERT的创新之处主要在于预训练的微调,主要包括Mask的语言模型和NSP 下一句的预测,前者可以捕捉单词间的表示,后者可以捕捉句子间的表示。

        

2、模型结构

        主要特点在于其双向性,利用双向语言表示来训练模型。

        

        此处对比当年大火的三个模型在网络结构上的区别如下:

         

        在传统的Transformer模型中只考虑了左边的语境对当前词语的影响,而BERT模型同时考虑了左右两边的影响。

        ELMo看起来也是双向的,但是其实他们的目标函数是不同的:

                EMLo的目标函数是 P(wi | w1,w2....wi-1) P(wi | wi+1,...,wn)

                独立训练两个表示然后进行拼接。

3Embedding词嵌入

        将文本中的词语 (或字符) 转化为向量表示;

        通过预训练好的词向量矩阵来实现,用来捕捉词语间语义关系。

        与传统的词袋模型不同,BERT的词嵌入是一个实数向量,可以通过词语之间的距离来判断词语之间的相似度。具体来说,它是由三种Embedding求和而成的。

        Token Embeddings 是词向量;

        Segment Embeddings 用来区别两种句子,因为预训练不光要作语言模型还要完成其他任务,比如两个句子作为输入的分类任务。

        Position Embeddings 不同于Transformer中的利用正余弦函数的求法,BERT中是由一个学习出来的模型直接得到的。

        

 4、预训练

(1)Masked语言模型 MLM

        通过随机掩盖一些词语学习语义关系,更好地理解上下文信息。

         随机mask掉 15% 的token,而不是把每个词都预测一遍,最终的损失函数只计算被mask掉的token。

        

        如果一直用标记MASK来代替会影响模型,因为在实际预测中是碰不到这种标记的。

        所以在随机mask时,10%的单词会被替换成其他单词,产生一些随机性,10%的单词不会被替换,剩下的80%才会被替换成MASK标记。

        要注意的是 MASK LM预训练阶段时的模型并不知道真正被MASK的是哪一个词,所以模型的每一个词都要关注。此外由于序列的模型太大(512维),会影响训练速度,所以90%的 step步长 都是用sequence length = 128去训练的。

(2)下一句预测

        面向问答和自然语言推理任务;

        使模型理解两个句子间关系。

        注意语料选文档级别的!!

        训练的输入是句子A和B,B有一半的概率是A的下一句,模型需要预测B是不是A的下一句。

        预训练的过程中可达97-98%准确率。

        

5精调Fine-Tuning

        主要是为了特定任务下提高准确率;

        适用于各种不同的任务,比如分类任务/问答任务/序列标注等。‘

        分类任务中:

        通常只会更新BERT模型的最后一层,其他层权重不改变;

        此外微调的数据通常要比预训练的数据更小,因此训练时间更短。

        对于句子级别分类任务中,增加 softmax 层。

                

         

        MNLI评估文本推理任务能力

        QQP 和QNLI 测试问答任务效果

        STS-B 测试语义相似度判定效果

        MRPC测试抄袭检测中的效果

        RTE评估文本蕴含任务的能力

        SWAG评估推理生成任务能力

        

        SST-2测试情感分析任务效果

        COLA 测试模型在语言规则接受性判定任务中的效果

        SQUAD 测试模型在问答任务中的效果

        CONLL-2003NER 测试模型在命名实体识别任务中的效果 

6、优缺点

        



GPT系列模型

1、发展历程

        (GPT)系列
        Generative Pre-trained Transformer

        秉承了不断堆叠Transformer结构的思想,通过提升训练语料的规模和质量,进一步提升网络的参数数量,来实现迭代和更新。

        

2、GPT-1 —— 无监督生成式预训练

模型思想

        在GPT1之前的传统的NLP模型,我们使用大量数据对模型进行任务相关的监督式训练,但是有两个缺点:高质量标注数据获取难,模型泛化难

        将无监督的预训练与有监督的下游任务精调相结合。换句话说就是让Transformer的Decoder来生成大量的数据进行预训练,因此可以认为是生成式的预训练模型。

        

        12个Transformer中的Decoder模块经修改后组成,每个Transformer块使用了多头注意力机制,然后通过全连接得到输出的概率分布。

        注意Transformer本身是由6个encoder和decoder组成的,但是GPT全是Decoder。

        词汇表有4万个token,位置嵌入包含512个位置(同Transformer),多头注意力包含768维状态和12个注意力头,基于位置的前向网络包含了3072个内部状态。

        

        右边是不同NLP任务下,输入处理和输出结构上的不同。

        

GPT-1无监督预训练

        GPT-1的无监督预训练是基于语言模型进行训练的。

        k 是滑动窗口的大小,P是条件概率,θ 是模型的参数,这些参数也是使用sgd 随机梯度下降进行优化。

        U 是当前时间片的上下文token,We 是词嵌入矩阵,Wp是位置嵌入矩阵,n 是层数。

        从h0开始逐层传递到hn层,最后使用softmax层进行输出,也就是预测下一个词语。

        

GPT-1有监督精调

        当得到无监督的预训练模型之后,运用到有监督的任务当中。

        Wy 是全连接层的参数,有监督的训练精调的目标是最大化 L2,

        最终的目标是L3。L1是预训练的。λ 相当于预训练和精调之间的平衡。

        

GPT-1数据集

        

        选择这个数据集的原因有两点,第一,这样一来,这个数据集拥有更长的上下文依赖关系,使得模型可以长期的学习这种长期的依赖关系的信息;第二,这些书籍没有发布,所以很难在下游数据集上见到,因此更能验证模型的泛化能力。

GPT-1性能

        在监督学习12个任务中9个SOTA;

        比LSTM模型稳定,泛化能力强;

        简单的领域专家,而非通用语言学家;

        无监督生成式预训练替代监督式学习。


3、GPT-2 —— 多任务学习

模型思想

        实现多任务在同一模型上学习,扩增数据集和模型参数。

        

GPT-2模型思想

        GPT-2的训练目标是使用无监督模型做有监督的任务。

        任何有监督任务都是语言模型的一个子集。

        当模型的容量非常大且数据量足够丰富时,仅仅靠训练语言模型学习便可以完成其他有监督学习的任务。

        

GPT-2数据集

        

GPT-2模型参数

        

GPT-2性能

        8个语言模型中7个SOTA;

        Childrens Book Test”数据集命名实体识别任务超SOTA7%;

        LAMBADA”数据集将困惑度从99.8降到8.6;

        阅读理解数据中超过4基线模型中3个。


4、GPT-3 —— 情景学习

模型思想

        海量参数1750亿,45TB训练数据,大力出奇迹。

        

对话模式

        GPT系列都是用Decoder进行训练,采用输入一句话输出一句话的对话模式。

        对模型进行引导,教会它应当输出什么内容。

        他提出了一种基于提示的情景式学习方式,对于不同的任务,仅需要插入不同的prompt参数,每个任务都单独训练prompt参数而不是预训练语言模型,这样可以大大缩短训练时间,也提高了模型的使用率。

        若想理解其中的思想,要从机器学习中的元学习讲起。

        

元学习 Meta-Learning

        通过学习任务间共性和差异,发现规律,并将其应用到新任务。

        不同于多任务学习,多任务学习是通过同样的训练过程和参数来实现任务的相互促进和优化;而元学习是通过少量数据寻找合适的初始化范围,让模型能够在有限的数据集上快速拟合,这种方法可以使得模型具有更强的泛化能力。

        元学习的核心思想就是寻找一个良好的初始值,使得模型能够快速适应新的任务。

        具体来说,元学习的学习任务包括内外两个小循环:

                在外循环中,模型通过多个任务来学习获得初始值,

                在内循环中,模型使用初始值来快速适应新的任务,如果模型能够在少量数据上快速适应新任务就说明初始值是一个良好的,否则模型就需要进行更新。

        

情景学习 In-context Learning

        把不同的场景作为内循环,而SGD作为外循环,来提高模型性能从上下文信息中学习语言含义和语法规则。

        

        举个栗子:

        

零样本、单样本、少量样本

        Zero-shot Learning

        One-shot Learning

        Few-shot Learning

        GPT3中使用了这三种学习方式。

        

GPT-3数据集

        

GPT-3模型参数

        

GPT-3性能

        在很多复杂的NLP任务中取得了非常震惊的效果;

        transformer架构,模型结构并没有创新性的设计;

        典型不足:

                不会判断命题有效与否;

                难保证生成文章不含敏感内容;

                不能保证长文章的连贯性,存在不停重复问题。



、T5模型

        

1、基本思想

        

        万物皆可 Seq2Seq

        

2、词表示发展史

        

3、历史贡献

        

4、模型架构

        

        掩码操作

                

                         第一种结果最好。

        

5、预训练策略

        

        

 



 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FreeBSD/Linux下的系统资源监视器排队队

bpytop bpytop 是一个基于 Python 的资源监视器,可以在 FreeBSD 上使用。它提供了对文件写入磁盘、网络、CPU 和内存占用的监视功能。 pkg install bpytop 或者用ports安装 cd /usr/ports/sysutils/bpytop/ make install clean bashtop bashtop 也是一个基于 P…

微服务如何做好监控

大家好,我是苍何。 在脉脉上看到这条帖子,说阿里 P8 因为上面 P9 斗争失败走人,以超龄 35 被裁,Boss 上找工作半年,到现在还处于失业中。 看了下沟通记录, 沟通了 1000 多次,但没有一个邀请投递…

AI网络爬虫:批量爬取电视猫上面的《庆余年》分集剧情

电视猫上面有《庆余年》分集剧情&#xff0c;如何批量爬取下来呢&#xff1f; 先找到每集的链接地址&#xff0c;都在这个class"epipage clear"的div标签里面的li标签下面的a标签里面&#xff1a; <a href"/drama/Yy0wHDA/episode">1</a> 这个…

Redis篇 浅谈分布式系统

分布式系统 一. 单机架构二.分布式系统引入三.引入更多的应用服务器四.读写分离五.引入缓存服务器六. 将数据库服务器拆分七.微服务架构 一. 单机架构 单机架构,就是用一台服务器,完成所有的工作. 这时候就需要我们引入分布式系统了. 分布式系统是什么含义呢?就是由一台主机服…

Webpack源码泄露到Vue快速入门

前言 1.webpack 源码泄露 1.1漏洞简介 1.2存在泄露的站点 1.3 如何判断是否存在漏洞 方法1: 方法2: 1.4.如何将js.map文件还原为项目文件 1. 4.1查看npm版本 1.4.2 安装reverse-sourcemap 1. 4.3.检查是否安装 ​1. 4.4 使用reverse-sourcemap进行js.map文件还原操作…

二、信号连接槽函数

需求&#xff1a;点击Button按钮&#xff08;下班&#xff09;&#xff0c;label显示淦饭 信号发出者&#xff1a;Button 发送的信号&#xff08;signals&#xff09;&#xff1a;被点击 信号接收者&#xff1a;label 信号的处理&#xff08;slots&#xff09;&#xff1a;显示…

Rocketmq集群再搭建

注意上面这个官方架构是 主从模式&#xff0c;还无法做到高可用&#xff0c;因为master节点宕机&#xff0c;从节点没法变成主节点&#xff0c;需要人工重启&#xff0c;够用了。 1. 先准备1台虚拟机&#xff0c;装好1台再克隆2台 根据上面的图&#xff0c;3台机器中有一台…

【再探】Java—泛型

Java 泛型本质是参数化类型&#xff0c;可以用在类、接口和方法的创建中。 1 “擦除式”泛型 Java的“擦除式”的泛型实现一直受到开发者的诟病。 “擦除式”的实现几乎只需要在Javac编译器上做出改进即可&#xff0c;不要改动字节码、虚拟机&#xff0c;也保证了以前没有使…

MVVM_MVVMLight架构

介绍 MVVMLight是一个实现MVVM模式的轻量级框架&#xff08;相对于Prism&#xff09;&#xff0c;能够更好的帮助我们开发WPF Windows Phone、Windows 8、SilverLight相关项目。 安装 在NuGet 工具箱上搜索MVVMLight进行下载 下载后它帮你生成ViewModel文件夹&#xff0c;里面…

深度学习之基于Tensorflow卷积神经网络脑肿瘤分类识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 脑肿瘤是医学领域的一个重要问题&#xff0c;对人类的健康构成了严重威胁。传统的脑肿瘤分类识别方法…

老的 IIS + MSSQL 网站迁移实例

因为公司需要从云上迁移回本地&#xff0c;但云平台不愿意导出虚拟机文件&#xff0c;所以公司需要手工迁移。 查看了一下云主机&#xff0c;安装了IIS&#xff0c;还有MSSQL数据库&#xff0c;于是在本地搭建好相同的OSIISMSSQL 环境&#xff0c;在把数据库导入完成、 IIS 搭建…

AcWing 217:绿豆蛙的归宿 ← 搜索算法

【题目来源】https://www.acwing.com/problem/content/219/【题目描述】 给出一个有向无环的连通图&#xff0c;起点为 1&#xff0c;终点为 N&#xff0c;每条边都有一个长度。 数据保证从起点出发能够到达图中所有的点&#xff0c;图中所有的点也都能够到达终点。 绿豆蛙从起…

iptables防火墙【☆】

一、防火墙的基础 防火墙分为硬件防火墙和软件防火墙&#xff0c;硬件防火墙有专门的设备&#xff1a;如国产华为、绿盟等&#xff0c;作为网关层做地址转换等安全防护。很多公司基本都会使用硬件防火墙做第一道防御&#xff0c;在核心业务上再添加软件防火墙提高安全性能…

Tailwind CSS快速入门

文章目录 初识安装Tailwindcss试用安装快速书写技巧扩展好处Todo 初识 只需书写 HTML 代码&#xff0c;无需书写 CSS&#xff0c;即可快速构建美观的网站 Tailwind CSS 是一个功能类优先的 CSS 框架&#xff0c;它通过提供大量的原子类&#xff08;utility classes&#xff09;…

国产操作系统上使用SQLynx连接数据库 _ 统信 _ 麒麟 _ 中科方德

原文链接&#xff1a;国产操作系统上使用SQLynx连接数据库 | 统信 | 麒麟 | 中科方德 Hello&#xff0c;大家好啊&#xff01;今天我们将探讨如何在国产操作系统上使用SQLynx。这是一款功能强大的数据库管理工具&#xff0c;可以帮助用户高效地管理和操作数据库。本文将详细介绍…

《网关微服务技术架构:构建高效可扩展的服务网关》

随着微服务架构的流行&#xff0c;网关微服务作为微服务架构中的重要组成部分&#xff0c;扮演着连接客户端与后端微服务的关键角色。本文将深入探讨网关微服务的技术架构设计与实现&#xff0c;以及如何构建高效可扩展的服务网关。 ### 1. 网关微服务的作用与意义 网关微服务…

【Power Compiler手册】2.Power Compiler设计流程

当创建设计时,它从高层次的抽象转移到门级最终实现。功耗编译器工具在整个设计周期中,从RTL到门级,提供分析和优化。 有关设计流程的信息,请参见以下主题: • 设计周期中的功耗 • 功耗优化和分析流程 设计周期中的功耗 在每个抽象层次上,使用仿真、分析和优化来完善…

GMSL图像采集卡,适用于无人车、自动驾驶、自主机器、数据采集等场景,支持定制

基于各种 系列二代 G MS L 图像采集卡&#xff08;以下简称 二代图像采集卡&#xff09;是一款自主研发的一款基于 F P G A 的高速图像产品&#xff0c;二代图像采集卡相比一代卡&#xff0c;由于采用PCIe G en 3 技术&#xff0c;速度和带宽都相应的有了成 倍的提高。该图像…

递归的例子

例1&#xff1a;阶乘函数 #include<iostream> using namespace std; int f(int n) {if(n0)return 1;elsereturn f(n-1)*n; } int main() {int n;cin>>n;cout<<f(n);return 0; }例2&#xff1a;Fibonacci数列 无穷数列1&#xff0c;1&#xff0c;2&#xff0…

微服务:eureka的搭建,以及服务注册、服务发现、负载均衡

eureka 搭建 新建一个Module,maven项目&#xff0c;导入依赖。 <dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency><…