1. 研究背景与问题定义

1.1 Transformer扩展的现状

现代大语言模型的训练通常需要从头开始训练更大的模型,因为标准Transformer架构在扩展时难以保留已学习的表示1

  • 宽度扩展:增加隐藏维度可能导致表示崩溃
  • 深度扩展:增加层数可能导致信息丢失
  • 注意力机制的瓶颈:线性投影限制了特征提取能力

1.2 核心问题识别

Nexusformer论文《Nexusformer: Nonlinear Attention Expansion for Stable and Inheritable Transformer Scaling》识别了注意力机制中线性投影的核心瓶颈1

核心发现:标准注意力机制中的线性投影严格限制了特征提取为有限秩(low-rank)的操作,限制了模型捕获高阶交互的能力。

1.3 现有解决方案的局限

方法局限性
更大的隐藏维度计算和存储成本二次增长
更多注意力头每个头仍然是有限秩
FlashAttention优化计算但未改变表示能力
稀疏注意力引入稀疏性但丢失信息

2. 核心贡献:非线性注意力扩展

2.1 核心思想

Nexusformer提出非线性注意力扩展(Nonlinear Attention Expansion)

┌─────────────────────────────────────────────────────────────────────────┐
│                       标准注意力 vs Nexusformer                         │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│  标准注意力(有限秩瓶颈):                                               │
│                                                                          │
│  Q = X W_Q    K = X W_K    V = X W_V                                  │
│       │            │            │                                        │
│       ▼            ▼            ▼                                        │
│  ┌─────────────────────────────────┐                                   │
│  │   Softmax(Q K^T/√d) @ V        │  ← 有限秩表示                      │
│  └─────────────────────────────────┘                                   │
│                                                                          │
│  Nexusformer(非线性扩展):                                             │
│                                                                          │
│  Q = X W_Q    K = X W_K    V = X W_V                                  │
│       │            │            │                                        │
│       ▼            ▼            ▼                                        │
│  ┌─────────────────────────────────┐                                   │
│  │   φ(Q) φ(K)^T/√d @ φ(V)        │  ← 非线性扩展                     │
│  └─────────────────────────────────┘                                   │
│       │                                                                   │
│       ▼                                                                   │
│  ┌─────────────────────────────────┐                                   │
│  │   残差连接 + 可学习融合          │  ← 保留原始信息                   │
│  └─────────────────────────────────┘                                   │
│                                                                          │
└─────────────────────────────────────────────────────────────────────────┘

2.2 非线性投影函数

Nexusformer使用可学习的非线性投影

其中:

  • 是GELU激活函数
  • ,
  • 是扩展维度(

2.3 可继承的缩放策略

Nexusformer的关键创新是可继承的缩放(Inheritable Scaling)

设原始维度为 ,扩展维度为 ,则:

其中 是可学习的缩放参数。

3. 技术框架

3.1 扩展注意力机制

数学形式化

设输入 ,标准注意力的输出为:

Nexusformer的非线性扩展为:

3.2 残差连接设计

为了保持原始表示的完整性,引入双路径架构

其中 是可学习的融合权重。

3.3 层级缩放

层级缩放因子

新的层输出:

4. 理论分析

4.1 表达能力增强

定理(秩增强):设 是非线性投影,则对于任意输入

证明思路:非线性函数打破了线性映射的秩约束,可以产生更高秩的表示。

4.2 缩放稳定性

定理(稳定缩放):设模型参数为 ,新旧维度的关系为 ,则:

这意味着梯度在缩放后保持稳定。

4.3 表示继承

引理(表示继承):在新模型中保留的原始表示比例:

通过残差连接,可以保证

5. 实验结果

5.1 缩放实验

从小型模型到大型模型的扩展

源模型目标模型标准TransformerNexusformer
7B13B52.3%58.1%
13B34B54.1%61.2%
34B70B55.8%63.5%

5.2 深度扩展实验

从浅层到深层的扩展

层数标准TransformerNexusformer
1260.2%61.8%
2458.1%64.2%
4852.3%65.1%
9645.8%63.8%

关键观察:标准Transformer在深层性能急剧下降,而Nexusformer保持稳定。

5.3 迁移学习实验

任务标准微调Nexusformer扩展
常识推理65.2%71.8%
数学推理42.1%48.3%
代码生成51.3%57.2%

6. 与其他方法的对比

6.1 与标准Transformer的区别

特性标准TransformerNexusformer
投影类型线性非线性
秩约束有限秩可扩展秩
缩放稳定性
表示继承
计算开销-+15-20%

6.2 与其他扩展方法的对比

方法扩展类型稳定性表示继承
Stack and Stretch深度中等
Depth Up深度
Nexusformer宽度+深度

7. 代码实现

7.1 非线性投影

import torch
import torch.nn as nn
import torch.nn.functional as F
import math
 
class NonlinearProjection(nn.Module):
    """
    非线性投影模块
    将线性投影扩展到非线性空间
    """
    def __init__(self, d_model, expansion_ratio=2):
        super().__init__()
        self.expansion_dim = d_model * expansion_ratio
        
        self.net = nn.Sequential(
            nn.Linear(d_model, self.expansion_dim),
            nn.GELU(),
            nn.Linear(self.expansion_dim, d_model)
        )
        
    def forward(self, x):
        return self.net(x)
 
 
class NexusAttention(nn.Module):
    """
    Nexusformer注意力机制
    结合非线性投影和残差连接
    """
    def __init__(self, d_model, num_heads, expansion_ratio=2):
        super().__init__()
        self.d_model = d_model
        self.num_heads = num_heads
        self.d_head = d_model // num_heads
        
        # 非线性投影
        self.q_proj = NonlinearProjection(d_model, expansion_ratio)
        self.k_proj = NonlinearProjection(d_model, expansion_ratio)
        self.v_proj = NonlinearProjection(d_model, expansion_ratio)
        
        # 输出投影
        self.out_proj = nn.Linear(d_model, d_model)
        
        # 残差融合权重
        self.fusion_weight = nn.Parameter(torch.ones(1))
        
    def forward(self, x, mask=None):
        B, N, C = x.shape
        
        # 非线性投影
        Q = self.q_proj(x).view(B, N, self.num_heads, self.d_head).transpose(1, 2)
        K = self.k_proj(x).view(B, N, self.num_heads, self.d_head).transpose(1, 2)
        V = self.v_proj(x).view(B, N, self.num_heads, self.d_head).transpose(1, 2)
        
        # 注意力计算
        scale = math.sqrt(self.d_head)
        attn = torch.matmul(Q, K.transpose(-2, -1)) / scale
        attn = F.softmax(attn, dim=-1)
        
        # 输出
        out = torch.matmul(attn, V)
        out = out.transpose(1, 2).contiguous().view(B, N, C)
        out = self.out_proj(out)
        
        # 残差融合
        fusion = torch.sigmoid(self.fusion_weight)
        out = fusion * out + (1 - fusion) * x
        
        return out

7.2 层级缩放模块

class LayerwiseScaling(nn.Module):
    """
    层级缩放模块
    自适应控制每层的残差强度
    """
    def __init__(self, d_model):
        super().__init__()
        self.readout = nn.Sequential(
            nn.Linear(d_model, d_model // 4),
            nn.GELU(),
            nn.Linear(d_model // 4, 1),
            nn.Sigmoid()
        )
        
    def forward(self, h_prev):
        """
        Args:
            h_prev: 上一层的输出 [B, N, d_model]
        Returns:
            缩放因子 lambda
        """
        # 全局池化
        pooled = h_prev.mean(dim=1)  # [B, d_model]
        
        # 计算缩放因子
        scale = self.readout(pooled)  # [B, 1]
        
        return scale

7.3 完整Transformer块

class NexusformerLayer(nn.Module):
    """
    Nexusformer层
    完整的注意力 + 前馈网络块
    """
    def __init__(self, d_model, num_heads, expansion_ratio=2, mlp_ratio=4):
        super().__init__()
        
        # Nexus注意力
        self.attention = NexusAttention(d_model, num_heads, expansion_ratio)
        self.norm1 = nn.LayerNorm(d_model)
        
        # 前馈网络
        self.mlp = nn.Sequential(
            nn.Linear(d_model, d_model * mlp_ratio),
            nn.GELU(),
            nn.Linear(d_model * mlp_ratio, d_model)
        )
        self.norm2 = nn.LayerNorm(d_model)
        
        # 层级缩放
        self.layer_scale = LayerwiseScaling(d_model)
        
    def forward(self, x, mask=None):
        # 注意力子层
        h = self.norm1(x)
        h = self.attention(h, mask)
        
        # 层级缩放
        scale = self.layer_scale(h)
        x = scale * h + (1 - scale) * x
        
        # 前馈子层
        h = self.norm2(x)
        h = self.mlp(h)
        x = scale * h + (1 - scale) * x
        
        return x

8. 总结与展望

8.1 主要贡献

  1. 识别瓶颈:揭示了线性投影对Transformer表示能力的限制
  2. 非线性扩展:提出非线性注意力扩展方法
  3. 稳定缩放:实现可继承的模型缩放
  4. 实验验证:在多个基准上验证了方法的有效性

8.2 局限性

  1. 计算开销:非线性投影增加了约15-20%的计算
  2. 超参数敏感:扩展比例需要仔细调优
  3. 与其他技术结合:尚未充分探索

8.3 未来方向

  • 更高效的非线性投影实现
  • 与其他注意力变体的结合
  • 在不同模态上的应用

参考文献

相关资源

Footnotes

  1. Zhao et al. (2026): “Nexusformer: Nonlinear Attention Expansion for Stable and Inheritable Transformer Scaling”, arXiv:2604.19147 2