온라인 서빙
온라인 서빙 (Online Serving)
vLLM을 실제 서비스로 띄워서 HTTP API로 모델을 사용하고 싶다면 온라인 서빙을 쓰면 돼요. vLLM은 OpenAI는 물론 Anthropic, Cohere 등 다양한 인터페이스와 호환되는 HTTP 서버를 제공해요. 이 페이지에서 어떤 API가 제공되는지 전체 지도를 그려볼게요.
vLLM은 많은 인터페이스와 호환되는 HTTP 서버를 제공해요!
OpenAI 호환 서버 (OpenAI-Compatible Server)
vLLM은 다음 OpenAI API를 지원해요.
- Completions API (
/v1/completions)- 텍스트 생성 모델에만 적용.
- 참고:
suffix파라미터는 지원하지 않아요.
- Chat Completions API (
/v1/chat/completions)- chat template이 있는 텍스트 생성 모델에만 적용.
- 참고:
user파라미터는 무시돼요. - 참고:
parallel_tool_calls파라미터를false로 설정하면 vLLM은 요청당 도구 호출을 0개 또는 1개만 반환해요.true(기본값)로 설정하면 요청당 여러 도구 호출을 반환할 수 있어요.true로 설정해도 여러 도구 호출이 반환된다는 보장은 없어요. 이 동작은 모델에 따라 다르고 모든 모델이 병렬 도구 호출을 지원하도록 설계된 게 아니기 때문이에요.
- Chat Completions batch API (
/v1/chat/completions/batch) - Responses API (
/v1/responses,/v1/responses/{response_id},/v1/responses/{response_id}/cancel)- 텍스트 생성 모델에만 적용.
- Embeddings API (
/v1/embeddings)- 임베딩 모델에만 적용.
- Transcriptions API (
/v1/audio/transcriptions)- 자동 음성 인식(ASR) 모델에만 적용.
- Translation API (
/v1/audio/translations)- 자동 음성 인식(ASR) 모델에만 적용.
Anthropic API (Anthropic APIs)
- Anthropic messages API (
/v1/messages,/v1/messages/count_tokens)
Cohere API (Cohere APIs)
- Cohere Embed API (
/v2/embed)- Cohere의 Embed API와 호환.
- 멀티모달 모델을 포함해 모든 임베딩 모델에서 작동.
- Cohere Rerank API (
/rerank,/v1/rerank,/v2/rerank)
Pooling API (Pooling APIs)
pooling 모델에 대한 자세한 내용은 이 페이지를 참고하세요.
- 분류 사용법
- Classification API (
/classify) - 분류 모델에만 적용.
- Classification API (
- 임베딩 사용법
- Cohere Embed API (
/v2/embed) - OpenAI 호환 Embeddings API (
/v1/embeddings) - 임베딩 모델에만 적용.
- Cohere Embed API (
- 점수 계산 사용법
- Score API (
/score,/v1/score) - Cohere Rerank API (
/rerank,/v1/rerank,/v2/rerank) - score 모델(cross-encoder, bi-encoder, late-interaction)에 적용.
- Score API (
- Pooling API (
/pooling)- 모든 pooling 모델에 적용.
음성-텍스트 API (Speech to Text APIs)
음성-텍스트에 대한 자세한 내용은 이 페이지를 참고하세요.
- Transcriptions API (
/v1/audio/transcriptions)- ASR 모델에만 적용.
- Translation API (
/v1/audio/translations)- ASR 모델에만 적용.
- Realtime API (
/v1/realtime)- ASR 모델에만 적용.
커스텀 API (Custom APIs)
- Classification API (
/classify)- 분류 모델에만 적용.
- Score API (
/score,/v1/score)- score 모델(cross-encoder, bi-encoder, late-interaction)에 적용.
- Pooling API (
/pooling)- 모든 pooling 모델에 적용.
- Generative Scoring API (
/generative_scoring)- CausalLM 모델 (태스크
"generate")에 적용. - 지정된
label_token_ids에 대한 다음 토큰 확률을 계산해요.
- CausalLM 모델 (태스크
계측 API (Instrumentator APIs)
기본 API (Basic APIs)
/version- 버전 정보/load- 서버 부하 메트릭스/v1/models- 사용 가능한 모델 목록/health- 헬스 체크
메트릭스 API (Metrics APIs)
메트릭스에 대한 자세한 내용은 이 페이지를 참고하세요.
/metrics- Prometheus 호환 메트릭스 HTTP 엔드포인트
오프라인 API 문서 (Offline API Documentation)
FastAPI /docs 엔드포인트는 기본적으로 인터넷 연결이 필요해요. 에어갭(air-gapped) 환경에서 오프라인 접근을 활성화하려면 --enable-offline-docs 플래그를 사용하세요.
vllm serve NousResearch/Meta-Llama-3-8B-Instruct --enable-offline-docs
LoRA 동적 로딩 (LoRA dynamic loading)
LoRA 동적 로딩/언로딩이 API 서버에서 활성화돼 있어요. 이는 로컬 개발에만 써야 해요!
/v1/load_lora_adapter- LoRA 동적 로딩/v1/unload_lora_adapter- LoRA 동적 언로딩
프로파일링 API (Profiling APIs)
vLLM 프로파일링에 대한 자세한 내용은 이 페이지를 참고하세요.
/start_profile- PyTorch profiler 시작/stop_profile- PyTorch profiler 중지
SageMaker API (SageMaker APIs)
/ping- SageMaker 헬스 체크/invocations- SageMaker 호환 엔드포인트 (/v1엔드포인트와 같은 추론 함수로 라우팅)
확장 API (Scale-Out APIs)
확장 API는 vllm serve에서 기본적으로 비활성화돼요. 환경 변수는 0 또는 1만 받아요. 아래 엔드포인트를 등록하려면 VLLM_ENABLE_SCALE_OUT_ENDPOINTS=1로 설정하세요. 전용 vllm launch render 및 vllm serve --tokens-only 모드는 명시적 opt-in이며, 변수가 설정되지 않았을 때 필요한 엔드포인트를 활성화해요. 그 모드들에서는 명시적 0 값이 거부돼요.
Tokens IN <> Tokens OUT API
/inference/v1/generate- 완성 생성/abort_requests- 진행 중인 요청 중단 (--tokens-only도 설정된 경우만)
렌더러 API (Renderer APIs)
렌더러 API에 대한 자세한 내용은 이 페이지를 참고하세요.
- Completions Render API (
/v1/completions/render)- 완성 요청 렌더링