메인 콘텐츠로 건너뛰기
run이 중단되거나 충돌이 발생했을 때 어떻게 동작해야 하는지 지정할 수 있습니다. run을 재개하거나 자동으로 재개되도록 설정하려면, id 파라미터에 해당 run과 관련된 고유한 run ID를 지정해야 합니다:
import wandb
# resume 파라미터와 run ID를 사용하여 wandb 초기화
with wandb.init(entity="<entity>", project="<project>", id="<run ID>", resume="<resume>") as run:
        # 여기에 트레이닝 코드를 작성하세요
W&B는 run을 저장할 W&B Projects의 이름을 제공할 것을 권장합니다.
W&B가 어떻게 반응할지 결정하기 위해 resume 파라미터에 다음 인수 중 하나를 전달하세요. 각 경우에 대해 W&B는 먼저 run ID가 이미 존재하는지 확인합니다.
인수설명Run ID 존재 시Run ID 미존재 시유스 케이스
"must"W&B는 지정된 run ID의 run을 반드시 재개해야 합니다.W&B가 동일한 run ID로 run을 재개합니다.W&B가 오류를 발생시킵니다.동일한 run ID를 반드시 사용해야 하는 run을 재개할 때 사용합니다.
"allow"run ID가 존재하는 경우 W&B가 run을 재개하도록 허용합니다.W&B가 동일한 run ID로 run을 재개합니다.W&B가 지정된 run ID로 새로운 run을 시작합니다.기존 run을 덮어쓰지 않고 run을 재개할 때 사용합니다.
"never"W&B가 지정된 run ID의 run을 재개하는 것을 절대 허용하지 않습니다.W&B가 오류를 발생시킵니다.W&B가 지정된 run ID로 새로운 run을 시작합니다.
W&B가 사용자 대신 자동으로 run 재시도를 시도하도록 resume="auto"를 지정할 수도 있습니다. 단, 동일한 디렉토리에서 run을 다시 시작해야 합니다. 자세한 내용은 run이 자동으로 재개되도록 설정 섹션을 참조하세요. 아래의 모든 예시에서 <>로 둘러싸인 값은 실제 사용자의 값으로 교체하세요.

동일한 run ID를 사용해야 하는 run 재개

run이 중단, 충돌 또는 실패한 경우, 동일한 run ID를 사용하여 재개할 수 있습니다. 이를 위해 run을 초기화할 때 다음을 지정하세요:
  • resume 파라미터를 "must"로 설정 (resume="must")
  • 중단되거나 충돌한 run의 run ID 제공
다음 코드 조각은 W&B Python SDK를 사용하여 이를 수행하는 방법을 보여줍니다:
with wandb.init(entity="<entity>", project="<project>", id="<run ID>", resume="must") as run:
        # 여기에 트레이닝 코드를 작성하세요
여러 프로세스가 동시에 동일한 id를 사용하면 예기치 않은 결과가 발생할 수 있습니다.여러 프로세스를 관리하는 방법에 대한 자세한 내용은 분산 트레이닝 실험 로그 기록 가이드를 참조하세요.

기존 run을 덮어쓰지 않고 run 재개

기존 run을 덮어쓰지 않고 중단되거나 충돌한 run을 재개합니다. 이는 프로세스가 성공적으로 종료되지 않은 경우 특히 유용합니다. 다음에 W&B를 시작할 때, W&B는 마지막 스텝부터 로그를 기록하기 시작합니다. W&B로 run을 초기화할 때 resume 파라미터를 "allow"로 설정 (resume="allow")하세요. 중단되거나 충돌한 run의 run ID를 제공합니다. 다음 코드 조각은 W&B Python SDK를 사용하여 이를 수행하는 방법을 보여줍니다:
import wandb

with wandb.init(entity="<entity>", project="<project>", id="<run ID>", resume="allow") as run:
        # 여기에 트레이닝 코드를 작성하세요

run이 자동으로 재개되도록 설정

다음 코드 조각은 Python SDK 또는 환경 변수를 사용하여 run이 자동으로 재개되도록 설정하는 방법을 보여줍니다.
다음 코드 조각은 Python SDK로 W&B run ID를 지정하는 방법을 보여줍니다.<>로 둘러싸인 값을 사용자의 값으로 교체하세요:
with wandb.init(entity="<entity>", project="<project>", id="<run ID>", resume="<resume>") as run:
        # 여기에 트레이닝 코드를 작성하세요
자동 재개는 프로세스가 실패한 프로세스와 동일한 파일 시스템 위에서 다시 시작될 때만 작동합니다.
예를 들어, Users/AwesomeEmployee/Desktop/ImageClassify/training/ 디렉토리에서 train.py라는 파이썬 스크립트를 실행한다고 가정해 보겠습니다. train.py 내에서 스크립트는 자동 재개가 활성화된 run을 생성합니다. 그 후 트레이닝 스크립트가 중단되었다면, 이 run을 재개하기 위해 Users/AwesomeEmployee/Desktop/ImageClassify/training/ 내에서 train.py 스크립트를 다시 시작해야 합니다.
파일 시스템을 공유할 수 없는 경우, WANDB_RUN_ID 환경 변수를 지정하거나 W&B Python SDK를 통해 run ID를 전달하세요. run ID에 대한 자세한 내용은 “What are runs?” 페이지의 Custom run IDs 섹션을 참조하세요.

선점 가능한(preemptible) Sweeps run 재개

중단된 sweep run을 자동으로 다시 큐에 넣습니다. 이는 SLURM 작업의 선점형 큐, EC2 스팟 인스턴스 또는 Google Cloud 선점형 VM과 같이 선점될 수 있는 컴퓨팅 환경에서 스윕 에이전트를 실행할 때 특히 유용합니다. 중단된 sweep run을 자동으로 다시 큐에 넣으려면 mark_preempting 함수를 사용하세요. 예시:
with wandb.init() as run:
    run.mark_preempting()
다음 표는 sweep run의 종료 상태에 따라 W&B가 run을 처리하는 방식을 설명합니다.
상태행동
상태 코드 0run이 성공적으로 종료된 것으로 간주되며 다시 큐에 추가되지 않습니다.
0이 아닌 상태 코드W&B가 해당 sweep과 관련된 run 큐에 run을 자동으로 추가합니다.
상태 없음run이 sweep run 큐에 추가됩니다. 스윕 에이전트는 큐가 비워질 때까지 큐에서 run을 가져와 수행합니다. 큐가 비워지면 sweep 큐는 sweep 검색 알고리즘에 따라 새로운 run 생성을 재개합니다.