Skip to main content

FMS Acceleration for Mixture-of-Experts

This library contains plugins to accelerate finetuning with the following optimizations:

  1. Expert-Parallel MoE with Triton Kernels from ScatterMoE, and some extracted from megablocks.
    • Megablocks kernels for gather and scatter

Plugins

Plugin Description Depends Loading Augmentation Callbacks
scattermoe MoE Expert Parallel with Triton Kernels from scattermoe (& megablocks) ScatterMoE / extracted kernels from megablocks ✅ ✅

Adding New Models

Our ScatterMoe implementation is a module-swap; to add new models we need to update the specifications in scattermoe_constants.py.

  • See the code documentation within to understand how to add new models.

Using ScatterMoE Saved Checkpoints

ScatterMoE checkpoints are saved using torch.distributed.checkpoint (DCP) and which is by default StateDictType.SHARDED_STATE_DICT:

  • DTensors limited support for full state dicts.
  • sharded state dicts are the extremely efficient, and require little comms overhead when saving.

We provide a script to recover back the original checkpoint:

  • currently the script is only tested in the case where DCP has saved the model in a single node.

If the checkpoint is stored in hf/checkpoint-10, call the following to have the converted checkpoint written into output_dir:

python -m fms_acceleration_moe.utils.checkpoint_utils \
    hf/checkpoint-10 output_dir \
    mistralai/Mixtral-8x7B-Instruct-v0.1

Code Extracted from Megablocks

Notes on code extraction:

Running Benchmarks

Run the below in the top-level directory of this repo:

  • the scattermoe dep is not included by default, so the -x switch installs it.
  • consider disabling the torch memory logging to see improved speeds.
tox -e run-benches \
    -x testenv:run-benches.setenv+="MEMORY_LOGGING=nvidia" \
    -- \
    "1 2 4" 128 benchmark_outputs scenarios-moe.yaml accelerated-moe-full

or run the larger Mixtral-8x7B bench:

tox ... \
    8 128 benchmark_outputs scenarios-moe.yaml accelerated-moe-full-mixtral

NOTE: if FileNotFoundError is observed on the triton cache, similar to issues like these:

then somehow tox is causing problems with triton and multiprocessing (there is some race condition). But the workaound is to first activate the tox env and running in bash:

# if FileNotFoundError in the triton cache is observed
# - then activate the env and run the script manually

source .tox/run-benches/bin/activate
bash scripts/run_benchmarks.sh \
    ....

Triton Kernel Dependencies

Triton Kernels are copied into scattermoe_utils and were copied from kernel hyperdrive which is a fork of cute kernels

Known Issues

These are currently some known issues not yet resolved:

  • should eventually remove the dependency on an external kernel-hyperdrive repository.
  • now support only loading sharded safetensor non-GGUF MoE checkpoints. This is a reasonable assumption since MoE checkpoints are typically above the size limit that prevents it being saved into a single checkpoint filed.
  • when used together with FSDP, the FSDP's clip_grad_norm will not properly compute for ScatterMoE, see issue here.

Metadata

Release files for fms-acceleration-moe 0.4.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for fms-acceleration-moe 0.4.6
File Interpreter ABI Platform Actions
fms_acceleration_moe-0.4.6-py3-none-any.whl Python 3 none any Details for fms_acceleration_moe-0.4.6-py3-none-any.whl

Release files / fms_acceleration_moe-0.4.6-py3-none-any.whl

Download URL fms_acceleration_moe-0.4.6-py3-none-any.whl
Size 51.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8ff199666431a76244dbfc47e05ee3ed31177dcb60163b2c2da4f0b78bf15354
BLAKE2b-256 checksum
How to use checksums
cc171d0568956b7cfb80b468bbb8e574815dd70cf3662e4eef1dd9bc2abe074c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 30, 2026.

Transparency log

Security for fms-acceleration-moe 0.4.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 1 file in this release has been uploaded with provenance metadata.

Attestation for fms_acceleration_moe-0.4.6-py3-none-any.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 30, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page