CMU 10423 Generative AI:lec2

news2024/11/13 1:25:00

文章目录

  • 1 概述
  • 2 部分摘录
    • 2.1 噪声信道模型(Noisy Channel Models)
      • 主要内容:
      • 公式解释:
      • 应用举例:
    • 2.2 n-Gram模型
      • 1. 什么是n-Gram模型
      • 2. 早期的n-Gram模型
      • 3. Google n-Gram项目
      • 4. 模型规模与训练数据
      • 5. n-Gram模型的局限性
      • 总结
    • 2.3 当今前沿大模型的训练数据量和参数量
    • 2.4 计算图的概念
      • 1. 计算图(Computation Graph)简介
      • 2. 图中各部分的详细解释
      • 3. 计算图的要点
      • 总结:
    • 2.5 Deep BiLSTM 长什么样、LSTM系列变种问题
    • 2.6 为什么transformer中需要加入位置编码?
      • 解释:
        • 关键点:
    • 2.7 关于 GPT3 的模型结构和参数
  • 3 阅读材料(LSTM, transformer, 讲解博客)

1 概述

该文件主要介绍了Transformer语言模型的背景、架构以及与其他语言模型的对比。以下是主要内容的概述:

  1. 语言模型的历史:文件首先介绍了在2017年之前使用的噪声信道模型在语音识别和机器翻译中的应用。这些模型通过结合转导模型和语言模型来进行预测。
  2. 大规模语言模型的发展:讨论了早期的n-Gram语言模型,如Google n-Gram模型,这些模型基于网页文本进行训练,并覆盖多种语言。接着,文件还对比了近年来的一些大规模语言模型(LLMs),如GPT-2、GPT-3、PaLM等。
  3. 递归神经网络(RNNs)及其局限性:介绍了RNN语言模型的基本概念,并讨论了RNN在学习长距离依赖时的困难。
  4. 长短期记忆网络(LSTM):详细解释了LSTM如何通过其内部结构(如输入门、遗忘门、输出门等)克服RNN的梯度消失问题,并帮助记忆长时间步的信息。
  5. 双向LSTM(BLSTM):讲述了将LSTM与双向RNN结合形成的深度双向LSTM(DBLSTM)如何用于处理更复杂的任务。
  6. Transformer语言模型:文件详细介绍了Transformer模型的架构,包括多头注意力机制、前馈神经网络、层归一化、残差连接等。
  7. 模型实现细节:文件还包括了Transformer模型的实现细节,展示了矩阵版本的单头注意力机制等。

2 部分摘录

2.1 噪声信道模型(Noisy Channel Models)

在这里插入图片描述

主要内容:

  1. 噪声信道模型的背景
  • 在2017年之前,语言模型被广泛应用于两个主要任务:语音识别和机器翻译。

  • 在这些任务中,噪声信道模型是一种重要的工具。

  • 噪声信道模型的定义

    • 噪声信道模型结合了一个转导模型(transduction model)和一个语言模型(language model)。
    • 转导模型的作用是计算将输出y转化为输入x的概率,而语言模型则计算y的概率。
  • 噪声信道模型的目标

    • 该模型的目标是从输入x中恢复出最可能的输出y。
    • 对于语音识别,x是声学信号,y是相应的转录文本。
    • 对于机器翻译,x是源语言中的句子,y是目标语言中的句子。

公式解释:

公式表示的内容是从x推断出最可能的y值。这是通过找到使得( p(y | x) )最大化的y值来实现的。在噪声信道模型中,这一过程被分解为两个部分:首先是计算给定y生成x的概率( p(x | y) )(即转导模型),然后是计算y本身的概率( p(y) )(即语言模型)。最终的目标是找到使得这两个概率的乘积最大的y值。

应用举例:

  • 语音识别:模型的输入是声学信号(x),目标是找出最有可能的文本转录(y)。
  • 机器翻译:模型的输入是源语言的句子(x),目标是找出最有可能的目标语言翻译(y)。

这种方法为早期的语音识别和机器翻译任务奠定了基础,并在这些领域中得到了广泛应用。

2.2 n-Gram模型

在这里插入图片描述

“Large (n-Gram) Language Models” 部分主要介绍了早期的大规模n-Gram语言模型的发展与应用。以下是详细介绍:

1. 什么是n-Gram模型

n-Gram模型是一种通过统计方法预测下一个词出现概率的语言模型。它基于这样一个假设:一个词的出现概率只取决于前面n-1个词。例如,三元组模型(trigram)就是基于前两个词预测下一个词的出现概率。

2. 早期的n-Gram模型

早期的大型语言模型使用的是n-Gram模型,其中最具代表性的是Google的n-Gram模型。这些模型通过分析大量的文本数据来统计词序列的频率,并由此预测词的出现概率。

3. Google n-Gram项目

  • 第一次发布 (2006年): Google发布了首个英语n-Gram数据集,训练数据来自于1万亿个token(词或词的单位),涵盖了95亿个句子。该模型包含了1-gram(单词)、2-gram(双词组)、3-gram(三词组)、4-gram(四词组)和5-gram(五词组)。
  • 扩展至其他语言 (2009-2010年): 随后,Google将n-Gram模型扩展至其他语言,包括日语、中文、瑞典语、西班牙语、罗马尼亚语、葡萄牙语、波兰语、荷兰语、意大利语、法语、德语和捷克语。

4. 模型规模与训练数据

  • 模型规模: 英语n-Gram模型的参数量约为30亿个。与现代的大型语言模型相比,这样的规模已经非常庞大。
  • 训练数据的规模: 模型的训练数据包括了1万亿个token和95亿个句子,这样的大数据量为n-Gram模型的预测提供了强大的支持。

5. n-Gram模型的局限性

尽管n-Gram模型在其时代取得了重要的成功,但其也存在一定的局限性:

  • 上下文限制: n-Gram模型只能考虑有限个(n-1)前缀词,这使得它无法捕捉长距离的依赖关系。
  • 数据稀疏性: 随着n的增大,模型的参数量迅速增加,导致模型容易遇到数据稀疏问题,因为许多n-gram可能在训练数据中很少甚至从未出现过。

总结

n-Gram语言模型是早期自然语言处理中的重要工具,它通过统计词序列的出现频率来预测文本。然而,随着计算能力的提高和更复杂模型的出现,如基于深度学习的Transformer模型,n-Gram模型的应用逐渐减少,但它为语言模型的发展奠定了基础。

2.3 当今前沿大模型的训练数据量和参数量

模型名称开发者发布年份训练数据(# Tokens)模型规模(# 参数量)
GPT-2OpenAI2019~10 billion (40GB)1.5 billion
GPT-3 (ChatGPT)OpenAI2020300 billion175 billion(1750亿)
PaLMGoogle2022780 billion540 billion
ChinchillaDeepMind20221.4 trillion70 billion
LaMDA (Bard)Google20221.56 trillion137 billion
LLaMAMeta20231.4 trillion65 billion
LLaMA-2Meta20232 trillion(2万亿)70 billion
GPT-4OpenAI2023??

2.4 计算图的概念

在这里插入图片描述

这张图片展示了如何绘制神经网络的计算图(Computation Graph)以及计算图的一些基本原则和元素。下面详细解释每个部分的含义:

1. 计算图(Computation Graph)简介

计算图是用来表示算法的图形化工具。在计算图中:

  • 节点(Nodes):表示算法中的中间变量。节点在图中通常用矩形表示。
  • 边(Edges):表示变量之间的依赖关系,边是有方向的,指向依赖项。
  • 无标签的边:在计算图中,边通常不需要标签,因为边的方向已经表明了依赖关系。

2. 图中各部分的详细解释

  • (A) Input: 这一部分表示输入层。每个输入变量 (x_i) 被表示为节点。图中也指出,每个输入参数 (\alpha_{ij}) 也需要在图中表示出来。
  • (B) Hidden (linear): 这一层表示神经网络中的隐藏层的线性部分。计算公式为 (a_j = \sum_{i=0}^{M} \alpha_{ji} x_i),这表示每个隐藏层的节点 (a_j) 是输入 (x_i) 的线性组合。
  • © Hidden (sigmoid): 隐藏层的非线性部分,使用sigmoid函数。公式为 (z_j = \frac{1}{1 + \exp(-a_j)})。这一步是将线性组合后的结果通过激活函数(如sigmoid)转换。
  • (D) Output (linear): 输出层的线性部分,计算公式为 (b = \sum_{j=0}^{D} \beta_j z_j),即对隐藏层的输出再做一次线性组合。
  • (E) Output (sigmoid): 最终输出结果通过sigmoid函数转换,公式为 (y = \frac{1}{1 + \exp(-b)})。
  • (F) Loss: 损失函数 (J = \frac{1}{2} (y - y*)2) 用于衡量模型输出 (y) 与真实值 (y^*) 之间的误差。

3. 计算图的要点

  • 拦截项作为节点:在神经网络中,每个拦截项(bias)都应被表示为一个节点,除非它已被整合进其他部分。
  • 每个参数都应在图中表示:这确保了计算图的完整性和清晰性。
  • 常数、标签等应在图中表示:例如,真实标签 ( y^* ) 应在图中作为节点出现。
  • 可以包含损失节点:将损失函数作为图的一部分是完全可以的。

总结:

通过计算图,能够直观地理解数据如何在网络中流动,以及如何通过每一层的计算得到最终的输出。这种图示法对于理解复杂的神经网络模型非常有帮助,尤其是在进行反向传播和梯度计算时。

2.5 Deep BiLSTM 长什么样、LSTM系列变种问题

相比BiLSTM大概就是多个跳跃连接,感觉有点类似残差,防止梯度消失。

在这里插入图片描述

LSTM系列变种问题:

  • 他们仍然在处理长距离依赖方面存在困难
  • 他们的计算本质上是串行的,因此无法轻松地在GPU上并行化
  • 尽管他们(大多数情况下)解决了梯度消失问题,但仍可能会遭遇梯度爆炸的困扰。

2.6 为什么transformer中需要加入位置编码?

一句话总结:注意力机制无法捕捉到词序信息,而词序蕴含的信息很重大,因此需要通过额外的位置编码将位置信息融入到词嵌入编码中。

在这里插入图片描述

位置嵌入(Position Embeddings)

  • 问题:由于注意力机制是位置不变的,因此我们需要一种方法来学习关于位置的信息。
  • 解决方案:使用(或学习)一组特定于位置的嵌入:( p_t ) 表示在位置 ( t ) 处的含义。将其与词嵌入 ( w_t ) 相加。关键思想是,每个出现在位置 ( t ) 的词都使用相同的位置嵌入 ( p_t )。
  • 位置嵌入有多种形式:
    • 一些是固定的(基于正弦和余弦),而另一些是学习到的(类似于词嵌入)。
    • 一些是绝对的(如上所述),但我们也可以使用相对位置嵌入(即相对于查询向量的位置)。

注释

  • ( P_1 \neq P_3 )(位置1的嵌入不等于位置3的嵌入)。
  • ( W_1 = W_3 )(词“cat”的嵌入在两个位置上是相同的)。

解释:

这张图和文本介绍了在Transformer模型中使用的位置嵌入(Position Embeddings)。在Transformer架构中,注意力机制本身是位置不变的,这意味着它不会直接考虑词语在句子中的顺序。然而,句子中的词语顺序在理解语义时是非常重要的。因此,引入了位置嵌入来弥补这一点。

关键点:
  1. 位置嵌入的必要性
  • 由于注意力机制不考虑词语的顺序,因此引入位置嵌入来为每个词语添加位置信息,以便模型能够区分同一个词在不同位置上的不同含义。

  • 如何实现

    • 每个位置 ( t ) 都有一个对应的位置嵌入 ( p_t ),它表示该位置的特定含义。该位置嵌入与词嵌入 ( w_t ) 相加,形成包含位置信息的输入向量。这样,模型就可以在处理时保留位置信息。
  • 位置嵌入的种类

    • 固定位置嵌入:这些位置嵌入通常基于正弦和余弦函数生成,不随训练过程变化。
    • 学习位置嵌入:类似于词嵌入,通过训练过程动态学习和调整。
    • 绝对位置嵌入:表示词语的具体位置(如第一个词、第二个词)。
    • 相对位置嵌入:表示一个词相对于另一个词的位置关系。
  • 示例解释

    • 在图中,词语“Cat”和“saw”在不同的位置上分别有其位置嵌入 ( p_1, p_2 ),并与词嵌入 ( w_1, w_2 ) 相加,以便模型知道“Cat”和“saw”分别出现在句子的什么位置。
    • 在例子中,尽管“Cat”在两个不同的位置上出现(位置1和位置3),它的词嵌入 ( W_1 ) 和 ( W_3 ) 是相同的,但其位置嵌入 ( P_1 ) 和 ( P_3 ) 不同,从而帮助模型区分它们在句子中的不同角色。

通过位置嵌入,Transformer模型能够更好地理解词语的顺序和语境,从而提升对序列数据的处理能力。

2.7 关于 GPT3 的模型结构和参数

GPT的全称:Generative Pre-trained Transformer,即生成式预训练变换模型。

核心思想:GPT本质上是一个基于Transformer架构的语言模型(LM),其特别之处在于拥有大量的参数。

属性/版本解释GPT (2018)GPT-2 (2019)GPT-3 (2020)
层数Transformer的层数(# layers)。表示模型的深度,层数越多,模型能捕捉到的特征越复杂。124896
状态维度每层Transformer的输出向量维度(dimension of states)。更高的维度允许模型捕捉更丰富的信息。768160012288
内部状态维度前馈神经网络(FFN)的中间层维度(dimension of inner states)。通常是状态维度的4倍,用于增强非线性能力。30724*12288
注意力头数量多头自注意力机制中的头的数量(# attention heads)。更多的注意力头可以捕捉更多的序列特征。1296
参数数量模型中的总参数数量(# params)。包括所有可训练的权重和偏置,参数数量越大,模型的表达能力越强。117M1542M175000M

3 阅读材料(LSTM, transformer, 讲解博客)

  • The Long Short-Term Memory and Other GatedRNNs. Ian Goodfellow, Yoshua Bengio, & Aaron Courville (2016). Deep Learning, Chapter 10.10-10.12.
  • Attention Is All You Need. Vaswani et al. (2017). NeurIPS.
  • The Illustrated Transformer. Alammar (2018).

第一个就是花书中的LSTM及其变种部分。

第二个就是鼎鼎大名的XXX is all you need原论文。

第三个是广泛被国内转载并引用原图的某位国外作者撰写的讲解Transformer论文的博文。(有十几个语种的翻译版。。。)

原版地址:https://jalammar.github.io/illustrated-transformer/

中文版1:https://blog.csdn.net/yujianmin1990/article/details/85221271

中文版2:https://blog.csdn.net/qq_36667170/article/details/124359818

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

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

相关文章

EmguCV学习笔记 VB.Net 10.1 人脸检测 CascadeClassifier类

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

视觉语言模型(VLMs)知多少?

最近这几年,自然语言处理和计算机视觉这两大领域真是突飞猛进,让机器不仅能看懂文字,还能理解图片。这两个领域的结合,催生了视觉语言模型,也就是Vision language models (VLMs) ,它们能同时处理视觉信息和…

单片机原理

一、单片机基础知识 1.单片机概念 将通用微型计算机基本功能部件集成在一块芯片上构成的一种专用微计算机系统(嵌入式系统),用于解决小型被控对象的智能化问题(SCM或MCU)。 2.单片机组成 3.单片机命名规则 后缀 后缀…

ChatGPT付费创作系统V3.0.6独立版 WEB+H5+小程序端 (新增AI全网搜索+文档解析+豆包AI通道)安装部署教程

播播资源GPT付费体验系统最新版系统是一款基于ThinkPHP框架开发的AI问答小程序,是基于国外很火的ChatGPT进行开发的Ai智能问答小程序。这是一种基于人工智能技术的问答系统,可以实现智能回答用户提出的问题。相比传统的问答系统,ChatGPT可以更…

基于.NET6的WPF总结之MVVM

目录 1. DataContext数据上下文 2. Binding绑定源 2.1 绑定实体 2.2 绑定资源 2.3 ElementName属性指明另一个控件作为数据源 2.4 RelativeSource属性绑定一个相对的数据源 2.4.1 Self(绑定自身控件) 2.4.2 FindAncestor(找上级&#…

vue3获取视频时长、码率、格式等视频详细信息

前言: 我们在上传视频需要视频的帧数等信息的时候,上传组件无法直接读取帧数等信息 方法:通过mediainfo.js来获取视频的帧率、总帧数和视频的总时长 mediainfo.js地址,想详细了解的可以去看看git地址:https://githu…

【C++ Primer Plus习题】11.3

问题: 解答: main.cpp #include <iostream> #include <cstdlib> #include <ctime> #include "vect.h"using namespace std; using namespace VECTOR;int main() {srand(time(0));double direction;Vector step;Vector result(0.0, 0.0);unsigned …

基于 BiLSTM+Attention 实现降雨预测多变量时序分类——明日是否降雨

前言 系列专栏:【深度学习&#xff1a;算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域&#xff0c;讨论了各种复杂的深度神经网络思想&#xff0c;如卷积神经网络、循环神经网络、生成对…

uniapp解决页面跳转时,含有base64的数据丢失问题

由于url长度的限制&#xff0c;base64数据过长可能导致数据丢失&#xff0c;以至于base64图片显示不出来或者格式错误。 解决办法&#xff1a; 跳转前进行base64编码&#xff1a;encodeURIComponent 接收数据时&#xff0c;对base64进行解码&#xff1a;decodeURIComponent

【2024数模国赛赛题思路公开】国赛D题思路丨附可运行代码丨无偿自提

2024年国赛D题解题思路 问题一 【题目】 投射一枚深弹&#xff0c;潜艇中心位置的深度定位没有误差&#xff0c;两个水平坐标定位均服从正态分布。分析投弹最大命中概率与投弹落点平面坐标及定深引信引爆深度之间的关系&#xff0c;并给出使得投弹命中概率最大的投弹方案&…

One-Shot Hierarchical Imitation Learning of Compound Visuomotor Tasks

发表时间&#xff1a;25 Oct 2018 论文链接&#xff1a;https://readpaper.com/pdf-annotate/note?pdfId4500198746683498497&noteId2453372035670907392 作者单位&#xff1a;Berkeley AI Research Motivation&#xff1a;我们考虑从执行任务的人类的单个视频中学习真…

ITK-重采样

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 什么是重采样 重采样&#xff08;Resampling&#xff09; 是一种用于图像处理的技术&#xff0c;主要应用于对图像进行尺寸调整、…

【专项刷题】— 栈

1、删除字符串中的所有相邻重复项 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 使用栈进行操作&#xff0c;每次入栈的时候和栈顶元素进行比对&#xff0c;如果相同的话就弹出栈顶元素也可以用数组来模拟栈进行操作代码&#xff1a; public String removeDuplica…

基于人工智能的交通标志识别系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 交通标志识别系统是自动驾驶和智能交通的重要组成部分&#xff0c;能够帮助车辆自动识别路边的交通标志并作出相应的决策。通过使用深…

C语言-数据结构 无向图普里姆Prim算法(邻接矩阵存储)

Prim算法使用了贪心的思想&#xff0c;在算法中使用了两个数组&#xff0c;这两个数组会非常巧妙的操作整个算法的灵魂过程 lowcost的功能&#xff1a; 1.帮助算法寻找到当前距离已完成的最小生成树集合的最小的边长&#xff08;找到新边&#xff09; 2.在整个过程中记录新结…

分拣机介绍及解决方案细节

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》人俱乐部 完整版文件和更多学习资料&#xff0c;请球友到知识星球【智能仓储物流技术研习社】自行下载。 这份文件是关于交叉带式分拣机的介绍及解…

openSSL 如何降版本

文章目录 前言openSSL 如何降版本1. 卸载2. 安装新的openssl版本3. 验证 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff0c;实在白嫖的话&…

RT-Thread 使用HTTP固件下载方式进行OTA远程升级

参考资料:RT-T官网资料如下链接所示 STM32通用Bootloader (rt-thread.org) 1.app程序env配置过程 参考上述资料中"制作 app 固件"章节&#xff0c;分区大小根据自己设备而定&#xff0c;以下是我以407VET6为例设置的fal分区 notes:上述分区是由片内flash(on-chip)…

机械革命imini Pro820迷你主机评测和拆解,8845H小主机使用政府补贴仅需两千三

机械革命imini Pro820迷你主机评测和拆解&#xff0c;8845H小主机使用政府补贴仅需两千三。 最近上线了家电补贴相关的活动&#xff0c;最高可以补贴20%&#xff0c;然后就看到了这款mini主机感觉很划算就下单了&#xff0c;用来替换我旧的N5095小主机&#xff0c;当服务器用。…

电子技术基础

目录 二极管 二极管的概念二极管的整流 二极管的防反接 二极管的钳位稳压二极管 三极管 NPN型三极管PNP型三极管三极管的三种状态三极管三个极之间电流的关系 放大电路 三极管共射极放大电路分压式偏置电路静态工作点多级放大功率放大电路 运算放大器 同相比例放大器反相…