免费建站的网站有哪些,建设部统计快报网站,杭州电商网站平台开发公司,福建建设工程信息网注 本文参考 DeepSeek-v3 / v2 / v1 Technical Report 及相关参考模型论文本文不包括基础的知识点讲解#xff0c;为笔记/大纲性质而非教程#xff0c;建议阅读技术报告原文交流可发送至邮箱 henryhua0721foxmail.com 架构核心
核心#xff1a;
MLA 高效推理DeepSeekMOE 更… 注 本文参考 DeepSeek-v3 / v2 / v1 Technical Report 及相关参考模型论文本文不包括基础的知识点讲解为笔记/大纲性质而非教程建议阅读技术报告原文交流可发送至邮箱 henryhua0721foxmail.com 架构核心
核心
MLA 高效推理DeepSeekMOE 更经济的训练MTP 提高模型性能
架构上看主要改进在于Attention层和FFN层
MLA 参考deepseekv2的technical report内容 KV cache
类GPT模型的decoder架构在推理时一个个token输出每一次输出都作为下一次输出的输入带来大量重复计算。KV cache空间换时间降低推理复杂度。
w/o KV cache
每一次推理计算attention时当前token前的token QK计算在前面步骤被重复计算结果可以使用KV cache存储而非再次计算。 huggingface/transformers/gpt2的KV cache代码 if layer_past is not None:past_key, past_value layer_pastkey_states torch.cat((past_key, key_states), dim-2)value_states torch.cat((past_value, value_states), dim-2)if use_cache is True:present (key_states, value_states)else:present NoneKV cache存在的问题对GPU memory的需求巨大 解决办法
QuantizationDeepseek减小输入以减小cache
Letent KV 使用letent KV替代传统KV存储到cache中。对kv压缩
传统attentionk Wh / v Whlatent KV使用更小的letent变量c作为中间变量可以表示 k/v存储cache
在推理的时候本质上不需要计算出单独的k和v变量 计算q*kT的时候可以使用线性代数运算使得不需要单独提出参数矩阵而是可以化为大的参数矩阵图中 W^ QT 和 W^ UK 相乘 同样对key压缩
Decouple RoPE
参考Multi-Head Latent Attention: Boosting Inference Efficiency RoPE的引入导致q和k都被R矩阵加权对KV cache造成的损害
解决办法引入新的multi-head queries和不做低秩分解的q相同
每个 attn 层额外增加 multi-head queries q^R添加共享的key用于 k^R再将 q^ R 和低秩分解的 q、k^R 和低秩分解的k concate起来 huggingface discussion上似乎提供了更sufficient方法将rope part和none-rope part进行sum up而非concatenate 链接找不到了qwq KV cache存储的
c^KVk^R
DeepSeekMOE
MOE
大语言模型主要的计算量集中在attention层参数量集中在FFN层。 MoE的本质是将FFN分组。好处在于模型易于scale up以及降低cost。 Gate将输入计算前往各个FFN分组的概率
Dense MoE计算每个分支的概率并进行加权Sparse MoE取概率top-k
每个expert是两个MLP层。 传统MoE的问题学习知识重合、expert之间无法区分 - DeepSeekMOE
Load Balance
传统MOE训练出现马太效应某个单个expert训练较好引导gate划分更多token给它训练导致单个expert过拟合、其他expert欠拟合。
Load balance的解决办法
(Switch transformer) loss control在损失函数中制约(DeepSeek) loss free添加bias DeepSeekMOE
划分更小的exert设置某些共享expert学习常识 Fine-grained Expert Segmentation N expert - 2N experttop2 - top4。降低每个expert两层MLP中间层宽度使得model整体参数量没有变大但是减小了模型variance Shared Expert Isolationshared expert 具有error correction机制大多数问题shared expert会回答通其他expert专进行correct
load balance
添加bias 通过添加bias手动提高softmax后某些expert的概率。在训练中观察后不断进行调整但是不属于loss的范畴 sequence-wise balance loss区别于传统的token-wise Node-limited Routing训练时限制每个token只送到M个nodes中降低通信成本。No token-droppingtoken-dropping是对于load balance比较高的expert drop掉新的token input直接过残差层不经过FFN。这里不使用因为上面的方法已解决load balance。
MTP Deepseek MTP参考 Meta MTPEAGLE 当前language model的训练方式导致的问题
teaching force导致training每次输入的都是perfect contentNTP导致近视planning能力差每次只预测下一个tokentraining signal较弱
- 一次预测多个token MTP
Meta MTP
将head分组每个head负责一个token
training singal更强每一层都有反馈一次预测4个token加强planning能力缓解teaching force问题不再过于local
但是并行heads违背了auto regression的想法打破前后依赖 - EAGLE使用auto regression heads
Speculative Decoding
LLM inference的问题 - Slow
KV cachespeculative decoding quick guess小模型快但精度低cheap verification大模型慢但精度高
实现方式
independent两个LLM一大一小 简化过程小LM生成sequence后给大LM计算每个token概率若一致则accept否则从reject token开始重新生成实际上使用小LM加速大LM生成过程大LM生成过程中实时纠错 self只借助大LLM中间某些head实现 Medusa / EAGLE 模型
DeepSeek MTP
使用类似EAGLE的casual arc而不是parallel替换META MTP中的实现