NVIDIA / NVIDIA/Megatron-LM

🐛 Weekly regression: Mixtral 8x22B loss divergence and iteration-time slowdown

Open
#6,034 0 comments 0 reactions 1 assignee Assigned to @guihong-nv View on GitHub
bug
Dominant language
Python
Stars
17.9k
Forks
4.5k
Avg merge
4d 3h
Merged PRs (30d)
272

Description

**Describe the regression**

The H100 weekly functional release test
`mixtral_8x22b_tp2pp8ep8vpp1_release` completed all 150 training iterations but
failed post-training golden-value validation. The steady-state iteration time
is 9.03% above the golden value, and language-model loss is outside the 5%
tolerance at all 31 sampled steps. Both memory metrics passed.

Tag @NVIDIA/mcore-oncall to get oncall's attention to this issue.

**Affected test**

| Field | Value |
|---|---|
| Test case | `tests/functional_tests/test_cases/mixtral/mixtral_8x22b_tp2pp8ep8vpp1_release` |
| Validation test | `tests/functional_tests/python_test_utils/test_pretraining_regular_pipeline.py::test_regular_pipeline` |
| Environment | `dev` on DGX H100 |
| Tested commit | `f258d4fa82de72705f846fb713bbe3b4180f38e8` |
| Training iterations | 150 |

**Metric details**

The validator uses a relative tolerance of 5% for both `iteration-time` and
`lm loss`.

| Metric | Actual | Golden | Difference | Result |
|---|---:|---:|---:|---|
| Median steady-state iteration time | 7.654155 s | 7.020375 s | +9.03% | Failed |
| Language-model loss samples | 31 of 31 outside tolerance | — | Minimum +21.84%; maximum +332.91% | Failed |
| `mem-allocated-bytes` | Within tolerance | Within tolerance | — | Passed |
| `mem-max-allocated-bytes` | Within tolerance | Within tolerance | — | Passed |

Representative language-model loss samples:

| Step | Actual | Golden | Difference |
|---:|---:|---:|---:|
| 1 | 2.18759 | 1.73932 | +25.77% |
| 60 | 2.36206 | 1.58250 | +49.26% |
| 145 | 6.52672 | 1.50763 | +332.91% |
| 150 | 6.01281 | 1.53412 | +291.94% |

The loss starts above the golden curve and diverges substantially during the
run instead of converging near 1.5.

**Error**

```text
Actual values: 7.654154999999999
Golden values: 7.020375
Approximate comparison of iteration-time: FAILED
Approximate comparison of lm loss: FAILED
APPROXIMATE test for metric mem-allocated-bytes: PASSED
APPROXIMATE test for metric mem-max-allocated-bytes: PASSED

FAILED tests/functional_tests/python_test_utils/test_pretraining_regular_pipeline.py::test_regular_pipeline
AssertionError: The following metrics failed: iteration-time, lm loss
```

**Steps/Code to reproduce bug**

Run the `mixtral_8x22b_tp2pp8ep8vpp1_release` functional release recipe in the
`dev` DGX H100 environment. After training, validate the generated TensorBoard
metrics with:

```bash
uv run pytest -s \
tests/functional_tests/python_test_utils/test_pretraining_regular_pipeline.py \
--golden-values-path tests/functional_tests/test_cases/mixtral/mixtral_8x22b_tp2pp8ep8vpp1_release/golden_values_dev_dgx_h100.json \
--actual-values-path \
--train-iters 150 \
--model-config-path tests/functional_tests/test_cases/mixtral/mixtral_8x22b_tp2pp8ep8vpp1_release/model_config.yaml \
--allow-nondeterministic-algo
```

**Additional context**

- Training itself completed; rank 0 failed only during the post-training metric
comparison.
- The Mixtral 8x7B iteration-time-only weekly failure is tracked separately in
#5456.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.