vLLM Request Lifecycle

마지막 수정:

inferencevllmrequestscheduler

vLLM 분석의 첫 질문은 단순하다.

사용자 요청은 내부에서 어떤 상태 객체가 되는가?

추론 엔진은 text request를 바로 GPU에 넣지 않는다. 먼저 tokenization, request id, sampling params, prompt token ids, output token ids, stop condition 같은 상태로 바꾼다.

개념적으로 request lifecycle은 다음과 같다.

external request
  -> tokenized prompt
  -> waiting request
  -> scheduled request
  -> running prefill/decode
  -> output tokens
  -> finished request

이 카드는 vLLM 코드에서 request object가 어디서 만들어지고, 어떤 queue나 scheduler state로 들어가는지 표시하기 위한 준비 카드다.

확인

  • 외부 HTTP 요청과 scheduler가 다루는 내부 request는 왜 다른가?
  • request state에 prompt token과 output token을 모두 들고 있어야 하는 이유는 무엇인가?
  • prefill이 끝난 request와 decode 중인 request는 어떤 상태가 달라지는가?