LLM 클래스 API 레퍼런스 (vllm.LLM)

LLM 클래스 API 레퍼런스 (vllm.LLM)

vLLM의 추론은 대부분 이 LLM 클래스에서 시작돼요. 주어진 프롬프트와 샘플링 파라미터로 텍스트를 생성하는 역할을 하는데, 한 건씩 처리하는 게 아니라 지능적인 배치 메커니즘과 효율적인 메모리 관리를 이용해서 여러 프롬프트를 묶어 처리해요. 이 문서는 그 LLM 클래스의 생성자와 핵심 메서드를 정리한 레퍼런스예요.

출처: vllm.LLM — Offline Inference

생성자 파라미터

LLM(...)을 만들 때 받는 주요 인자들이에요. 대부분 모델을 어떻게 불러올지를 정해요.

  • model (str) — HuggingFace Transformers 모델의 이름이나 경로. 가장 중요한 인자예요.
  • tokenizer — 모델과 다른 토크나이저를 쓰고 싶을 때 따로 지정해요.
  • dtype — 가중치를 불러올 때 쓸 데이터 타입. auto로 두면 모델 config의 dtype 속성을 따르는데, config이 float32면 대신 float16을 써요.
  • quantization — 모델 가중치를 양자화하는 방식.
  • tokenizer_revision — 쓸 토크나이저 버전(브랜치 이름, 태그, 커밋 id).
  • chat_template — 채팅에 적용할 템플릿.
  • seed — 샘플링 랜덤 넘버 생성기를 초기화하는 시드.
  • return_sampling_mask — 각각 샘플링한 토큰의 후처리 지원 집합을 돌려줄지 여부.
  • spec_method / spec_model — 스펙큘레이티브 디코딩의 method·model 최상위 별칭.

생성 (Generative) API

  • LLM.generate(prompts, sampling_params=None, ...) — 주어진 입력 프롬프트에 대한 완성문(completion)을 생성해요. 성능을 위해 모든 프롬프트를 하나의 리스트에 담아 한 번에 넘기는 걸 권장해요. sampling_params를 하나만 주면 모든 프롬프트에 그대로 적용되고, None이면 기본값을 써요.
  • LLM.chat(messages, sampling_params=None, ...) — 채팅 대화에 대한 응답을 생성해요. 내부적으로 토크나이저로 채팅 메시지를 텍스트 프롬프트로 변환한 뒤 generate를 호출해요. 각 메시지는 rolecontent 키를 가진 딕셔너리예요.

비동기 큐 API (Asynchronous Queue)

  • LLM.enqueue(prompts, ...) — 완료를 기다리지 않고 프롬프트를 생성 큐에 넣어요.
  • LLM.enqueue_chat(messages, ...) — 채팅 대화를 기다리지 않고 큐에 넣어요.
  • LLM.wait_for_completion(output_type=None, ...) — 큐에 넣은 모든 요청이 끝날 때까지 기다렸다가 결과를 돌려줘요. enqueue 후에 결과를 받아오는 데 써요.

Pooling API

  • LLM.classify(...) — 분류 모델에만 적용돼요.
  • LLM.embed(...) — 임베딩 모델에만 적용돼요.
  • LLM.score(...) — 스코어 모델(크로스 인코더·바이 인코더·late-interaction)에 적용돼요.
  • LLM.encode(...) — 모든 pooling 모델에 적용돼요.

그 외 API

  • LLM.collective_rpc(method, timeout=None, args=(), kwargs=None) — 모든 워커에서 메서드를 집합적으로 실행해요. method가 콜러블이면 모든 워커로 직렬화되어 보내져 실행돼요. timeout은 실행을 기다리는 최대 시간(초)이고, None이면 무한정 기다려요.
  • LLM.get_metrics() — Prometheus에서 집계된 전체 메트릭 스냅샷을 돌려줘요. V1 LLM 엔진에서만 사용 가능해요.

핵심 포인트

  • LLM 객체 하나로 배치 추론을 하려면 프롬프트를 전부 리스트로 묶어 generate에 넘기는 게 처리량 면에서 가장 좋아요.
  • 완료까지 기다리지 않고 큐에 쌓는 enqueue류 API는 대용량 작업을 비동기로 돌릴 때 유용해요.
  • get_metrics와 같은 일부 메서드는 V1 엔진 전용이라, 사용 중인 엔진 버전을 확인해야 해요.