青训营X豆包MarsCode技术训练营第四课之知识总结 | 豆包MarsCode AI刷题

47 阅读4分钟
Attention注意力机制
  • 一个智能体(人或 AI 模型)从接收到的大量信息(文本、图像、音频)中,剔除不重要、不相关的信息,重点关注与自身密切相关的信息。其核心在于收缩关注的信息范围,实现信息的压缩。
  • 建立权重模式;
  • 注意力机制的本质是从大量信息中剔除杂质、无关信息,保留感兴趣的信息。
  • 注意力机制在 NLP 领域的应用主要是 自注意力Self-Attention 形式,它是神经网络具备充分拟合能力的灵魂。
采用该机制的原因分析:
  1. 捕捉长距离依赖关系:传统的神经网络模型在处理长文本时存在梯度消失和梯度爆炸问题,导致它们在捕捉长距离依赖关系时效率低下。而 自注意力机制 可以 直接 捕捉输入序列中任意位置之间的依赖关系,不管它们之间的距离有多远。这种能力对于理解复杂句子结构和长篇文章至关重要。eg:在处理句子时,"他给我买了一本书,它很有趣" 中的 "它" 是指代 "书"。自注意力机制能够通过计算每个词之间的关系,清楚地了解 "它" 指的是 "书" 而不是其他词汇。

  2. 并行化处理:RNN 和 LSTM 在训练时是 序列化的,也就是说,必须按顺序逐步处理每个输入词。这种顺序的处理方式限制了它们的计算效率。而 Attention 机制 的优势之一就是它能够对 整个输入序列 同时进行处理,而不需要逐步传递信息。这种 并行化处理 使得训练过程更加高效,特别是在大规模数据集上。eg:传统模型在处理句子时需要逐步计算,而 Attention 可以在同一时间计算每个词与其他词之间的关系,从而大大提高了计算效率。

  3. 灵活的上下文建模:自注意力机制通过计算每个词与输入序列中其他词之间的权重关系,能够根据上下文灵活调整对各个词的关注程度。比如在句子中,某个词可能会受到前后文词汇的影响,而 Attention 机制可以根据上下文动态地调整每个词的关注度,确保模型能够灵活地建模词语之间的 语义关系 和 依赖关系。eg:在句子 "他打破了窗户,感到非常羞愧" 中,模型通过自注意力机制能够理解 "感到羞愧" 是对 "打破窗户" 的反应,而不仅仅是孤立的情感。

  4. 表达能力强:通过计算 词与词之间的相似度,能够生成非常 丰富的上下文表示,即每个词都可以根据它与其他词的关系,拥有一个动态调整后的表示。这使得模型能更好地理解词汇之间的 多层次关系 和 复杂语境,比传统的固定词向量更加灵活和准确。

  5. 捕捉词语间的局部和全局信息:可以同时关注 局部 和 全局信息。在传统的 RNN 和 LSTM 中,模型的学习过程是逐步的,信息是逐步传递的,这使得模型难以同时捕捉局部的细节和全局的语境。而 Attention 机制通过计算所有词之间的关系,能够 并行 处理信息,并通过多头注意力机制(multi-head attention)进一步捕捉不同层次的语义信息。

  6. 多头注意力机制:Transformer 使用 多头注意力机制(Multi-head Attention),即将输入的注意力机制分为多个“头”,并且每个头关注输入的不同部分。这样可以让模型在不同的子空间中并行计算不同的注意力模式,从而增强模型的 表达能力 和 鲁棒性。每个头在不同的子空间中“看到”的信息可能不同,最终的输出是多个头信息的合并,从而增加了模型的综合理解能力。

  7. 可解释性和透明度:尽管神经网络通常被认为是“黑箱”,但 Attention 权重 可以提供一定程度的可解释性。当模型对某个词产生注意力时,我们可以看到模型关注了哪些词和它们之间的关系。这样,通过查看注意力矩阵,我们可以获得关于模型如何生成预测的一些见解,进而增强模型的透明度和可理解性。

  8. 更高效的训练和推理:由于 Attention 机制的并行性和高效性,它极大地缩短了训练和推理的时间,尤其在大规模数据集上。Transformer 模型(基于 Attention 机制)相比传统的 RNN/LSTM 更容易进行 大规模训练,同时生成速度也较快。因此,ChatGPT 能够处理更多的对话任务并生成快速响应。