一文探索预训练的奥秘

news2024/11/17 9:46:50

2022年下半年开始,涌现出一大批大模型的应用,其中比较出圈的当属AI作画与ChatGPT,刷爆了各类社交平台,其让人惊艳的效果,让AI以一个鲜明的姿态**,站到了广大民众面前,让不懂AI的人也能直观地体会到AI的强大**。大模型即大规模预训练模型,本文就和大家聊一聊 预训练模型的起源与发展

前言

在这里插入图片描述
近年来,由于预训练模型(Pretrained Models, PTMs)的蓬勃发展,“预训练(pretrain)+微调(finetune)”成为了AI模型开发领域的标准范式。预训练模型的作用可想而知,它极大推进了AI的落地,让AI模型的开发从手工作坊模式走向工厂模式,快速适应AI市场的定制化需求。但它绝非一个空降神器,预训练的研究最早起源于迁移学习。迁移学习的核心思想,即运用已有的知识来学习新的知识,通俗来说就是将一个预训练的模型被重新用在另一个任务中。早期的预训练模型主要基于有标签数据,预训练模型的第一个浪潮发生在CV领域,得益于ImageNet[1]数据集中所富含的强大的视觉信息,其包含了上百万张上千种类别的图片,覆盖了日常生活中的各种物体,在ImageNet上预训练的模型(比如ResNet50)广泛应用于图像领域的各个下游任务,均取得了卓越的进展。而在NLP领域,由于下游任务的多样性以及数据标注的复杂性,导致无法获得一个像ImageNet这样大规模的有标签数据,所以NLP领域尝试使用自监督学习的方法来获取预训练模型,自监督学习的主要思想就是利用文本间的内在联系为监督信号。通过自我监督学习,可以利用大量未标记的文本数据来捕获通用的语言知识。早期NLP领域的NLP模型主要是词嵌入(word embedding)的研究,比如word2Vec[2],Glove[3]等,它们至今在各种NLP任务中仍发挥着重要的作用。2017年出现的Transformer结构[4],给NLP领域预训练模型的发展带来了绝大的突破。Transformer的成功,也诱使CV领域加入了自监督预训练模型的赛道。如今,自监督预训练已经成为当前人工智能研究的重点,几乎所有的最新的 PTM都是采用类Transformer结构与自监督学习的方法,接下来介绍比较有代表性的自监督预训练语言模型。

词嵌入研究: word2vec Glove

Transformer结构

CV领域加入自监督训练模型的赛道。

在这里插入图片描述

模型结构

PTM成功的关键是自监督学习和Transformer。本节从占主导地位的神经架构 Transformer 开始。然后介绍两个具有里程碑意义的基于 Transformer 的 **PTM,GPT[6]和BERT[**7]。所有后续的PTMs基本都是这两个模型的变体。

PTM、GPT、BERT

Transformer

T r a n s f o r m e r Transformer Transformer是一种序列到序列的结构,由编码器和解码器组成,说起 t r a n s f o r m e r transformer transformer就不得不提去注意力机制,这里主要总结下transformer存在的三种注意力机制:

Self-attention:存在于encoder中的注意力层中,使用前一层的输出作为Q,K,V。给定一个词,自注意力计算其与输入序列中的所有单词的注意力得分,来表示其他单词对给定词汇特征表示的贡献程度。

Mask-attention:存在于decoder阶段,通过掩膜的手段,控制注意力得分的计算过程仅当前词汇左侧的词参与。因为decoder是一个从左到右逐词生成的过程。

Cross-attention:同样是存在于decoder阶段,使用前一层的输出作为Q,同时使用encoder的输出作为K,V。交叉注意力机制的主要作用在于生成词过程中能够利用其输入序列的信息,这在诸如机器翻译和文本摘要的seq2seq任务中尤为重要。

在这里插入图片描述

GPT

GPT是第一个在transformer结构上应用自监督学习目标的 P T M PTM PTM,
其不仅使用transformer的decoder作为基础结构,由于采用自监督学习,所以删去了cross-attention层,GPT是一个标准的自回归语言模型,它的学习目标是,根据上文预测下一个词,因此也往往更适合自然适合自然语言生成任务
在这里插入图片描述

BERT

BERT是基于双向 Transformer 结构构建,仅使用了Transformer的encoder结构。这里的双向主要是通过它的预训练目标实现的,BERT设计了一个 masked language modeling (MLM) 预训练任务,根据上下文来预测masked词汇。“双向”即体现在,在进行注意力计算时,BERT会同时考虑被遮蔽词左右的词对其的影响。BERT是一种自编码语言模型,更适合自然语言理解任务

后起之秀

在GPT和BERT之后,出现了很多基于它们的变体,图5中罗列了目前预训练模型家族的主要成员。一部分工作致力于改进模型架构并探索新的预训练任务;一部分工作致力于探索数据的丰富性,比如多语言和多模态PTMs;还有一部分工作致力于探索更多参数的模型以及PTM计算效率的优化

在这里插入图片描述

预训练任务

预训练模型的主要目标是:如何利用未标注的语料来获取通用知识,以及快速迁移到各种下游任务中,预训练任务即学习目标的设计至关重要。前文也提到了GPT和BERT的预训练任务Autoregressive language modeling和masked language modeling,它们也分别是自回归语言模型和自编码语言模型无法替代的预训练任务,后续的一些PTMs中探索的新的预训练任务均是在此基础上追加的。下表中总结了目前一些常见的预训练任务。对于单资源数据输入(单语言纯文本),往往从挖掘文本间词汇、句子、篇章的内在联系设计新的预训练任务;对于多资源数据输入,比如多语言和多模态的预训练模型,往往会从如何构建不同语言和不同模态的统一的特征表示来考虑设计新的预训练任务

在这里插入图片描述

经验

模型中的不同部分,换个技术,或许都是创新,提高了什么,形成了新的挑战。

会自己对预训练模型有清晰的了解,清楚自己的预训练建模标准范式。AI模型架构。

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

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

相关文章

一刷代码随想录——哈希表

1 理论基础常见的三种哈希结构当我们想使用哈希法来解决问题的时候,我们一般会选择如下三种数据结构。数组set (集合)map(映射)这里数组就没啥可说的了,我们来看一下set。在C中,set 和 map 分别提供以下三种数据结构&a…

Node.js+Vue.js全栈开发王者荣耀手机端官网和管理后台(三) | 前台页面part

文章目录工具样式概念和SASS样式重置网站色彩和字体定义(colors text)通用flex布局样式定义常用边距定义(margin padding)主页框架和顶部菜单首页顶部轮播图片(vue swiper)使用精灵图片(sprite&…

【ThreeJs 初学习】基本API的使用方式

基本API的使用方式 根据官网的文档整理出一份API文档, 地址是:ThreeJs 官网文档,其目的还是为了方便查阅 下列代码源码地址 // 此处表示导入three import * as THREE from three;// 1. 创建一个场景 const scene new THREE.Scene();// 2. 创建一个相机…

文献阅读:Language Models are Unsupervised Multitask Learners

文献阅读:Language Models are Unsupervised Multitask Learners 1. 内容介绍2. 模型介绍3. 实验结果 1. 语言模型2. QA & 常识推断3. 生成任务 4. 总结 & 思考 文献链接:https://cdn.openai.com/better-language-models/language_models_are_u…

python-布隆过滤器

在学习redis过程中提到一个缓存穿透的问题, 书中参考的解决方案之一是使用布隆过滤器, 那么就有必要来了解一下什么是布隆过滤器。在参考了许多博客之后, 写个总结记录一下。 一、布隆过滤器简介 什么是布隆过滤器? 本质上布隆…

橘子学docker01之基本玩法

docker docker镜像集成了最核心需要得环境,所以占空间小,运行快,启动秒级。 docker的几个概念: 注册中心:相当于超级码头,上面放的就是集装箱。 镜像(image):集装箱,好比…

Spring Boot学习之Dubbo+Zookeeper初识

文章目录一 分布式理论基础知识1.1 单一应用架构1.2 垂直应用架构1.3 分布式服务架构1.4 流动计算架构1.5 PRC[Remote Procedure Call]二 Dubbo2.1 Dubbo简介三 Dubbo环境搭建3.1 Zookeeper简介3.2 Zookeeper下载与安装3.3 解决问题3.3.1 错误一的分析和解决3.3.2 错误二的分析…

JavaEE day8 初识HTTP

HTTP协议 HTTP协议,又称超文本传输协议,是一种应用广泛的应用层协议。所谓超文本,其实就是除了文本还能传输其他资源。而HTTP本身是基于传输层的TCP协议实现的。目前HTTP协议3版本已经在完善中。本文采用1.1版本。 它是一种请求--响应的工作…

MyBatis 持久层框架详细解读:Mapper代理开发

文章目录1. 前言2. Mapper 代理开发3. 过程剖析4. 总结1. 前言 前面在 MyBatis 快速入门篇中,我们使用了 MyBatis 原生的开发方式操作数据库,解决了 JDBC 操作数据库时的硬编码和操作繁琐的问题。实际上,在 Java 项目中,我们更常…

MVC和MVVM的区别

一、MVC mvc&#xff1a;是一种代码架构设计模式&#xff0c;前端中的mvc最主要的作用就是将视图和数据模型进行分离 &#xff08;1&#xff09; 为什么需要 MVC 简单理解&#xff1a;也就是为什么需要将视图和数据模型进行分离 <select id"drinkSelect">&…

宕机后,如何避免 Redis 的数据丢失?

前言 如果有人问你&#xff1a;"你会把 Redis 用在什么业务场景下&#xff1f;" 我想你大概率会说&#xff1a;"我会把它当作缓存使用&#xff0c;因为它把后端数据库中的数据存储在内存中&#xff0c;然后直接从内存中读取数据&#xff0c;响应速度会非常快。…

Lua 文件I/O

Lua 文件I/O 参考至菜鸟教程。 Lua I/O 库用于读取和处理文件。分为简单模式&#xff08;和C一样&#xff09;、完全模式。 简单模式&#xff08;simple model&#xff09;拥有一个当前输入文件和一个当前输出文件&#xff0c;并且提供针对这些文件相关的操作。完全模式&#…

C++Primer13.6.2节练习

练习13.49&#xff1a; StrVec类的移动构造函数和移动赋值运算符 //移动构造函数 StrVec::StrVec(StrVec&& s)noexcept :elements(s.elements), first_free(s.first_free), cap(s.cap) {//令移后源对象进入状态-----对其运行析构函数是安全的s.elements s.first_fre…

关于网络编程

Socket套接字Socket API是网络编程最核心的部分。Socket套接字是由系统提供用于网络通信的技术&#xff0c;是基于TCP/IP协议的网络通信的基本操作单元。基于Socket套接字的网络程序开发就是网络编程。Socket API与传输层密切相关&#xff0c;由于传输层有UDP和TCP两种协议类型…

使用Idea中将单个java类打包成jar包

开工第一天&#xff0c;正在暗自爽&#xff0c;领导让帮个忙&#xff0c;给一个工具类打成jar包&#xff0c;供其他项目组使用&#xff0c;这就开始了尝试。 其实网上已经有好多人写过了&#xff0c;只是尝试了几篇&#xff0c;坑得不轻&#xff0c;自己做下笔记&#xff0c;留…

表格控件Aspose.Cells for .NET 授权须知

支持的平台 Aspose.Cells 可作为 .NET、Java、C 和 Python 的四种不同产品使用&#xff0c; .NET Framework.NET Standard 2.0Xamarin.AndroidXamarin.iOSXamarin.MacCOMMonoWindows Azure Aspose.Cells 下载&#xff08;qun&#xff1a;761297826&#xff09;https://www.ev…

python 高阶函数

传入函数 要理解“函数本身也可以作为参数传入”&#xff0c;可以从Python内建的map/reduce函数入手。 我们先看map。map()函数接收两个参数&#xff0c;一个是函数&#xff0c;一个是序列&#xff0c;map将传入的函数依次作用到序列的每个元素&#xff0c;并把结果作为新的l…

Java:基于注解的Spring使用【AOP容器】和事务管理

目录 第十五章 AOP前奏15.1 代理模式15.2 为什么需要代理【程序中】15.3 手动实现动态代理环境搭建15.4 手动实现动态代理关键步骤第十六章 Spring中AOP【重点】16.1 AspectJ框架【AOP框架】16.2 使用AspectJ步骤&#xff08;入门&#xff09;16.3 Spring中AOP概述16.4 Spring中…

AMQP 0-9-1 模型解释

官方文档链接&#xff1a;https://www.rabbitmq.com/tutorials/amqp-concepts.html 文章目录1. AMQP协议是什么2. AMQP模型2.1 工作过程2.2 深入理解3. 交换机3.1 默认交换机3.2 直连交换机3.3 扇形交换机3.4 主题交换机3.5 头交换机3.6 交换机小结4. Queue队列队列属性队列创建…

BM7 链表中环的入口结点

目录 描述 输入描述&#xff1a; 返回值描述&#xff1a; 示例1 示例2 示例3 思路&#xff1a; 代码 描述 给一个长度为n链表&#xff0c;若其中包含环&#xff0c;请找出该链表的环的入口结点&#xff0c;否则&#xff0c;返回null。 例如&#xff0c;输入{1,…