메인 콘텐츠로 건너뛰기

Docker 통합

W&B는 코드가 실행된 Docker 이미지에 대한 포인터를 저장할 수 있으므로, 과거 실험을 실행 당시와 완전히 동일한 환경으로 복원할 수 있습니다. wandb 라이브러리는 이 상태를 유지하기 위해 WANDB_DOCKER 환경 변수를 참조합니다. 이 상태를 자동으로 설정해 주는 몇 가지 헬퍼도 제공합니다.

로컬 개발

wandb docker는 Docker 컨테이너를 시작하고, wandb 환경 변수를 전달하며, 사용자의 코드를 마운트하고, wandb가 설치되어 있도록 보장하는 명령입니다. 기본적으로 이 명령은 TensorFlow, PyTorch, Keras, Jupyter가 설치된 Docker 이미지를 사용합니다. 동일한 명령으로 사용자의 Docker 이미지를 시작할 수도 있습니다: wandb docker my/image:latest. 이 명령은 현재 디렉터리를 컨테이너의 “/app” 디렉터리에 마운트하며, “—dir” 플래그를 사용해 이 경로를 변경할 수 있습니다.

프로덕션

wandb docker-run 명령은 프로덕션 워크로드를 위해 제공됩니다. 이 명령은 nvidia-docker를 그대로 대체할 수 있는 드롭인 대체용으로 설계되었습니다. 이는 docker run 명령을 간단히 래핑하여 호출 시 자격 증명과 WANDB_DOCKER 환경 변수를 추가합니다. “—runtime” 플래그를 전달하지 않고 머신에 nvidia-docker가 사용 가능한 경우, 런타임이 nvidia로 설정되도록 보장합니다.

Kubernetes

Kubernetes에서 학습 워크로드를 실행하고, k8s API가 파드에 노출되어 있다면(기본 설정입니다), wandb는 Docker 이미지의 다이제스트를 가져오기 위해 API를 조회하고 WANDB_DOCKER 환경 변수를 자동으로 설정합니다.

복원

실행이 WANDB_DOCKER 환경 변수를 사용하도록 설정되어 있었다면, wandb restore username/project:run_id를 호출하면 코드를 복원하는 새 브랜치를 체크아웃한 다음, 학습에 사용된 것과 동일한 Docker 이미지를 원래 명령어가 미리 입력된 상태로 실행합니다.