dLLM과 Structured Output 제약
마지막 수정:
Structured output은 보통 token-by-token 제약 decoding과 잘 맞는다.
예를 들어 JSON을 생성한다고 하자.
현재 prefix가 "{"
다음 token 후보는 key string이나 "}"로 제한한다.
autoregressive decoding에서는 prefix가 항상 하나의 확정된 문자열이다. 그래서 다음 token 후보를 문법 상태에 맞춰 제한하기 쉽다.
dLLM에서는 왜 어려운가
dLLM은 canvas 여러 위치를 병렬적으로 denoise한다.
position 1, 2, 3, 4를 동시에 갱신
하지만 JSON 같은 structured output은 앞 token이 확정되어야 뒤 token의 허용 범위를 정하기 쉽다.
앞쪽 token이 아직 denoising 중이면,
뒤쪽 position의 문법 상태도 불확실하다.
즉 dLLM의 parallel canvas update는 left-to-right grammar constraint와 긴장이 있다.
serving 관점
이 제약은 단순 기능 누락이 아니다.
generation 방식 자체가 다르기 때문에, 기존 structured output validator를 그대로 붙이기 어렵다.
autoregressive:
확정 prefix -> next token constraint
dLLM:
불확정 canvas -> 여러 position 동시 갱신
그래서 dLLM 지원을 볼 때는 “일반 LLM 기능이 그대로 다 될까?”보다 “generation semantics가 바뀌면 어떤 기능이 다시 설계되어야 할까?”를 물어야 한다.
연결
- autoregressive-vs-diffusion-decoding: left-to-right append와 canvas update 비교
- dllm-sampling-commit-steps: denoising과 commit step
확인
- structured output이 autoregressive decoding과 잘 맞는 이유는 무엇인가?
- dLLM에서 앞 token이 확정되지 않았을 때 뒤 position의 constraint가 어려워지는 이유는 무엇인가?
- 이 문제가 단순 implementation gap이 아니라 generation semantics 문제인 이유는 무엇인가?