Mixture-of-Depths: Dynamically allocating compute in transformer-based language models

本文是LLM系列文章,针对《Mixture-of-Depths: Dynamically allocating compute in transformer-based language models》的翻译。

深度混合:在基于transformer的语言模型中动态分配计算

摘要

基于Transformer的语言模型将FLOP均匀地分布在输入序列中。在这项工作中,我们证明了Transformer可以学习将FLOP(或计算)动态分配到序列中的特定位置,从而优化沿序列在模型深度上的不同层的分配。我们的方法通过限制token数量来强制执行总计算预算(𝑘) 其可以参与在给定层的自注意力和MLP计算。要处理的token由网络使用顶部确定-𝑘 路由机制。自从𝑘 是先验定义的,与其他条件计算技术不同,这个简单的过程使用具有已知张量大小的静态计算图。然而,由于的身份𝑘 token是流动的,这种方法可以在时间和模型深度维度上非均匀地消耗FLOP。因此,计算支出在总和上是完全可预测的,但在token级别是动态的和上下文敏感的。以这种方式训练的模型不仅可以学习动态分配计算,而且可以高效地进行分配。这些模型与等效FLOPS和壁时钟训练时间的基线性能相匹配,但每次前向传球需要一小部分FLOP,并且在训练后采样期间可以加快50%以上。

1 引言

2 背景

3 实现混合深度Transformer

4 结果

5 讨论

深度Transformer的混合经验证明,使用每次向前传播使用较少FLOP的模型,可以提高isoFLOP的最佳基线性能。这意味着,对于给定的训练FLOP预算,我们可以训练比基线模型更快、性能更好的模型。以前,为了训练比isoFLOP最优模型更快、性能更好的模型,必须使用盈

### DeepSeekMoE 中实现终极专家专业化的方法 #### 动态专业化路由 (Dynamic Specialization Routing) DeepSeek MoE 架构通过引入动态专业化路由(DSR),解决了传统Mixture-of-Experts(MoE)模型中存在的“伪专家”问题。相比于传统的基于门控机制来选择固定数量的活跃专家,DSR允许更灵活地分配计算资源给最合适的专家[^1]。 ```python def dynamic_specialization_routing(input_tensor, experts): # 计算输入张量与各专家之间的匹配度得分 scores = compute_scores(input_tensor, experts) # 根据得分挑选最适合处理当前任务的一个或多个专家 selected_expert_indices = select_best_experts(scores) return apply_selected_experts(selected_expert_indices, input_tensor) ``` #### 细粒度专家分割 为了进一步提高效率和效果,在构建专家网络时采用了细粒度的专家分割技术。这意味着每个子领域内的专业知识可以被更加精确地建模,从而使得每一个专家都能够专注于特定的任务特性而不是泛化整个数据集上的表现[^2]。 #### 共享专家隔离 除了上述两点外,还提出了共享专家隔离的概念。这不仅减少了冗余参数的数量,而且促进了不同模块间更好的协作关系。具体来说就是对于那些具有相似功能需求的部分采用相同的底层组件作为基础支持,而这些共同使用的部分则会被独立出来形成所谓的“共享层”。 这种设计既保持了各个分支之间必要的差异性又实现了整体结构上的一致性和简洁性,最终达到了更高的性能指标以及更低的成本开销。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UnknownBody

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值