{
  "hf_id": "reflection/Beam-1.0-501B-A23B",
  "meta": {
    "title": "Beam-1.0-501B-A23B",
    "slug": "beam-1.0-501b-a23b",
    "provider": "Reflection",
    "description": "Reflection's Beam — a sparse MoE language model (501B total / 23B active) with hybrid sliding-window + NoPE full attention, a 1M-token window, Harmony-format reasoning and tool calling, and an optional DFlash2 speculative drafter. Available in NVFP4, FP8 and BF16 on NVIDIA and BF16 on AMD ROCm.",
    "date_added": "2026-10-16",
    "date_updated": "2026-10-23",
    "tasks": [
      "text"
    ],
    "performance_headline": "501B/23B-active MoE with hybrid sliding-window attention, 1M context, and DFlash2 speculative decoding",
    "related_recipes": [],
    "hardware": {
      "b300": "verified",
      "h200": "verified",
      "mi300x": "supported",
      "mi325x": "verified",
      "mi350x": "verified",
      "mi355x": "verified"
    },
    "default_hardware": "b300",
    "default_variant": {
      "amd": "bf16"
    }
  },
  "recommended_command": {
    "hardware": "b300",
    "strategy": "single_node_tp",
    "variant": "default",
    "node_count": 1,
    "deploy_type": "single_node",
    "env": {
      "VLLM_ENGINE_READY_TIMEOUT_S": "3600"
    },
    "docker_image": "vllm/vllm-openai:reflection-beam",
    "command": "vllm serve reflection/Beam-1.0-501B-A23B-NVFP4 \\\n  --kv-cache-dtype fp8 \\\n  --tensor-parallel-size 4 \\\n  --reasoning-parser beam \\\n  --enable-auto-tool-choice \\\n  --tool-call-parser beam",
    "argv": [
      "vllm",
      "serve",
      "reflection/Beam-1.0-501B-A23B-NVFP4",
      "--kv-cache-dtype",
      "fp8",
      "--tensor-parallel-size",
      "4",
      "--reasoning-parser",
      "beam",
      "--enable-auto-tool-choice",
      "--tool-call-parser",
      "beam"
    ],
    "docker_command": "docker run --gpus all \\\n  --privileged --ipc=host -p 8000:8000 \\\n  -v ~/.cache/huggingface:/root/.cache/huggingface \\\n  -e VLLM_ENGINE_READY_TIMEOUT_S=3600 \\\n  vllm/vllm-openai:reflection-beam reflection/Beam-1.0-501B-A23B-NVFP4 \\\n  --kv-cache-dtype fp8 \\\n  --tensor-parallel-size 4 \\\n  --reasoning-parser beam \\\n  --enable-auto-tool-choice \\\n  --tool-call-parser beam",
    "docker_argv": [
      "docker",
      "run",
      "--gpus",
      "all",
      "--privileged",
      "--ipc=host",
      "-p",
      "8000:8000",
      "-v",
      "~/.cache/huggingface:/root/.cache/huggingface",
      "-e",
      "VLLM_ENGINE_READY_TIMEOUT_S=3600",
      "vllm/vllm-openai:reflection-beam",
      "reflection/Beam-1.0-501B-A23B-NVFP4",
      "--kv-cache-dtype",
      "fp8",
      "--tensor-parallel-size",
      "4",
      "--reasoning-parser",
      "beam",
      "--enable-auto-tool-choice",
      "--tool-call-parser",
      "beam"
    ],
    "strategy_spec": {
      "name": "single_node_tp",
      "deploy_type": "single_node",
      "display_name": "Tensor Parallel",
      "short_label": "TP",
      "orientation": "latency",
      "description": "Single-node tensor parallel. Splits the model across all local GPUs. TP size is set to the GPU count at deploy time. The simplest multi-GPU strategy — works for all model architectures.\n",
      "hardware_match": {
        "min_gpus": 1,
        "max_gpus": 8,
        "multi_node": false
      },
      "vllm_args": [],
      "parallel_flag": "--tensor-parallel-size"
    },
    "hardware_profile": {
      "brand": "NVIDIA",
      "generation": "blackwell",
      "compute_arch": "sm103",
      "display_name": "B300",
      "description": "NVIDIA B300 SXM 268 GB HBM3e · 8-GPU HGX B300 node (Blackwell Ultra)",
      "gpu_count": 8,
      "vram_gb": 2144,
      "multi_node": false
    },
    "alternatives": {
      "single_node_tep": "/reflection/Beam-1.0-501B-A23B/strategies/single_node_tep.json",
      "single_node_dep": "/reflection/Beam-1.0-501B-A23B/strategies/single_node_dep.json",
      "kv_store_centralized_mooncake": "/reflection/Beam-1.0-501B-A23B/strategies/kv_store_centralized_mooncake.json",
      "kv_store_distributed_mooncake": "/reflection/Beam-1.0-501B-A23B/strategies/kv_store_distributed_mooncake.json"
    },
    "by_hardware": {
      "b300": "/reflection/Beam-1.0-501B-A23B/hw/b300.json",
      "h100": "/reflection/Beam-1.0-501B-A23B/hw/h100.json",
      "h200": "/reflection/Beam-1.0-501B-A23B/hw/h200.json",
      "b200": "/reflection/Beam-1.0-501B-A23B/hw/b200.json",
      "gb200": "/reflection/Beam-1.0-501B-A23B/hw/gb200.json",
      "gb300": "/reflection/Beam-1.0-501B-A23B/hw/gb300.json"
    }
  },
  "model": {
    "model_id": "reflection/Beam-1.0-501B-A23B",
    "min_vllm_version": "0.33.0",
    "docker_image": {
      "nvidia": "vllm/vllm-openai:reflection-beam",
      "amd": "vllm/vllm-openai-rocm:nightly"
    },
    "architecture": "moe",
    "parameter_count": "501B",
    "active_parameters": "23B",
    "context_length": 1048576,
    "base_args": [
      "--kv-cache-dtype",
      "fp8"
    ],
    "base_env": {
      "VLLM_ENGINE_READY_TIMEOUT_S": "3600"
    },
    "install": {
      "docker": {
        "command": "docker pull vllm/vllm-openai:reflection-beam",
        "note": "Beam support hasn't landed in a vLLM release yet, so it ships only in these images: vllm/vllm-openai:reflection-beam on NVIDIA and the ROCm nightly on AMD. Use Docker until it does."
      }
    }
  },
  "features": {
    "reasoning": {
      "description": "Beam reasoning parser — splits the Harmony `analysis` channel into `reasoning_content`. Reads the checkpoint's `response_template`.",
      "args": [
        "--reasoning-parser",
        "beam"
      ]
    },
    "tool_calling": {
      "description": "Beam tool-call parser with automatic tool choice — tool-call grammar derived from the checkpoint's `response_template`.",
      "args": [
        "--enable-auto-tool-choice",
        "--tool-call-parser",
        "beam"
      ]
    },
    "spec_decoding": {
      "label": "DFlash2",
      "description": "DFlash2 speculative decoding with the Beam-trained drafter (DFlash2BeamDraftModel, 5 layers, block size 16), drafting 7 tokens per step. method is dflash; DFlash2 is selected by the draft architecture.",
      "args": [
        "--speculative-config",
        "{\"method\":\"dflash\",\"model\":\"reflection/Beam-1.0-501B-A23B-DFlash2\",\"num_speculative_tokens\":7,\"attention_backend\":\"FLASH_ATTN\",\"enable_adaptive_verification\":true}"
      ],
      "hardware_overrides": {
        "amd": {
          "args": [
            "--speculative-config",
            "{\"method\":\"dflash\",\"model\":\"reflection/Beam-1.0-501B-A23B-DFlash2\",\"num_speculative_tokens\":7,\"enable_adaptive_verification\":true}"
          ]
        }
      }
    }
  },
  "opt_in_features": [
    "spec_decoding"
  ],
  "variants": {
    "default": {
      "model_id": "reflection/Beam-1.0-501B-A23B-NVFP4",
      "precision": "nvfp4",
      "vram_minimum_gb": 353,
      "description": "ModelOpt NVFP4 on the routed experts; all other weights BF16. W4A4 on Blackwell; W4A16 through Marlin on Hopper. Recommended on Blackwell and H100.",
      "precision_hardware": {
        "brand": "NVIDIA"
      },
      "supported_hardware": [
        "arch:sm90",
        "arch:sm100",
        "arch:sm103"
      ],
      "tp": {
        "blackwell": 4
      },
      "hardware_overrides": {
        "hopper": {
          "extra_args": [
            "--moe-backend",
            "marlin"
          ]
        }
      },
      "json": "/reflection/Beam-1.0-501B-A23B-NVFP4.json"
    },
    "fp8": {
      "model_id": "reflection/Beam-1.0-501B-A23B-FP8",
      "precision": "fp8",
      "vram_minimum_gb": 604,
      "description": "FP8 per-channel weights (compressed-tensors); router, embeddings and lm_head unquantized. Recommended on H200.",
      "precision_hardware": {
        "brand": "NVIDIA"
      },
      "extra_args": [
        "--moe-backend",
        "triton"
      ],
      "json": "/reflection/Beam-1.0-501B-A23B-FP8.json"
    },
    "bf16": {
      "model_id": "reflection/Beam-1.0-501B-A23B",
      "precision": "bf16",
      "vram_minimum_gb": 1204,
      "description": "Native BF16 checkpoint (FP32 router weights and expert biases). Requires one 8x B200/B300 or 8x MI300X-class node.",
      "supported_hardware": [
        "b200",
        "b300",
        "mi300x",
        "mi325x",
        "mi350x",
        "mi355x"
      ],
      "extra_args": [
        "--kv-cache-dtype",
        "auto"
      ]
    }
  },
  "strategy_hardware": {
    "single_node_dep": {
      "amd": "unsupported"
    }
  },
  "hardware_overrides": {
    "amd": {
      "extra_args": [
        "--attention-backend",
        "ROCM_AITER_UNIFIED_ATTN",
        "--moe-backend",
        "triton"
      ],
      "extra_env": {
        "VLLM_ROCM_USE_AITER": "1"
      }
    }
  },
  "guide": "## Overview\n\n[Beam](https://huggingface.co/reflection/Beam-1.0-501B-A23B) is Reflection's\nsparse mixture-of-experts language model, with 501B total parameters and 23B\nactive parameters per token. Its 52 layers combine 512-token sliding-window\nattention with NoPE full-attention layers, route each token through 8 of 256\nexperts (layers 0-2 use dense MLPs), and support a context length of\n1,048,576 tokens.\n\nBeam uses the Harmony message format, with an `analysis` channel for\nreasoning and a `final` channel for the answer. Generation stops on\n`<|return|>` at the end of an answer and on `<|call|>` at the end of a tool\ncall.\n\n## Variants\n\n| Variant | Checkpoint | Weights on disk | Minimum GPU memory | Recommended hardware |\n|---|---|---|---|---|\n| NVFP4 (default) | [`reflection/Beam-1.0-501B-A23B-NVFP4`](https://huggingface.co/reflection/Beam-1.0-501B-A23B-NVFP4) | 294 GB | 353 GB | 4x B200/B300 or one GB200/GB300 tray (TP4); 8x H100 (TP8, Marlin) |\n| FP8 | [`reflection/Beam-1.0-501B-A23B-FP8`](https://huggingface.co/reflection/Beam-1.0-501B-A23B-FP8) | 503 GB | 604 GB | 8x H200 (TP8) |\n| BF16 | [`reflection/Beam-1.0-501B-A23B`](https://huggingface.co/reflection/Beam-1.0-501B-A23B) | 1,003 GB | 1,204 GB | 8x B200/B300 (TP8), 8x MI300X-class (TP8) |\n\n*Minimum GPU memory* is the weights plus 20% headroom for activations,\nCUDA graphs and a working KV cache. It is the total across all GPUs, and\nit is the figure the variant selector above shows.\n\nThe NVFP4 checkpoint quantizes only the routed experts; attention, dense\nMLPs, the router, embeddings and the LM head stay in BF16. On Blackwell it\nruns W4A4; on Hopper, vLLM serves the FP4 experts through Marlin with BF16\nactivations.\n\n**AMD ROCm tested only on BF16.**\n\n## Prerequisites\n\n- **vLLM:** the `vllm/vllm-openai:reflection-beam` Docker image on NVIDIA,\n  the `vllm/vllm-openai-rocm:nightly` image on AMD. Beam support has not\n  shipped in a vLLM release yet.\n- **Hardware:** NVIDIA GPUs, plus AMD GPUs on ROCm. On NVIDIA Beam's\n  kernels, including a custom all-reduce used with expert parallelism, are\n  CUDA-only; the AMD path replaces them with standard vLLM ROCm attention,\n  RCCL collectives and AMD-local Triton kernels.\n- **Transformers:** the tokenizer uses the Transformers 5 format\n  (`TokenizersBackend`).\n\n### Install vLLM\n\n```bash\ndocker pull vllm/vllm-openai:reflection-beam    # NVIDIA (CUDA)\ndocker pull vllm/vllm-openai-rocm:nightly       # AMD (ROCm)\n```\n\nThe `vllm serve` commands below run inside these images; the command builder\nabove renders the full `docker run` line for the hardware you select.\n\n## Launching the server\n\n### FP8 with TP8 on H200 or Blackwell\n\n```bash\nvllm serve reflection/Beam-1.0-501B-A23B-FP8 \\\n  --tensor-parallel-size 8 \\\n  --moe-backend triton \\\n  --kv-cache-dtype fp8 \\\n  --enable-auto-tool-choice \\\n  --tool-call-parser beam \\\n  --reasoning-parser beam\n```\n\nThis is the best-performing FP8 configuration measured on both H200 and\nB300. Set `--moe-backend triton` explicitly; vLLM otherwise selects CUTLASS\nfor the FP8 MoE. vLLM's default attention backends, FlashAttention 3 on\nHopper and FlashInfer with TRT-LLM kernels on Blackwell, are already the\nfastest measured.\n\n### NVFP4 with TP4 on Blackwell\n\n```bash\nvllm serve reflection/Beam-1.0-501B-A23B-NVFP4 \\\n  --tensor-parallel-size 4 \\\n  --kv-cache-dtype fp8 \\\n  --enable-auto-tool-choice \\\n  --tool-call-parser beam \\\n  --reasoning-parser beam\n```\n\nAt TP4 the weights take about 73 GB per GPU, leaving room for the full\ncontext window many times over; an 8-GPU node can host two replicas. The\nfirst start takes about 10 minutes because FlashInfer autotunes the MoE\nkernel. That is close to vLLM's default 600 s engine-ready timeout, so the\ngenerated command sets `VLLM_ENGINE_READY_TIMEOUT_S=3600`.\n\n### NVFP4 with TP8 on H100\n\n```bash\nvllm serve reflection/Beam-1.0-501B-A23B-NVFP4 \\\n  --tensor-parallel-size 8 \\\n  --moe-backend marlin \\\n  --kv-cache-dtype fp8 \\\n  --enable-auto-tool-choice \\\n  --tool-call-parser beam \\\n  --reasoning-parser beam\n```\n\nSet `--moe-backend marlin` explicitly; it is faster than the backend vLLM\nselects by default on Hopper. The FP8 checkpoint also fits on 8x H100 but\nleaves much less memory for the KV cache.\n\n### BF16 with TP8 on Blackwell\n\n```bash\nvllm serve reflection/Beam-1.0-501B-A23B \\\n  --tensor-parallel-size 8 \\\n  --enable-auto-tool-choice \\\n  --tool-call-parser beam \\\n  --reasoning-parser beam\n```\n\n### BF16 with TP8 + expert parallel on AMD ROCm\n\nThe AMD path in `vllm/models/beam/amd/` selects its classes on ROCm and\nruns the target and the DFlash2 drafter on standard vLLM ROCm attention,\nRCCL collectives and AMD-local Triton kernels. It was validated end-to-end\non 8x MI325X (gfx942), 8x MI350X and 8x MI355X (gfx950). MI300X uses the\nvalidated gfx942 code path, where the weights need 1,204 GB of the node's\n1,536 GB.\n\n```bash\nVLLM_ROCM_USE_AITER=1 vllm serve reflection/Beam-1.0-501B-A23B \\\n  --dtype bfloat16 \\\n  --tensor-parallel-size 8 \\\n  --enable-expert-parallel \\\n  --attention-backend ROCM_AITER_UNIFIED_ATTN \\\n  --moe-backend triton \\\n  --reasoning-parser beam \\\n  --tool-call-parser beam \\\n  --enable-auto-tool-choice\n```\n\n### Tuning\n\n- **KV cache dtype:** the NVFP4 and FP8 commands use\n  `--kv-cache-dtype fp8`, which halves KV memory per token (on 8x H200 with\n  the FP8 checkpoint, about 14M to 28M tokens). The BF16 command keeps the\n  KV cache in BF16, on NVIDIA and AMD alike.\n- **Parallelism:** tensor parallelism is the recommended single-node layout.\n  TEP (`--enable-expert-parallel`) and DEP (`--data-parallel-size 8\n  --enable-expert-parallel`) are also supported on NVIDIA; DEP is better\n  suited to very large batch sizes.\n\n### MegaMoE with attention DP (NVFP4, Blackwell)\n\nFor prefill-heavy, high-concurrency traffic, run attention data-parallel\nwith expert parallelism on FlashInfer's CuTe DSL NVFP4 MegaMoE kernel,\nwhich overlaps the expert all-to-all with the expert GEMMs. Start from the\nNVFP4 command and replace the parallel and MoE settings:\n\n```bash\nvllm serve reflection/Beam-1.0-501B-A23B-NVFP4 \\\n  --data-parallel-size 4 \\\n  --enable-expert-parallel \\\n  --moe-backend flashinfer_moe_ep_cutedsl \\\n  --kv-cache-dtype fp8 \\\n  --enable-auto-tool-choice \\\n  --tool-call-parser beam \\\n  --reasoning-parser beam\n```\n\n- Only for DEP (`--data-parallel-size` with `--enable-expert-parallel`).\n  It does not support TEP or pure TP.\n- Use `--data-parallel-size 4` on a GB200/GB300 tray or four B200/B300\n  GPUs, and `8` across a full 8-GPU node.\n- For low-latency serving, stay on TP4 with `flashinfer_trtllm`.\n\n### DFlash2 speculative decoding\n\nThe DFlash2 drafter\n([`reflection/Beam-1.0-501B-A23B-DFlash2`](https://huggingface.co/reflection/Beam-1.0-501B-A23B-DFlash2))\nshares the target model's embeddings and LM head:\n\n```bash\n--speculative-config '{\"method\":\"dflash\",\"model\":\"reflection/Beam-1.0-501B-A23B-DFlash2\",\"num_speculative_tokens\":7,\"attention_backend\":\"FLASH_ATTN\",\"enable_adaptive_verification\":true}'\n```\n\nWith `enable_adaptive_verification`, vLLM predicts how likely each draft\ntoken is to be accepted and verifies only the ones worth the compute,\nrather than all 7 every step. It makes little difference at low\nconcurrency and raises throughput under load. Remove it to verify the\nfull draft every step.\n\nThe drafter supports up to 15 speculative tokens; 7 is recommended. It\nspeeds up decoding most at low concurrency and adds about 1.7 GB per GPU,\nwhich reduces KV-cache capacity. Acceptance depends on natural-language\ninput, so benchmark it with a real-text dataset rather than\n`--dataset-name random`.\n\n**On AMD**, the ROCm drafter delegates cache handling to the selected ROCm\nattention backend, so the builder omits the FlashAttention pin:\n\n```bash\n--speculative-config '{\"method\":\"dflash\",\"model\":\"reflection/Beam-1.0-501B-A23B-DFlash2\",\"num_speculative_tokens\":7,\"enable_adaptive_verification\":true}'\n```\n\nThe token count is not platform-specific. The AMD DFlash2 path was\nvalidated with the BF16 target on MI325X, MI350X and MI355X. On MI355X,\nboth vanilla decoding and DFlash2 reached 90.06% on GPQA-Diamond and 97.45%\non AIME 2026. On MI325X, both reached 90.18% on GPQA-Diamond. These results\nreproduce Reflection's published BF16 accuracy within statistical error.\n\n### Output constraints\n\nBy default, the `beam` output grammar constrains every assistant turn from\nits first token (reasoning, then an answer or a tool call). Set\n`VLLM_BEAM_ALWAYS_CONSTRAIN_OUTPUT=0` to disable it.\n\n## Client usage\n\n```bash\ncurl http://localhost:8000/v1/chat/completions \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"reflection/Beam-1.0-501B-A23B-NVFP4\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"Hello.\"}]\n  }'\n```\n\nSet `model` to the checkpoint being served: `reflection/Beam-1.0-501B-A23B-NVFP4`,\n`reflection/Beam-1.0-501B-A23B-FP8`, or `reflection/Beam-1.0-501B-A23B` for\nBF16. `/v1/models` lists the served name.\n\n### Reasoning effort\n\nBeam reasons at the maximum effort, `max` (512), unless the request sets\n`reasoning_effort`:\n\n```bash\ncurl http://localhost:8000/v1/chat/completions \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"reflection/Beam-1.0-501B-A23B-NVFP4\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"What is 17 * 19?\"}],\n    \"reasoning_effort\": \"low\"\n  }'\n```\n\nThe Rust frontend (`VLLM_USE_RUST_FRONTEND=1`) serves `/v1/chat/completions`\nand `/v1/completions`, but not yet `/v1/responses` or the Anthropic-compatible\n`/v1/messages` (both return 404). Use the default Python frontend for those\nAPIs.\n\n## References\n\n- [Beam model card](https://huggingface.co/reflection/Beam-1.0-501B-A23B)\n- [Beam FP8](https://huggingface.co/reflection/Beam-1.0-501B-A23B-FP8)\n- [Beam NVFP4](https://huggingface.co/reflection/Beam-1.0-501B-A23B-NVFP4)\n- [DFlash2 drafter](https://huggingface.co/reflection/Beam-1.0-501B-A23B-DFlash2)\n- [vLLM PR #62057 — Beam 1.0 on ROCm (MI300X/MI325X/MI350X/MI355X)](https://github.com/vllm-project/vllm/pull/62057)\n",
  "source": {
    "source": "vllm",
    "repo": "vllm-project/vllm",
    "ref": "main",
    "sha": "c2bc949186b5cffa5c7b9dea18c973089e7f98ef",
    "path": "recipes/models/reflection/Beam-1.0-501B-A23B.yaml",
    "edit_url": "https://github.com/vllm-project/vllm/edit/main/recipes/models/reflection/Beam-1.0-501B-A23B.yaml",
    "overlays": []
  }
}