nano-vLLM Sampling과 Streaming
마지막 수정:
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와 어떻게 연결되는가?