실행의 원본 데이터를 잃지 않고 실행의 히스토리를 수정하거나 변경하려면 실행을 되감으세요. 추가로,
실행을 되감으면 그 시점부터 새로운 데이터를 로깅할 수 있습니다. W&B는 새로 로깅된 히스토리를 기반으로 되감은 실행의 요약 메트릭을 다시 계산합니다. 이는 다음과 같은 동작을 의미합니다:
- 히스토리 잘라내기: W&B는 되감기 지점까지의 히스토리만 남기고 이후 히스토리를 잘라내어 새 데이터 로깅을 허용합니다.
- 요약 메트릭: 새로 로깅된 히스토리를 기반으로 다시 계산됩니다.
- 설정 보존: W&B는 기존 설정을 보존하며, 여기에 새로운 설정을 병합할 수 있습니다.
실행 되감기 옵션은 현재 private preview 단계입니다. 이 기능에 대한 액세스를 요청하려면 W&B Support(support@wandb.com)로 문의하세요.현재 W&B는 다음을 지원하지 않습니다:
- 로그 되감기: 되감은 이후 실행 구간에서는 로그가 초기화됩니다.
- 시스템 메트릭 되감기: W&B는 되감기 지점 이후의 새로운 시스템 메트릭만 로깅합니다.
- 아티팩트 연결: W&B는 아티팩트를 이를 생성한 소스 실행에 연결합니다.
실행을 되감기(rewind)하면, W&B는 원본 데이터를 그대로 유지하고 동일한 실행 ID를 유지한 채 실행 상태를 지정한 스텝으로 재설정합니다. 이는 다음을 의미합니다.
- Run archiving: W&B는 원래 실행을 보관(archive)합니다. 실행은 Run Overview 탭에서 확인할 수 있습니다.
- Artifact association: 아티팩트를 해당 아티팩트를 생성한 실행과 연결합니다.
Rewind와 포크(forking) 호환성포크는 Rewind 기능을 보완합니다.실행에서 포크할 때, W&B는 특정 시점의 실행에서 분기된 새 브랜치를 생성하여 다른 파라미터나 모델을 시도할 수 있게 합니다.실행을 Rewind할 때, W&B는 실행 이력 자체를 수정하거나 교정할 수 있게 합니다.
실행을 되감기(rewind)하기 전에 다음 사전 요구 사항을 충족하는지 확인하세요:
- 실행을 되감기하려면 W&B Python SDK 버전이
0.17.1 이상이어야 합니다.
- 단조롭게 증가하는 step을 사용해야 합니다. 실행 기록과 시스템 메트릭의 시간 순서가 보장되어야 하므로,
define_metric()으로 정의된 비단조(증가했다가 감소하는 등) step과는 함께 사용할 수 없습니다.
resume_from을 wandb.init()과 함께 사용하여 실행 히스토리를 특정 스텝으로 “되돌릴” 수 있습니다. 되돌리려는 실행의 이름과 되돌리기를 시작할 스텝을 지정하세요:
import wandb
import math
# 첫 번째 실행을 초기화하고 일부 메트릭을 기록합니다
# your_project_name과 your_entity_name을 실제 값으로 교체하세요!
run1 = wandb.init(project="your_project_name", entity="your_entity_name")
for i in range(300):
run1.log({"metric": i})
run1.finish()
# 첫 번째 실행의 특정 스텝으로 되감고 스텝 200부터 메트릭을 기록합니다
run2 = wandb.init(project="your_project_name", entity="your_entity_name", resume_from=f"{run1.id}?_step=200")
# 새 실행에서 계속 기록합니다
# 처음 몇 스텝은 run1의 메트릭을 그대로 기록합니다
# 스텝 250 이후부터 스파이크 패턴을 기록하기 시작합니다
for i in range(200, 300):
if i < 250:
run2.log({"metric": i, "step": i}) # 스파이크 없이 run1에서 이어서 기록합니다
else:
# 스텝 250부터 스파이크 동작을 적용합니다
subtle_spike = i + (2 * math.sin(i / 3.0)) # 완만한 스파이크 패턴을 적용합니다
run2.log({"metric": subtle_spike, "step": i})
# 모든 스텝에서 새 메트릭도 추가로 기록합니다
run2.log({"additional_metric": i * 1.1, "step": i})
run2.finish()
실행을 되감은 후에는 W&B App에서 원본 보관된 실행을 살펴볼 수 있습니다. 보관된 실행을 보려면 다음 단계를 따르세요.
- Overview 탭 열기: 실행 페이지에서 Overview 탭으로 이동합니다. 이 탭에서는 실행의 세부 정보와 기록을 한눈에 확인할 수 있습니다.
- Forked From 필드 찾기: Overview 탭에서
Forked From 필드를 찾습니다. 이 필드는 되감기(재개) 이력을 보여줍니다. Forked From 필드에는 소스 실행에 대한 링크가 포함되어 있어, 원본 실행으로 돌아가 전체 되감기 이력을 파악할 수 있습니다.
Forked From 필드를 사용하면 보관된 되감기 실행들의 트리를 손쉽게 탐색하고 각 되감기의 순서와 출처를 직관적으로 파악할 수 있습니다.
되감은 실행에서 포크하려면 wandb.init()의 fork_from 인자를 사용해, 포크할 소스 실행 ID와 포크 기준이 될 소스 실행의 스텝을 지정합니다.
import wandb
# 특정 스텝에서 실행을 포크합니다
forked_run = wandb.init(
project="your_project_name",
entity="your_entity_name",
fork_from=f"{rewind_run.id}?_step=500",
)
# 새 실행에서 계속 로깅합니다
for i in range(500, 1000):
forked_run.log({"metric": i*3})
forked_run.finish()