Skip to content
Back to skills

Methods

ASecurity

"Use Composer speedup methods through algorithm classes, functional

  • 247 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 8, 2026
datapythongobashnodeapibackend

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill methods --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Methods?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Methods
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-methods/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-methods)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: methods
description: "Use Composer speedup methods through algorithm classes, functional
  helpers, recipes, batch-key routing, and in-place model/optimizer mutations."
metadata:
  disco-role: operating
disable-model-invocation: true
license: Apache 2.0
---

# Composer Methods Router

Use this sub-skill when the task is to add, compose, debug, or translate MosaicML Composer speedup methods from `composer.algorithms` and `composer.functional`.

## Route first

- For Trainer construction, dataloaders, `ComposerModel`, max duration, checkpointing, and optimizer basics, route to `../training/SKILL.md`.
- For loggers, profiling, speed monitors, metric visualization, and throughput diagnosis, route to `../observability/SKILL.md`.
- For distributed launch, DDP/FSDP setup, multi-node concerns, and backend placement, route to `../distributed/SKILL.md`.
- For TorchScript/ONNX/export/inference packaging after method application, route to `../inference-export/SKILL.md`.

## Main decision: algorithm class or functional API

Prefer `composer.algorithms` classes in `Trainer(algorithms=[...])` when the user is already using Composer Trainer or wants a recipe of multiple methods. The Trainer event engine places each algorithm at the relevant event, passes `state.optimizers` to model-surgery algorithms, handles paired before/after events, and lets batch algorithms use `input_key` / `target_key` without changing the dataloader.

Use `composer.functional` when the user owns a custom PyTorch loop, wants to test one method in isolation, or needs to mutate a model before creating the optimizer. With the functional API, the caller owns exact stage placement, target/loss interpolation, optimizer rebinding after surgery, and any schedule logic.

```python
from composer import Trainer
from composer.algorithms import BlurPool, ChannelsLast, LabelSmoothing, MixUp

algorithms = [
    ChannelsLast(),
    BlurPool(replace_convs=True, replace_maxpools=True, blur_first=True, min_channels=16),
    MixUp(alpha=0.2, interpolate_loss=False, input_key="image", target_key="label"),
    LabelSmoothing(smoothing=0.1, target_key="label"),
]

trainer = Trainer(
    model=model,
    train_dataloader=train_dataloader,
    eval_dataloader=eval_dataloader,
    optimizers=optimizer,
    max_duration="10ep",
    algorithms=algorithms,
)
```

## Placement rules

1. Image transforms such as `RandAugment` or `AugMix` belong in dataset transforms before batching.
2. Batch methods such as `MixUp`, `CutMix`, `ColOut`, `CutOut`, and `LabelSmoothing` run after a batch is available and before the forward/loss stage that consumes the modified tensors.
3. Model surgery such as `BlurPool`, `SqueezeExcite`, `Factorize`, `StochasticDepth`, `Alibi`, low-precision norm replacements, and `ChannelsLast` mutates the model in place. Apply it before optimizer construction, or pass existing optimizers to functional helpers that accept `optimizers=`. Trainer algorithms do this through `state.optimizers`.
4. Loop and optimizer methods such as `LayerFreezing`, `ProgressiveResizing`, `SelectiveBackprop`, `SeqLengthWarmup`, `EMA`, `SWA`, `SAM`, and `GradientClipping` depend on event timing or optimizer state. Use algorithm classes unless the user is explicitly maintaining those stages in a custom loop.

## Batch key routing

Batch algorithms default to tuple batches: `input_key=0`, `target_key=1`. For dict batches, pass string keys instead of rewriting the dataloader:

```python
from composer.algorithms import CutMix, MixUp, LabelSmoothing

algorithms = [
    MixUp(alpha=0.2, input_key="image", target_key="label"),
    CutMix(alpha=1.0, uniform_sampling=False, input_key="image", target_key="label"),
    LabelSmoothing(smoothing=0.1, target_key="label"),
]
```

For nested or custom batch objects, pass `(getter, setter)` callables. The getter receives the batch and returns the tensor; the setter receives `(batch, value)` and returns the updated batch.

## References and bundled smoke

- `references/functional-api.md`: function families, stage contracts, batch-key semantics, and custom-loop recipes.
- `references/algorithm-catalog.md`: exported Composer method list grouped by taxonomy.
- `references/troubleshooting.md`: method-specific failure modes and fixes.
- `scripts/functional_smoke.py`: no-download random tensor smoke for a batch method plus functional model surgery.

Run the smoke from this sub-skill directory with:

```bash
python scripts/functional_smoke.py
```

Files in this skill

  • SKILL.md4.4 KB
  • references/algorithm-catalog.md11 KB
  • references/functional-api.md10.3 KB
  • references/troubleshooting.md8.2 KB
  • scripts/functional_smoke.py4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.