Skip to main content

Docker 인테그레이션

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

로컬 개발

wandb docker는 도커 컨테이너를 시작하고, wandb 환경 변수를 전달하며, 코드를 마운트하고, wandb가 설치되도록 해 주는 명령어입니다. 기본적으로 이 명령어는 TensorFlow, PyTorch, Keras, Jupyter가 설치된 도커 이미지를 사용합니다. 동일한 명령어로 자체 도커 이미지도 시작할 수 있습니다: 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는 API를 쿼리해 도커 이미지의 digest를 확인하고 WANDB_DOCKER 환경 변수를 자동으로 설정합니다.

복원

run이 WANDB_DOCKER 환경 변수와 함께 기록된 경우, wandb restore username/project:run_id를 실행하면 코드를 복원한 새 브랜치를 체크아웃한 다음, 원래 명령어가 미리 채워진 트레이닝에 사용된 정확한 도커 이미지를 실행합니다.