Skip to main content
W&B 스윕을 SLURM scheduling system에서 실행할 때는 각 예약된 작업에서 wandb agent --count 1 SWEEP_ID를 실행하세요. 에이전트는 하나의 트레이닝 run을 실행한 후 종료되므로 리소스 추정이 간단해지고, SLURM 스케줄러가 여러 작업에 걸쳐 하이퍼파라미터 검색을 병렬화할 수 있습니다. multi-GPU 또는 분산 트레이닝 작업의 경우 추가 규칙이 적용됩니다. SLURM 작업당 하나의 프로세스만 wandb.agent()를 호출해야 합니다. 모든 rank가 에이전트를 호출하면 각 rank가 스윕 컨트롤러에서 자체 하이퍼파라미터 설정을 가져오게 되어 rank들이 동일한 모델을 트레이닝하지 않게 됩니다. 아래 섹션에서는 단일 프로세스 작업을 위한 제출 명령, 분산 트레이닝이 포함된 multi-GPU 작업을 위한 rank-gating 패턴, global rank와 local rank 중 어느 쪽에 게이팅할지, rank 0이 아닌 rank에서 로깅하는 방법을 보여줍니다.

단일 프로세스 또는 단일 GPU 작업

다음을 사용하여 예약된 각 작업을 제출하세요:

Multi-GPU 작업과 분산 트레이닝

W&B 스윕을 분산 트레이닝과 함께 실행할 때(예: --gpus-per-node를 사용하는 multi-GPU 작업), SLURM_PROCID 환경 변수를 사용하여 하나의 rank에서만 wandb.agent()가 실행되도록 제한하세요. 다른 rank는 스윕 에이전트나 wandb.init()를 호출하지 않고 분산 트레이닝을 실행해야 합니다. 분산 트레이닝의 W&B 측면에 대한 일반적인 내용은 분산 트레이닝 실험 로깅을 참조하세요.
이 패턴은 다음을 보장합니다:
  • 각 SLURM 작업은 스윕 컨트롤러에 정확히 하나의 run을 등록합니다.
  • rank 0이 아닌 rank들은 중복되거나 연결되지 않은 run을 생성하지 않고 분산 트레이닝의 일부를 실행합니다.
  • 스윕 컨트롤러는 진행 상황을 올바르게 추적하고 새로운 하이퍼파라미터 설정을 스케줄합니다.
submitit 또는 유사한 런처를 사용하는 경우, wandb.agent()를 호출하기 전에 트레이닝 엔트리 포인트에서 동일한 검사를 적용하세요.

SLURM_PROCID와 SLURM_LOCALID 중 선택

SLURM_PROCID는 전체 SLURM 작업의 global rank입니다. 분산 그룹 전체에 대해 정확히 하나의 에이전트를 원할 때 SLURM_PROCID == 0에 게이트하세요. 이는 스윕의 일반적인 경우입니다. SLURM_LOCALID는 단일 노드 내의 rank입니다. 노드당 하나의 에이전트를 원할 때 SLURM_LOCALID == 0에 게이트하세요. 예를 들어 노드 간에 독립적인 스윕 run을 병렬로 실행하려는 경우입니다.

rank 0이 아닌 rank에서 로깅하기

위 예시는 rank 0만 W&B에 로깅하는 단일 프로세스 추적 패턴을 따릅니다. rank별 시스템 메트릭을 캡처하는 등의 목적으로 rank 0이 아닌 rank도 동일한 run에 로깅하도록 하려면 공유 모드를 사용하고 각 워커에 rank 0의 run ID를 전달하세요. 모든 프로세스를 단일 run으로 추적을 참조하세요.
Sweeps Experiments
Last modified on September 30, 2026