"""Smoke tests for DeepSpeed accelerate config detection.""" import os import sys sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) from opsd_utils.deepspeed_utils import ( deepspeed_requires_single_student_forward, deepspeed_zero_stage, gradient_checkpointing_enable_kwargs, is_deepspeed_accelerate_config, should_colocate_teacher_with_student, should_disable_gradient_checkpointing, student_forward_chunk_size, uses_deepspeed_json_file, ) def test_zero2_config_detected(monkeypatch): monkeypatch.setenv("ACCELERATE_CONFIG", "default_config_zero2.yaml") assert is_deepspeed_accelerate_config() assert uses_deepspeed_json_file() assert deepspeed_zero_stage() == 2 assert should_colocate_teacher_with_student("auto") assert gradient_checkpointing_enable_kwargs() == {"use_reentrant": False} assert deepspeed_requires_single_student_forward() assert should_disable_gradient_checkpointing() assert student_forward_chunk_size(32, has_vision=True) == 32 assert student_forward_chunk_size(32, has_vision=False) == 32 def test_ddp_config_not_deepspeed(monkeypatch): monkeypatch.setenv("ACCELERATE_CONFIG", "default_config.yaml") assert not is_deepspeed_accelerate_config() assert not should_colocate_teacher_with_student("auto") assert not deepspeed_requires_single_student_forward() assert student_forward_chunk_size(8, has_vision=True) == 1