메인 콘텐츠로 건너뛰기
W&B에서 모델 아티팩트를 NVIDIA NeMo Inference Microservice에 배포합니다. 이를 위해 W&B Launch를 사용합니다. W&B Launch는 모델 아티팩트를 NVIDIA NeMo 모델로 변환한 뒤, 실행 중인 NIM/Triton 서버에 배포합니다. W&B Launch는 현재 다음과 같은 호환되는 모델 유형을 지원합니다:
  1. Llama2
  2. StarCoder
  3. NV-GPT (곧 지원 예정)
배포 시간은 모델과 머신 유형에 따라 달라집니다. 기본 Llama2-7b 구성은 Google Cloud의 a2-ultragpu-1g에서 약 1분 정도 소요됩니다.

빠른 시작

  1. 아직 Launch 큐가 없다면 Launch 큐를 생성하세요. 아래에서 큐 설정 예시를 확인할 수 있습니다.
    net: host
    gpus: all # 특정 GPU 집합을 지정하거나 `all`로 모든 GPU를 사용합니다
    runtime: nvidia # nvidia 컨테이너 런타임도 필요합니다
    volume:
      - model-store:/model-store/
    
    이미지
  2. 프로젝트에 다음 job을 생성합니다:
    wandb job create -n "deploy-to-nvidia-nemo-inference-microservice" \
       -e $ENTITY \
       -p $PROJECT \
       -E jobs/deploy_to_nvidia_nemo_inference_microservice/job.py \
       -g andrew/nim-updates \
       git https://github.com/wandb/launch-jobs
    
  3. GPU 머신에서 agent를 실행합니다:
    wandb launch-agent -e $ENTITY -p $PROJECT -q $QUEUE
    
  4. Launch UI에서 원하는 설정으로 배포용 Launch job을 제출합니다.
    1. CLI를 통해 제출할 수도 있습니다:
      wandb launch -d gcr.io/playground-111/deploy-to-nemo:latest \
        -e $ENTITY \
        -p $PROJECT \
        -q $QUEUE \
        -c $CONFIG_JSON_FNAME
      
      이미지
  5. Launch UI에서 배포 진행 상황을 추적할 수 있습니다.
    이미지
  6. 완료되면 즉시 엔드포인트에 curl 요청을 보내 모델을 테스트할 수 있습니다. 모델 이름은 항상 ensemble입니다.
     #!/bin/bash
     curl -X POST "http://0.0.0.0:9999/v1/completions" \
         -H "accept: application/json" \
         -H "Content-Type: application/json" \
         -d '{
             "model": "ensemble",
             "prompt": "Tell me a joke",
             "max_tokens": 256,
             "temperature": 0.5,
             "n": 1,
             "stream": false,
             "stop": "string",
             "frequency_penalty": 0.0
             }'