Deepseek基座:Deepseek-v2核心内容解析

DeepSeek原创文章
1

DeepSeek-v3:基于MLA的高效kv缓存压缩与位置编码优化技术

2

Deepseek基座:DeepSeek LLM核心内容解析

3

Deepseek基座:Deepseek MOE核心内容解析

4

Deepseek基座:Deepseek-v2核心内容解析

5Deepseek基座:Deepseek-v3核心内容解析
6

DeepSeek推理能力(Reasoning)

DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model

Deepseek v2可以看作是上面那一篇paper的scale up,不过也有一些非常重要的技术。从论文名字可以看出来“A Strong, Economical, and Efficient”,他们提出了进一步降低成本的技术

DeepSeek-V2 是236B的混合专家模型(MoE),每个 token 激活21B,极大降低了推理成本 。相比第一代的 DeepSeek 67B,虽然模型规模更大(接近其4倍),但激活参数更少,推理效率更高 。

训练与推理成本优化

  • 训练成本降低 42.5%:相比 DeepSeek 67B,DeepSeek-V2 在保持更强性能的同时,显著减少了训练所需的计算资源 。
  • KV 缓存减少 93.3%:通过引入新的注意力机制 Multi-head Latent Attention(MLA),大幅压缩了 KV 缓存需求,从而降低了部署和推理成本 。
  • 生成速度提升 5.76 倍:在相同硬件条件下,DeepSeek-V2 的输出速度远超前代模型,提升了实际应用中的响应效率 。

Multi-head Latent Attention(MLA)

  • 这是 DeepSeek-V2 引入的一项关键技术,用于替代传统的多头注意力机制
  • MLA 通过引入潜在空间(latent space)进行注意力计算,减少了计算复杂度和内存占用,进一步提升了推理效率
  • 它不仅降低了 KV 缓存的需求,还使得模型能够支持更大的 batch size,从而提升整体吞吐量

DeepSeek-V2还支持 最长 128K tokens 的上下文长度

MLA

  • MLA 引入了一个 潜在空间(latent space),将原始的高维 Key 和 Value 向量映射到一个低维空间中进行存储。
  • 具体来说,模型先计算一个低秩的“压缩表示” $ C $,然后在需要时通过矩阵变换恢复出 Key 和 Value: $ K = W_K \cdot C, \quad V = W_V \cdot C $
  • 这种方法被称为 Low-Rank Key-Value Compression,大幅减少了存储需求,从而降低了 KV Cache 的占用 。

MLA 与其他注意力机制的对比

方法头数Key/Value 存储方式KV Cache 占用性能影响
MHA(多头注意力)多头每个头独立存储最佳
GQA(Grouped Query Attention)多组共享组内共享 Key/Value中等稍有下降
MQA(Multi-Query Attention)单头所有头共享 Key/Value明显下降
MLA(Multi-Head Latent Attention)多头压缩后的潜在向量极低接近 MHA
  • MLA 在保持多头注意力灵活性的同时,通过低秩压缩实现了接近 MQA 的显存效率,且性能损失极小 。

KV Cache

  • 在传统的 Transformer 模型中,多头注意力机制(MHA) 需要存储大量 Key 和 Value 向量(即 KV Cache),以加速生成过程中的自回归推理。
  • 这些向量的存储会占用大量 GPU 显存,尤其是在处理长上下文时,成为部署成本的主要瓶颈。
  • DeepSeek-V2 提出 Multi-Head Latent Attention(MLA),旨在通过压缩 KV Cache 来显著降低推理时的显存占用和计算开销。

KV Cache 压缩效果 - 实验表明,MLA 可将 KV Cache 减少 93%,使得模型在长文本生成任务中更加高效。 - 例如,在生成 128K token 的任务中,MLA 显著降低了内存占用,提升了吞吐量和响应速度 。

说一下为什么kv cache不cache q,q不是也包含历史信息了吗,怎么不把q缓存一下?

因为transformer是自回归模型,每一次的结果都被当成新的q,所以缓存起来没意义,它只用一次,是动态变化的。而k和v则是需要经常复用,所以每次模型输出结果后,只需要把最新的token向量拿出来,进行权重矩阵计算后,直接和缓存后的k和v拼接在一起, 而不像以前需要每个token进行权重矩阵的重复计算。所以kv cache节约的是,k和v与对应权重矩阵的计算。

与 GQA 的对比

  • 传统的 GQA通过共享部分head来减少 KV Cache 的大小。例如,16 个头分成 4 组,每组共享 K/V。
  • MLA 相当于使用了 约 2.25 个 group 的 GQA,但性能远优于同等 group 数量的 GQA,即在更小的显存消耗下保持了更高的模型效果 。

小结

方面DeepSeek 的做法
注意力机制提出 MLA,显著压缩 KV Cache,提升推理效率
MoE 架构使用大量专家(如 160 个),提升稀疏性和模型表达能力
平衡策略注重专家和设备间的负载均衡,提高训练效率和资源利用率

原创文章
1FFN前馈网络与激活函数技术解析:Transformer模型中的关键模块
2Transformer掩码技术全解析:分类、原理与应用场景
3【大模型技术】Attention注意力机制详解一
4Transformer核心技术解析LCPO方法:精准控制推理长度的新突破
5Transformer模型中位置编码(Positional Embedding)技术全解析(二)
6Transformer模型中位置编码(Positional Embedding)技术全解析(一)
7自然语言处理核心技术词嵌入(Word Embedding),从基础原理到大模型应用
8DeepSeek-v3:基于MLA的高效kv缓存压缩与位置编码优化技术
9

【Tokenization第二章】分词算法深度解析:BPE、WordPiece与Unigram的原理、实现与优化

10Tokenization自然语言处理中分词技术:从传统规则到现代子词粒度方法
11[预训练]Encoder-only架构的预训练任务核心机制
12【第一章】大模型预训练全解析:定义、数据处理、流程及多阶段训练逻辑
13(第一章)深度学习标准化技术综述: 从BatchNorm到DeepNorm的演进与实战
14Transformer架构解析:Encoder与Decoder核心差异、生成式解码技术详解

内容概要:本文详细介绍了HarmonyOS应用开发中Navigation菜单栏的设置方法及其重要性。文章首先阐述了Navigation组件的作用,指出它是构建流畅用户体验的关键,支持单栏、分栏和自适应三种显示模式。接着强调了菜单栏设置对用户体验的影响,通过具体案例展示了优化菜单栏能显著提升用户活跃度和应用留存率。随后,文章逐步讲解了菜单栏设置前的开发环境搭建、对Navigation组件的理解,以及菜单栏的具体设置步骤,包括基础设置、不同显示模式下的设置、标题栏与菜单栏的协同设置。最后,文章总结了菜单栏设置中的常见问题及解决方法,并提供了优化菜单栏设置的技巧,如合理规划菜单项数量、选择合适的图标和文本、提升菜单栏交互性。 适合人群:具备一定HarmonyOS开发基础的研发人员,尤其是希望提升用户体验的开发者。 使用场景及目标:①掌握HarmonyOS Navigation组件的基本功能和设置方法;②了解如何通过优化菜单栏设置提升用户体验;③解决菜单栏设置过程中常见的问题;④学习优化菜单栏设置的实用技巧,如合理规划菜单项数量、选择合适的图标和文本、提升菜单栏交互性。 其他说明:本文不仅提供了详细的菜单栏设置步骤和技术要点,还结合实际案例展示了菜单栏优化的效果,帮助开发者更好地理解和应用相关知识。此外,文中提到的开发工具和环境配置信息对初次接触HarmonyOS开发的人员尤其有用。
### DeepSeek InternLM3-8B-Instruct 模型介绍 DeepSeek InternLM3-8B-Instruct 是一款基于千亿基座模型 GLM-130B 的大型语言模型,经过特定优化和调整以适应不同的应用场景。该模型不仅具备强大的问答、多轮对话功能,还支持代码生成,能够理解和执行复杂的编程任务[^3]。 此版本特别强调了人类意图对齐,即通过有监督微调等方式确保模型输出更贴近用户的实际需求。这种设计使得它非常适合用于教育领域以及各种需要精准理解上下文的应用场景。 ### 使用方法概述 对于希望利用 DeepSeek InternLM3-8B-Instruct 进行开发或研究的人来说,可以借助 `lmdeploy` 工具来进行高效的部署工作。以下是简化的操作指南: #### 安装依赖库 首先安装必要的 Python 库和其他工具链,这一步骤通常包括但不限于 PyTorch 和 Transformers 等常用框架。 ```bash pip install torch transformers lmdeloy ``` #### 下载并加载模型 接着从指定仓库获取目标模型文件,并将其加载至内存中准备后续调用。 ```python from transformers import AutoModelForCausalLM, AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("internlm/internlm2_5-7b-chat") model = AutoModelForCausalLM.from_pretrained("internlm/internlm2_5-7b-chat") ``` 注意这里虽然例子给出的是 "internlm2_5-7b-chat" ,但对于具体到 DeepSeek InternLM3-8B-Instruct,则需替换为对应的 ID 或路径[^4]。 #### 构建交互界面 最后构建简单的命令行或者图形化用户接口来接收输入并向用户提供反馈结果。 ```python while True: user_input = input("请输入您的问题:") inputs = tokenizer(user_input, return_tensors="pt") outputs = model.generate(**inputs) response = tokenizer.decode(outputs[0], skip_special_tokens=True) print(f"模型回复:{response}") ``` 以上代码片段展示了如何创建一个简易的聊天机器人程序,允许用户与模型实时交流互动。 ### 教程推荐 考虑到国内开发者的需求特点,《开源大模型食用指南》提供了详尽易懂的操作手册,涵盖了从基础环境搭建直至高级特性探索等多个方面。这份文档尤其适合初次接触此类技术的新手阅读学习,其中包含了大量实用技巧和最佳实践案例,有助于加速掌握相关技能[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值