Instructions to use KexuanShi/Megatron-LM with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- NeMo
How to use KexuanShi/Megatron-LM with NeMo:
# tag did not correspond to a valid NeMo domain.
- Notebooks
- Google Colab
- Kaggle
| # Training Examples | |
| Get started with Megatron Core training using these practical examples. | |
| ## Simple Training Example | |
| The simplest way to get started is with the basic training loop using mock data: | |
| ```bash | |
| # Distributed training on 2 GPUs with mock data | |
| torchrun --nproc_per_node=2 examples/run_simple_mcore_train_loop.py | |
| ``` | |
| This example: | |
| - Runs on 2 GPUs | |
| - Uses generated mock data (no data preparation needed) | |
| - Demonstrates basic distributed training setup | |
| - Perfect for testing your installation | |
| ## LLaMA-3 Training Examples | |
| ### LLaMA-3 8B with FP8 | |
| Train LLaMA-3 8B model with FP8 mixed precision on 8 GPUs: | |
| ```bash | |
| ./examples/llama/train_llama3_8b_fp8.sh | |
| ``` | |
| **Configuration:** | |
| - 8 GPUs | |
| - FP8 mixed precision (requires Hopper/Ada/Blackwell GPUs) | |
| - Mock data for quick testing | |
| ### Custom LLaMA Training | |
| For training with your own data: | |
| ```bash | |
| torchrun --nproc_per_node=8 pretrain_gpt.py \ | |
| --tensor-model-parallel-size 1 \ | |
| --pipeline-model-parallel-size 1 \ | |
| --num-layers 32 \ | |
| --hidden-size 4096 \ | |
| --num-attention-heads 32 \ | |
| --seq-length 2048 \ | |
| --max-position-embeddings 2048 \ | |
| --micro-batch-size 4 \ | |
| --global-batch-size 32 \ | |
| --train-iters 100000 \ | |
| --lr 3.0e-4 \ | |
| --min-lr 3.0e-5 \ | |
| --lr-decay-style cosine \ | |
| --lr-warmup-iters 2000 \ | |
| --weight-decay 0.1 \ | |
| --clip-grad 1.0 \ | |
| --bf16 \ | |
| --data-path /path/to/your/preprocessed_data \ | |
| --split 949,50,1 \ | |
| --save /path/to/checkpoints \ | |
| --load /path/to/checkpoints \ | |
| --log-interval 10 \ | |
| --save-interval 1000 \ | |
| --eval-interval 1000 | |
| ``` | |
| ## GPT-3 Training Example | |
| Train a GPT-3 style model: | |
| ```bash | |
| torchrun --nproc_per_node=8 pretrain_gpt.py \ | |
| --tensor-model-parallel-size 2 \ | |
| --pipeline-model-parallel-size 2 \ | |
| --num-layers 24 \ | |
| --hidden-size 2048 \ | |
| --num-attention-heads 16 \ | |
| --seq-length 1024 \ | |
| --max-position-embeddings 1024 \ | |
| --micro-batch-size 2 \ | |
| --global-batch-size 16 \ | |
| --train-iters 100000 \ | |
| --lr 1.5e-4 \ | |
| --min-lr 1.0e-5 \ | |
| --lr-decay-style cosine \ | |
| --lr-warmup-iters 1000 \ | |
| --weight-decay 0.1 \ | |
| --clip-grad 1.0 \ | |
| --fp16 \ | |
| --data-path /path/to/preprocessed_data \ | |
| --split 949,50,1 \ | |
| --save /path/to/checkpoints \ | |
| --load /path/to/checkpoints | |
| ``` | |
| ## Key Training Arguments | |
| ### Model Architecture | |
| | Argument | Description | | |
| |----------|-------------| | |
| | `--num-layers` | Number of transformer layers | | |
| | `--hidden-size` | Hidden dimension size | | |
| | `--num-attention-heads` | Number of attention heads | | |
| | `--seq-length` | Sequence length for training | | |
| ### Training Configuration | |
| | Argument | Description | | |
| |----------|-------------| | |
| | `--micro-batch-size` | Batch size per GPU | | |
| | `--global-batch-size` | Total batch size across all GPUs | | |
| | `--train-iters` | Number of training iterations | | |
| ### Learning Rate | |
| | Argument | Description | | |
| |----------|-------------| | |
| | `--lr` | Peak learning rate | | |
| | `--min-lr` | Minimum learning rate | | |
| | `--lr-decay-style` | LR schedule (cosine, linear, constant) | | |
| | `--lr-warmup-iters` | Warmup iterations | | |
| ### Mixed Precision | |
| | Argument | Description | | |
| |----------|-------------| | |
| | `--fp16` | FP16 mixed precision | | |
| | `--bf16` | BF16 mixed precision (recommended) | | |
| | `--fp8-hybrid` | FP8 mixed precision (Hopper/Ada/Blackwell) | | |
| ### Data and Checkpointing | |
| | Argument | Description | | |
| |----------|-------------| | |
| | `--data-path` | Path to preprocessed data | | |
| | `--split` | Train/validation/test split (e.g., 949,50,1) | | |
| | `--save` | Checkpoint save directory | | |
| | `--load` | Checkpoint load directory | | |
| | `--save-interval` | Save checkpoint every N iterations | | |
| ## Next Steps | |
| - **Optimize Performance**: See [Advanced Features](features/index.md) for FSDP, distributed optimizer, and other optimizations | |
| - **Scale Up**: Learn about [Parallelism Strategies](parallelism-guide.md) to train larger models across more GPUs | |
| - **Prepare Data**: Follow the [Data Preparation](data-preparation.md) guide to process your own datasets | |