Colab에서 시도하기
wandb launch 코맨드를 사용하여 jobs를 생성하고 실행하세요.
실행을 위해 제출하지 않고 job을 생성만 하려면
wandb job create 코맨드를 사용하세요. 자세한 내용은 코맨드 레퍼런스 문서를 참조하세요.Git jobs
W&B Launch를 사용하여 원격 git 저장소의 특정 커밋, 브랜치 또는 태그에서 코드 및 기타 추적된 자산을 클론하는 Git 기반 job을 생성할 수 있습니다.--uri 또는 -u 플래그를 사용하여 코드가 포함된 URI를 지정하고, 선택적으로 --build-context 플래그를 사용하여 하위 디렉토리를 지정합니다.
다음 코맨드를 사용하여 git 저장소에서 “hello world” job을 실행하세요:
- W&B Launch jobs 저장소를 임시 디렉토리에 클론합니다.
- hello 프로젝트 내에 hello-world-git이라는 이름의 job을 생성합니다. 이 job은 저장소 기본 브랜치의 헤드 커밋과 연결됩니다.
jobs/hello_world디렉토리와Dockerfile.wandb를 사용하여 Docker 이미지를 빌드합니다.- 컨테이너를 시작하고
python job.py를 실행합니다.
-g, --git-hash 인수를 추가하세요. 전체 인수 목록을 보려면 wandb launch --help를 실행하세요.
원격 URL 형식
Launch job과 연결된 git 원격 저장소는 HTTPS 또는 SSH URL일 수 있습니다. URL 유형에 따라 job 소스 코드를 가져오는 데 사용되는 프로토콜이 결정됩니다.| 원격 URL 유형 | URL 형식 | 엑세스 및 인증 요구 사항 |
|---|---|---|
| https | https://github.com/organization/repository.git | git 원격 저장소 인증을 위한 사용자 이름 및 비밀번호 |
| ssh | git@github.com:organization/repository.git | git 원격 저장소 인증을 위한 ssh 키 |
wandb launch --uri로 생성된 jobs는 제공된 --uri에 지정된 전송 프로토콜을 사용합니다.
Code artifact jobs
W&B Artifact에 저장된 모든 소스 코드에서 jobs를 생성할 수 있습니다. 로컬 디렉토리와 함께--uri 또는 -u 인수를 사용하여 새로운 code artifact 및 job을 생성하세요.
시작하려면 빈 디렉토리를 생성하고 다음 내용이 포함된 main.py라는 Python 스크립트를 추가하세요:
requirements.txt 파일을 추가하세요:
- 현재 디렉토리를
hello-world-code라는 이름의 code artifact로 기록합니다. launch-quickstart프로젝트 내에hello-world-code라는 이름의 job을 생성합니다.- 현재 디렉토리와 Launch의 기본 Dockerfile을 사용하여 컨테이너 이미지를 빌드합니다. 기본 Dockerfile은
requirements.txt파일을 설치하고 엔트리 포인트를python main.py로 설정합니다.
Image jobs
또는 미리 제작된 Docker 이미지에서 jobs를 빌드할 수도 있습니다. 이는 이미 ML 코드를 위한 빌드 시스템이 구축되어 있거나, 코드나 요구 사항을 수정할 필요는 없지만 하이퍼파라미터나 다른 인프라 규모로 실험하고 싶을 때 유용합니다. 이미지는 Docker 레지스트리에서 가져와 지정된 엔트리 포인트로 실행되거나, 지정되지 않은 경우 기본 엔트리 포인트로 실행됩니다. Docker 이미지에서 job을 생성하고 실행하려면--docker-image 옵션에 전체 이미지 태그를 전달하세요.
미리 제작된 이미지에서 간단한 job을 실행하려면 다음 코맨드를 사용하세요:
자동 job 생성
W&B는 Launch로 생성되지 않았더라도 소스 코드가 추적되는 모든 run에 대해 job을 자동으로 생성하고 추적합니다. 다음 세 가지 조건 중 하나라도 충족되면 run의 소스 코드가 추적되는 것으로 간주됩니다:- run에 연결된 git 원격 저장소 및 커밋 해시가 있는 경우.
- run이 code artifact를 기록한 경우.
Run.log_code를 참조하세요. - run이
WANDB_DOCKER환경 변수에 이미지 태그가 설정된 docker 컨테이너에서 실행된 경우.
Launch job 이름
기본적으로 W&B는 job 이름을 자동으로 생성합니다. 이름은 job이 생성되는 방식(GitHub, code artifact, 또는 Docker 이미지)에 따라 생성됩니다. 또는 환경 변수나 W&B Python SDK를 사용하여 Launch job의 이름을 정의할 수도 있습니다. 다음 표는 job 소스에 따라 기본적으로 사용되는 job 명명 규칙을 설명합니다:| 소스 | 명명 규칙 |
|---|---|
| GitHub | job-<git-remote-url>-<path-to-script> |
| Code artifact | job-<code-artifact-name> |
| Docker image | job-<image-name> |
- 환경 변수
- W&B Python SDK
WANDB_JOB_NAME 환경 변수를 원하는 job 이름으로 설정하세요. 예:docker 이미지 jobs의 경우, 버전 에일리어스가 job에 에일리어스로 자동 추가됩니다.
컨테이너화
Jobs는 컨테이너에서 실행됩니다. Image jobs는 미리 빌드된 Docker 이미지를 사용하는 반면, Git 및 code artifact jobs는 컨테이너 빌드 단계가 필요합니다. Job 컨테이너화는wandb launch의 인수와 job 소스 코드 내의 파일을 통해 커스터마이징할 수 있습니다.
빌드 컨텍스트 (Build context)
빌드 컨텍스트라는 용어는 컨테이너 이미지를 빌드하기 위해 Docker 데몬으로 전송되는 파일 및 디렉토리 트리를 의미합니다. 기본적으로 Launch는 job 소스 코드의 루트를 빌드 컨텍스트로 사용합니다. 하위 디렉토리를 빌드 컨텍스트로 지정하려면 job을 생성하고 실행할 때wandb launch의 --build-context 인수를 사용하세요.
--build-context 인수는 여러 프로젝트가 포함된 모노레포(monorepo)를 참조하는 Git jobs를 작업할 때 특히 유용합니다. 하위 디렉토리를 빌드 컨텍스트로 지정함으로써 모노레포 내의 특정 프로젝트에 대한 컨테이너 이미지를 빌드할 수 있습니다.공식 W&B Launch jobs 저장소와 함께 --build-context 인수를 사용하는 방법은 위의 예시를 참조하세요.Dockerfile
Dockerfile은 Docker 이미지를 빌드하기 위한 명령이 포함된 텍스트 파일입니다. 기본적으로 Launch는requirements.txt 파일을 설치하는 기본 Dockerfile을 사용합니다. 커스텀 Dockerfile을 사용하려면 wandb launch의 --dockerfile 인수로 파일 경로를 지정하세요.
Dockerfile 경로는 빌드 컨텍스트를 기준으로 지정됩니다. 예를 들어 빌드 컨텍스트가 jobs/hello_world이고 Dockerfile이 jobs/hello_world 디렉토리에 있는 경우, --dockerfile 인수는 Dockerfile.wandb로 설정되어야 합니다. 공식 W&B Launch jobs 저장소와 함께 --dockerfile 인수를 사용하는 방법은 위의 예시를 참조하세요.
요구 사항 파일 (Requirements file)
커스텀 Dockerfile이 제공되지 않으면, Launch는 빌드 컨텍스트에서 설치할 Python 종속성을 찾습니다. 빌드 컨텍스트의 루트에서requirements.txt 파일이 발견되면 Launch는 해당 파일에 나열된 종속성을 설치합니다. 그렇지 않고 pyproject.toml 파일이 발견되면 Launch는 project.dependencies 섹션에서 종속성을 설치합니다.