Module: aprender::ensemble

Public module of the aprender-core crate.

Source

crates/aprender-core/src/ensemble.rs or directory.

Example

use aprender::ensemble::{MixtureOfExperts, SoftmaxGating, MoeConfig};
// See `cargo doc -p aprender-core --open` for full API reference.

Module summary

aprender::ensemble is the mixture-of-experts (MoE) corner of aprender. It exposes a gating-network trait, a softmax gate, an MoeConfig builder for top-k / capacity-factor / load-balance settings, and the MixtureOfExperts container that routes inputs to expert estimators. Bagging-style ensembles (random forest, gradient boosting) live in tree; this module focuses on learned, differentiable routing — the workhorse of modern sparsely-activated LLMs.

Key types

TypeDescription
MixtureOfExperts<E, G>Generic MoE that wraps any Estimator experts behind a GatingNetwork.
MoeConfigBuilder for top-k routing, capacity factor, expert dropout, load-balance weight.
GatingNetworkTrait implemented by routers (softmax, dense, etc.).
SoftmaxGatingReference gating network using a softmax over expert logits.
MoeBuilderFluent builder for assembling experts + gating + config.

Usage patterns

Pattern 1: Configure an MoE

use aprender::ensemble::MoeConfig;

let cfg = MoeConfig::default()
    .with_top_k(2)
    .with_capacity_factor(1.25)
    .with_expert_dropout(0.0)
    .with_load_balance_weight(0.01);

println!("top_k={}, capacity={}", cfg.top_k, cfg.capacity_factor);

Pattern 2: Inspect routing weights

use aprender::ensemble::{MixtureOfExperts, SoftmaxGating, MoeConfig};
// `MixtureOfExperts::<Expert, Gating>` is generic. In practice you assemble
// via the builder and supply concrete expert estimators; see
// `crates/aprender-core/examples/moe_*.rs` for full end-to-end demos.

// After fit, you can query the routing weights for a sample:
//     let weights = moe.get_routing_weights(&input_vec);
//     let usage = moe.expert_usage(&inputs_matrix);
// The load-balance auxiliary loss is exposed via:
//     let lb = moe.compute_load_balance_loss(&inputs_matrix);

See also

  • treeRandomForestClassifier / RandomForestRegressor, GradientBoostingClassifier
  • models — production transformer / Qwen2 implementations that use MoE internally
  • nn — neural network primitives the gating networks are built from

Full API

Run cargo doc -p aprender-core --open for the rendered rustdoc, or browse docs.rs/aprender for the published version.