Ouzhang's picture
Add files using upload-large-folder tool
d91766b verified
Raw
History Blame Contribute Delete
3.05 kB
from diffulex.moe.config import (
get_mlp_only_layers,
get_moe_intermediate_size,
get_num_experts,
get_num_experts_per_tok,
get_norm_topk_prob,
is_moe_layer,
)
from diffulex.distributed.parallel_state import fetch_parallel_state
def build_mlp_or_moe(config, layer_idx: int, dense_factory):
"""Build a dense MLP or MoE block according to the config."""
if is_moe_layer(config, layer_idx):
from diffulex.moe.layer import build_moe_block
parallel_state = fetch_parallel_state()
if parallel_state.is_ep_enabled():
return build_moe_block("ep", config)
if parallel_state.is_tp_enabled():
return build_moe_block("tp", config)
return build_moe_block("naive", config)
return dense_factory()
def __getattr__(name: str):
if name in ("FusedMoE", "SparseMoEBlock"):
from diffulex.moe.layer import FusedMoE
return FusedMoE
if name == "build_moe_block":
from diffulex.moe.layer import build_moe_block
return build_moe_block
if name in ("DispatcherOutput", "TokenDispatcher", "build_token_dispatcher"):
from diffulex.moe.dispatcher import DispatcherOutput, TokenDispatcher, build_token_dispatcher
return {
"DispatcherOutput": DispatcherOutput,
"TokenDispatcher": TokenDispatcher,
"build_token_dispatcher": build_token_dispatcher,
}[name]
if name == "DeepEPDispatcher":
from diffulex.moe.dispatcher.deepep_dispatcher import DeepEPDispatcher
return DeepEPDispatcher
if name == "NaiveA2ADispatcher":
from diffulex.moe.dispatcher.naive_dispatcher import NaiveA2ADispatcher
return NaiveA2ADispatcher
if name == "DeepEPMode":
from diffulex.moe.mode import DeepEPMode
return DeepEPMode
if name in ("DispatchMetadata", "DeepEPDispatchMetadata", "DispatcherStage", "ExpertExecutionMetadata", "RouterMetadata"):
from diffulex.moe.metadata import (
DeepEPDispatchMetadata,
DispatchMetadata,
DispatcherStage,
ExpertExecutionMetadata,
RouterMetadata,
)
return {
"DeepEPDispatchMetadata": DeepEPDispatchMetadata,
"DispatchMetadata": DispatchMetadata,
"DispatcherStage": DispatcherStage,
"ExpertExecutionMetadata": ExpertExecutionMetadata,
"RouterMetadata": RouterMetadata,
}[name]
raise AttributeError(name)
__all__ = [
"FusedMoE",
"SparseMoEBlock",
"DeepEPDispatchMetadata",
"DispatchMetadata",
"DispatcherStage",
"DeepEPDispatcher",
"DeepEPMode",
"DispatcherOutput",
"ExpertExecutionMetadata",
"NaiveA2ADispatcher",
"RouterMetadata",
"TokenDispatcher",
"build_token_dispatcher",
"build_mlp_or_moe",
"get_mlp_only_layers",
"get_moe_intermediate_size",
"get_num_experts",
"get_num_experts_per_tok",
"get_norm_topk_prob",
"is_moe_layer",
]