v02 Engine Step Loop

마지막 수정:

inferencenano-vllmengine

이 단계에서 처음으로 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씩 진행한다.