메인 콘텐츠로 건너뛰기

Docker 인테그레이션

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

로컬 개발

wandb docker는 docker 컨테이너 를 시작하고, wandb 환경 변수를 전달하며, 코드를 마운트하고, wandb가 설치되었는지 확인하는 코맨드 입니다. 기본적으로 이 코맨드 는 TensorFlow, PyTorch, Keras 및 Jupyter가 설치된 docker 이미지를 사용합니다. wandb docker my/image:latest와 같이 사용자의 docker 이미지를 시작하는 데에도 동일한 코맨드 를 사용할 수 있습니다. 이 코맨드 는 현재 디렉토리 를 컨테이너의 “/app” 디렉토리 로 마운트하며, “—dir” 플래그를 사용하여 이를 변경할 수 있습니다.

프로덕션

wandb docker-run 코맨드 는 프로덕션 워크로드를 위해 제공됩니다. 이는 nvidia-docker를 대체하여 바로 사용할 수 있도록 설계되었습니다. 이 코맨드 는 docker run 코맨드 에 사용자의 자격 증명과 WANDB_DOCKER 환경 변수를 추가하는 단순한 래퍼입니다. “—runtime” 플래그를 전달하지 않고 머신에서 nvidia-docker를 사용할 수 있는 경우, 런타임이 nvidia로 설정되도록 보장합니다.

Kubernetes

Kubernetes에서 트레이닝 워크로드를 실행하고 k8s API가 pod에 노출된 경우(기본 설정), wandb는 API를 쿼리하여 docker 이미지의 다이제스트를 가져오고 WANDB_DOCKER 환경 변수를 자동으로 설정합니다.

복원하기

WANDB_DOCKER 환경 변수와 함께 Runs 가 기록된 경우, wandb restore username/project:run_id를 호출하면 코드를 복구하는 새 브랜치를 체크아웃한 후, 트레이닝 에 사용되었던 정확한 docker 이미지를 원래 코맨드 가 미리 입력된 상태로 실행합니다.