메인 콘텐츠로 건너뛰기
W&B Launch에서는 run을 생성하기 위해 작업에 추가합니다. 작업은 W&B가 적용된 Python 스크립트입니다. 큐는 대상 리소스에서 실행할 작업 목록을 보관합니다. 에이전트는 큐에서 작업을 가져와 대상 리소스에서 실행합니다. W&B는 runs를 추적하는 방식과 비슷하게 launch job을 추적합니다.

Launch job

Launch job은 완료할 작업을 나타내는 특정 유형의 W&B Artifact입니다. 예를 들어, 일반적인 Launch job에는 모델을 트레이닝하거나 모델 Evaluation을 트리거하는 작업이 포함됩니다. 작업 정의에는 다음이 포함됩니다.
  • Python 코드와 기타 파일 asset. 여기에는 최소 하나의 실행 가능한 entrypoint가 포함됩니다.
  • 입력(config Parameter)과 출력(로깅된 메트릭)에 대한 정보.
  • 환경 정보. (예: requirements.txt, 기본 Dockerfile)
작업 정의에는 크게 세 가지 종류가 있습니다.
Job typesDefinitionHow to run this job type
Artifact-based (or code-based) jobs코드와 기타 asset이 W&B artifact로 저장됩니다.artifact 기반 작업을 실행하려면 Launch 에이전트가 builder와 함께 설정되어 있어야 합니다.
Git-based jobs코드와 기타 asset이 git 저장소의 특정 커밋, 브랜치 또는 태그에서 클론됩니다.git 기반 작업을 실행하려면 Launch 에이전트가 builder와 git 저장소 자격 증명으로 설정되어 있어야 합니다.
Image-based jobs코드와 기타 asset이 도커 이미지에 포함됩니다.이미지 기반 작업을 실행하려면 Launch 에이전트에 이미지 저장소 자격 증명을 설정해야 할 수 있습니다.
Launch job은 모델 트레이닝과 관련 없는 작업도 수행할 수 있지만(예: Triton Inference 서버에 모델 배포), 모든 작업이 성공적으로 완료되려면 wandb.init를 call 해야 합니다. 그러면 추적을 위해 W&B Workspace에 run이 생성됩니다.
생성한 작업은 W&B App의 프로젝트 Workspace에 있는 Jobs 탭에서 찾을 수 있습니다. 여기에서 작업을 설정하고 launch queue로 보내 다양한 대상 리소스에서 실행할 수 있습니다.

Launch queue

Launch 는 특정 대상 리소스에서 실행할 작업의 순서가 정해진 목록입니다. Launch 큐는 선입선출(FIFO) 방식입니다. 만들 수 있는 큐 수에는 사실상 제한이 없지만, 일반적으로는 대상 리소스당 큐 하나를 두는 것이 좋습니다. 작업은 W&B App UI, W&B CLI 또는 Python SDK를 사용해 큐에 추가할 수 있습니다. 그런 다음 하나 이상의 Launch 에이전트를 설정해 큐에서 항목을 가져오고, 이를 큐의 대상 리소스에서 실행할 수 있습니다.

대상 리소스

Launch queue가 작업을 실행하도록 설정된 컴퓨팅 환경을 대상 리소스라고 합니다. W&B Launch는 다음 대상 리소스를 지원합니다. 각 대상 리소스는 리소스 설정이라고 하는 서로 다른 설정 매개변수 집합을 사용합니다. 리소스 설정에는 각 Launch queue에 정의된 기본값이 적용되지만, 각 작업에서 개별적으로 재정의할 수 있습니다. 자세한 내용은 각 대상 리소스의 문서를 참조하세요.

Launch 에이전트

Launch 에이전트는 실행할 작업이 있는지 Launch queue를 주기적으로 확인하는 가벼운 상시 실행 프로그램입니다. Launch 에이전트가 작업을 받으면 먼저 작업 정의에 따라 이미지를 빌드하거나 가져온 다음, 대상 리소스에서 이를 실행합니다. 하나의 에이전트가 여러 큐를 폴링할 수는 있지만, 폴링하는 각 큐의 모든 기반 대상 리소스를 지원할 수 있도록 에이전트를 올바르게 설정해야 합니다.

Launch 에이전트 환경

에이전트 환경은 Launch 에이전트가 실행되면서 작업을 폴링하는 환경을 의미합니다.
에이전트의 런타임 환경은 큐의 대상 리소스와는 별개입니다. 즉, 필요한 대상 리소스에 접근할 수 있도록 충분히 설정되어 있기만 하면 에이전트는 어디에나 배포할 수 있습니다.