axolotl-ai-cloud--axolotl
78ec5d9290
ci-cd / build-axolotl-uv (<nil>, 130, 13.0.0, linux/amd64,linux/arm64, 3.12, 2.11.0) (push) Has been cancelled
ci-cd / build-axolotl-uv (<nil>, 130, 13.0.0, true, linux/amd64,linux/arm64, 3.12, 2.12.0) (push) Has been cancelled
ci-cd / build-axolotl-cloud-uv (<nil>, 130, 13.0.0, linux/amd64,linux/arm64, 3.12, 2.11.0) (push) Has been cancelled
ci-cd / build-axolotl-cloud-uv (<nil>, 130, 13.0.0, true, linux/amd64,linux/arm64, 3.12, 2.12.0) (push) Has been cancelled
ci-cd / build-axolotl-cloud-no-tmux-uv (<nil>, 130, 13.0.0, linux/amd64,linux/arm64, 3.12, 2.11.0) (push) Has been cancelled
ci-cd / build-axolotl-cloud-no-tmux-uv (<nil>, 130, 13.0.0, true, linux/amd64,linux/arm64, 3.12, 2.12.0) (push) Has been cancelled
ci-cd-base / build-base-uv (130, 13.0.0, , Dockerfile-uv-base, linux/amd64,linux/arm64, 3.12, 2.12.0, 9.0 10.0 10.3 12.0+PTX) (push) Has been cancelled
ci-cd-base / build-base-uv (130, 13.0.0, , Dockerfile-uv-base, linux/amd64,linux/arm64, 3.12, 2.12.1, 9.0 10.0 10.3 12.0+PTX) (push) Has been cancelled
ci-cd-base / build-base-uv (130, 13.0.0, , Dockerfile-uv-base, linux/amd64,linux/arm64, 3.12, 2.13.0, 9.0 10.0 10.3 12.0+PTX) (push) Has been cancelled
ci-cd-base / build-base-uv (132, 13.2.1, , Dockerfile-uv-base, linux/amd64,linux/arm64, 3.12, 2.13.0, 9.0 10.0 10.3 12.0+PTX, https://download.pytorch.org/whl/cu132) (push) Has been cancelled
ci-cd-base / build-base-uv (130, 13.0.0, , Dockerfile-uv-base, linux/amd64,linux/arm64, 3.12, 2.11.0, 9.0 10.0 10.3 12.0+PTX) (push) Has been cancelled
Tests / PyTest (3.12, 2.12.1) (push) Has been cancelled
Tests / PyTest (3.12, 2.13.0) (push) Has been cancelled
docker-e2e-tests / gate-skip-e2e (push) Has been cancelled
docker-e2e-tests / docker-e2e-tests-1st (<nil>, 130, 13.0.0, 1, 3.12, 2.12.1) (push) Has been cancelled
docker-e2e-tests / docker-e2e-tests (<nil>, 130, 13.0.0, 1, 3.12, 2.11.0) (push) Has been cancelled
docker-e2e-tests / docker-e2e-kernel-tests (<nil>, 130, 13.0.0, 1, 3.12, 2.11.0) (push) Has been cancelled
docker-e2e-tests / docker-e2e-kernel-tests (<nil>, 130, 13.0.0, 1, 3.12, 2.12.1) (push) Has been cancelled
docker-e2e-tests / docker-e2e-cleanup (<nil>, 130, 13.0.0, 1, 3.12, 2.12.1) (push) Has been cancelled
Publish Docs / build-deploy (push) Has been cancelled
Tests / PyTest from Source Dist (3.12, 2.11.0) (push) Has been cancelled
Tests / PyTest from Source Dist (3.12, 2.12.1) (push) Has been cancelled
Tests / PyTest from Source Dist (3.12, 2.13.0) (push) Has been cancelled
Tests / pre-commit (push) Has been cancelled
Tests / Prefetch S3 once to prime the CDN cache (push) Has been cancelled
Tests / PyTest (3.12, 2.11.0) (push) Has been cancelled
57 行
1.7 KiB
Python
57 行
1.7 KiB
Python
"""Tests for batch_size calculation with context parallelism."""
|
|
|
|
import sys
|
|
import types
|
|
|
|
import pytest
|
|
|
|
from axolotl.utils.config import normalize_config, validate_config
|
|
from axolotl.utils.dict import DictDefault
|
|
|
|
|
|
@pytest.fixture(name="cp_base_cfg")
|
|
def fixture_cp_base_cfg(min_base_cfg):
|
|
return (
|
|
DictDefault(
|
|
micro_batch_size=2,
|
|
gradient_accumulation_steps=4,
|
|
sequence_len=2048,
|
|
num_epochs=1,
|
|
flash_attention=True,
|
|
)
|
|
| min_base_cfg
|
|
)
|
|
|
|
|
|
class TestContextParallelBatchSize:
|
|
"""Verify batch_size scales by effective dp world_size when using context parallelism."""
|
|
|
|
@pytest.mark.parametrize(
|
|
"world_size, context_parallel_size, expected_batch_size",
|
|
[
|
|
(4, 1, 32), # no CP: 2*4*4 = 32
|
|
(4, 2, 16), # CP=2: 2*4*(4//2) = 16
|
|
(4, 4, 8), # CP=4: 2*4*(4//4) = 8
|
|
(2, 2, 8), # CP=ws: 2*4*(2//2) = 8 (no scaling)
|
|
],
|
|
)
|
|
def test_batch_size_with_context_parallelism(
|
|
self,
|
|
cp_base_cfg,
|
|
monkeypatch,
|
|
world_size,
|
|
context_parallel_size,
|
|
expected_batch_size,
|
|
):
|
|
monkeypatch.setenv("WORLD_SIZE", str(world_size))
|
|
# Mock ring_flash_attn since it's not installable on CPU,
|
|
# but required by schema validation when context_parallel_size > 1.
|
|
if "ring_flash_attn" not in sys.modules:
|
|
monkeypatch.setitem(
|
|
sys.modules, "ring_flash_attn", types.ModuleType("ring_flash_attn")
|
|
)
|
|
cp_base_cfg["context_parallel_size"] = context_parallel_size
|
|
cfg = validate_config(cp_base_cfg)
|
|
normalize_config(cfg)
|
|
assert cfg.batch_size == expected_batch_size
|