DeepSpeed MoE

2024-06-11 06:36
文章标签 deepspeed moe

本文主要是介绍DeepSpeed MoE,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MoE概念

模型参数增加很多;计算量没有增加(gating+小FNN,比以前的大FNN计算量要小);收敛速度变快;

效果:PR-MoE > 普通MoE > DenseTransformer

MoE模型,可视为Sparse Model,因为每次参与计算的是一部分参数;

Expert并行,可以和其他并行方式,同时使用:

 ep_size指定了MoE进程组大小,一个模型replica的所有MoE都分布在mp_size这些GPU卡上。

下例,启动2个DP replica,每个DP replica包含2个MoE rank,每个MoE rank包含4个MoE FFN,每个GPU放置一个MoE rank;

import torch
import deepspeed
import deepspeed.utils.groups as groups
from deepspeed.moe.layer import MoEWORLD_SIZE = 4
EP_WORLD_SIZE = 2
EXPERTS = 8fc3 = torch.nn.Linear(84, 84)
fc3 = MoE(hidden_size=84, expert=self.fc3, num_experts=EXPERTS, ep_size=EP_WORLD_SIZE, k=1)
fc4 = torch.nn.Linear(84, 10)

节约显存的方式:

1. 配置好ZeRo

2. 配置好fp16

    "fp16": {"enabled": true,"fp16_master_weights_and_grads": true,}

支持PR-MoE

Pyramid: 金字塔 ;前面的层,Experts数量少些,后面的层Experts数量多些;

Residual:每层都过一个固定的MLP,并和选中的Expert输出结果,相加;

支持Random Token Selection

推理

import deepspeed
import torch.distributed as dist# Set expert-parallel size
world_size = dist.get_world_size()
expert_parallel_size = min(world_size, args.num_experts)# create the MoE model
moe_model = get_model(model, ep_size=expert_parallel_size)
...# Initialize the DeepSpeed-Inference engine
ds_engine = deepspeed.init_inference(moe_model,mp_size=tensor_slicing_size,dtype=torch.half,moe_experts=args.num_experts,checkpoint=args.checkpoint_path,replace_with_kernel_inject=True,)
model = ds_engine.module
output = model('Input String')

如果Experts数目大于GPU数目, 均分在各个GPU上;如果小于,则Expert将被切片,均分到各个GPU上;

注意:ep_size, mp_size(模型并行),dtype为half, 优化版kernel的使用replace_with_kernel_inject=True;

generate_samples_gpt.py \--tensor-model-parallel-size 1 \--num-experts ${experts} \--num-layers 24 \--hidden-size 2048 \--num-attention-heads 32 \--max-position-embeddings 1024 \--tokenizer-type GPT2BPETokenizer \--load $checkpoint_path \--fp16 \--ds-inference \

PR-MoE, 前面那些层的experts个数少,后面的多:

experts="64 64 64 64 64 64 64 64 64 64 128 128"
generate_samples_gpt.py \--tensor-model-parallel-size 1 \--num-experts ${experts} \--mlp_type 'residual' \--num-layers 24 \--hidden-size 2048 \--num-attention-heads 16 \--max-position-embeddings 1024 \--tokenizer-type GPT2BPETokenizer \--load $checkpoint_path \--fp16 \--ds-inference \

--mlp_type指定使用PR-MoE,推理latency更块;

这篇关于DeepSpeed MoE的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1050418

相关文章

第一个100%开源的MoE大模型,7B的参数,1B的推理成本

尽管大语言模型 (LM) 在各种任务上取得了重大进展,但在训练和推理方面,性能和成本之间仍然需要权衡。 对于许多学者和开发人员来说,高性能的 LM 是无法访问的,因为它们的构建和部署成本过高。改善成本 - 性能的一种方法是使用稀疏激活混合专家 (MoE)。MoE 在每一层都有几个专家,每次只激活其中的一个子集(参见图 2)。这使得 MoE 比具有相似参数量的密集模型更有效,因为密集模型为每个

最强MoE完全开源模型发布啦~

这篇文章介绍了OLMOE(Open Mixture-of-Experts Language Models)系列模型,这是一款开源的稀疏混合专家模型。OLMOE-1B-7B拥有70亿参数,但每个输入令牌仅使用10亿参数。该模型在5万亿令牌上进行预训练,并进一步适应以创建OLMOE-1B-7B-INSTRUCT。这些模型在相似活跃参数的模型中表现最佳,甚至超越了更大的模型,如Llama2-13B-

推动专家混合模型的极限:用于指令调优的极端参数高效MoE

人工智能咨询培训老师叶梓 转载标明出处 MoE是一种在特定子任务上具有专门化子模型(专家)的神经网络架构,这些子模型可以独立优化,以提高整体性能。然而,传统的MoE在大规模应用时面临挑战,因为需要在内存中存储所有专家。这不仅增加了内存的需求,而且在完全微调(full fine-tuning)时计算成本极高。为了克服这些限制,Cohere for AI的研究团队提出了一种极端参数高效的MoE方法。

一文通透DeepSeek-V2(改造Transformer的中文模型):从DeepSeek LLM到DeepSeek-V2的MLA与MoE

前言 成就本文有以下三个因素 24年5.17日,我在我司一课程「大模型与多模态论文100篇」里问道:大家希望我们还讲哪些论文 一学员朋友小栗说:幻方发布的deepseek-v224年5.24日,我司一课程「大模型项目开发线上营1」里的一学员朋友问我:校长最近开始搞deepseek了吗?刚看了论文,没搞懂MLA那块的cache是怎么算的,我总觉得他的效果应该类似MQA才对,但是反馈是挺好的 我当

【大模型理论篇】Mixture of Experts(混合专家模型, MOE)

1. MoE的特点及为什么会出现MoE 1.1 MoE特点          Mixture of Experts(MoE,专家混合)【1】架构是一种神经网络架构,旨在通过有效分配计算负载来扩展模型规模。MoE架构通过在推理和训练过程中仅使用部分“专家”(子模型),优化了资源利用率,从而能够处理复杂任务。         在具体介绍MoE之前,先抛出MoE的一些表现【2】: 与密集模型相

大话MoE混合专家模型

MoE(Mixture of Experts),专家混合,就像是人工智能界的超级团队。想象一下,每个专家都有自己的拿手好戏,比如医疗问题找医生,汽车故障找机械师,做饭找大厨。MoE也是这样,它把难题拆分成小块,交给擅长处理特定问题的专家小组。这样一来,整个团队就能更高效、更精准地搞定各种复杂任务。就像是一群各有所长的专家联手,比单打独斗的通才解决问题的能力要强得多。 让我们看看下面的图表——我们

微软发布 Phi-3.5 系列模型,涵盖端侧、多模态、MOE;字节 Seed-ASR:自动识别多语言丨 RTE 开发者日报

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文章 」、「有看点的 会议 」,但内容仅代表编辑的个人观点,欢迎大家留言、跟帖、讨论。 本期编辑:@SSN,@鲍勃 01 有话题的新闻

k8s volcano + deepspeed多机训练 + RDMA ROCE+ 用户权限安全方案【建议收藏】

前提:nvidia、cuda、nvidia-fabricmanager等相关的组件已经在宿主机正确安装,如果没有安装可以参考我之前发的文章GPU A800 A100系列NVIDIA环境和PyTorch2.0基础环境配置【建议收藏】_a800多卡运行环境配置-CSDN博客文章浏览阅读1.1k次,点赞8次,收藏16次。Ant系列GPU支持 NvLink & NvSwitch,若您使用多GPU卡的机型,

deepspeed win11 安装

目录 git地址: aio报错: 编译 报错 ops已存在: 修改拷贝代码: git地址: Bug Report: Issues Building DeepSpeed on Windows · Issue #5679 · microsoft/DeepSpeed · GitHub aio报错: setup.py 配置变量 os.environ['DISTUTILS_U

混合专家系统MOE

混合专家系统MOE概述 混合专家系统(Mixtures of Experts, MOE)是一种集成学习方法,它通过结合多个“专家”模型来解决复杂的学习任务,每个专家专注于数据的不同方面或子空间。这种方法旨在提高模型的适应性和表达能力,尤其适合处理具有高度多样性和复杂性的数据集。下面是MOE系统的一个综合概述: 基本构成: 专家(Experts): MOE的核心组成部分是一组专家模型,每个专