메인 콘텐츠로 건너뛰기
실행이 중지되거나 충돌했을 때 어떻게 동작할지 지정합니다. 실행을 다시 시작하거나 자동 재개를 활성화하려면, 해당 실행과 연결된 고유 실행 ID를 id 매개변수에 지정해야 합니다:
import wandb
with wandb.init(entity="<entity>", project="<project>", id="<run ID>", resume="<resume>") as run:
        # 여기에 학습 코드를 작성하세요
W&B는 실행을 저장하려는 W&B Project의 이름을 지정할 것을 권장합니다.
resume 매개변수에 다음 인수 중 하나를 전달하여 W&B의 동작 방식을 결정합니다. 각 경우에 W&B는 먼저 실행 ID가 이미 존재하는지 확인합니다.
ArgumentDescriptionRun ID existsRun ID does not existUse case
"must"W&B는 실행 ID로 지정된 실행을 반드시 재개해야 합니다.W&B는 동일한 실행 ID를 가진 실행을 재개합니다.W&B는 오류를 발생시킵니다.동일한 실행 ID를 반드시 사용해야 하는 실행을 재개합니다.
"allow"실행 ID가 존재하는 경우 해당 실행을 W&B가 재개하도록 허용합니다.W&B는 동일한 실행 ID를 가진 실행을 재개합니다.W&B는 지정된 실행 ID로 새 실행을 초기화합니다.기존 실행을 덮어쓰지 않고 실행을 재개합니다.
"never"실행 ID로 지정된 실행을 W&B가 절대 재개하지 않도록 합니다.W&B는 오류를 발생시킵니다.W&B는 지정된 실행 ID로 새 실행을 초기화합니다.
또한 resume="auto"를 지정하면 W&B가 자동으로 실행을 다시 시작하도록 할 수 있습니다. 다만, 반드시 동일한 디렉터리에서 실행을 다시 시작해야 합니다. 자세한 내용은 실행을 자동으로 재개하도록 활성화하기 섹션을 참고하세요. 아래 각 예시에서 <> 안에 있는 값은 사용자 고유의 값으로 바꾸세요.

동일한 run ID를 반드시 사용해 실행 재개하기

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

기존 실행을 덮어쓰지 않고 다시 시작하기

중단되었거나 크래시된 실행을 기존 실행을 덮어쓰지 않고 이어서 재개할 수 있습니다. 이는 프로세스가 정상적으로 종료되지 않았을 때 특히 유용합니다. 다음에 W&B를 시작하면 W&B는 마지막 스텝부터 로깅을 다시 시작합니다. W&B로 실행을 초기화할 때 resume 파라미터를 "allow" (resume="allow")로 설정합니다. 중단되었거나 크래시된 실행의 실행 ID를 지정합니다. 다음 코드 스니펫은 W&B Python SDK로 이를 수행하는 방법을 보여줍니다:
import wandb

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

실행이 자동으로 재개되도록 설정하기

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

선점 가능한 스위프 실행 재개

중단된 스위프 실행을 자동으로 다시 실행 대기열에 넣을 수 있습니다. 이는 선점 가능한 큐의 SLURM 작업, EC2 스팟 인스턴스, Google Cloud 선점형 VM처럼 선점이 발생할 수 있는 컴퓨팅 환경에서 스위프 에이전트를 실행하는 경우에 특히 유용합니다. mark_preempting 함수를 사용해 중단된 스위프 실행을 자동으로 다시 큐에 넣을 수 있습니다. 예:
with wandb.init() as run:
    run.mark_preempting()
다음 표는 스윕 실행의 종료 상태에 따라 W&B가 실행을 처리하는 방식을 설명합니다.
StatusBehavior
Status code 0실행은 정상 종료된 것으로 간주되며 다시 큐에 넣지 않습니다.
Nonzero statusW&B는 해당 실행을 스윕과 연결된 실행 큐에 자동으로 추가합니다.
No status실행은 스윕 실행 큐에 추가됩니다. 스윕 에이전트는 큐가 빌 때까지 실행 큐에서 실행을 가져와 처리합니다. 큐가 비면, 스윕 큐는 스윕 검색 알고리즘을 기반으로 새로운 실행을 생성하는 작업을 재개합니다.