LLM WikiAccess-protected knowledge portal
← 스터디 홈
93편 · 약 15분

Diffusion LLM 서빙: 양방향 어텐션이 KV 캐시 전제를 깨는 방식과 Fast-dLLM·HERALD·DiLaServe의 해법

요약

자동회귀(AR) LLM 서빙은 인과적(causal) 어텐션 덕분에 KV 캐시를 한 번 계산하면 재사용할 수 있다. 그런데 2026년 상반기에 실제 서비스에 진입하기 시작한 Diffusion 언어 모델(dLLM) — LLaDA 2.0, Dream, Mercury, Gemma 4 MTP 등 — 은 양방향(bidirectional) 어텐션으로 마스크 시퀀스를 반복적으로 노이즈 제거(denoising)하는 방식으로 텍스트를 생성한다. 이 구조적 차이가 KV 캐시의 전제를 완전히 깨뜨린다.

NVIDIA NVlabs, 서울대·UC Berkeley, 그리고 여러 연구팀이 2026년 5~7월에 발표한 Fast-dLLM, HERALD, DiLaServe, Sangam은 이 문제를 GPU 단위 → 인스턴스 단위 → 클러스터 단위로 계층화해 풀어낸 최초의 프로덕션 지향 서빙 시스템 논문들이다.


AR LLM과 dLLM, 무엇이 구조적으로 다른가

AR LLM은 토큰을 왼쪽에서 오른쪽으로 하나씩 생성한다. 각 새 토큰의 KV 벡터만 캐시에 추가하면 되고, 이전 토큰의 KV는 인과적 어텐션 마스크 덕분에 영구히 유효하다. 이것이 prefix caching이 AR LLM 서빙에서 잘 작동하는 이유다.

dLLM은 완전히 마스킹된 시퀀스에서 시작해 여러 denoising 스텝을 반복한다. 각 스텝에서 모델은 아직 마스크된 위치들에 대한 분포를 계산하고, 신뢰도가 높은 일부 토큰을 확정(commit)한다.

문제는 양방향 어텐션 때문에 발생한다. 위치 42번 토큰이 확정되면, 위치 1~41번의 어텐션 컨텍스트가 바뀐 42번을 반영해야 하므로 그 KV 벡터들도 stale해진다. 즉, 토큰 하나를 commit할 때마다 시퀀스 전체의 KV가 무효화된다.

이 사실에서 세 가지 서빙 도전이 파생된다.

  1. KV 재사용 불가: 매 denoising 스텝마다 전체 시퀀스에 대한 완전한 어텐션 계산이 필요하다.
  2. 완료 시점 예측 불가: 스텝 수가 프롬프트 난이도에 따라 달라진다. AR LLM처럼 출력 토큰 수만으로 완료 시간을 예측할 수 없다.
  3. 장문 메모리 증폭: AR LLM은 KV가 점진적으로 쌓이지만, dLLM은 매 스텝마다 전체 시퀀스 길이에 걸친 KV를 재계산한다.
핵심 문제
양방향 어텐션
commit → 전체 KV stale
가변 denoising 스텝
SLO 예측 불가
장문 메모리 증폭
전체 시퀀스 KV 재계산
Fast-dLLM — GPU 단위 (NVlabs · ICLR 2026)
블록 단위 근사 KV 재사용
16스텝마다 갱신 · 2~3.6× 처리량
신뢰도 기반 병렬 commit
동적 임계값으로 품질 붕괴 방지
HERALD — 인스턴스 단위 (서울대·UC Berkeley · 2026-06)
CPU-GPU 협업 KV 오프로딩
5~10% KV 예산 · 2.47× 처리량
DiLaServe — 클러스터 단위 (2026-06)
동적 신뢰도 임계값 조정
SLO 달성률 +56.6pp · 품질 손실 0.9%
Diffusion LLM 서빙 문제와 계층별 해법

Fast-dLLM: GPU 단위 해법 (NVIDIA NVlabs, ICLR 2026)

논문: Fast-dLLM, arXiv:2505.22618, ICLR 2026, NVIDIA NVlabs.

Fast-dLLM은 두 가지 기법으로 GPU 단위 dLLM 추론 속도를 높인다.

블록 단위 근사 KV 캐시

핵심 관찰: 이웃한 denoising 스텝들 사이에서 KV 벡터는 크게 달라지지 않는다. 연속된 스텝들에서 새로 commit되는 토큰 비율이 낮기 때문이다.

Fast-dLLM은 B 스텝을 하나의 블록으로 묶고 블록 경계에서만 KV를 갱신한다 (기본 B=16). 블록 내에서는 이전 블록 경계의 KV를 근사값으로 재사용한다. 블록 안에서 commit된 토큰이 소수이므로 KV drift가 작아 품질 손실이 무시할 수 있는 수준에 머문다.

  • 처리량 향상: 2~3.6배 (시퀀스 길이에 따라 다름)
  • 품질 손실: perplexity 기준 1% 미만

신뢰도 기반 병렬 디코딩

이전 dLLM 연구들은 한 스텝에서 신뢰도 높은 토큰들을 모두 commit했다. 그런데 dLLM의 토큰 독립성 가정(conditional-independence assumption)은 실제로 완전히 성립하지 않는다. 많은 토큰을 한 번에 commit하면 남은 마스크 위치의 예측이 연쇄적으로 악화된다.

Fast-dLLM은 동적 신뢰도 임계값 γ를 도입해 스텝마다 commit되는 토큰 비율을 제어한다. 임계값 이하의 토큰은 다음 스텝까지 마스크 상태로 유지되어 품질 붕괴를 방지한다.


HERALD: 인스턴스 단위 해법 (서울대 + UC Berkeley, 2026년 6월)

논문: HERALD, arXiv:2606.21633, 서울대 + UC Berkeley, 2026년 6월 19일.

Fast-dLLM이 GPU 내 연산 효율을 높인다면, HERALD는 장문 컨텍스트에서 GPU 메모리 제약을 CPU와 협업으로 돌파한다.

왜 블록 dLLM에서 CPU-GPU 협업이 가능한가

블록 dLLM(예: LLaDA)에서는 한 블록 내 KV 선택 연산이 GPU의 denoising 연산과 독립적으로 진행될 수 있다. 블록 크기 B를 쓰면 KV 선택 연산량이 토큰 수준 모델 대비 B배 감소한다. 이 여유 연산 시간을 이용해 CPU가 DRAM에서 다음 블록의 KV 엔트리를 미리 선택·스트리밍한다.

GPU:  [denoising block i]            → [denoising block i+1]         → ...
CPU:  (idle)  [KV select for i+1]    →  (idle)  [KV select for i+2]  → ...
                          ↑ PCIe 전송이 GPU 연산 뒤에 숨겨짐

전송 지연이 GPU denoising 시간 안에 숨겨지므로 CPU 오프로딩 비용이 사실상 0에 수렴한다.

실측 성능

설정KV 예산정확도 손실처리량 대비 기준
GPU-only 전체 KV100%0%1.0×
HERALD5~10%<1%2.47×

처리량 향상은 컨텍스트 길이가 길수록 더 크다. 긴 시퀀스일수록 KV DRAM 오프로딩 효과가 극대화되기 때문이다.


DiLaServe: 클러스터 단위 해법 (2026년 6월 27일)

논문: DiLaServe, arXiv:2606.29094, 2026년 6월 27일.

Fast-dLLM과 HERALD가 단일 GPU·인스턴스 문제를 다룬다면, DiLaServe는 프로덕션 클러스터에서 SLO를 맞추는 방법을 다룬다.

가변 스텝과 SLO 예측 불가 문제

AR LLM은 출력 토큰 수를 dequeue 시점에 알 수 있어 SLO 예측이 상대적으로 쉽다. dLLM은 denoising 스텝 수가 요청마다 다르고 신뢰도 임계값 설정에도 달라진다. 고부하 상황에서 응답시간 SLO를 맞추려면 단순 큐잉 모델로는 부족하다.

동적 신뢰도 임계값 조정

DiLaServe는 신뢰도 임계값을 클러스터 부하에 따라 실시간으로 조정한다.

  • 고부하 시: 임계값을 높인다 → 스텝마다 더 많은 토큰을 commit → 총 denoising 스텝 감소 → 응답시간 단축 → SLO 달성 (처리량은 다소 감소)
  • 저부하 시: 임계값을 낮춘다 → 품질 최대화 → GPU 여유를 활용

이 조정을 근사 KV 캐싱과 클러스터 라우팅에 통합하면, 다양한 부하 패턴에서 SLO를 유지할 수 있다.

실측 결과

  • SLO 달성률: 최대 +56.6 퍼센트포인트 향상
  • 출력 품질 손실: 0.9% 이하
  • 이기종 요청 혼합(짧은/긴 프롬프트)에서도 효과적

Sangam: AR 서빙 스택을 dLLM에 재활용하는 방법 (2026년 7월)

논문: Sangam, arXiv:2607.04206, 2026년 7월 5일.

vLLM, SGLang 같은 AR LLM 서빙 시스템들이 dLLM을 지원하기 시작했지만, 이 스택들은 인과적 어텐션을 전제로 설계되어 있다. Sangam은 기존 AR 서빙 스택을 dLLM용으로 개조할 때 어떤 컴포넌트를 교체하고 어떤 것을 재사용할 수 있는지 체계적으로 분석한다.

재사용 가능한 부분: 요청 스케줄러, 배치 구성 로직, GPU 메모리 관리자, 관측성(observability) 파이프라인.

교체 필요한 부분: 어텐션 커널(인과적 마스크 제거 → 전체 시퀀스 어텐션), KV 캐시 무효화 로직, 완료 조건 판단(생성 토큰 수 → 신뢰도 기반 commit 비율).


운영 체크리스트

  • [ ] 사용 모델이 masked-diffusion 방식인지 확인 (LLaDA 2.0, Dream, Mercury 계열)
  • [ ] 현재 AR 서빙 스택(vLLM/SGLang)의 dLLM 지원 버전 확인 — Sangam 분석 결과 참고
  • [ ] GPU 메모리 예산 재검토: dLLM은 전체 시퀀스 KV를 동시에 유지 → AR LLM 대비 메모리 요구량이 더 크다
  • [ ] 고정 응답시간 SLO가 있는 경우 DiLaServe 방식의 동적 임계값 조정 필요
  • [ ] 장문 컨텍스트(>8K) 워크로드라면 HERALD 방식의 CPU-GPU 협업 오프로딩 고려
  • [ ] Fast-dLLM 블록 크기(B): 기본 16 스텝을 기준으로 품질/속도 트레이드오프 튜닝
  • [ ] 모델별 신뢰도 임계값(γ) 캘리브레이션 — 기본값은 모델마다 다름
  • [ ] AR LLM과 dLLM을 동일 클러스터에 혼합 배포 시 라우팅 분리 여부 결정

요점 정리

  • dLLM은 양방향 어텐션으로 마스크 시퀀스를 반복 denoising한다. 토큰 하나를 commit할 때마다 전체 KV가 무효화되어 AR LLM의 prefix caching이 적용되지 않는다.
  • Fast-dLLM (NVlabs, ICLR 2026): 블록 단위 근사 KV 재사용 + 신뢰도 기반 병렬 commit으로 2~3.6× 처리량 향상.
  • HERALD (서울대·UC Berkeley, 2026-06): GPU denoising과 CPU KV 선택을 파이프라인으로 겹쳐 5~10% KV 예산에서 2.47× 처리량.
  • DiLaServe (2026-06): 신뢰도 임계값을 클러스터 부하에 맞게 실시간 조정해 SLO 달성률 최대 +56.6pp, 품질 손실 0.9% 이하.
  • Sangam (2026-07): AR 서빙 스택에서 재사용·교체 가능한 컴포넌트를 체계적으로 분류.
  • vLLM과 SGLang이 dLLM 지원을 추가하고 있어 이 논문들의 기법이 가까운 시일 안에 프로덕션 코드베이스에 반영될 전망이다.

References

  • Fast-dLLM (arXiv:2505.22618): https://arxiv.org/abs/2505.22618
  • Fast-dLLM GitHub (NVlabs): https://github.com/NVlabs/Fast-dLLM
  • HERALD (arXiv:2606.21633): https://arxiv.org/abs/2606.21633
  • DiLaServe (arXiv:2606.29094): https://arxiv.org/abs/2606.29094
  • Sangam (arXiv:2607.04206): https://arxiv.org/abs/2607.04206