CMU 10423 Generative AI:lec4(Modern Transformers + CNNs)

文章目录

  • 1 概述
  • 2 内容摘录
    • 2.1 深度学习架构的历史
    • 2.2 预训练概念、三种训练方式、效果对比
    • 2.3 现代Transformer模型概览
      • 1. **PaLM (Pathways Language Model, 2022年10月)**
      • 2. **Llama-1 (2023年2月)**
      • 3. **Falcon (2023年6月-11月)**
      • 4. **Llama-2 (2023年8月)**
      • 5. **Mistral (2023年10月)**
      • **关键技术概述**
    • 2.4 RoPE, GQA, Sliding Window Attention
    • 2.5 计算机视觉领域概述(40页~115页)

1 概述

该文件涵盖了现代 Transformer 和卷积神经网络 (CNN) 的基础和应用。主要内容包括:

  1. 现代 Transformer 架构:详细介绍了 RoPE(旋转位置嵌入)、GQA(分组查询注意力)和 Longformer 模型中的滑动窗口注意力机制。这些技术改善了 Transformer 模型在处理长序列时的效率和效果。
  2. 语言建模:讨论了 RNN-LM 和 Transformer-LM 在语言建模中的应用,重点在于如何通过条件前序词生成下一个词。
  3. 深度学习的发展历程:回顾了多层感知机、RNN、CNN 等网络架构的历史,并介绍了预训练和微调的概念,说明了在无监督预训练后进行有监督微调能够有效提升模型的表现。
  4. 卷积神经网络 (CNN):文件深入探讨了 CNN 的基本原理,尤其是卷积操作、下采样、池化层的应用,以及 CNN 在图像分类中的成功应用(如 AlexNet 在 ImageNet 比赛中的表现)。此外,还讲解了数据增强和正则化技术如何减少过拟合问题。
  5. 视觉中的特征提取:介绍了图像处理中的卷积矩阵用于边缘检测、模糊处理和锐化等任务。

总的来说,该讲义主要针对生成式人工智能中的 Transformer 和 CNN 两种模型,讨论它们在文本生成、图像分类等领域的应用和改进。

2 内容摘录

2.1 深度学习架构的历史

深度学习的架构可以追溯到20世纪中期:

  • 1960年代:Rosenblatt 提出了三层多层感知机(MLP)和 ReLU(线性整流函数)。
  • 1970-80年代:提出了循环神经网络(RNN)和卷积神经网络(CNN)。
  • 1990年代:线性自注意机制逐渐被提出,开始为后续的 Transformer 打下基础。

这些早期的神经网络架构为现代深度学习的快速发展提供了基础。

2.2 预训练概念、三种训练方式、效果对比

  1. 预训练的关键作用

2006年,Hinton 和 Salakhutdinov 等人提出了深度学习中的预训练概念。

  • 无监督逐层预训练:预训练的关键思想是逐层训练网络的隐藏层。通过先在没有标签的数据上进行训练,网络可以学到更好的初始参数,进而在有标签的数据上通过监督学习进行微调。
  • 有监督微调:在经过预训练后,使用有标签的数据进行微调,从而使网络的特征适应具体任务。这种训练方式能显著提升深度网络的效果,尤其在数据不足的情况下。
  • 这个无监督预训练的方法解决了深度神经网络难以训练的瓶颈,使得深度学习模型能够成功应用于各种任务。
  1. 三种训练方式:
    a. Idea #1: Supervised fine-tuning only(仅有监督训练)
    • 这一想法是直接对模型进行有监督学习,使用带有标签的数据进行训练,并通过损失函数进行微调。
    • 这种方法在没有任何预训练的情况下,直接通过反向传播进行参数更新。缺点是,当网络很深时,可能出现梯度消失或爆炸的问题,导致模型难以有效训练。
  • Idea #2: Supervised layer-wise pre-training + Supervised fine-tuning(有监督的逐层预训练+有监督的微调)
    • 先逐层进行有监督的预训练,即逐层训练神经网络的每一层,使得每一层的参数在训练过程中不断得到调整和优化。然后再通过全局的有监督微调对整个网络进行参数优化。
    • 这种方法通过分阶段训练网络,避免了直接训练深层网络时的梯度消失问题,但其预训练和微调过程都依赖于标签数据。
  • Idea #3: Unsupervised layer-wise pre-training + Supervised fine-tuning(无监督的逐层预训练+有监督的微调)
    • 先通过无监督的逐层预训练,即利用没有标签的数据来训练网络的每一层,逐步优化每一层的特征表示。然后再通过有标签的数据进行微调。
    • 这种方法不需要在预训练阶段依赖标签数据,因此可以充分利用大量无标签数据来学习有用的特征表示,再通过微调使得这些特征更加适应具体的任务。这种方法尤其适合数据集标签稀缺的情况。
  1. 总结来看,Idea #1 是最基础的有监督学习方法,Idea #2 引入了逐层预训练以改善训练效果,而 Idea #3 通过无监督预训练和有监督微调的结合,能够在深层网络中有效解决梯度问题,并能更好地利用无标签数据

在这里插入图片描述

这张图展示了 Bengio 等人在 2006 年对 MNIST 数字分类任务的实验结果,比较了不同训练方法在深度神经网络中的表现。图中的 Y 轴表示错误率(% Error),即越低越好。不同方法的表现如下:

  1. Shallow Net(浅层网络):
  • 浅层网络的错误率约为 1.6%。由于网络较浅,它没有复杂的特征提取能力,性能有限,但还能在简单任务上表现较好。

  • Idea #1(深度网络,无预训练):

    • 直接对深度网络进行有监督微调,没有任何预训练的深度网络在 MNIST 上的表现相对较差,错误率大约为 2.3%。这是因为没有预训练的深层网络容易出现梯度消失或爆炸的问题,导致训练效果不佳。
  • Idea #2(深度网络,有监督预训练):

    • 在有监督逐层预训练后进行微调,性能有所提升,错误率约为 1.5%。有监督预训练帮助每一层更好地初始化参数,从而改善了深度网络的表现,但依然受限于训练过程中对有标签数据的依赖。
  • Idea #3(深度网络,无监督预训练):

    • 这是错误率最低的方案,错误率约为 1.2%。通过无监督逐层预训练,网络可以有效学习到更好的特征表示,然后通过有监督微调进一步优化。这种方法不仅解决了梯度问题,还能利用大量无标签数据来提高模型的性能。

从图中可以看出,深度网络通过无监督预训练结合有监督微调(Idea #3)可以显著提高模型性能,错误率最低;而没有预训练的深度网络(Idea #1)表现最差。这表明预训练尤其是无监督预训练对于深层网络的有效训练至关重要。

2.3 现代Transformer模型概览

在这里插入图片描述

Modern Transformer Models部分介绍了近年来多个现代Transformer模型的创新和发展,重点讨论了PaLM、Llama、Falcon、Mistral等模型的架构、训练方式以及它们相较于经典Transformer模型(如GPT-3)的改进。以下是对该部分的详细介绍:

1. PaLM (Pathways Language Model, 2022年10月)

  • 参数规模:5400亿参数(这是一个非常大的模型)。

  • 创新

    • SwiGLU 代替了常用的ReLU、GELU或Swish激活函数,这提高了模型的表现。
    • 多查询注意力 (Multi-query attention, MQA) 代替了传统的多头注意力机制(MHA),通过减少注意力头的数量,提高了计算效率。
    • 旋转位置嵌入 (Rotary Position Embeddings, RoPE) 取代了绝对位置嵌入,能够更好地处理长序列信息。
    • 输入和输出层共享相同的嵌入矩阵,减少了模型的参数量。
  • 训练:使用Adafactor优化器,在7800亿个tokens上进行训练。

2. Llama-1 (2023年2月)

  • 模型参数规模:包括7B、13B、32B和65B四个版本。

  • 创新

    • RMSNorm 应用于输入,而不是传统的在输出中使用的LayerNorm,这有助于稳定模型训练。
    • SwiGLU激活函数 代替ReLU,使得模型的激活更加平滑。
    • RoPE 代替了绝对位置嵌入,提升了位置编码的性能。
  • 性能:Llama-13B 在许多任务中优于GPT-3。

  • 训练:使用AdamW优化器,在1.0-1.4万亿个tokens上进行训练。

3. Falcon (2023年6月-11月)

  • 模型参数规模:包括7B、40B和180B三个版本。

  • 特点

    • 这是第一个完全开源的模型,采用了Apache 2.0许可证。
    • 分组查询注意力 (Grouped Query Attention, GQA) 替代了传统的MHA,使得模型在计算上更为高效。
    • RoPE 表现优于其他位置编码方法(如Alibi)。
    • GeLU激活函数 被采用,替代了SwiGLU。
  • 训练:使用AdamW优化器,180B参数的模型在3.5万亿个tokens上训练,且引入了z-loss和权重衰减机制来稳定训练。

4. Llama-2 (2023年8月)

  • 模型规模:7B、13B、70B版本,Llama 2-Chat专为对话代理微调。

  • 创新

    • GQA (Grouped Query Attention) 替代了MHA。
    • 上下文长度扩展:上下文长度从Llama-1的2048增加到4096,使得模型能够处理更长的输入。
  • 训练:使用AdamW优化器,在2.0万亿个tokens上训练。

5. Mistral (2023年10月)

  • 模型表现:Mistral 7B在平均性能上超越了Llama-2 13B。

  • 特点

    • 这是一个开源模型,采用了Apache 2.0许可证。
    • 滑动窗口注意力机制:增加了上下文长度,可以处理长度为8192的序列,甚至支持生成长度高达32K的序列。
    • 滚动缓冲缓存机制:动态增长缓存,并实现缓存位置的循环覆盖,以提高生成效率。
  • 变体 Mixtral:使用专家混合模型(MoE),由多个Mistral模型组成。

关键技术概述

  1. RoPE (Rotary Position Embeddings)

RoPE是一种相对位置嵌入方法,它将输入向量分解为多个2维向量,并在这些2维向量上进行旋转操作,从而编码位置信息。这种方法能够提升模型处理长序列的能力。

  1. GQA (Grouped Query Attention)

GQA通过减少注意力计算中查询头的数量,重用相同的键-值对,提升了模型的计算效率。GQA相对于传统的多头注意力机制(MHA)能够显著降低计算复杂度。

  1. 滑动窗口注意力 (Sliding Window Attention)

该方法通过限制注意力窗口的范围,只对局部的上下文进行注意力计算,降低了内存占用和计算量。该方法最早在Longformer模型中引入,非常适合处理长序列任务。

2.4 RoPE, GQA, Sliding Window Attention

这3个技术全是本次的必读论文,应该是现代大模型里的技术,暂时不了解,放阅读材料专题里详细研究。

2.5 计算机视觉领域概述(40页~115页)

本讲介绍了很多CV技术,按PPT中顺序依次如下:

  1. IMGENET数据集介绍
  2. 图像特征工程:canny, Harris,SIFT
  3. AlexNet网络,以及2010~2015年图像分类领域精度的进化历史
  4. 卷积介绍、不同卷积核对图像处理的物理意义以及效果展示
  5. 下采样:卷积下采样、池化操作
  6. 卷积神经网络的训练流程
  7. SGD优化器更新CNN网络的原理
  8. 现场纯手写各模块的前向传播、反向传播原理和公式:ReLU, softmax, 全连接层、2D卷积、最大池化
  9. CNN网络介绍:LeNet5, alexnet, vgg16, (目标检测)fasterRCNN, SSD, FCN, (语义分割)u-net,resnet
  10. CNN网络可视化网站:https://adamharley.com/nn_vis/cnn/2d.html

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

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

相关文章

vba发邮件:如何设置自动化发送电子邮件?

vba发邮件的技巧有哪些?VBA如何调用outlook发邮件? VBA发邮件功能是一个非常实用的工具,能够帮助用户自动发送电子邮件,减少手动操作的时间和错误。AokSend将详细介绍如何通过VBA发邮件来实现自动化发送电子邮件的设置。 VBA发邮…

Java 设计模式-代理模式

目录 概述 一. 什么是代理模式 1. 举例说明 二. 代理模式作用 1. 保护代理 2. 增强功能 3. 代理交互 4. 远程代理: 三. 代理模式3个角色 四. 静态代理 1. 代码示例: 五. JDK动态代理 1. 代码示例: 六. CGLIB 动态代理 1.代码示…

怎样将vue项目 部署在ngixn的子目录下

如果同一服务器的80端口下,需要部署两个或以上数量的vue项目,那么就需要将其中一个vue项目部署在根目录下,其他的项目部署在子目录下. 像这样的配置 访问根目录 / 访问灭火器后台管理,访问 /mall/ 访问商城的后台管理 那么商场的vue项目,这样配置,才能在/mall/下正常访问? 1…

使用Nest.js+LangChain给低代码平台赋上AI代码生成能力,让低代码变成低低代码!

前言 LangChain 是一个用于开发由大型语言模型(LLM)支持的应用程序的框架。可以快速使用它集成各个模型,以及格式化用户输入和模型输出,封装了很多工具类,使得开发者很容易将其集成到自己的程序当中。 最近&#xff…

反相放大器电路设计

1 简介 反相放大器电路输入阻抗由外部电阻决定,因此要求输入源阻抗降低。该电路的共模电压等于同相端电压,通常同相端接地,所以该电路共模电压为零。 2 设计目标 2.1 输入 2.2 输出 2.3 频率 2.4 电源 3 电路设计 根据设计目标&#xff0c…

Solon2 与 Spring Boot 的核心区别及对比

在Java开发领域,Solon2和Spring Boot是两个备受关注的框架,它们各有特点,适用于不同的开发场景。本文将深入探讨Solon2与Spring Boot之间的核心区别,帮助开发者更好地理解并选择适合自己的框架。 1. 架构与基础 Solon2&#xff…

QGis二次开发 —— 1、Windows10搭建Vs2017-QGis环境(附Vs2017环境效果)(附:Qt助手加入QGis接口说明文档)

OSGeo4W简介 更高级的 QGIS 用户应该使用 OSGeo4W 包。此安装程序可以并行安装多个版本的 QGIS,并且还可以进行更高效的更新,因为每个新版本仅下载和安装更改的组件。      OSGeo4W 存储库包含许多来自 OSGeo 项目的软件。包括 QGIS 和所有依赖项&a…

echarts 水平柱图 科技风

var category [{ name: "管控", value: 2500 }, { name: "集中式", value: 8000 }, { name: "纳管", value: 3000 }, { name: "纳管", value: 3000 }, { name: "纳管", value: 3000 } ]; // 类别 var total 10000; // 数据…

【银河麒麟高级服务器操作系统】虚拟机服务器执行systemctl提示timeout——分析全过程及处理建议

了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer.kylinos.cn 文档中心:https://documentkylinos.cn 现象描述 产品信息 产品名称 银河麒麟高级服务…

SpringBoot3:轻松使用Jasypt实现配置文件信息加密

文章目录 前言一、概述1.1 Jasypt库简介1.2 Jasypt库的主要特点 二、开发环境三、Jasypt集成到SpringBoot33.1 引入依赖3.2 配置Jasypt3.3 加密配置文件信息3.3.1 方案一(不推荐)a.编写测试类生成加密后的配置文件信息b.运行c.修改原本的配置文件信息 3.…

【学术会议征稿】第八届电气、机械与计算机工程国际学术会议(ICEMCE 2024)

第八届电气、机械与计算机工程国际学术会议(ICEMCE 2024) 2024 8th International Conference on Electrical, Mechanical and Computer Engineering 第八届电气、机械与计算机工程国际学术会议(ICEMCE 2024)将于2024年10月25日…

深度学习-目标检测(二)Fast R-CNN

一:Fast R-CNN Fast R-CNN 是一篇由Ross Girshick 在 2015 年发表的论文,题为 “Fast R-CNN”。这篇论文旨在解决目标检测领域中的一些问题,特别是传统目标检测方法中存在的速度和准确性之间的矛盾。 论文摘要:本文提出了一种基于…

【Python系列】字典判断空

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【漏洞利用】2018年-2024年HVV 6000+个漏洞 POC 合集分享

此份poc 集成了Zabbix、用友、通达、Wordpress、Thinkcmf、Weblogic、Tomcat等 下载链接: 链接: https://pan.quark.cn/s/1cd7d8607b8a

华为 HCIP-Datacom H12-821 题库 (10)

有需要题库的可以看主页置顶 V群进行学习交流 1.缺省情况下,BGP 对等体邻接关系的保持时间是多少秒? A、120 秒 B、60 秒 C、10 秒 D、180 秒 答案:D 解析: BGP 存活消息每隔 60 秒发一次,保持时间“180 秒” 2.缺省…

54 mysql 中各种 timeout - connect/wait/interactive/read/write_timeout

前言 在 mysql 的服务器配置中, 我们经常会使用到几个 timeout 诸如 connect_timeout, wait_timeout, interactive_timeout, read_timeout, write_timeout 等等 我们 这里来看一下 他们的具体的使用场景, 以及具体控制的相关信息 是什么 connect_timeout 这个是 客户端 和…

《DB-GPT项目》专栏总目录

❤️ 专栏名称:《DB-GPT项目》 🌹 内容介绍:项目部署、大模型替换、底层源码修改、数据分析、数据可视化、自动化等,适合零基础和进阶的同学。 🚀 订阅专栏:订阅后可阅读专栏内所有内容,专栏持续…

SQL 编程基础

SQL(结构化查询语言)广泛应用于数据库操作,是每个程序员都需要掌握的技能之一。这篇文章将带你从基础入门,了解SQL编程中的常量、变量及流程控制语句。我们将采用简单易懂的语言,结合实际示例,帮助你轻松理…

python-网页自动化(二)

获取元素属性 1. 获取属性 以百度首页的logo为例&#xff0c;获取logo相关属性 <img hidefocus"true" id"s_lg_img" class"index-logo-src" src"//www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png" width"270…

mfc140u.dll错误是什么情况?如何将mfc140u.dll丢失的解决方法详细分析

mfc140u.dll是 Microsoft Foundation Class (MFC) 库的一部分&#xff0c;通常与 Visual Studio 2015 及其后续版本相关联。如果系统中缺少 mfc140u.dll&#xff0c;可能会导致依赖该库的应用程序无法启动&#xff0c;并显示错误消息&#xff0c;如“程序无法启动&#xff0c;因…