Discrete Diffusion LLM 직관

마지막 수정:

dllmdiffusioninferenceserving

dLLM은 discrete diffusion language model의 약자다.

한 문장으로 말하면:

문장을 왼쪽에서 오른쪽으로 한 token씩 붙이는 대신,
token canvas를 여러 번 고쳐 가며 완성하는 language model이다.

여기서 diffusion은 이미지 생성의 pixel denoising과 비슷한 아이디어를 token 공간에 옮긴 것이다. 다만 이 path에서는 Stable Diffusion 같은 이미지 생성 모델이 아니라, token을 생성하는 language model만 다룬다.

기본 그림

autoregressive LLM은 다음 token 하나를 만든다.

prefix -> next token
prefix + next token -> next token

dLLM은 고정 길이 canvas를 둔다.

[?, ?, ?, ?, ?, ?, ?, ?]

그리고 여러 denoising step을 거치며 canvas 안의 token들을 점점 더 그럴듯하게 바꾼다.

noisy canvas
  -> denoise step
  -> denoise step
  -> commit tokens

왜 serving에서 중요해지는가

LLM serving engine은 보통 next-token append를 기본 가정으로 삼는다.

한 step에서 새 token 하나가 나온다.
그 token을 request 뒤에 붙인다.
다음 step으로 간다.

dLLM에서는 한 denoising step이 곧바로 output token 하나를 의미하지 않을 수 있다. 여러 canvas position을 다시 평가하고, 나중에 commit step에서 token들을 확정한다.

따라서 scheduler, sampling, metrics, structured output 검증이 모두 영향을 받는다.

연결

확인

  • dLLM은 autoregressive LLM과 생성 단위가 어떻게 다른가?
  • dLLM에서 canvas란 무엇인가?
  • denoising step이 곧바로 output token 하나를 뜻하지 않을 수 있는 이유는 무엇인가?