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

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


一、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、预训练策略

        

        

 



 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu 整编 AOSP

文章目录 前言1 准备一台Ubuntu系统电脑2 安装依赖工具3 安装 repo4 下载 AOSP 源码5 整编AOSP6 运行 前言 作为Android应用层开发多年, 一直不了解 Framework和Android系统的运行原理真的说不过去。希望本篇博客可以带你构建自己的Android系统,打开通向 Framework…

【算法】【二叉树,DFS,哈希集合,分类讨论】力扣1110. 删点成林

1110. 删点成林 文章目录 【算法】力扣【二叉树,DFS,哈希集合,分类讨论】1110. 删点成林题目描述示例 1:示例 2: 输入输出示例解释思路解析核心思想算法步骤复杂度分析 代码实现总结 【算法】力扣【二叉树&#xff0c…

电脑卸载linux安装windows后每次开机都出现grub

原因分析 这是因为电脑硬盘中还存在linux系统的引导程序,并且启动顺序还在windows之前,有时候通过bios根本找不到它的存在,以至于每次windows开机出现grub之后都要输入exit退出linux的引导之后才能使得电脑进入windows,这个有时会…

跟着Kimi学习结构化提示词:19套内置提示词都在这里了!

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,所以创建了“AI信息Gap”这个公众号,专注于分享AI全维度知识…

计算机毕业设计 | springboot药品库存追踪与管理系统 药店管理(附源码)

1,绪论 1.1 背景调研 如今药品调价频繁,且品种繁多,增加了药品销售定价的难度。药品来货验收登记中的审查有效期环节容易出错,错收过期或有效期不足的药品。 手工模式下的药品库存难以及时掌握,虽然采取了每日进行缺…

数据库小项目——叮叮移动业务大厅(三层架构+MySQL数据库)

源码已上传至资源 该项目主要使用技术为MySQL数据库,其中也包含了一些对于文件的写入和读取操作。项目结构采用三层架构,后端的业务逻辑清晰明了。 1.项目结构 项目采用控制台版,前端业务在java包下,每个业务单独成块。若想要GUI…

Day05-Grafana的基本应用与配置

Day05-Grafana的基本应用与配置 1. Grafana概述2. Grafana实战2.1 环境准备2.2 使用流程1)部署grafana 9.3.62)web页面访问3)配置zbx插件4)配置grafana的数据源5)web: Grafana web页面添加与配置图形dashboard,仪表盘6…

linux命令中arj使用

arj 用于创建和管理.arj压缩包 补充说明 arj命令 是 .arj 格式的压缩文件的管理器,用于创建和管理 .arj 压缩包。 语法 arj(参数)参数 操作指令:对 .arj 压缩包执行的操作指令;压缩包名称:指定要操作的arj压缩包名称。 更多…

【投稿资讯】区块链会议CCF A -- SP 2025 截止6.6、11.14 附录用率

会议名称:46th IEEE Symposium on Security and Privacy( S&P) CCF等级:CCF A类学术会议 类别:网络与信息安全 录用率:2023年 195/1147,2024年录用了17篇和区块链相关的论文 Topics of interest inc…

C语言 | Leetcode C语言题解之第108题将有序数组转换为二叉搜索树

题目: 题解: struct TreeNode* helper(int* nums, int left, int right) {if (left > right) {return NULL;}// 选择任意一个中间位置数字作为根节点int mid (left right rand() % 2) / 2;struct TreeNode* root (struct TreeNode*)malloc(sizeo…

uview1.0 u-form表单回显校验不通过

提交到后端的数据,回显后不做任何修改无法通过表单校验 原因,u-form表单校验的类型默认为string,但是后端返回的是integer类型,导致无法通过校验 解决,既然后端返回的是整数形,那么我们就将校验规则的type…

[机缘参悟-185] - 《道家-水木然人间清醒1》读书笔记 - 真相本质 -8- 认知觉醒 - 逻辑谬误、认知偏差:幸存者偏差

目录 前言: 一、幸存者偏差 二、幸存者偏差在现实中的应用 第一个故事: 第二个故事: 三、生活中的幸存者偏差 四、迷恋成功者经验的原因:鸡汤、幻想、传奇、希望 备注: 前言: 幸存者偏差&#xff0…

Backend - 数据分析 matplotlib

目录 一、作用 二、安装环境 (一)虚拟环境终端 (二)代码导入库 (三)设置中文 1. 使用window自带(推荐) 2. 下载字体 三、应用 (一)基础知识 1. plt…

Spring Cloud Alibaba-07-RocketMQ消息驱动

Lison <dreamlison163.com>, v1.0.0, 2024.4.20 Spring Cloud Alibaba-07-RocketMQ消息驱动 文章目录 Spring Cloud Alibaba-07-RocketMQ消息驱动MQ简介MQ的应用场景常见的MQ产品RocketeMQ的架构及概念 RocketMQ入门RocketMQ环境搭建 SpringBoot 集成 RocketMQ MQ简介 …

汐鹤Key码查询,网站授权系统源码

汐鹤Key码查询和网站授权系统源码主要用于特殊虚拟物品销售商家。 下 载 地 址 &#xff1a; runruncode.com/php/19770.html 附带插件功能&#xff08;网站授权&#xff09;&#xff0c;但目前开发内容较少&#xff0c;请谅解&#xff01;同时&#xff0c;代码优化空间很大…

【论文极速读】 LLava: 指令跟随的多模态大语言模型

【论文极速读】 LLava: 指令跟随的多模态大语言模型 FesianXu 20240331 at Tencent WeChat Search Team 前言 如何将已预训练好的大规模语言模型&#xff08;LLM&#xff09;和多模态模型&#xff08;如CLIP&#xff09;进行融合&#xff0c;形成一个多模态大语言模型&#xf…

Ubuntu环境|FileNotFoundError: [Errno 2] No such file or directory: ‘soundstretch‘

一 问题描述 二 问题解决 使用ubuntu命令安装soundstretch&#xff08;How To Install soundstretch on Ubuntu 20.04 | Installati.one&#xff09; sudo apt -y install soundstretch 安装完成&#xff0c;问题解决。

yolov8实战第九天——pyqt5-yolov8实现道路病害识别系统(参考论文(6000+字)+环境配置+完整部署代码+代码使用说明+训练好的模型+数据集)

基于 pyqt5-yolov8实现道路病害识别系统,包括图片、批量图片、视频、视频流的道路病害识别。包括病害历史记录栏显示,训练好的模型和数据集,可直接进行工程应用和论文书写。 效果展示(图片检测,检测到的内容添加到历史记录): 效果展示(批量图片检测,检测到的内容添加…

pod install 报错 ‘SDK does not contain ‘libarclite‘ at the path...‘

报错内容&#xff1a; SDK does not contain ‘libarclite’ at the path ‘/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a’; 这是报错已经很明确告诉我们&#xff0c;Xcode默认的工具链中缺少一个工具…

Android-自定义三角形评分控件

效果图 序言 在移动应用开发中&#xff0c;显示数据的方式多种多样&#xff0c;直观的图形展示常常能带给用户更好的体验。本文将介绍如何使用Flutter创建一个自定义三角形纬度评分控件&#xff0c;该控件可以通过动画展示评分的变化&#xff0c;让应用界面更加生动。 实现思…