dstack — vLLM 배포
dstack — vLLM 배포
dstack은 어떤 클라우드에서든 LLM을 실행하기 위한 오픈소스 프레임워크입니다. 이를 통해 클라우드 기반 GPU 머신에서 vLLM을 실행할 수 있습니다. 이 튜토리얼은 클라우드 환경에 자격 증명(credentials), 게이트웨이(gateway), GPU 할당량(quota)을 이미 구성했다고 가정합니다.
출처: 문서
본문
설치
dstack 클라이언트를 설치하고 서버를 시작합니다.
pip install dstack[all]
dstack server
프로젝트 구성
dstack 프로젝트를 구성합니다.
mkdir -p vllm-dstack
cd vllm-dstack
dstack init
서비스 정의
선택한 LLM(여기서는 NousResearch/Llama-2-7b-chat-hf)으로 VM 인스턴스를 프로비저닝하려면, dstack Service용으로 serve.dstack.yml 파일을 만듭니다.
type: service
python: "3.11"
env:
- MODEL=NousResearch/Llama-2-7b-chat-hf
port: 8000
resources:
gpu: 24GB
commands:
- pip install vllm
- vllm serve $MODEL --port 8000
model:
format: openai
type: chat
name: NousResearch/Llama-2-7b-chat-hf
프로비저닝
다음 CLI로 프로비저닝합니다.
$ dstack run . -f serve.dstack.yml
⠸ Getting run plan...
Configuration serve.dstack.yml
Project deep-diver-main
User deep-diver
Min resources 2..xCPU, 8GB.., 1xGPU (24GB)
...
# BACKEND REGION INSTANCE RESOURCES SPOT PRICE
1 gcp us-central1 g2-standard-4 4xCPU, 16GB, 1xL4 (24GB), 100GB (disk) yes $0.223804
...
Continue? [y/n]: y
⠙ Submitting run...
spicy-treefrog-1 provisioning completed (running)
Service is published at ...
프로비저닝 후 OpenAI SDK로 모델과 상호작용합니다.
from openai import OpenAI
client = OpenAI(
base_url="https://gateway.<gateway domain>",
api_key="<YOUR-DSTACK-SERVER-ACCESS-TOKEN>",
)
completion = client.chat.completions.create(
model="NousResearch/Llama-2-7b-chat-hf",
messages=[
{
"role": "user",
"content": "Compose a poem that explains the concept of recursion in programming.",
}
],
)
print(completion.choices[0].message.content)
참고: dstack은 게이트웨이에서 dstack 토큰으로 인증을 자동 처리합니다. 게이트웨이를 구성하고 싶지 않다면
Service대신 dstackTask를 프로비저닝할 수 있습니다.Task는 개발 용도로만 사용하세요. dstack으로 vLLM을 서빙하는 실습 자료는 관련 저장소를 참고하세요.
더 알아보기 (Learn more)
- 모든 배포 프레임워크 — vLLM과 연동되는 프레임워크 목록
- CLI 가이드 —
vllm serve옵션 - dstack 문서 — 서비스와 태스크 프로비저닝 상세