pub struct ExpertParallelismConfig {
pub num_experts: usize,
pub experts_per_device: usize,
pub expert_parallel_size: usize,
pub top_k: usize,
pub load_balancing: LoadBalancingStrategy,
pub routing_strategy: ExpertRoutingStrategy,
pub capacity_factor: f32,
pub drop_tokens: bool,
pub use_auxiliary_loss: bool,
pub auxiliary_loss_weight: f32,
pub communication_pattern: ExpertCommunicationPattern,
}Expand description
Expert Parallelism Configuration for Mixture of Experts (MoE) models
Expert parallelism distributes experts across different devices/processes, enabling scaling of MoE models with efficient expert routing and load balancing.
Fields§
§num_experts: usizeNumber of experts in the MoE layer
experts_per_device: usizeNumber of experts per device/process
expert_parallel_size: usizeNumber of devices/processes for expert parallelism
top_k: usizeTop-k routing for expert selection
load_balancing: LoadBalancingStrategyLoad balancing strategy
routing_strategy: ExpertRoutingStrategyExpert routing strategy
capacity_factor: f32Whether to use expert capacity limiting
drop_tokens: boolDrop tokens when capacity is exceeded
use_auxiliary_loss: boolUse auxiliary load balancing loss
auxiliary_loss_weight: f32Auxiliary loss weight
communication_pattern: ExpertCommunicationPatternExpert communication pattern
Trait Implementations§
Source§impl Clone for ExpertParallelismConfig
impl Clone for ExpertParallelismConfig
Source§fn clone(&self) -> ExpertParallelismConfig
fn clone(&self) -> ExpertParallelismConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ExpertParallelismConfig
impl Debug for ExpertParallelismConfig
Source§impl Default for ExpertParallelismConfig
impl Default for ExpertParallelismConfig
Source§impl<'de> Deserialize<'de> for ExpertParallelismConfig
impl<'de> Deserialize<'de> for ExpertParallelismConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ExpertParallelismConfig
impl RefUnwindSafe for ExpertParallelismConfig
impl Send for ExpertParallelismConfig
impl Sync for ExpertParallelismConfig
impl Unpin for ExpertParallelismConfig
impl UnsafeUnpin for ExpertParallelismConfig
impl UnwindSafe for ExpertParallelismConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> ConfigSerializable for Twhere
T: Serialize + for<'de> Deserialize<'de>,
impl<T> ConfigSerializable for Twhere
T: Serialize + for<'de> Deserialize<'de>,
Source§fn save_to_file(&self, path: &Path) -> Result<(), TrustformersError>
fn save_to_file(&self, path: &Path) -> Result<(), TrustformersError>
Save to file
Source§fn load_from_file(path: &Path) -> Result<Self, TrustformersError>where
Self: Sized,
fn load_from_file(path: &Path) -> Result<Self, TrustformersError>where
Self: Sized,
Load from file
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more