b
bird-of-paradise/deepseek-mla
模型介绍文件和版本分析
下载使用量0

DeepSeek 多头潜在注意力机制

本仓库提供了 DeepSeek-V2 论文中提出的多头潜在注意力(MLA)机制的 PyTorch 实现。请注意这不是训练好的模型,而是一个模块化的注意力实现,通过其创新架构在保持模型性能的同时显著减少 KV 缓存,从而实现高效推理。它可作为即插即用的注意力模块应用于 Transformer 架构中。

本仓库是 DeepSeek 论文关键架构创新实现系列的一部分。完整系列请参见相关实现章节。

核心特性

  • 低秩键值联合压缩:降低推理过程中的内存占用
  • 解耦式旋转位置编码:实现高效的位置感知注意力
  • 优化缓存管理:同时处理压缩的 KV 状态和旋转嵌入
  • 交叉注意力支持:适用于自注意力与交叉注意力场景

安装方式

克隆本仓库:

git clone https://huggingface.co/bird-of-paradise/deepseek-mla

或者直接从 HuggingFace 仓库页面下载。

快速开始

import torch
from src.mla import MultiHeadLatentAttention

# Initialize MLA
mla = MultiHeadLatentAttention(
    d_model=512,      # Model dimension
    num_head=8,       # Number of attention heads
    d_embed=512,      # Embedding dimension
    d_c=64,          # KV compression dimension
    d_c1=64,         # Query compression dimension
    d_rotate=32,     # Rotary embedding dimension
)

# Input sequence
x = torch.randn(2, 10, 512)  # [batch_size, seq_len, d_model]

# Forward pass
output = mla(x)

测试

要运行测试套件,请在项目根目录下执行以下命令:

python -m src.tests.test_mla

架构详情

MLA 架构图

MLA 融合了两大核心创新:

  1. 采用低秩压缩路径实现高效的 KV 缓存
  2. 使用 RoPE 的解耦位置感知路径

如需了解详细架构设计,请参阅 insights/architecture.md。

缓存机制

在推理过程中,MLA 会维护两个缓存:

cache_kv: [batch, max_len, d_c]    # Compressed KV states
cache_rk: [batch, max_len, d_r]    # Shared rotary key

有关注意力掩码与缓存的详细解析,请参阅 insights/attention_mask.md。

使用示例

基础注意力机制

# Standard self-attention
output = mla(sequence)

# Cross-attention
output = mla(query, key_value_states=context)

缓存式生成

# Initial forward pass
output = mla(prompt, use_cache=True, start_pos=0)

# Generate tokens using cache
for i in range(max_new_tokens):
    output = mla(next_token, use_cache=True, start_pos=prompt_len + i)

实现细节

本实现严格遵循 DeepSeek-V2 论文中的公式框架:

MLA 公式

核心特性:

  • 查询与键值分离的压缩路径
  • 通过解耦 RoPE 路径实现位置编码
  • 双路径高效缓存管理机制

相关实现

本仓库是 DeepSeek 论文核心架构创新系列实现的一部分:

  1. DeepSeek 多头潜在注意力机制(当前仓库):实现 DeepSeek MLA 机制,用于推理期间高效利用 KV 缓存。

  2. DeepSeek 混合专家模型:实现 DeepSeek 的混合专家架构,支持模型参数的高效扩展。

  3. Transformer 实现教程:详解 Transformer 架构实现的教程,包含核心组件的原理解析。

这些实现共同涵盖了支撑 DeepSeek 尖端性能的核心创新技术。通过将混合专家架构与多头潜在注意力机制相结合,您可以构建完整的 DeepSeek 风格模型,获得更高的训练效率和推理性能。

贡献指南

我们欢迎各类贡献!您可以:

  • 报告程序缺陷与问题
  • 提交改进功能的拉取请求
  • 补充测试用例
  • 完善文档说明

请在提交拉取请求前确保所有测试用例均通过。

引用文献

@misc{deepseek2024,
    title={DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model}, 
    author={DeepSeek-AI and et al.},
    year={2024},
    journal={arXiv preprint arXiv:2405.04434}
}

许可协议

MIT 许可证


license: mit