dLLM Sampling과 Commit Step

마지막 수정:

dllmdiffusionsamplingserving

dLLM에서 sampling은 일반 autoregressive sampling과 다르다.

일반 LLM에서는 sampler가 다음 token 하나를 고르고, 그 token이 곧바로 output sequence 뒤에 붙는다.

logits -> sample token -> append

dLLM에서는 logits가 canvas positions에 대해 나오고, sampler는 denoising 결과를 어떻게 받아들일지 결정한다.

canvas logits
  -> accept / renoise
  -> commit 여부 결정

accept와 renoise

denoising 중에는 어떤 position의 token 후보를 받아들이고, 어떤 position은 다시 noisy하게 둘 수 있다.

accept:
이 token 후보를 canvas에 반영한다.

renoise:
아직 확정하지 않고 다시 탐색하게 둔다.

이 과정은 “top-k로 다음 token 하나 뽑기”보다 request state와 더 강하게 연결된다.

commit

commit은 canvas에서 확정된 token들을 실제 output으로 내보내는 단계다.

denoise step:
사용자에게 새 token이 안 나갈 수 있다.

commit step:
하나 이상의 token이 출력될 수 있다.

그래서 dLLM에서는 throughput을 볼 때 committed token만 보면 부족하다. denoising step 수와 canvas position 수도 함께 봐야 한다.

연결

확인

  • autoregressive sampling과 dLLM sampling의 가장 큰 차이는 무엇인가?
  • accept와 renoise는 각각 어떤 역할을 하는가?
  • dLLM에서 committed token throughput만 보면 부족한 이유는 무엇인가?