in backends/candle/src/models/modernbert.rs [314:343]
fn forward(
&self,
hidden_states: &Tensor,
attention_mask: &Tensor,
rotary_cache: &(Tensor, Tensor),
) -> Result<Tensor> {
let _enter = self.span.enter();
let residual = hidden_states.clone();
let attn_norm = if let Some(attn_norm) = &self.attn_norm {
attn_norm.forward(hidden_states, None)?
} else {
hidden_states.clone()
};
let attn_outputs = self
.attn
.forward(&attn_norm, attention_mask, rotary_cache)?;
let hidden_states = residual.add(&attn_outputs)?;
let mlp_output = self
.mlp
.forward(&self.mlp_norm.forward(&hidden_states, None)?)?;
let hidden_states = hidden_states.add(&mlp_output)?;
Ok(hidden_states)
}