v02 Engine Step Loop
마지막 수정:
이 단계에서 처음으로 engine이 생긴다.
읽을 코드:
labs/nano-vllm/versions/v02_step_loop/run.py
핵심 interface는 세 개다.
engine.add_request(prompt, max_tokens)
engine.step()
engine.generate(prompts, max_tokens)
generate()는 편의 함수일 뿐이다. 실제 engine의 심장은 step()이다.
unfinished sequence 선택
-> model.next_token()
-> sequence.append_token()
-> finished output 반환
다음 문제
LLM serving에서 prompt 처리와 decode 처리는 성격이 다르다.
prompt는 여러 token을 한 번에 처리하고, decode는 보통 request마다 한 token씩 진행한다.