LEARN

Examples Curriculum

Examples Curriculum

The Laco examples curriculum is a set of progressively more complex configuration examples demonstrating the full API. All examples live under sources/laco/examples/ and are exercised by tests/test_examples.py.

Tier 0–1: Foundations

ModuleWhat it demonstrates
mlp.pyL.call, L.params, L.repeat, L.OrderedDict
linear_regression.pyL.call, L.partial, L.params
cnn_classifier.pyStacked stages with L.repeat
text_classifier.pyL.required[T]() for mandatory fields

Minimal example: linear regression

import laco.language as L
from torch import nn, optim

@L.params
class hps:
    in_features: int = 8
    out_features: int = 1
    learning_rate: float = 1e-2

model = L.call(nn.Linear, root=True)(
    in_features=hps.in_features,
    out_features=hps.out_features,
)
optimizer = L.partial(optim.SGD)(lr=hps.learning_rate)

Load and instantiate:

cfg = laco.load("configs://examples/linear_regression.py#model")
model = laco.instantiate(cfg)

Override from CLI:

laco compose configs://examples/linear_regression.py hps.in_features=16

Tier 0–1: Typed-group variants

Each Tier 0–1 example has a sibling in examples/typed/ that uses the typed-group API (L.Group, @L.config, L.slot, L.bind).

ModuleChanges
typed/mlp.pyActivationGroup(L.Group[nn.Module]) for swappable activations
typed/linear_regression.pyOptimGroup(L.Group[Optimizer])
typed/text_classifier.py@L.config schema, L.required[int]()

Typed-group example: MLP

class ActivationGroup(L.Group[nn.Module]):
    relu = L.call(nn.ReLU)()
    gelu = L.call(nn.GELU)()

@L.config
class MLPSchema:
    dim_in: int = 128
    activation: nn.Module = L.slot(ActivationGroup)

defaults = L.Defaults(
    L.self_,
    L.bind(MLPSchema.activation, ActivationGroup.relu),  # default to ReLU
)

Override from CLI: laco compose examples/typed/mlp.py activation=gelu


Tier 2: Building Blocks

ModuleWhat it demonstrates
blocks/residual.pyResidual connection, L.call factories
blocks/transformer.pyMulti-head attention + FFN layers
blocks/decoder.pyAutoregressive decoder

Tier 3–4: Vision & Language Models

Large model configs under examples/models/.


Tier 5: Ecosystem Integrations

ModuleIntegration
integrations/lightning_module.pyPyTorch Lightning
integrations/transformers_qa.pyHuggingFace Transformers
integrations/tensordict_module.pyTensorDict

Tier 6: End-to-end Pipelines

ModuleWhat it demonstrates
pipelines/mnist_train.pyMNIST training loop with @L.task
pipelines/clm_finetune.pyCausal-LM fine-tuning pipeline

Running the MNIST pipeline

# Smoke run (1 step, no real data needed):
python -m laco.examples.pipelines.mnist_train

# 10 steps on real MNIST (downloads ~11 MB):
python -m laco.examples.pipelines.mnist_train hps.num_steps=10