NemotronMoeWeights

Struct NemotronMoeWeights 

Source
pub struct NemotronMoeWeights {
    pub gate: DenseWeight,
    pub e_score_correction_bias: DenseWeight,
    pub experts: Vec<NemotronExpertWeight>,
    pub shared_up: QuantizedWeight,
    pub shared_up_fp8: Option<Fp8Weight>,
    pub shared_down: QuantizedWeight,
    pub shared_down_fp8: Option<Fp8Weight>,
    pub fc1_latent_proj: Option<DenseWeight>,
    pub fc2_latent_proj: Option<DenseWeight>,
}
Expand description

Nemotron-H MoE layer weights.

Fields§

§gate: DenseWeight

Router gate: [num_experts, hidden_size] F32→BF16.

§e_score_correction_bias: DenseWeight

Expert score correction bias: [num_experts] F32.

§experts: Vec<NemotronExpertWeight>

Per-expert weights (routed): NVFP4.

§shared_up: QuantizedWeight

Shared expert up_proj: [shared_inter, hidden_size] NVFP4.

§shared_up_fp8: Option<Fp8Weight>

Shared expert up_proj kept as NATIVE FP8 when the checkpoint ships it that way (ModelOpt MIXED_PRECISION), instead of the FP8→BF16→NVFP4 requant. Some only under ATLAS_NEMOTRON_NATIVE_FP8_SSM; decode prefers it via w8a16_gemv. Measured on Puzzle-75B: with the SSM projections already native, a 977-token story went from calling the dog “Rover”/“Rex” to using the given name “Rufus” 8 times with no substitutions — proper-noun retrieval is what the requant was destroying.

§shared_down: QuantizedWeight

Shared expert down_proj: [hidden_size, shared_inter] NVFP4.

§shared_down_fp8: Option<Fp8Weight>

Shared expert down_proj kept as NATIVE FP8, same rationale as shared_up_fp8. Consumed by relu_squared_inplace + w8a16_gemv instead of the fused moe_expert_relu2_down_shared kernel, which only speaks NVFP4 — the fused launch simply drops its shared slot (grid.y = top_k) when this is present.

§fc1_latent_proj: Option<DenseWeight>

LatentMoE: fc1 [moe_latent_size, hidden_size] BF16 (dequant from FP8 at load). Present only for Super 120B (moe_latent_size > 0).

§fc2_latent_proj: Option<DenseWeight>

LatentMoE: fc2 [hidden_size, moe_latent_size] BF16. Present only for Super 120B (moe_latent_size > 0).

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more