vLLM Scheduler Step 읽기
마지막 수정:
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와의 계약처럼 볼 수 있는가?