v10 Original Mapping Report

마지막 수정:

inferencenano-vllmcode-reading

마지막 단계는 구현이 아니라 mapping report다.

읽을 코드:

labs/nano-vllm/versions/v10_original_mapping_report/report.md

실행:

cd labs/nano-vllm/versions/v10_original_mapping_report
python3 run.py

이 리포트는 실습 snapshot을 원본 nano-vLLM 코드에 대응시킨다.

LLMEngine:
nano-vllm/nanovllm/engine/llm_engine.py

Sequence:
nano-vllm/nanovllm/engine/sequence.py

Scheduler:
nano-vllm/nanovllm/engine/scheduler.py

BlockManager:
nano-vllm/nanovllm/engine/block_manager.py

ModelRunner:
nano-vllm/nanovllm/engine/model_runner.py

Attention:
nano-vllm/nanovllm/layers/attention.py

이 단계가 끝나면 원본 nano-vLLM을 처음부터 읽지 않아도 된다. 먼저 자신이 만든 작은 engine의 개념을 가지고 원본 파일을 찾아 들어갈 수 있다.

확인

  • 원본 ModelRunner가 tutorial ModelRunner보다 훨씬 복잡한 이유는 무엇인가?
  • 원본 Scheduler가 chunked prefill과 preemption을 추가하는 이유는 무엇인가?
  • 이 tutorial에서 일부러 남겨둔 단순화는 다음 path에서 어떤 실험으로 이어지는가?