> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-docs-sandboxes-integrations-placement.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> 작업, 큐, 에이전트, ML 워크로드 실행을 다루는 W&B Launch 시작하기 튜토리얼을 따라해 보세요.

# 튜토리얼: W&B Launch 기본 개념

<div id="what-is-launch">
  ## Launch란 무엇인가요
</div>

<Card title="Colab에서 사용해 보기" href="https://colab.research.google.com/drive/1wX0OSVxZJDHRsZaOaOEDx-lLUrO1hHgP" icon="python" />

이 튜토리얼에서는 ML 실무자와 플랫폼 팀을 위해 W\&B Launch를 소개하고, launch 작업 생성, 큐 설정, 에이전트 연결, 그리고 실행할 작업 제출 과정을 안내합니다. 이 튜토리얼을 마치면 W\&B Launch를 통해 컨테이너화된 ML 워크로드를 실행해 보고, 팀에서 재사용할 수 있는 정상적으로 작동하는 큐와 에이전트를 갖추게 됩니다.

W\&B Launch를 사용하면 데스크톱에서 Amazon SageMaker, Kubernetes 등의 컴퓨팅 리소스로 트레이닝 [Runs](/ko/models/runs/)를 확장할 수 있습니다. Launch를 설정한 후에는 몇 번의 클릭과 명령만으로 트레이닝 스크립트를 실행하고, 모델 평가 스위트를 실행하고, 모델을 프로덕션 추론에 맞게 준비하는 등 다양한 작업을 수행할 수 있습니다.

<div id="how-it-works">
  ## 작동 방식
</div>

Launch는 세 가지 핵심 컴포넌트, 즉 **launch 작업**, **큐**, **에이전트**로 구성됩니다.

[*launch 작업*](./launch-terminology#launch-job)은 ML 워크플로에서 작업을 설정하고 실행하기 위한 청사진입니다. launch 작업이 있으면 이를 [*launch 큐*](./launch-terminology#launch-queue)에 추가할 수 있습니다. launch 큐는 선입선출(FIFO) 방식의 큐로, 여기에서 작업을 Amazon SageMaker 또는 Kubernetes 클러스터와 같은 특정 대상 리소스에 맞게 설정하고 제출할 수 있습니다.

작업이 큐에 추가되면 [*launch 에이전트*](./launch-terminology#launch-agent)가 해당 큐를 폴링하여, 큐가 대상으로 지정한 시스템에서 작업을 실행합니다.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-docs-sandboxes-integrations-placement/F9fRIboixVPY5pzA/images/launch/launch_overview.png?fit=max&auto=format&n=F9fRIboixVPY5pzA&q=85&s=5b8ae8ba5a6d876393d0e29bcad0cad5" alt="W&B Launch 개요 다이어그램" width="1314" height="642" data-path="images/launch/launch_overview.png" />
</Frame>

사용 사례에 따라 사용자 또는 팀의 다른 구성원이 선택한 [컴퓨팅 리소스 대상](./launch-terminology#target-resources) (예: Amazon SageMaker)에 맞게 launch 큐를 설정하고 자체 인프라에 launch 에이전트를 배포합니다.

Launch에 대한 자세한 내용은 [용어 및 개념](./launch-terminology) 페이지를 참조하세요.

<div id="get-started">
  ## 시작하기
</div>

사용 사례에 따라 W\&B Launch를 시작하는 데 도움이 되는 다음 리소스를 확인하세요:

* W\&B Launch를 처음 사용하신다면 [Launch 워크스루](#walkthrough) 가이드부터 시작하세요.
* [W\&B Launch](/ko/platform/launch/set-up-launch/) 설정 방법을 알아보세요.
* [launch 작업](/ko/platform/launch/launch-terminology/#launch-job)을 생성하세요.
* [NVIDIA Triton에 배포](https://github.com/wandb/launch-jobs/tree/main/jobs/deploy_to_nvidia_triton), [LLM 평가](https://github.com/wandb/launch-jobs/tree/main/jobs/openai_evals)와 같은 일반적인 작업의 템플릿은 W\&B Launch [공개 jobs GitHub 저장소](https://github.com/wandb/launch-jobs)에서 확인하세요.
  * 이 저장소에서 생성된 launch 작업은 공개 W\&B 프로젝트인 [`wandb/jobs` 프로젝트](https://wandb.ai/wandb/jobs/jobs)에서 확인할 수 있습니다.

<div id="walkthrough">
  ## 워크스루
</div>

이 페이지에서는 W\&B Launch 워크플로의 기본 개념을 단계별로 살펴봅니다.

<Note>
  W\&B Launch는 컨테이너에서 머신 러닝 워크로드를 실행합니다. 이 워크스루를 진행하는 데 컨테이너에 익숙할 필요는 없지만, 알고 있으면 도움이 됩니다. 컨테이너의 기본 개념은 [Docker 문서](https://docs.docker.com/guides/docker-concepts/the-basics/what-is-a-container/)를 참조하세요.
</Note>

<div id="prerequisites">
  ## 사전 요구 사항
</div>

시작하기 전에 다음 사전 요구 사항을 충족했는지 확인하세요. 여기에는 이 워크스루의 뒷부분에서 명령을 실행하는 데 필요한 계정, 도구, 인증이 포함됩니다.

1. [https://wandb.ai/site](https://wandb.ai/site)에서 계정을 생성한 다음 W\&B 계정에 로그인하세요.
2. 이 워크스루를 진행하려면 Docker CLI와 엔진이 정상적으로 작동하는 머신에 대한 터미널 액세스가 필요합니다. 자세한 내용은 [Docker 설치 가이드](https://docs.docker.com/engine/install/)를 참조하세요.
3. `0.17.1` 이상 버전의 W\&B Python SDK를 설치하세요:
   ```bash theme={null}
   pip install wandb>=0.17.1
   ```
4. 터미널에서 `wandb login`을 실행하거나 `WANDB_API_KEY` 환경 변수를 설정하여 W\&B에 인증하세요.

<Tabs>
  <Tab title="W&B에 로그인">
    터미널에서 다음을 실행하세요:

    ```bash theme={null}
    wandb login
    ```
  </Tab>

  <Tab title="환경 변수">
    ```bash theme={null}
        WANDB_API_KEY=[API-KEY]
    ```

    `[API-KEY]`를 W\&B API 키로 바꾸세요.
  </Tab>
</Tabs>

<div id="create-a-launch-job">
  ## Launch 작업 만들기
</div>

Launch 작업은 Launch가 실행할 워크로드의 청사진이므로, 작업을 큐에 제출하려면 먼저 Launch 작업이 있어야 합니다. [launch 작업](./launch-terminology#launch-job)은 세 가지 방법으로 만들 수 있습니다. Docker 이미지 사용, git 저장소에서 생성, 또는 로컬 소스 코드에서 생성:

<Tabs>
  <Tab title="Docker 이미지 사용">
    W\&B에 메시지를 로깅하는 사전 제작된 컨테이너를 실행하려면 터미널을 열고 다음 명령어를 실행하세요:

    ```bash theme={null}
    wandb launch --docker-image wandb/job_hello_world:main --project launch-quickstart
    ```

    앞의 명령어는 컨테이너 이미지 `wandb/job_hello_world:main`를 다운로드하여 실행합니다.

    Launch는 `wandb`로 로깅된 모든 내용이 `launch-quickstart` 프로젝트로 보고되도록 컨테이너를 설정합니다. 컨테이너는 W\&B에 메시지를 로깅하고 W\&B의 run 링크를 표시합니다. 링크를 클릭하여 W\&B UI에서 run을 확인하세요.
  </Tab>

  <Tab title="git 저장소에서 생성">
    [W\&B Launch jobs repository](https://github.com/wandb/launch-jobs)의 [소스 코드](https://github.com/wandb/launch-jobs)에서 동일한 hello-world 작업을 실행하려면 다음 명령어를 실행하세요:

    ```bash theme={null}
    wandb launch --uri https://github.com/wandb/launch-jobs.git \\
    --job-name hello-world-git --project launch-quickstart \\ 
    --build-context jobs/hello_world --dockerfile Dockerfile.wandb \\ 
    --entry-point "python job.py"
    ```

    이 명령어는 다음을 수행합니다:

    1. [W\&B Launch jobs repository](https://github.com/wandb/launch-jobs)를 임시 디렉터리로 클론합니다.
    2. **hello** 프로젝트에 **hello-world-git**이라는 이름의 작업을 만듭니다. 이 작업은 코드를 실행하는 데 사용된 정확한 소스 코드와 설정을 추적합니다.
    3. `jobs/hello_world` 디렉터리와 `Dockerfile.wandb`를 사용해 컨테이너 이미지를 구축합니다.
    4. 컨테이너를 시작하고 `job.py` Python 스크립트를 실행합니다.

    콘솔 출력에는 이미지 구축 및 실행 과정이 표시됩니다. 컨테이너의 출력은 이전 예시와 거의 동일해야 합니다.
  </Tab>

  <Tab title="로컬 소스 코드에서 생성">
    `--uri` 인수에 로컬 디렉터리 경로를 지정하면 git 저장소에서 버전 관리되지 않는 코드도 Launch할 수 있습니다.

    빈 디렉터리를 만들고 다음 내용을 포함하는 `train.py`라는 Python 스크립트를 추가하세요:

    ```python theme={null}
    import wandb

    with wandb.init() as run:
        run.log({"hello": "world"})
    ```

    다음 내용을 포함하는 `requirements.txt` 파일을 추가하세요:

    ```text theme={null}
    wandb>=0.17.1
    ```

    디렉터리 안에서 다음 명령어를 실행하세요:

    ```bash theme={null}
    wandb launch --uri . --job-name hello-world-code --project launch-quickstart --entry-point "python train.py"
    ```

    이 명령어는 다음을 수행합니다:

    1. 현재 디렉터리의 내용을 Code Artifact로 W\&B에 로깅합니다.
    2. **launch-quickstart** 프로젝트에 **hello-world-code**라는 이름의 작업을 만듭니다.
    3. `train.py`와 `requirements.txt`를 베이스 이미지에 복사하고 requirements를 `pip install`하여 컨테이너 이미지를 구축합니다.
    4. 컨테이너를 시작하고 `python train.py`를 실행합니다.
  </Tab>
</Tabs>

<div id="create-a-queue">
  ## 큐 만들기
</div>

launch 작업이 준비되면 다음 단계는 작업이 어디에서 어떻게 실행될지 정의하는 큐를 만드는 것입니다. Launch는 팀이 공유 컴퓨트를 중심으로 워크플로를 구축할 수 있도록 설계되었습니다. 지금까지의 예제에서는 `wandb launch` 명령어가 로컬 머신에서 컨테이너를 동기식으로 실행했습니다. Launch 큐와 에이전트를 사용하면 공유 리소스에서 작업을 비동기식으로 실행하고, 우선순위 지정 및 하이퍼파라미터 최적화와 같은 고급 기능도 활용할 수 있습니다. 기본 큐를 만들려면 다음 단계를 따르세요.

1. [wandb.ai/launch](https://wandb.ai/launch)로 이동한 다음 **Create a queue** 버튼을 클릭하세요.
2. 큐를 연결할 **Entity**를 선택하세요.
3. **Queue name**을 입력하세요.
4. **Resource**로 **Docker**를 선택하세요.
5. **Configuration**을 비워 두세요.
6. **Create queue**를 클릭하세요.

버튼을 클릭하면 브라우저가 큐 뷰의 **Agents** 탭으로 이동합니다. 에이전트가 폴링을 시작할 때까지 큐는 **Not active** 상태로 유지됩니다.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-docs-sandboxes-integrations-placement/F9fRIboixVPY5pzA/images/launch/create_docker_queue.gif?s=c110b00b664b9a1592bc95fbdcf08118" alt="Docker 큐 생성" width="2482" height="1670" data-path="images/launch/create_docker_queue.gif" />
</Frame>

고급 큐 설정 옵션은 [고급 큐 설정 페이지](/ko/platform/launch/setup-queue-advanced/)를 참조하세요.

<div id="connect-an-agent-to-the-queue">
  ## 에이전트를 큐에 연결하기
</div>

에이전트가 큐를 폴링하기 전까지는 큐가 유휴 상태로 유지되므로, 작업을 실행하려면 먼저 에이전트를 연결해야 합니다. 큐에 폴링 중인 에이전트가 없으면 큐 뷰 화면 상단의 빨간색 배너에 **Add an agent** 버튼이 표시됩니다. 이 버튼을 클릭하면 에이전트를 실행하는 명령어를 확인하고 복사할 수 있습니다. 명령어는 다음과 비슷한 형태입니다.

```bash theme={null}
wandb launch-agent --queue [QUEUE-NAME] --entity [ENTITY-NAME]
```

`[QUEUE-NAME]`을 큐 이름으로, `[ENTITY-NAME]`을 W\&B 엔터티로 바꾸세요. 터미널에서 명령을 실행해 에이전트를 시작하세요. 에이전트는 지정된 큐를 폴링하여 실행할 작업을 확인합니다. 작업을 받으면 에이전트는 해당 작업의 컨테이너 이미지를 다운로드하거나 구축한 후 실행합니다. 이는 로컬에서 `wandb launch` 명령을 실행한 것과 동일합니다.

[Launch 페이지](https://wandb.ai/launch)로 다시 이동한 다음, 이제 큐가 **Active**로 표시되는지 확인하세요.

<div id="submit-a-job-to-the-queue">
  ## 큐에 작업 제출
</div>

큐와 폴링 에이전트가 준비되었으므로, 이제 앞에서 만든 launch 작업 중 하나를 제출하고 공유 컴퓨트에서 실행되는 것을 확인할 수 있습니다. W\&B 계정의 **launch-quickstart** 프로젝트로 이동한 다음, 화면 왼쪽 내비게이션에서 jobs 탭을 여세요.

**Jobs** 페이지에는 이전 run에서 생성된 작업 목록이 표시됩니다. launch 작업을 클릭하면 소스 코드, 의존성, 그리고 해당 작업에서 생성된 모든 run을 볼 수 있습니다. 이 워크스루를 완료하면 목록에 작업이 세 개 있습니다.

작업 중 하나를 선택한 다음, 다음 지침에 따라 큐에 제출하세요.

1. 작업을 큐에 제출하려면 **Launch** 버튼을 클릭하세요. **Launch** 드로어가 나타납니다.
2. 앞에서 만든 **Queue**를 선택한 다음 **Launch**를 클릭하세요.

그러면 작업이 큐에 제출됩니다. 이 큐를 폴링하는 에이전트가 작업을 가져와 실행합니다. 작업 진행 상황은 W\&B UI에서 모니터링하거나 터미널에서 에이전트 출력을 확인해 볼 수 있습니다.

`wandb launch` 명령어는 `--queue` 인수를 지정해 작업을 큐에 직접 푸시할 수 있습니다. 예를 들어 hello-world 컨테이너 작업을 큐에 제출하려면 다음 명령어를 실행하세요.

```bash theme={null}
   wandb launch --docker-image wandb/job_hello_world:main --project launch-quickstart --queue [QUEUE-NAME]
```

`[QUEUE-NAME]`을 사용 중인 큐 이름으로 바꾸세요.

이제 launch 작업, 큐, 폴링 에이전트, 그리고 공유 컴퓨트에서 비동기적으로 실행되는 작업으로 구성된 완전한 W\&B Launch 워크플로가 갖춰졌습니다. 이 패턴은 자체 트레이닝, 평가, 추론 워크로드에도 활용할 수 있습니다.
