AI基础学习周报四

摘要

本周系统研究了注意力机制的核心原理与应用形式。深入解析了基础注意力机制的三要素Query、Key、Value及其计算流程,明确区分了注意力机制与自注意力机制的本质差异。探讨了多头注意力通过多组投影提升特征捕获能力的实现方式,分析了通道注意力机制特别是SENet的通道权重优化原理。最后系统梳理了大语言模型的分类体系与训练流程,涵盖语言模型、视觉模型和多模态模型的构建方法及其预训练到微调的完整范式,构建了从基础机制到前沿应用的认知框架。

Abstract

This week focused on the core principles and applications of attention mechanisms. The study comprehensively analyzed the three elements of basic attention mechanisms including Query, Key, Value and their computational workflows, clearly distinguishing the fundamental differences between attention and self-attention mechanisms. It explored how multi-head attention enhances feature capture through multiple projection groups and examined the channel-weighting optimization in channel attention exemplified by SENet. Finally, the classification system and training pipeline of large language models were systematically reviewed, covering construction methods for language, vision and multimodal models with the complete pre-training to fine-tuning paradigm, establishing a cognitive framework from foundational mechanisms to cutting-edge applications.

1、注意力机制

1.1 什么是注意力机制

注意力机制其实是源自于人对于外部信息的处理能力。由于人每一时刻接受的信息都是无比的庞大且复杂,远远超过人脑的处理能力,因此人在处理信息的时候,会将注意力放在需要关注的信息上,对于其他无关的外部信息进行过滤,这种处理方式被称为注意力机制。

通俗解释:注意力对于人来说可以理解为“关注度”,对于没有感情的机器来说其实就是赋予多少权重(比如0-1之间的小数),越重要的地方或者越相关的地方就赋予越高的权重。

1.2 如何运用注意力机制

1.2.1 Query&Key&Value

首先介绍几个概念:

  • 查询(Query): 指的是查询的范围,自主提示,即主观意识的特征向量
  • 键(Key): 指的是被比对的项,非自主提示,即物体的突出特征信息向量
  • 值(Value) : 则是代表物体本身的特征向量,通常和Key成对出现

注意力机制是通过Query与Key的注意力汇聚(给定一个 Query,计算Query与 Key的相关性,然后根据Query与Key的相关性去找到最合适的 Value)实现对Value的注意力权重分配,生成最终的输出结果。
在这里插入图片描述
举个栗子:

  • 当你用上淘宝购物时,你会敲入一句关键词(比如:瘦),这个就是Query。
  • 搜索系统会根据关键词这个去查找一系列相关的Key(商品名称、图片)。
  • 最后系统会将相应的 Value (具体的衣服)返回给你。

在这个栗子中,Query, Key 和 Value 的每个属性虽然在不同的空间,其实他们是有一定的潜在关系的,也就是说通过某种变换,可以使得三者的属性在一个相近的空间中。

1.2.2 注意力机制计算过程

输入Query、Key、Value:

  • 阶段一:根据Query和Key计算两者之间的相关性或相似性(常见方法点积、余弦相似度,MLP网络),得到注意力得分;
    在这里插入图片描述

  • 阶段二:对注意力得分进行缩放scale(除以维度的根号),再softmax函数,一方面可以进行归一化,将原始计算分值整理成所有元素权重之和为1的概率分布;另一方面也可以通过softmax的内在机制更加突出重要元素的权重。一般采用如下公式计算:
    在这里插入图片描述

  • 阶段三:根据权重系数对Value值进行加权求和,得到Attention Value(此时的V是具有一些注意力信息的,更重要的信息更关注,不重要的信息被忽视了);
    在这里插入图片描述

这三个阶段可以用下图表示:

在这里插入图片描述

2、自注意力机制:Self-Attention

2.1 什么是自注意力机制

自注意力机制实际上是注意力机制中的一种,也是一种网络的构型,它想要解决的问题是**神经网络接收的输入是很多大小不一的向量,并且不同向量向量之间有一定的关系,但是实际训练的时候无法充分发挥这些输入之间的关系而导致模型训练结果效果极差。**比如机器翻译(序列到序列的问题,机器自己决定多少个标签),词性标注(Pos tagging一个向量对应一个标签),语义分析(多个向量对应一个标签)等文字处理问题。

针对全连接神经网络对于多个相关的输入无法建立起相关性的这个问题,通过自注意力机制来解决,自注意力机制实际上是想让机器注意到整个输入中不同部分之间的相关性

自注意力机制是注意力机制的变体,其减少了对外部信息的依赖,更擅长捕捉数据或特征的内部相关性。自注意力机制的关键点在于,Q、K、V是同一个东西,或者三者来源于同一个X,三者同源。通过X找到X里面的关键点,从而更关注X的关键信息,忽略X的不重要信息。不是输入语句和输出语句之间的注意力机制,而是输入语句内部元素之间或者输出语句内部元素之间发生的注意力机制。

注意力机制和自注意力机制的区别:
(1)注意力机制的Q和K是不同来源的,例如,在Encoder-Decoder模型中,K是Encoder中的元素,而Q是Decoder中的元素。在中译英模型中,中文句子通过编码器被转化为一组特征表示K,这些特征表示包含了输入中文句子的语义信息。解码器在生成英文句子时,会使用这些特征表示K以及当前生成的英文单词特征Q来决定下一个英文单词是什么。
(2)自注意力机制的Q和K则都是来自于同一组的元素,例如,在Encoder-Decoder模型中,Q和K都是Encoder中的元素,即Q和K都是中文特征,相互之间做注意力汇聚。也可以理解为同一句话中的词元或者同一张图像中不同的patch,这都是一组元素内部相互做注意力机制,因此,自注意力机制(self-attention)也被称为内部注意力机制(intra-attention)。

2.2 如何运用自注意力机制

其实步骤和注意力机制是一样的。在周报三的transformer学习中有介绍。

2.3 自注意力机制的问题

自注意力机制的原理是筛选重要信息,过滤不重要信息,这就导致其有效信息的抓取能力会比CNN小一些。这是因为自注意力机制相比CNN,无法利用图像本身具有的尺度,平移不变性,以及图像的特征局部性(图片上相邻的区域有相似的特征,即同一物体的信息往往都集中在局部)这些先验知识,只能通过大量数据进行学习。这就导致自注意力机制只有在大数据的基础上才能有效地建立准确的全局关系,而在小数据的情况下,其效果不如CNN。

另外,自注意力机制虽然考虑了所有的输入向量,但没有考虑到向量的位置信息。在实际的文字处理问题中,可能在不同位置词语具有不同的性质,比如动词往往较低频率出现在句首。

具体原理:

[2003.09229] Learning to Encode Position for Transformer with Continuous Dynamical Model (arxiv.org)

3、多头注意力机制

通过刚才的学习,我们了解到自注意力机制的缺陷就是,模型在对当前位置的信息进行编码时,会过度的将注意力集中于自身的位置,有效信息抓取能力就差一些。 因此就有大佬提出了通过多头注意力机制来解决这一问题。这个也是实际中用的比较多的。

3.1 什么是多头注意力机制

在实践中,当给定相同的查询、键和值的集合时, 我们希望模型可以基于相同的注意力机制学习到不同的行为, 然后将不同的行为作为知识组合起来, 捕获序列内各种范围的依赖关系 (例如,短距离依赖和长距离依赖关系)。 因此,允许注意力机制组合使用查询、键和值的不同子空间表示(representation subspaces)可能是有益的。

为此,与其只使用单独一个注意力汇聚, 我们可以用独立学习得到的h组(一般h=8)不同的线性投影(linear projections)来变换查询、键和值。 然后,这h组变换后的查询、键和值将并行地送到注意力汇聚中。 最后,将这h个注意力汇聚的输出拼接在一起, 并且通过另一个可以学习的线性投影进行变换, 以产生最终输出。 这种设计被称为多头注意力(multihead attention)。
在这里插入图片描述

3.2 如何运用多头注意力机制

第1步:定义多组W,生成多组Q、K、V
第2步:定义8组参数
第3步:将多组输出拼接后乘以矩阵Wo以降低维度

完整流程图如下:
在这里插入图片描述

4、通道注意力机制:Channel Attention

4.1 什么是通道注意力机制

对于输入2维图像的CNN来说,一个维度是图像的尺度空间,即长宽,另一个维度就是通道,因此通道注意力机制也是很常用的机制。通道注意力旨在显示的建模出不同通道之间的相关性,通过网络学习的方式来自动获取到每个特征通道的重要程度,最后再为每个通道赋予不同的权重系数,从而来强化重要的特征抑制非重要的特征。

使用通道注意力机制的目的:为了让输入的图像更有意义,大概理解就是,通过网络计算出输入图像各个通道的重要性(权重),也就是哪些通道包含关键信息就多加关注,少关注没什么重要信息的通道,从而达到提高特征表示能力的目的。
在这里插入图片描述

4.2 SENet

SE注意力机制(Squeeze-and-Excitation Networks)在通道维度增加注意力机制,关键操作是squeeze和excitation。

通过自动学习的方式,即使用另外一个新的神经网络,获取到特征图的每个通道的重要程度,然后用这个重要程度去给每个特征赋予一个权重值,从而让神经网络重点关注某些特征通道。提升对当前任务有用的特征图的通道,并抑制对当前任务用处不大的特征通道。

如下图所示,在输入SE注意力机制之前(左侧白图C2),特征图的每个通道的重要程度都是一样的,通过SENet之后(右侧彩图C2),不同颜色代表不同的权重,使每个特征通道的重要性变得不一样了,使神经网络重点关注某些权重值大的通道。
在这里插入图片描述

5、LLM

5.1 基本概念

**大模型LLM(Large Language Model)是指具有大规模参数和复杂计算结构的机器学习模型。**这些模型通常由深度神经网络构建而成,拥有数十亿甚至数千亿个参数。大模型的设计目的是为了提高模型的表达能力和预测性能,能够处理更加复杂的任务和数据。大模型在各种领域都有广泛的应用,包括自然语言处理、计算机视觉、语音识别和推荐系统等。大模型通过训练海量数据来学习复杂的模式和特征,具有更强大的泛化能力,可以对未见过的数据做出准确的预测。

大模型本质上是一个使用海量数据训练而成的深度神经网络模型,其巨大的数据和参数规模,实现了智能的涌现,展现出类似人类的智能。

LLM的使用场景非常广泛。首先,LLM可以用于文本生成,可以生成连贯的段落、文章、对话等,可以应用于自动写作、机器翻译等任务中。其次,LLM可以用于问答系统,可以回答复杂的问题,甚至进行对话式问答。再者,LLM可以用于语义理解和推理,可以进行情感分析、命名实体识别、文本分类等任务。此外,LLM还可以用于智能助理、机器人交互、自动摘要、信息提取等应用领域。总的来说,LLM在自然语言处理和人工智能领域都有很大的潜力,可以提供更加智能和自然的人机交互体验。

5.2 LLM大模型的分类

按照输入数据类型的不同,LLM大模型主要可以分为以下三大类:
在这里插入图片描述
语言大模型(NLP):是指在自然语言处理(Natural Language Processing,NLP)领域中的一类大模型,通常用于处理文本数据和理解自然语言。这类大模型的主要特点是它们在大规模语料库上进行了训练,以学习自然语言的各种语法、语义和语境规则。例如:GPT系列(OpenAI)、Bard(Google)、文心一言(百度)。

视觉大模型(CV):是指在计算机视觉(Computer Vision,CV)领域中使用的大模型,通常用于图像处理和分析。这类模型通过在大规模图像数据上进行训练,可以实现各种视觉任务,如图像分类、目标检测、图像分割、姿态估计、人脸识别等。例如:VIT系列(Google)、文心UFO、华为盘古CV、INTERN(商汤)。

多模态大模型:是指能够处理多种不同类型数据的大模型,例如文本、图像、音频等多模态数据。这类模型结合了NLP和CV的能力,以实现对多模态信息的综合理解和分析,从而能够更全面地理解和处理复杂的数据。例如:DingoDB多模向量数据库(九章云极DataCanvas)、DALL-E(OpenAI)、悟空画画(华为)、midjourney。

5.3 建立流程

LLM(Large Language Model)大模型训练的流程一般涉及以下几个阶段:

  1. 数据收集和预处理:首先需要收集大量的训练数据,这些数据可以是从互联网上收集的文本数据,也可以是从现有的数据集中获取的。收集的数据需要进行预处理,包括去除噪声、标记化、分词等操作。

  2. 构建模型架构:选择适合的模型架构来搭建LLM模型,常见的架构包括Transformer、BERT等。

  3. 模型预训练:大模型首先在大量的无标签数据上进行训练,预训练的最终目的是让模型学习到语言的统计规律和一般知识。在这个过程中模型能够学习到词语的语义、句子的语法结构、以及文本的一般知识和上下文信息。需要注意的是,预训练本质上是一个无监督学习过程;得到预训练模型(Pretrained Model), 也被称为基座模型(Base Model),模型具备通用的预测能力。如GLM-130B模 型、OpenAI的A、B、C、D四大模型,都是基座模型;

  4. 微调:在微调阶段,LLM使用特定的数据集进行训练,以适应特定的任务或应用。这个阶段通常使用迁移学习的方法,将预训练的模型作为基础,在特定任务上进行微调。

  5. 模型评估:训练完成后,需要对训练得到的模型进行评估。评估的方式可以是计算模型在验证集或测试集上的准确率、召回率等指标。同时,也可以对生成的文本进行人工评估,判断模型生成的文本是否符合预期。

  6. 模型部署和优化:训练完成后,需要将模型进行部署,可以通过将模型封装成API接口的形式提供给用户使用。同时,也可以进行模型的优化,如模型压缩、量化等,以提高模型的效率和性能。

需要注意的是,LLM大模型训练的过程通常需要大量的计算资源和时间,并且在训练过程中需要进行大规模的参数更新,因此需要有高效的训练算法和计算平台来支持。

总结

本周通过系统化的知识梳理构建了注意力机制的完整认知体系:从基础注意力机制的三阶段计算流程相关性计算、权重归一化到特征加权出发,深入辨析了其与自注意力机制的核心差异在于是否同源输入;针对自注意力机制的自身聚焦缺陷,研究了多头注意力通过多组线性投影实现特征子空间互补的优化方案;在通道维度探索了SENet的挤压激励机制如何动态调整特征通道权重;最后扩展至大语言模型领域,系统归纳了语言模型、视觉模型和多模态模型三类大模型的技术特性,并完整解析了从数据预处理、基座模型预训练到下游任务微调的模型构建全流程,后续将重点研究LLM的细节技术。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值