AI 大模型应用开发实战营——作业 1
作业内容
使用 ChatGPT 来给你解答本次课程中你还没有完全理解的概念,并将问答单独整理成文件或线上文档。示例如下:
问:Bert 是基于编码器,GPT 是基于解码器,不是编码和解码一块用吗?
答:BERT(Bidirectional Encoder Representations from Transformers)和 GPT(Generative Pretrained Transformer)确实分别采用了基于编码器和解码器的结构,但他们的运用方式有所不同。
BERT 利用了 Transformer 中的编码器结构,编码器能够处理输入序列的所有元素,然后输出一个新的已经被处理过的序列。最重要的是,编码器在处理序列的时候是双向的,也就是说,在处理某个元素时,它会同时考虑到该元素的上下文,包括它前面和后面的元素。这就使得 BERT 在处理自然语言处理任务时,具有更好的上下文理解能力。
而 GPT 则采用了 Transformer 中的解码器结构,这个结构通常被用于生成序列。与编码器不同的是,解码器在处理序列的时候是单向的,即在处理某个元素时,只会考虑到该元素之前的元素,不会考虑到后面的元素。这就使得 GPT 非常适合用于生成型的自然语言处理任务,如文本生成、对话系统等。
至于您提到的编码和解码一块使用,通常出现在 seq2seq(序列到序列)模型中,例如机器翻译或者文本摘要等任务,输入序列首先通过编码器处理,然后解码器生成输出序列。这种模式并没有在 BERT 或 GPT 中直接使用,而是被一些其它的模型,如 T5 或 BART 所使用。
作业解答
针对本节课程中没有完全理解的概念,我使用 ChatGPT 进行问答学习,整理如下:
问:在注意力机制(Attention)中,“Q”、“K”和“V”分别代表什么?
答:在注意力机制中,“Q”、“K”和“V”是指查询(Query)、键(Key)和值(Value)。
在自注意力机制中,输入序列通过线性变换得到三组向量:查询向量 Q、键向量 K 和值向量 V。这些向量用于计算每个位置的注意力得分,然后将这些得分用于加权平均值计算输出向量。
查询向量 Q 是一个用于计算注意力得分的向量,它是由输入序列通过一个线性变换得到的。每个查询向量对应于输入序列中的一个位置,可以看作是一个指向输入序列中该位置的“查询”。
键向量 K 也是一个用于计算注意力得分的向量,它也是由输入序列通过一个线性变换得到的。每个键向量对应于输入序列中的一个位置,可以看作是一个用于描述该位置信息的“键”。
值向量 V 是用于计算加权平均值的向量,它也是由输入序列通过一个线性变换得到的。每个值向量对应于输入序列中的一个位置,可以看作是该位置的“值”。
通过计算查询向量 Q 和键向量 K 之间的相似度得到注意力得分,然后使用注意力得分对值向量 V 进行加权平均值计算,得到输出向量。这就是自注意力机制的基本过程。
问:rnn、lstm、embeding 有什么区别
答:RNN、LSTM 和 Embedding 是深度学习在自然语言处理(NLP)领域中经常使用的技术,它们有着不同的作用和应用。
RNN(Recurrent Neural Network)是一种基于序列的神经网络模型,它可以处理输入序列中的每个元素,并在处理后将其隐藏状态作为下一个输入的一部分。RNN 适用于序列数据的处理,例如文本、时间序列等。但是,传统的 RNN 模型在长序列中会存在梯度消失或者梯度爆炸的问题,导致长期依赖关系难以捕捉。
LSTM(Long Short-Term Memory)是一种基于循环神经网络的变体,它在 RNN 的基础上增加了门控机制,可以更好地解决长序列中的梯度消失或爆炸问题。LSTM 通过内部的门控机制来记忆和控制先前输入的信息,以便在处理时间序列数据时更好地捕捉长期依赖关系。LSTM 适用于处理序列数据,如语音识别、自然语言处理、时间序列预测等。
Embedding 是一种将离散型的数据(例如文本数据中的单词)映射到连续的向量空间中的技术。在 NLP 中,embedding 通常用于将文本数据中的单词或字符编码为实数向量,以便将其作为输入提供给深度学习模型。通过使用 embedding,模型可以将文本数据中的单词/字符转换为向量形式,从而更容易地处理和学习。
在 NLP 任务中,通常会将文本数据中的单词/字符转换为向量形式,然后将这些向量输入到 RNN 或 LSTM 模型中进行处理。因此,Embedding 是 RNN 和 LSTM 模型中的一部分。RNN 和 LSTM 负责处理序列数据,而 Embedding 则负责将文本数据转换为向量形式,以便 RNN 和 LSTM 可以处理。
问:cooccurrence statistics 具体是什么意思?
答:Cooccurrence statistics 是指在一个文本语料库中两个词同时出现的频率或概率统计量。具体来说,如果一个词出现在某个上下文中,而另一个词也出现在同一个上下文中,那么这两个词就是共现的。Cooccurrence 统计量就是指这两个词在文本语料库中共同出现的次数或概率。
Cooccurrence 统计量通常用于构建词向量模型,例如 word2vec。在这些模型中,词向量是通过将每个词表示为上下文窗口内出现的其他词的共现统计量来构建的。例如,如果一个词通常与“狗”、“猫”和“动物”一起出现,那么该词的向量就会在“狗”、“猫”和“动物”的向量之间位于某个位置。
Cooccurrence 统计量也可以用于其他 NLP 任务,例如关键词提取、文本分类和情感分析等。通过分析词语之间的共现关系,可以发现语言中的模式和关系,从而提高自然语言处理系统的性能。
问:什么是 inner product ?有什么作用?
答:Inner product(内积)是线性代数中的一种运算,它用于计算两个向量之间的相似度或者正交性。如果将两个向量表示为 a 和 b,则它们的内积可以用以下公式计算:
a·b = |a||b|cosθ
其中,|a|和|b|是向量 a 和向量 b 的模长,θ是向量 a 和向量 b 之间的夹角。
Inner product 在机器学习和数据科学中有广泛的应用,例如:
相似度计算:内积可以用于计算两个向量之间的相似度。如果两个向量的内积越大,它们就越相似。
特征提取:内积可以用于计算输入向量和权重向量之间的相似度,从而提取最相关的特征。
神经网络:内积可以用于神经网络中的权重更新和梯度计算。
优化算法:内积可以用于优化算法中的目标函数计算和梯度计算。
总之,内积是一种非常基础和重要的数学运算,它在各种机器学习、数据科学和计算机科学领域中都有广泛的应用。
问:contextual representations 是什么意思?有什么作用?
答:Contextual representations 指的是在自然语言处理(NLP)中,基于上下文信息来对文本进行表示的一种技术。传统的词向量模型(如 Word2Vec 和 GloVe)是基于词语出现的统计信息来学习词向量的,而没有考虑上下文信息。而 contextual representations 则通过考虑词语在上下文中的含义和语境,来更好地学习词语的语义表示。
最近几年,contextual representations 在 NLP 中得到了广泛的应用,主要有以下两个方面的作用:
提升自然语言处理模型的性能:contextual representations 可以帮助模型更好地理解文本中的语言和语境,因此在多个 NLP 任务上都能提高模型的性能,如文本分类、命名实体识别、机器翻译等。
解决语言理解中的歧义问题:contextual representations 能够更好地捕捉词语在不同语境下的含义,从而有助于解决语言理解中的歧义问题。例如,在句子“我喜欢吃鱼”中,“鱼”可以是动物的一种,也可以是食物的一种。contextual representations 可以根据上下文来确定“鱼”在这里的含义。
目前,一些常用的 contextual representations 模型包括 ELMo、BERT、GPT 等。这些模型已经在许多 NLP 任务中取得了非常好的表现,成为了 NLP 领域的研究热点之一。
重点内容总结回顾
学习了第一次直播课程后,了解了大模型的一些基础知识。以下是总结的一些重点内容。
大模型的起源与发展
ARTIFICIAL INTELLIGENCE (1950's)
MACHINE LEARNING (1980's)
DEEP LEARNING (2010's)
LARGE LANGUAGE MODEL (2020's)
注意力机制(Attention)
概念:注意力机制就是帮助模型在处理句子时,能够更好地关注到关键的信息,而忽略冗余的信息。(高频 != 重点)
特点和优势:
注意力机制有助于克服循环神经网络(RNNs)的一些挑战,例如输入序列长度增加时性能下降和顺序处理输入导致的计算效率低下。
在自然语言处理(NLP)、计算机视觉(Computer Vision)、跨模态任务和推荐系统等多个领域中,注意机制已成为多项任务中的最先进模型,取得了显著的性能提升。
注意力机制不仅可以提高主要任务的性能,还具有其它优势。他们被广泛用于提高神经网络的可解释性,帮助解释模型的决策过程,使得原本被认为黑盒模型的神经网络变得更易解释。这对于人们对机器学习模型的公平性、可追溯性和透明度的关注具有重要意义。
Transformer
Attention Mechanism —— 打破局面(2014)
Transformer —— 问世 (2017)
第一种完全依赖自注意力(self-attention)来计算输入和输出表示的转换模型,而不使用序列对齐的循环或卷积神经网络。
BERT vs. GPT
BERT(Bidirectional Encoder Representations from Transformers)的独特价值
全方位上下文理解:双向理解上下文,即同时考虑一个词的左边和右边的上下文
预训练+微调(Pre-training + Fine-tuning)
跨任务泛化能力:一种模型处理多种任务(文本分类、命名实体识别、问答系统、情感分析等)
多语言支持
性能优异
开源和可接入性
BERT 与 GPT 的相同点
模型架构:Transformer
数据预处理:都需要对数据进行 Tokenization,一般使用词片方法(Subword Tokenization)
模型训练:均使用了大量的无标签数据进行预训练
任务迁移:都可以通过 Fine-tuning 方式进行任务迁移
训练目标:都试图通过预训练理解语言的一般模式,如语法、语义、上下文关系等
多语言支持:均支持多语言模型训练
BERT 与 GPT 的差异点
训练方式:BERT 为自编码(Autoencoding);GPT 为自回归(Autoregressive)
预测目标:BERT 给定上下文,预测其中的一个或多个缺失单词;GPT 在给定前面的单词时,预测下一个单词
输入处理:BERT 为双向,可以同时考虑一个词的左右上下文;GPT 为单向,从左到右或者从右到左
适用场景:BERT 适合理解上下文,有助于信息提取、问答系统、情感分析等;GPT 适合生成式任务,如文章生成、诗歌创作等
架构:BERT 基于 Transformer 的编码器;GPT 基于 Transformer 的解码器
语言模型:BERT 为判别式(Discriminative)、GPT 为生成式(Generative)
优缺点:BERT 对上下文理解能力较强,但是生成的文本连贯性较弱;GPT 预测的连贯性较强,但是对上下文理解能力相对较弱
评论