What is 注意力机制?

    Transformer模型中的一种机制,允许每个token在计算其表示时动态地加权并关注输入序列中最相关的部分。

    Definition

    注意力是基于Transformer的语言模型内部的核心计算机制。它通过允许序列中的每个token「查看」并从其他每个token中收集信息,使模型能够构建上下文感知的表示。与使用固定大小记忆从左到右处理文本的RNN不同,注意力计算输入中每对token之间的直接加权连接,使模型能够捕获长距离依赖关系和细微的语义关联。

    标准的注意力机制——称为缩放点积注意力——通过将每个token的嵌入投影到三个向量来工作:查询(Q)、键(K)和值(V)。注意力分数计算为每个查询与所有键的点积,除以键维度的平方根进行缩放,然后通过softmax产生概率分布。这个分布决定了每个token的值对查询token输出表示的贡献程度。高注意力分数意味着两个token在上下文中高度相关。

    现代Transformer使用多头注意力,它并行运行多个独立的注意力计算(「头」),每个在嵌入的不同学习子空间上操作。这允许模型同时关注不同类型的关系——例如,一个头可能捕获句法依赖,而另一个捕获语义相似性。所有头的输出被拼接并投影回模型维度。分组查询注意力(GQA)和多查询注意力(MQA)等变体通过在头之间共享键和值投影来降低注意力的内存成本。

    Why It Matters

    注意力赋予了语言模型理解上下文、消除歧义和在长篇文本中保持连贯性的卓越能力。没有注意力,模型在处理「洪水冲垮了河岸」时就无法知道「bank」指的是哪个含义。注意力也是微调影响最大的地方——LoRA适配器通常应用于注意力投影矩阵(Q、K、V和输出),因为这些组件最大程度地决定了模型如何解释和关联信息。理解注意力有助于从业者诊断模型行为并做出明智的微调决策。

    How It Works

    对于输入序列中的每个token,注意力层计算Q = W_q × x,K = W_k × x和V = W_v × x,其中x是token的嵌入,W_q、W_k、W_v是学习的权重矩阵。token i和token j之间的注意力分数计算为(Q_i · K_j) / √d_k,其中d_k是键维度。这些分数通过softmax产生总和为1的注意力权重。token i的输出是根据这些权重对所有V向量的加权求和。在因果(仅解码器)模型中,掩码阻止token关注未来位置,保持自回归特性。整个计算使用GPU上高效的矩阵乘法在所有token和所有头之间并行执行。

    Example Use Case

    一位开发者分析为什么他们的微调模型误解某些查询时,使用注意力可视化检查模型关注了哪些token。他们发现模型在提示中过度关注通用停用词,而不是领域特定术语。在添加更多强调领域术语的多样化训练样本后,注意力模式得到了适当的调整,模型在这些查询类型上的准确率提高了23%。

    Key Takeaways

    • 注意力让每个token动态地关注输入序列中最相关的部分。
    • 缩放点积注意力使用查询、键和值投影来计算加权关系。
    • 多头注意力在不同子空间中并行捕获多种关系类型。
    • LoRA微调以注意力投影矩阵为目标,因为它们对模型行为的影响最大。
    • 仅解码器模型中的因果掩码阻止token关注未来位置。

    How Ertas Helps

    当用户在Ertas Studio中使用LoRA微调模型时,适配器主要应用于注意力层——特别是查询、键、值和输出投影矩阵。Ertas的默认配置以这些层为目标,因为研究表明它们在可训练参数方面提供最佳回报。高级用户可以通过Studio的配置面板自定义要目标的注意力层,对微调过程进行精细控制。

    Related Resources

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.