vLLM Scheduler Step 읽기

마지막 수정:

inferencevllmschedulerbatching

Scheduler의 핵심 질문은 다음이다.

이번 GPU step에 어떤 request의 몇 token을 계산할 것인가?

여기서 scheduler는 단순 FIFO가 아니다. request마다 prompt 길이, 이미 계산된 token 수, decode 진행 상태, KV cache 여유 공간이 다르다.

개념적으로 한 step은 이렇게 볼 수 있다.

waiting/running requests 확인
  -> token budget 계산
  -> KV cache block 가능 여부 확인
  -> prefill/decode 대상 선택
  -> SchedulerOutput 생성

이 카드의 목표는 scheduler 코드를 읽을 때 policy와 metadata 생성을 구분하는 것이다.

policy:
어떤 request를 진행할지 결정한다.

metadata:
worker가 forward를 실행할 수 있게 필요한 정보를 만든다.

확인

  • scheduler가 token budget을 관리해야 하는 이유는 무엇인가?
  • KV cache 공간이 부족하면 scheduling 결정은 어떻게 달라지는가?
  • scheduler output은 왜 GPU worker와의 계약처럼 볼 수 있는가?