nano-vLLM Sampling과 Streaming

마지막 수정:

inferencenano-vllmsamplingstreaming

Model forward는 logits를 낸다. Serving engine은 이 logits에서 다음 token을 골라 request state에 반영해야 한다.

처음 구현은 greedy sampling이면 충분하다.

next_token = logits[:, -1, :].argmax(dim=-1)

그다음 top-k, top-p, temperature를 붙일 수 있다.

Streaming은 생성된 token을 request output buffer에 바로 추가하는 문제로 시작한다.

sample token
  -> append to generated_tokens
  -> expose output event
  -> check stop condition

확인

  • logits와 token id는 무엇이 다른가?
  • greedy sampling을 먼저 구현하는 이유는 무엇인가?
  • streaming output은 request state와 어떻게 연결되는가?