LiteLLM — vLLM 배포

LiteLLM — vLLM 배포

LiteLLM은 OpenAI 형식으로 모든 LLM API(Bedrock, Huggingface, VertexAI, TogetherAI, Azure, OpenAI, Groq 등)를 호출할 수 있게 해 주는 라이브러리입니다. vLLM의 모든 모델을 지원합니다.

출처: 문서

본문

LiteLLM이 관리하는 것들:

  • 입력을 프로바이더의 completion, embedding, image_generation 엔드포인트로 변환.
  • 일관된 출력 — 텍스트 응답은 항상 ['choices'][0]['message']['content']에서 사용 가능.
  • 여러 배포(예: Azure/OpenAI) 간 재시도/폴백 로직 — Router.
  • 프로젝트·API 키·모델별 예산(Budget)과 속도 제한(Rate limit) 설정 — LiteLLM Proxy Server(LLM Gateway).

사전 준비 (Prerequisites)

vLLM과 litellm 환경을 설정합니다.

pip install vllm litellm

채팅 완성 (Chat completion)

  1. 지원되는 채팅 완성 모델로 vLLM 서버를 시작합니다.
vllm serve qwen/Qwen1.5-0.5B-Chat
  1. litellm으로 호출합니다.
import litellm 

messages = [{"content": "Hello, how are you?", "role": "user"}]

# hosted_vllm 은 접두사 키워드이며 반드시 필요
response = litellm.completion(
    model="hosted_vllm/qwen/Qwen1.5-0.5B-Chat", # vllm 모델 이름 전달
    messages=messages,
    api_base="http://{your-vllm-server-host}:{your-vllm-server-port}/v1",
    temperature=0.2,
    max_tokens=80,
)

print(response)

임베딩 (Embeddings)

  1. 지원되는 임베딩 모델로 vLLM 서버를 시작합니다.
vllm serve BAAI/bge-base-en-v1.5
  1. litellm으로 호출합니다.
from litellm import embedding   
import os

os.environ["HOSTED_VLLM_API_BASE"] = "http://{your-vllm-server-host}:{your-vllm-server-port}/v1"

# hosted_vllm 은 접두사 키워드이며 반드시 필요
# vllm 모델 이름 전달
embedding = embedding(model="hosted_vllm/BAAI/bge-base-en-v1.5", input=["Hello world"])

print(embedding)

핵심 포인트

  • 모델 이름은 반드시 hosted_vllm/ 접두사를 붙여야 LiteLLM이 이 호출을 셀프 호스팅 vLLM 서버로 라우팅합니다.
  • api_base(또는 HOSTED_VLLM_API_BASE 환경 변수)에 vLLM 서버의 /v1 엔드포인트를 지정합니다.
  • 채팅 완성과 임베딩 모두 vLLM 서버의 OpenAI 호환 API를 그대로 활용합니다.

자세한 내용은 "Using vLLM in LiteLLM" 튜토리얼을 참고하세요.

더 알아보기 (Learn more)