Skip to main content

Colab에서 사용해 보기

이 페이지에서는 W&B run을 필요할 때마다 재현할 수 있도록 W&B Launch 작업을 생성하는 방법을 설명합니다. Launch 작업은 W&B run을 재현하기 위한 청사진입니다. 작업은 워크로드 실행에 필요한 소스 코드, 의존성, 입력을 캡처하는 W&B 아티팩트입니다. Git 저장소, 로컬 코드 디렉터리 또는 사전 빌드된 도커 이미지로 워크로드를 패키징해 두고, 나중에 다른 매개변수로 또는 다른 인프라에서 다시 실행하려는 경우 이 페이지를 참고하세요. wandb launch 명령으로 작업을 생성하고 실행할 수 있습니다.
작업을 실행하도록 제출하지 않고 생성만 하려면 wandb job create 명령을 사용하세요. 자세한 내용은 명령 레퍼런스 문서를 참조하세요.

Git 작업

소스 코드가 원격 저장소에 있고 Launch가 특정 커밋, 브랜치 또는 태그 시점의 코드를 복제하게 하려면 Git 기반 작업을 사용하세요. W&B Launch는 원격 Git 저장소의 커밋, 브랜치 또는 태그에서 코드와 기타 추적 대상 자산을 복제합니다. --uri 또는 -u 플래그로 코드가 있는 URI를 지정하고, 필요하면 --build-context 플래그로 하위 디렉터리를 지정하세요. 다음 명령으로 Git 저장소에서 hello world 작업을 실행하세요.
이 명령은 다음 작업을 수행합니다.
  1. W&B Launch 작업 저장소를 임시 디렉터리에 복제합니다.
  2. hello 프로젝트에 hello-world-git이라는 작업을 생성합니다. 이 작업은 저장소 기본 브랜치의 헤드 커밋과 연결됩니다.
  3. jobs/hello_world 디렉터리와 Dockerfile.wandb를 사용해 컨테이너 이미지를 구축합니다.
  4. 컨테이너를 시작하고 python job.py를 실행합니다.
명령이 완료되면 hello-world 프로젝트에 재사용 가능한 Git 기반 작업이 생성됩니다. 다른 사용자나 자동화에서 wandb launch로 이 작업을 다시 실행할 수 있습니다. 특정 브랜치나 커밋 해시로 작업을 구축하려면 -g, --git-hash 인수를 추가하세요. 전체 인수 목록을 보려면 wandb launch --help를 실행하세요.

원격 URL 형식

Launch 작업에 연결된 Git 원격 저장소는 HTTPS URL 또는 SSH URL을 사용할 수 있습니다. 작업 소스 코드를 가져올 때 사용하는 프로토콜은 URL 유형에 따라 결정됩니다. 정확한 URL 형식은 호스팅 공급자마다 다릅니다. wandb launch --uri로 생성한 작업은 지정한 --uri의 전송 프로토콜을 사용합니다.

코드 아티팩트 작업

소스가 원격 Git 저장소가 아닌 로컬 디렉터리에 있다면 코드 아티팩트 작업을 사용하세요. W&B 아티팩트에 저장된 소스 코드라면 무엇이든 작업으로 생성할 수 있습니다. --uri 또는 -u 인수에 로컬 디렉터리를 지정하면 새 코드 아티팩트와 작업이 생성됩니다. 먼저 빈 디렉터리를 만들고, 다음 내용이 담긴 main.py라는 Python 스크립트를 추가하세요.
다음 내용으로 requirements.txt 파일을 추가하세요.
다음 명령어를 사용하여 디렉터리를 코드 아티팩트로 로깅하고 작업을 실행하세요.
위 명령은 다음 작업을 수행합니다.
  1. 현재 디렉터리를 hello-world-code라는 이름의 코드 아티팩트로 로깅합니다.
  2. launch-quickstart 프로젝트에 hello-world-code라는 이름의 작업을 생성합니다.
  3. 현재 디렉터리와 Launch의 기본 Dockerfile을 사용해 컨테이너 이미지를 구축합니다. 기본 Dockerfile은 requirements.txt 파일에 명시된 패키지를 설치하고 엔트리 포인트를 python main.py로 설정합니다.
명령이 완료되면 로컬 코드가 W&B 코드 아티팩트로 캡처되며, 이 아티팩트는 launch-quickstart 프로젝트에서 재사용할 수 있는 작업에 연결됩니다.

이미지 작업

미리 만들어 둔 도커 이미지로 작업을 구축할 수도 있습니다. 이 방식은 ML 코드용 구축 시스템이 이미 있거나, 작업의 코드나 요구 사항은 바꿀 계획이 없지만 하이퍼파라미터나 인프라 규모를 바꿔 가며 실험하려는 경우에 유용합니다. Launch는 도커 레지스트리에서 이미지를 가져온(pull) 후 지정된 엔트리 포인트로 실행합니다. 엔트리 포인트를 지정하지 않으면 기본 엔트리 포인트로 실행합니다. 도커 이미지로 작업을 생성하고 실행하려면 --docker-image 옵션에 전체 이미지 태그를 전달하세요. 다음 명령을 사용하여 미리 만들어 둔 이미지에서 작업을 실행하세요.

자동 작업 생성

wandb launch로 직접 생성하는 작업 외에도, W&B는 추적되는 코드를 실행하는 과정에서 작업을 자동으로 생성할 수 있습니다. 소스 코드가 추적되는 run이라면 Launch로 생성되지 않았더라도 W&B가 해당 run의 작업을 자동으로 생성하고 추적합니다. 다음 세 가지 조건 중 하나라도 충족하는 run은 소스 코드가 추적되는 것으로 간주됩니다.
  • run에 연결된 Git 원격 저장소와 커밋 해시가 있습니다.
  • run이 코드 아티팩트를 로깅했습니다. Run.log_code를 참조하세요.
  • run이 WANDB_DOCKER 환경 변수가 이미지 태그로 설정된 도커 컨테이너에서 실행되었습니다.
W&B가 W&B run으로부터 Launch 작업을 자동으로 생성하는 경우, Git 원격 URL은 로컬 Git 저장소에서 추론합니다.

Launch 작업 이름

기본적으로 W&B는 작업 이름을 자동으로 생성합니다. 이름은 작업을 생성한 방식(GitHub, 코드 아티팩트 또는 도커 이미지)에 따라 달라집니다. 환경 변수나 W&B Python SDK를 사용하여 Launch 작업의 이름을 직접 정의할 수도 있습니다. 다음 표는 작업 소스별로 기본 적용되는 작업 이름 지정 규칙을 보여 줍니다. W&B 환경 변수 또는 W&B Python SDK를 사용하여 작업 이름을 지정하세요.
WANDB_JOB_NAME 환경 변수를 원하는 작업 이름으로 설정하세요. 예:
도커 이미지 작업의 경우 W&B가 버전 별칭을 작업의 별칭으로 자동 추가합니다.

컨테이너화

작업은 컨테이너에서 실행됩니다. 이미지 작업은 미리 구축된 도커 이미지를 사용하지만, Git 작업과 코드 아티팩트 작업은 컨테이너 구축 단계를 거쳐야 합니다. wandb launch에 전달하는 인수와 작업 소스 코드에 포함된 파일을 사용하여 작업 컨테이너화를 사용자 지정할 수 있습니다. 다음 섹션에서는 구축 컨텍스트를 제어하고, 맞춤형 Dockerfile을 제공하고, Python 의존성을 관리하는 방법을 설명합니다.

구축 컨텍스트

구축 컨텍스트란 컨테이너 이미지를 구축하기 위해 도커 데몬으로 전송되는 파일 및 디렉터리 트리를 말합니다. 기본적으로 Launch는 작업 소스 코드의 루트를 구축 컨텍스트로 사용합니다. 하위 디렉터리를 구축 컨텍스트로 지정하려면 작업을 생성하고 실행할 때 wandb launch의 --build-context 인수를 사용하세요.
--build-context 인수는 여러 프로젝트가 포함된 모노레포를 참조하는 Git 작업에서 유용합니다. 하위 디렉터리를 구축 컨텍스트로 지정하면 모노레포 내 특정 프로젝트의 컨테이너 이미지를 구축할 수 있습니다.공식 W&B Launch 작업 저장소에서 --build-context 인수를 사용하는 예시는 Git 작업을 참고하세요.

Dockerfile

Dockerfile은 도커 이미지를 구축하는 데 필요한 명령어가 담긴 텍스트 파일입니다. Launch는 기본적으로 requirements.txt 파일을 설치하는 기본 Dockerfile을 사용합니다. 맞춤형 Dockerfile을 사용하려면 wandb launch의 --dockerfile 인수로 파일 경로를 지정하세요. Dockerfile 경로는 구축 컨텍스트를 기준으로 한 상대 경로로 지정하세요. 예를 들어 구축 컨텍스트가 jobs/hello_world이고 Dockerfile이 jobs/hello_world 디렉터리에 있다면 --dockerfile 인수를 Dockerfile.wandb로 설정하세요. 공식 W&B Launch 작업 저장소에서 --dockerfile 인수를 사용하는 예시는 Git 작업을 참조하세요.

Requirements 파일

맞춤형 Dockerfile을 제공하지 않으면 Launch는 구축 컨텍스트에서 설치할 Python 의존성을 찾습니다. 구축 컨텍스트의 루트에 requirements.txt 파일이 있으면 Launch는 이 파일에 나열된 의존성을 설치합니다. requirements.txt 파일이 없고 pyproject.toml 파일이 있으면 Launch는 project.dependencies 섹션에 정의된 의존성을 설치합니다.
마지막 수정일 2026년 9월 30일