Skip to main content
Beam is a 501B-parameter mixture-of-experts model (23B active parameters per token) from Reflection, built for software engineering and long-horizon agentic tasks. This guide shows how to fine-tune it with Axolotl.

Getting started

  1. Install Axolotl following the installation guide.
  2. Install Cut Cross Entropy to reduce training VRAM usage.
  3. Pick a config and run (sized for one 8xH200 node):
Available configs:

Smoke test on a tiny model

beam-tiny-smoke.yaml points at a local beam model for testing and verification purposes.

Tips

  • device_map configs run as one process (--num-processes 1) and need gpu_memory_limit set to spread layers across GPUs. Use adamw_torch: adamw_torch_4bit fails once adapters span GPUs.
  • Keep the router (mlp.gate) out of lora_target_parameters; adapting it destabilizes routing.
  • Run a full finetune by removing adapter: qlora, load_in_4bit: true, and quantize_moe_experts: true.
  • Tool-calling data: every tool message needs a name (the called function); tool_call_id alone fails to render.
  • Read more on loading your own dataset in the docs.

Expert-parallel LoRA on B200 (bf16, NVFP4 and NF4)

Prerequisites

The B200 configs assume the Blackwell kernel stack below; the axolotlai/axolotl-cloud -blackwell image tags ship these kernels (see the Docker docs), or install them into an existing CUDA 13 environment: The kernels plugin checks the installed cutlass DSL against quack’s declared range at startup and fails fast with the fix if they disagree.

Configs

The bf16 config pins the ScatterMoE LoRA tiles with autotune_profiles (measured on B200 and H100, identical across every routed-row bucket) and enables autotune_neighborhood: 1, so no training or eval step benchmarks kernel configs while expert-parallel peers wait.
Last modified on October 20, 2026