Token Canvas와 Denoising Step

마지막 수정:

dllmdiffusioncanvasdenoising

dLLM을 이해하려면 token canvas를 먼저 잡아야 한다.

canvas는 dLLM이 한 번에 다루는 고정 길이 token 공간이다.

canvas_length = 8

[_, _, _, _, _, _, _, _]

Denoising step

denoising step은 canvas 안의 token 후보들을 다시 평가하고 갱신하는 단계다.

step 0: [?, ?, ?, ?, ?, ?, ?, ?]
step 1: [?, the, ?, cat, ?, ?, mat, ?]
step 2: [on, the, ?, cat, sat, ?, mat, ?]

이 과정에서 모델은 canvas position마다 token distribution을 만든다.

하지만 매 denoising step마다 모든 token이 확정되어 사용자에게 출력되는 것은 아니다.

Commit step

commit step은 canvas에서 충분히 확정된 token들을 output으로 내보내는 단계다.

denoise:
canvas를 고친다.

commit:
확정 token을 출력한다.

그래서 dLLM serving metric에는 단순 output token throughput 외에 denoising step 수, canvas position 수, committed token 수가 중요해진다.

왜 canvas_length가 중요한가

canvas_length는 한 번에 몇 token 위치를 denoising할지 정한다.

너무 짧으면 자주 commit해야 하고, 너무 길면 한 step의 계산과 state가 커질 수 있다.

작은 canvas:
짧은 block을 자주 처리

큰 canvas:
더 많은 position을 한 번에 denoise

이 값은 품질, latency, throughput의 trade-off가 된다.

연결

확인

  • token canvas는 무엇인가?
  • denoising step과 commit step은 어떻게 다른가?
  • canvas_length가 serving trade-off에 영향을 주는 이유는 무엇인가?