How facebookarchive/mixer works
MIXER is a Torch/Lua system for training and evaluating recurrent neural networks on machine translation. The documented workflow begins at main.lua, which launches training and testing; Trainer.lua iterates over datasets for training and evaluation. The model_factory.lua builds a single-step network, while Mixer.lua unrolls and trains it through recurrent steps. The repository also documents data preparation, minibatch provision, sequence-level reinforcement components, and BLEU/ROUGE scoring. Source excerpts were unavailable, so links among these subsystems are included only where the README explicitly describes their behavior.
Main entry points: Trainer.lua Training loop · main.lua Run entry point · Mixer.lua Recurrent unrolling · model_factory.lua Step model factory
Components 13
Training and evaluation
- Run entry point
main.lua - Training loop
Trainer.lua
Model and sequence learning
- Recurrent unrolling
Mixer.lua - Step model factory
model_factory.lua - Sequence sampler
ReinforceSampler.lua - Sequence reward criterion
ReinforceCriterion.lua - Weighted NLL criterion
ClassNLLCriterionWeighted.lua - Input-gradient-free linear
LinearNoBackpropInput.lua
Data and scoring
- Mini-batch provider
DataSource.lua - Data preparation
makedata.lua - Tokenizer
tokenizer.lua - BLEU and ROUGE
reward_factory.lua
Other components
- Experimenter
Connections 5
- Experimenter → Run entry point: runs
- Run entry point → Training loop: launches
- Training loop → Recurrent unrolling: trains
- Training loop → Mini-batch provider: iterates data
- Recurrent unrolling → Step model factory: clones step model