확산 언어 모델(Diffusion LLM)이란 무엇인가
우리가 글을 쓸 때는 대개 첫 단어부터 마지막 단어까지 한 방향으로 써 내려갑니다. 앞 문장을 다 쓰기 전에는 뒤 문장을 확정하기 어렵고, 한 번 뱉은 문장을 되돌아가 통째로 고치는 일도 드뭅니다. 오늘날의 주류 대형 언어 모델(Large Language Model, LLM)도 정확히 이 방식으로 동작합니다. 토큰을 왼쪽에서 오른쪽으로 하나씩 예측하는 자기회귀(Autoregressive, 이하 AR) 생성입니다.
확산 언어 모델(Diffusion Language Model, 이하 dLLM)은 이 순차 생성이라는 전제 자체를 바꾼 언어 모델입니다. 답변 자리를 통째로 마스킹(masking)해 둔 상태에서 출발해, 여러 번의 복원(denoising) 단계를 거치며 마스킹된 토큰들을 병렬로 채워 넣습니다. 이미지 생성에서 노이즈를 조금씩 걷어내며 그림을 완성하는 확산 모델의 발상을, 이산적인 텍스트 토큰 위에서 재현한 것입니다. 이 글에서는 먼저 확산이라는 개념 자체와 그것이 언어로 옮겨 온 과정을 짚은 뒤, dLLM의 대표 모델인 LLaDA, Mercury, Dream 7B, DiffusionGemma, Nemotron Diffusion을 살펴보고, 추론 디코딩 전략, 아키텍처 수준의 가속 기법, 강화학습 기반 정렬까지 최근 연구 지형을 한데 정리합니다.
자기회귀 생성의 한계와 확산이라는 발상의 전환
AR 생성은 지난 수년간 놀라운 성과를 냈지만, 구조적으로 두 가지 부담을 안고 있습니다. 첫째, 생성이 본질적으로 순차적이라 토큰 하나를 만들 때마다 모델 전체를 한 번씩 통과해야 합니다. 문장이 길어질수록 지연 시간이 선형으로 늘고, 배치 크기가 작을 때는 GPU의 연산 자원이 남아도는데도 메모리 대역폭에 발목이 잡히는 메모리 바운드(memory-bound) 상태에 놓입니다. 둘째, 왼쪽에서 오른쪽이라는 고정된 순서 탓에 이미 쓴 앞부분을 뒤늦게 수정하거나, 전체 구조를 먼저 잡고 세부를 채우는 식의 유연한 생성이 어렵습니다.
dLLM은 이 문제를 정반대 방향에서 풉니다. 토큰을 한 개씩 순서대로 확정하는 대신, 답변 영역 전체를 여러 토큰씩 동시에 예측하고 복원합니다. 한 번의 순전파(forward pass)에서 여러 토큰을 만들어 내므로, 남는 연산 자원을 활용해 지연 시간을 줄일 여지가 생깁니다. 마치 화가가 캔버스 전체에 밑그림을 흐릿하게 깔아 두고 여러 부분을 오가며 선명하게 다듬어 가는 것과 비슷합니다. 이 발상의 전환이 왜 매력적인지, 그리고 그 대가로 어떤 새로운 난제들이 따라오는지를 이해하는 것이 이 글의 핵심입니다.
확산 모델의 개념과 언어 모델로의 이식
확산 언어 모델을 처음 접하면 "확산이 대체 무엇이고 왜 언어에 쓰는가"라는 질문부터 막힙니다. 이 절은 AR 언어 모델만 다뤄 온 독자를 위해 확산 모델의 기본 개념부터 그것이 텍스트로 옮겨 온 과정까지를 차근차근 설명합니다. 이미 확산 모델에 익숙하다면 바로 다음 장으로 넘어가도 좋습니다.
이미지에서 시작된 확산 모델: 노이즈를 걷어내며 생성하기
확산 모델(Diffusion Model)은 원래 이미지 생성에서 출발한 생성 모델입니다. 핵심 아이디어는 두 방향의 과정을 짝지어 정의하는 데 있습니다. 순방향 과정(forward process)은 깨끗한 데이터에 가우시안 노이즈(Gaussian noise)를 여러 단계에 걸쳐 조금씩 더해, 결국 아무 정보도 없는 순수한 노이즈로 만듭니다. 역방향 과정(reverse process)은 이 노이즈에서 출발해 노이즈를 한 단계씩 걷어내며 데이터를 복원합니다. 신경망은 바로 이 "노이즈를 걷어내는" 역방향 과정을 학습합니다. 생성할 때는 순수한 노이즈에서 시작해 학습된 신경망으로 반복 복원해 새 이미지를 만들어 냅니다. 이 방식을 대표하는 연구가 Denoising Diffusion Probabilistic Models(DDPM)로, 오늘날 이미지 생성 확산 모델의 표준이 되었습니다.
여기서 중요한 것은 학습 목표입니다. 확산 모델은 데이터의 로그 가능도(log-likelihood)를 직접 최대화하기 어려우므로, 그 하한인 증거 하한(Evidence Lower Bound, ELBO)을 최대화하도록 학습합니다. 이 ELBO 기반 목적 함수와 "노이즈를 점진적으로 더하고 걷어낸다"는 구조가 이후 텍스트 확산 모델로 거의 그대로 이어집니다.
이산적인 텍스트로: 마스킹(흡수 상태) 확산과 마스크 예측기
문제는 텍스트가 이산적(discrete)이라는 점입니다. 픽셀 값에는 실수 노이즈를 더할 수 있지만, "고양이"라는 토큰에 가우시안 노이즈를 더한다는 것은 자연스럽지 않습니다. 그래서 텍스트에서는 연속적인 노이즈 대신 범주형(categorical) 손상을 씁니다. 그중 가장 널리 쓰이는 방식이 흡수 상태(absorbing-state) 확산, 즉 마스킹 확산(masked diffusion)입니다. 노이즈를 더하는 대신 토큰을 특별한 [MASK] 토큰으로 점차 바꿔 버리고, 복원 과정에서 그 마스크를 원래 토큰으로 되돌립니다. 이산 상태 공간에서의 확산을 정식화한 대표 연구가 D3PM(Structured Denoising Diffusion Models in Discrete State-Spaces)이며, LLaDA와 Dream 7B가 채택한 방식도 이 계열입니다.
구체적으로 순방향 과정은 깨끗한 문장에서 시작해 각 토큰을 확률 t 로 독립적으로 마스킹합니다. 시간 t 가 0 에서 1 로 갈수록 마스킹 비율이 선형으로 높아지고, t=1 에서는 문장 전체가 마스킹됩니다. LLaDA 논문은 이 선형 마스킹이 "연속 확산 모델의 노이즈 스케줄과 유사하면서도 구별되는" 것이며, 텍스트의 정보량이 평균적으로 토큰 수에 비례한다는 가정에서 자연스럽게 나온다고 설명합니다. 역방향 과정은 이 마스킹된 상태에서 출발해 t 를 1 에서 0 으로 되돌리며 마스킹된 토큰을 점차 복원하는데, LLaDA는 이 복원 목표를 "연속 확산 모델의 데이터 예측 형태"라고 부릅니다.
그림: 마스킹 확산의 세 국면. (a) 사전학습은 무작위 비율로 마스킹, (b) 지도 미세조정은 응답만 마스킹, (c) 샘플링은 마스크 예측과 재마스킹을 반복. 출처: LLaDA 논문.
복원을 담당하는 신경망을 LLaDA 논문에서는 마스크 예측기(mask predictor)라 부릅니다. 트랜스포머(transformer) 기반의 이 예측기는 현재 마스킹된 모든 위치의 토큰을 한꺼번에 예측합니다. 학습은 마스킹된 토큰에 대해서만 교차 엔트로피(cross-entropy) 손실을 계산하되, 각 항에 1/t 가중치를 곱합니다. 이 목적 함수는 음의 로그 가능도(negative log-likelihood)에 대한 상한(upper bound)임이 증명되어 있어 LLaDA는 이를 원리적인 생성 목표로 삼으며, Dream 논문 역시 이 가중 교차 엔트로피가 "음의 로그 가능도에 대한 다루기 쉬운 변분 상한을 제공하는 ELBO의 재구성"이라고 설명합니다. 즉 앞서 본 이미지 확산의 ELBO 학습이 텍스트에서는 이 1/t 가중 마스킹 손실로 나타나는 셈입니다.
BERT의 마스킹 언어 모델링과 무엇이 다른가
여기까지 읽으면 자연스럽게 BERT가 떠오릅니다. BERT도 토큰을 마스킹하고 맞히도록 학습하기 때문입니다. 실제로 두 방식은 한 뿌리에서 나왔지만, 결정적인 차이가 있습니다. BERT의 마스킹 언어 모델링(Masked Language Modeling, MLM)은 문장의 약 15\% 를 고정 비율로 가리고 한 번에 맞히는 표현 학습(representation learning) 목표입니다. 반면 마스킹 확산은 마스킹 비율이 0 에서 1 사이에서 무작위로 변하고, 여기에 1/t 가중치가 붙어 목적 함수가 로그 가능도의 상한이 됩니다. LLaDA 논문은 이 차이가 "규모가 커질수록 중요한 함의를 갖는다"며, 바로 이 점 덕분에 확산 모델이 문맥 내 학습(in-context learning)과 지시 따르기(instruction-following)를 갖춘 원리적인 생성 모델이 된다고 강조합니다. 쉽게 말해, BERT는 빈칸을 채우는 데는 능하지만 빈 문장에서 완결된 텍스트를 생성하지는 못합니다. 마스킹 확산은 마스크를 반복적으로 걷어내는 과정을 통해 아무것도 없는 상태에서 문장 전체를 샘플링할 수 있습니다.
이미지 생성 쪽의 사촌 격인 연구로는 MaskGIT가 있습니다. MaskGIT는 확신도가 높은 토큰부터 확정하고 나머지를 다시 마스킹하는 방식으로 이미지를 반복 생성하는데, LLaDA 논문은 MaskGIT가 "1/t 항이 빠진 휴리스틱 목적 함수를 쓰며 최대 가능도와의 이론적 연결이 없다"고 지적합니다. 흥미롭게도 LLaDA는 학습 목적 함수에서는 MaskGIT와 갈라서지만, 추론 시 토큰을 확정하는 재마스킹 방식은 MaskGIT의 것을 그대로 빌려 씁니다.
양방향 어텐션과 사라진 KV 캐시
AR 모델과 dLLM의 가장 실질적인 차이는 어텐션(attention)에 있습니다. AR 모델은 미래 토큰을 보지 못하도록 인과 마스크(causal mask)를 걸지만, dLLM의 마스크 예측기는 인과 마스크를 걸지 않는 양방향(bidirectional) 어텐션을 씁니다. 마스킹된 위치를 채울 때 그 앞뿐 아니라 뒤의 문맥까지 모두 참고하기 때문입니다.
이 양방향성은 병렬 생성을 가능하게 하는 원천인 동시에, AR 모델이 당연하게 누리던 최적화 하나를 앗아 갑니다. 바로 KV 캐시(KV cache)입니다. AR 모델은 이미 생성한 토큰의 키(Key)와 값(Value)을 캐싱해 재사용하지만, dLLM은 복원 단계마다 모든 토큰의 표현이 갱신될 수 있어 이 캐시를 그대로 쓸 수 없습니다. LLaDA가 KV 캐시를 줄이는 그룹 쿼리 어텐션(Grouped-Query Attention) 대신 기본 다중 헤드 어텐션(multi-head attention)을 쓰는 이유가 여기에 있습니다. 애초에 KV 캐시를 쓸 수 없으니, 캐시를 줄이려는 기법이 이득을 주지 못하는 것입니다. 뒤에서 살펴볼 아키텍처 수준의 최적화 상당수가, 바로 이 잃어버린 캐시를 dLLM에 맞게 되살리려는 시도입니다.
토큰을 실제로 확정하는 규칙도 필요합니다. LLaDA는 각 단계에서 모든 마스크를 예측한 뒤, 신뢰도가 낮은 예측을 다시 마스킹하는 저신뢰도 재마스킹(low-confidence remasking)을 사용합니다. 확신이 서는 토큰부터 확정하고 애매한 토큰은 다음 단계로 미루는 방식입니다. 샘플링 단계 수와 생성 길이는 하이퍼파라미터로, 단계를 늘리면 품질이 오르고 줄이면 속도가 빨라지는 절충 관계에 있습니다.
블록 확산(Block Diffusion): 자기회귀와 확산의 절충
순수한 확산 방식은 답변 전체를 한 캔버스에 놓고 복원하지만, 실무에서 널리 쓰이는 절충안은 블록 확산(block diffusion)입니다. 답변을 여러 블록으로 나눠, 블록 안에서는 양방향으로 병렬 복원하고 블록과 블록 사이에는 왼쪽에서 오른쪽 순서를 지키는 방식입니다. 블록 내부는 확산, 블록 사이는 자기회귀인 셈이라, 블록 확산 연구의 제목 그대로 AR과 확산 사이를 잇는 연속적인 스펙트럼으로 볼 수 있습니다.
LLaDA는 재학습 없이도 자기회귀 샘플링과 블록 확산 샘플링을 함께 지원합니다. 실제로 LLaDA-Instruct에 블록 확산 샘플링을 적용하면 GSM8K가 69.4 에서 78.6 으로, MATH가 31.9 에서 42.2 로 올라갑니다. 다만 저자들은 이 향상이 블록 확산이 본질적으로 더 우수해서라기보다, SFT 데이터의 EOS 토큰 패딩이 유발한 조기 종료 문제를 블록 확산이 완화한 결과라고 설명합니다. 뒤에서 소개할 DiffusionGemma와 Nemotron Diffusion, 그리고 대부분의 가속 기법이 이 블록 확산 구조 위에서 설계되어 있습니다.
기반 모델들: 확산 LLM의 지형
이제 실제 모델들을 살펴봅니다. 크게 보면 밑바닥부터 학습한 연구용 모델(LLaDA), AR 모델을 확산으로 개조한 계열(Dream), 상용 초고속 모델(Mercury), 그리고 대규모 산업용 모델(DiffusionGemma, Nemotron)로 나뉩니다.
LLaDA: 밑바닥부터 학습한 8B 확산 LLM
LLaDA는 8B 규모의 마스킹 확산 모델을 사전학습(pretraining)부터 지도 미세조정(supervised fine-tuning, SFT)까지 표준 LLM 학습 절차 그대로 밑바닥부터 학습한 연구입니다. Renmin University of China와 Ant Group 연구진이 발표했습니다. 저자들의 핵심 주장은 도발적입니다. 확장성(scalability), 문맥 내 학습, 지시 따르기 같은 LLM의 핵심 능력이 자기회귀라는 특정 구조가 아니라 "생성 모델링 원리 그 자체"에서 나온다는 것입니다. LLaDA는 이 주장을 뒷받침하는 존재 증명으로, 밑바닥부터 학습한 8B 확산 모델이 같은 규모의 LLaMA3 8B와 경쟁할 수 있음을 보이려 합니다.
학습 방법은 앞 절에서 설명한 마스킹 확산 그대로입니다. 1/t 가중 마스킹 교차 엔트로피로 사전학습하되, 시간 t 를 모델 입력으로 넣지 않는 시간 불변(time-free) 파라미터화를 씁니다. 마스크 예측기가 클린 데이터의 조건부 분포만 추정하면 되기 때문입니다. 사전학습은 2.3 조(T) 토큰, 0.13 M H800 GPU 시간 규모로 이뤄졌는데, 이는 같은 시기 LLaMA3 8B의 15 조 토큰의 약 1/6 수준입니다. SFT 단계에서는 프롬프트는 깨끗이 두고 응답만 마스킹한 4.5 M쌍으로 학습하며, EOS 패딩 토큰도 일반 마스킹 토큰처럼 다뤄 모델이 생성 길이를 스스로 조절하도록 합니다.
성능은 인상적입니다. 기본 모델 기준 MMLU 65.9 (5-shot), GSM8K 70.3, MATH 31.4, HumanEval 35.4 를 기록했고, 특히 GSM8K는 LLaMA3 8B의 48.7 을, MATH는 16.0 을 크게 앞섭니다. 중국어 벤치마크(CMMLU 69.9, C-Eval 70.5)에서도 강점을 보입니다. 지시 모델은 강화학습 정렬 없이 SFT만으로 GSM8K 69.4, HumanEval 49.4, ARC-C 88.5 를 기록합니다.
특히 흥미로운 결과는 이른바 "역전의 저주(reversal curse)"를 깼다는 점입니다. AR 모델은 "A는 B다"를 학습해도 "B는 A다"를 잘 답하지 못하는 비대칭성을 보이는데, LLaDA는 중국어 시 완성 과제에서 순방향과 역방향에 걸쳐 일관된 성능을 보였습니다. 순방향에서는 AR 모델들도 강했지만, LLaDA는 특히 역방향 과제에서 GPT-4o를 큰 차이로 앞섰다고 보고합니다. 저자들은 부록에서 LLaDA의 목적 함수가 임의 순서 자기회귀(any-order autoregressive) 목적 함수와 등가임을 보이며, 이것이 명시적으로 사용하지 않았는데도 양방향 추론 능력이 나타나는 이유라고 설명합니다. LLaDA는 이후 등장하는 거의 모든 dLLM 연구의 기준선(baseline)이자, 가속과 강화학습 기법의 주된 실험 대상이 됩니다. 한계로는 생성 길이가 고정 하이퍼파라미터라는 점, KV 캐시나 특화 어텐션이 없다는 점, 아직 강화학습 정렬을 적용하지 않았다는 점을 저자들이 직접 꼽습니다.
Dream 7B와 Dream-Coder: AR 초기화와 어떤 순서로든 생성하기
Dream 7B는 홍콩대학교(HKU)와 Huawei Noah's Ark Lab이 공개한 모델로, LLaDA와는 다른 전략을 택합니다. 밑바닥부터 학습하는 대신, 이미 잘 학습된 AR 모델인 Qwen2.5-7B의 가중치로 초기화한 뒤 확산 목적 함수로 이어서 학습합니다. AR 사전학습이 남긴 방대한 지식을 재활용하려는 것입니다.
그림: (a) 자기회귀 모델링과 (b) Dream의 확산 모델링 비교. Dream은 전체 어텐션을 쓰되 은닉 상태가 다음 위치를 예측하는 시프트 구조를 유지한다. 출처: Dream 7B 논문.
핵심 기법은 두 가지입니다. 첫째, DiffuLLaMA에서 제안한 시프트 연산(shift operation)입니다. AR 모델은 위치 i 에서 다음 토큰 i+1 을 예측하도록 학습되어 있는데, Dream은 마스크를 자기 위치에서 예측하도록 바꾸는 대신 이 시프트를 그대로 보존합니다. 은닉 상태 h_i 가 여전히 위치 i+1 을 예측하게 두어, 인과 어텐션에서 양방향 어텐션으로 전환할 때 사전학습 지식이 파괴되지 않도록 합니다. 둘째, CART(Context-Adaptive noise Rescheduling at Token-level)입니다. 문장 전체에 하나의 시간 값 t 를 적용하면 주변에 이미 복원된 문맥이 많은 토큰까지 똑같이 노이즈가 낀 것으로 취급되는데, 이는 부정확합니다. CART는 각 토큰의 문맥 정보량에 따라 노이즈 수준을 다르게 부여합니다. 주변에 클린 토큰이 가까이 많을수록 낮은 노이즈를, 문맥이 빈약할수록 높은 노이즈를 주는 식입니다.
이렇게 개조한 Dream 7B는 LLaDA의 약 1/4 인 0.6 조(T) 토큰만으로 학습되었는데도 여러 지표에서 LLaDA 8B를 앞섭니다(괄호 안 LLaDA 수치는 Dream 논문의 재평가 기준). MMLU 69.5 (LLaDA 65.9), GSM8K 77.2 (LLaDA 70.9), HumanEval 57.9 (LLaDA 32.9), MBPP 56.2 (LLaDA 39.0) 등입니다. Dream이 특히 두드러지는 영역은 계획(planning)입니다. Countdown 과제에서 16.0 을 기록해 Qwen2.5 7B의 6.2 를 크게 앞섰고, Sudoku에서는 81.0 으로 Qwen2.5의 21.0 을 압도했습니다. 양방향으로 전체 판을 보며 채워 나가는 확산 방식이 제약 충족형 문제에 유리하다는 신호입니다. 저자들은 확산 단계를 5 에서 20 사이로 줄여도 Countdown에서 속도와 품질 모두 Qwen2.5 7B를 앞선다고 보고합니다. 다만 AR 초기화에는 함정이 있어, 학습률이 지나치게 높으면 왼쪽에서 오른쪽 언어 지식이 빠르게 손상되므로 세심한 조정이 필요하다는 점을 저자들이 강조합니다.
이 계보를 코드로 특화한 것이 Dream-Coder 7B입니다. Qwen2.5-Coder-7B로 초기화하고 CART를 그대로 쓰며, 여기에 검증 가능한 보상(verifiable reward) 기반 강화학습을 더했습니다. 학습 과정에서 [PAD] 토큰이 야기하는 병리를 다루기 위해 무작위 절단(Random Truncation, 응답을 배치 내 무작위 예시의 길이로 잘라 낭비되는 계산을 줄임)과 패딩 페널티(Padding Penalty, 추론 시 [PAD] 로짓에 점점 감소하는 페널티를 부여해 조기 종료를 막음)를 새로 도입한 점이 눈에 띕니다. Dream-Coder는 과제에 따라 스케치를 먼저 그리듯 뼈대부터 잡거나, 왼쪽에서 오른쪽으로 완성하거나, 추론과 코드를 번갈아 쓰는 등 서로 다른 생성 패턴이 미리 설계된 것이 아니라 확산 학습 과정에서 자연스럽게 창발(emergence)한다고 보고합니다. 정량 지표로는 LiveCodeBench에서 21.4\% 를 기록해 상용 모델인 Mercury Coder Small의 22.9\% 에 근접했습니다.
Mercury: 상용 규모의 초고속 확산 LLM
Mercury는 Inception Labs가 발표한 첫 상용 규모 dLLM 계열로, 코드에 특화된 Mercury Coder(Mini와 Small)를 다룹니다. Mercury의 화두는 오직 하나, 속도와 품질의 절충 곡선(speed-quality frontier)입니다. 이전의 텍스트 확산 연구들이 순전파 횟수를 줄이고도 실제 벽시계(wall-clock) 효율에서는 개선을 보이지 못한 반면, Mercury는 확산의 병렬성을 실제 속도로 전환하는 것을 목표로 합니다.
그림: 코딩 품질 지수 대 출력 속도. Mercury Coder Mini와 Small이 오른쪽(고속) 영역에 위치한다. 출처: Mercury 논문 (Artificial Analysis 측정).
방법론적으로 Mercury는 트랜스포머 기반이며, 저자들은 아키텍처 선택이 "이미지 확산 모델의 선택과 유사하고 확산이라는 사실과는 직교적"이라고 밝힙니다. 덕분에 기존 LLM용 시스템 도구를 재활용할 수 있습니다. 정렬도 표준 사전학습, SFT, RLHF, DPO를 쓰되 "자기회귀 손실을 확산 손실로 바꾼다"는 점만 다릅니다. 문맥 길이는 기본 32{,}768 토큰, 확장 시 128 K까지 지원합니다. 속도의 비결은 동적 배치 샘플링과 페이징을 갖춘 자체 추론 엔진, 그리고 OpenAI 호환 API로, 기존 AR 모델을 그대로 대체할 수 있게 설계되었습니다.
구체적으로 Mercury Coder Mini는 HumanEval 88.0 에 초당 1109 토큰, Small은 HumanEval 90.0 에 초당 737 토큰을 기록합니다. 논문은 이 속도가 속도 최적화된 프론티어 모델 대비 평균 최대 10 배 빠른 수준이라고 보고합니다. 참고로 같은 표에서 GPT-4o Mini와 Claude 3.5 Haiku는 초당 60 토큰 안팎으로 제시됩니다. Copilot Arena 사람 평가에서는 품질 공동 2 위, 속도는 전체 1 위, 평균 지연 시간 25 밀리초를 기록했습니다. 다만 상용 보고서인 만큼 매개변수 규모, 정확한 학습 토큰 수, 데이터 구성, 샘플러 세부는 공개되지 않았고, 속도 수치는 Inception의 자체 엔진과 제3자(Artificial Analysis) 측정에 의존한다는 점은 감안해야 합니다. Mercury는 dLLM이 연구실을 넘어 제품 영역에 진입했음을 보여 준 사례입니다.
DiffusionGemma: MoE 기반 멀티모달 확산 LLM (feat. Google DeepMind)
DiffusionGemma는 Google DeepMind가 공개한 오픈 가중치(open-weights) 모델로, Gemma 4 계열의 전문가 혼합(Mixture-of-Experts, MoE) 구조 위에 이산 텍스트 확산을 얹었습니다. 저장소 이름은 "26B-A4B"지만 모델 카드의 사양 표에는 전체 매개변수 25.2 B, 활성 매개변수 3.8 B로 적혀 있어, 이 글에서는 사양 표의 수치를 따릅니다. 전문가는 총 128 개 중 8 개가 활성화되고 공유 전문가(shared expert) 1 개가 추가되며, 계층은 30 개, 캔버스 길이(canvas length)는 256, 문맥 길이는 최대 256 K 토큰입니다. 텍스트뿐 아니라 이미지와 영상을 입력으로 받는 멀티모달 모델이기도 하며, 시스템 프롬프트에 <|think|> 토큰을 넣어 켜는 사고 모드(thinking mode)도 지원합니다.
그림: DiffusionGemma의 블록 단위 생성 루프. 인코더(인과 어텐션)가 프리필하고, 디코더(양방향 어텐션)가 캔버스를 반복 복원하며, 인코더가 그 결과를 커밋한다. 출처: vLLM 통합 블로그.
DiffusionGemma의 구조는 인코더와 디코더가 가중치를 공유하되 두 가지 모드로 동작한다는 점이 핵심입니다. 인코더 모드는 인과 어텐션으로 프롬프트를 처리하며 KV 캐시를 채우고, 디코더 모드는 양방향 어텐션으로 생성 캔버스를 복원합니다. 생성은 다중 캔버스(multi-canvas) 방식으로, 프롬프트를 프리필한 뒤 256 토큰짜리 캔버스를 무작위 토큰으로 초기화하고, 디코더가 캔버스 전체를 병렬로 반복 복원하다가 수렴하면 인코더가 그 결과를 커밋해 KV에 붙이고 다음 캔버스로 넘어갑니다. 각 복원 단계는 직전 단계의 소프트맥스 분포를 다시 입력으로 되먹이는 자기 조건화(self-conditioning) 신호를 활용해 예측을 다듬습니다. 샘플링에는 엔트로피 기반 복원(Entropy-Bounded Denoising)과 적응적 정지(Adaptive Stopping)를 쓰며, 최대 복원 단계는 48 로 제한됩니다. 즉 캔버스 안은 병렬, 캔버스 사이는 자기회귀인 전형적인 블록 확산 구조입니다.
성능을 이야기할 때는 솔직해질 필요가 있습니다. DiffusionGemma는 같은 아키텍처의 AR 모델인 Gemma 4 26B A4B보다 대체로 품질이 낮습니다. 모델 카드 기준 MMLU Pro는 77.6\% 대 82.6\%, AIME 2026(도구 미사용)은 69.1\% 대 88.3\%, LiveCodeBench v6는 69.1\% 대 77.1\%, GPQA Diamond는 73.2\% 대 82.3\% 로 모두 AR 쪽이 앞서며, 시각 벤치마크에서는 격차가 더 벌어집니다(MMMU Pro 54.3\% 대 73.8\% ). 대신 얻는 것은 속도입니다. 순전파 한 번에 15 에서 20 개 토큰을 만들어 내고, 배치 크기가 작을 때 H100 FP8에서 초당 1100 토큰이 넘는 사용자별 생성 속도를 냅니다. dLLM의 현재 위치를 정직하게 보여 주는 사례입니다. 품질에서 AR을 앞서기 위한 기술이라기보다, 낮은 배치 크기에서 지연 시간을 줄이기 위한 기술입니다.
DiffusionGemma는 서빙(serving) 관점에서도 이정표를 남겼습니다. vLLM 팀의 통합 블로그에 따르면 DiffusionGemma는 vLLM이 네이티브로 지원한 최초의 dLLM입니다. 양방향 어텐션, 반복적 복원, 블록 단위 생성, 단계별 맞춤 샘플링은 표준 AR 서빙 경로에 맞지 않아, 모델 러너 v2의 ModelState 추상화를 새로 활용해 통합했습니다. 흥미롭게도 vLLM은 각 캔버스를 speculative decoding의 드래프트 집합처럼 다뤄 기존 추측 디코딩 데이터 경로를 재사용했습니다. 인코더가 AR과 똑같이 KV를 쓰기 때문에 접두사 캐싱(prefix caching)도 그대로 동작합니다. 성능은 FP8 기준 H200에서 초당 1288 토큰(AR 대비 약 6 배, 다중 토큰 예측 대비 약 3 배), H100에서 초당 1008 토큰(약 5 배, 약 2.6 배)을 배치 크기 1 에서 기록했습니다.
그림: 복원 단계 사이 병목(캔버스 토큰 + 자기 조건화 벡터)을 통과하는 최장 직렬 경로. 파란색은 해석 가능한 잠재를, 분홍색은 해석 불가능한 잠재를 가정한 경로. 출처: How Transparent is DiffusionGemma? 논문.
한편 같은 모델을 안전성 관점에서 분석한 How Transparent is DiffusionGemma?도 주목할 만합니다. Google DeepMind의 해석 가능성(interpretability) 연구진이, 확산 특유의 잠재 공간 연산이 AR 모델보다 추론 과정을 덜 투명하게 만드는지를 물었습니다. 결론은 미묘합니다. 복원 단계 사이의 병목은 캔버스 토큰과 자기 조건화 벡터인데, 이를 해석 불가능한 정보로 보면 Gemma 4 대비 약 28.6 배 더 많은 불투명 직렬 연산을 갖는 것으로 나옵니다(복원 단계를 최대로 돌린 최악의 경우입니다). 그러나 연구진은 이 자기 조건화 벡터가 대체로 현재나 인접 위치의 최종 토큰을 가리키는 해석 가능한 정보임을 로짓 렌즈(Logit Lens)로 보이며, 이 관점에서는 그 비율이 약 1.1 배로 떨어진다고 주장합니다. 전반적으로 DiffusionGemma는 Gemma 4와 비슷한 수준으로 모니터링 가능하다고 보고하면서도, 이 결과가 여러 캔버스에 걸친 롤아웃에서 측정된 것이라 캔버스 사이의 추론이 여전히 자기회귀적이라는 점에 일부 기댄 것일 수 있고, 나아가 현재 텍스트 확산 학습 방식의 산물일 수 있다고 조심스럽게 단서를 답니다. 이 연구는 비연대순 추론(non-chronological reasoning), 답변 길이 조기 예측, 사후 자기수정(retroactive self-correction, 예를 들어 초반에 답을 9 로 적었다가 추론을 마친 뒤 8 로 고치는 행동), 비자기회귀적 코드 생성 같은 확산 특유의 행동들을 사례로 정리해, dLLM이 AR과는 질적으로 다른 방식으로 사고할 수 있음을 보여 줍니다.
Nemotron Diffusion: 자기회귀와 확산, 자기추측을 합친 3-모드 모델 (feat. NVIDIA)
Nemotron Diffusion은 NVIDIA가 공개한 3B, 8B, 14B 규모의 모델 계열로, 하나의 모델이 세 가지 디코딩 모드를 지원한다는 점이 독특합니다. 어텐션 패턴만 바꾸면 자기회귀 디코딩, 확산 기반 병렬 디코딩, 그리고 이 둘을 결합한 자기추측(self-speculation) 디코딩이 모두 가능합니다.
그림: 하나의 모델이 지원하는 세 가지 모드. 고동시성 클라우드 서빙에는 AR, 병렬 디코딩 잠재력이 큰 확산, 저동시성 개인 추론에는 자기추측. 출처: Nemotron-Labs-Diffusion 모델 카드.
기술 보고서에 따르면 이는 자기회귀 손실 \mathcal{L}_{AR} 과 블록 확산 손실 \mathcal{L}_{diff} 를 함께 쓰는 결합 목적 함수 \mathcal{L} = \mathcal{L}_{AR} + \alpha \mathcal{L}_{diff} (\alpha = 0.3 )로 학습한 결과입니다. 두 목적 함수가 서로 상충하지 않고 함께 좋아진다는 점, 즉 확산이 앞을 내다보는 계획 능력을 더하고 AR이 왼쪽에서 오른쪽 사전 지식을 제공한다는 점이 핵심 발견입니다. 이 모델은 밑바닥부터 학습한 것이 아니라 AR 모델인 Ministral3에서 이어 학습(continual pretraining)한 것으로, 먼저 순수 AR로 1 조 토큰을, 이어서 AR과 확산을 함께 쓰는 단계에서 3000 억 토큰을 더 학습하는 2 단계 방식입니다. Dream이 Qwen2.5를 확산으로 개조한 것과 같은 계열의 전략입니다. 어블레이션에서 AR 손실을 더한 것이 가장 큰 단일 성능 향상(+7.48\% )을 냈다는 점이 확산을 AR로 지지하는 이 설계의 근거입니다.
가장 실용적인 기여는 자기추측 디코딩입니다. 같은 모델이 확산 모드로 여러 토큰을 병렬 초안(draft)으로 뽑고, AR 모드로 그 초안을 검증(verification)합니다. 두 모드가 KV 캐시를 공유하므로 별도의 드래프트 모델이 필요 없고, 다중 토큰 예측(multi-token prediction, MTP)보다 강한 대안이 됩니다. 여기에 약 36 M 규모(전체의 약 0.4\% )의 가벼운 LoRA 드래프터를 더하면 수용률이 더 올라갑니다. 저자들은 이 방식이 Qwen3-8B 대비 순전파당 약 5.9 배 많은 토큰을 같은 정확도로 생성하며, SPEED-Bench에서 약 4 배 처리량 향상으로 이어진다고 보고합니다. 수용 길이(acceptance length)는 기본 5.46, LoRA 드래프터를 더하면 6.82 로, EAGLE-3의 2.75 나 MTP의 4.24 를 크게 앞섭니다. 실제 장비에서도 GB200 동시성 1 기준으로 AR의 초당 256 토큰을 자기추측이 851 토큰(약 3.32 배)까지, 맞춤 CUDA 커널로는 1015 토큰(약 3.97 배)까지 끌어올립니다. 흥미롭게도 저자들의 속도 한계(speed-of-light) 분석은 더 나은 샘플러를 쓰면 순수 확산 모드의 잠재 처리량이 자기추측보다도 높다고 보아, 확산을 단순 가속 부품 이상으로 남겨 둡니다. 확산과 AR을 하나의 모델 안에서 상호 보완하도록 묶은 대표 사례입니다.
추론: 언제, 어떤 순서로 토큰을 여는가
기반 모델이 정해지면 다음 질문은 "어떻게 디코딩할 것인가"입니다. dLLM은 매 단계 어떤 마스크를 확정하고 어떤 마스크를 남길지 스스로 정해야 하는데, 이 선택 규칙이 품질과 속도를 크게 좌우합니다. 이 절의 연구들은 대부분 재학습 없이(training-free) 적용 가능한 디코딩 전략입니다.
신뢰도를 넘어서: 궤적 일관성 디코딩(CCD)
표준 dLLM 디코딩은 어떤 마스크를 열지 고를 때 그 단계의 국소적 확신도, 즉 신뢰도(confidence)나 음의 엔트로피 하나에 의존합니다. Beyond Confidence 논문은 이 단일 단계 지표가 근시안적이고 오류에 취약하다고 지적합니다. LLM이 틀린 예측에도 과신하는 경향이 있어 국소 최적에 빠지기 쉽고, 샘플링 오류율과의 이론적 연결도 없다는 것입니다. City University of Hong Kong과 홍콩대학교(HKU), Huawei 연구진은 그 대안으로 CCD(Coherent Contextual Decoding)를 제안합니다.
그림: CCD의 동작. 최근 여러 단계의 상위 신뢰 토큰을 이력 버퍼에 모으고, 현재 단계 후보와 교차해 일관되게 확신하는 토큰만 확정한다("가장 확신하는 토큰도 기각"). 출처: Beyond Confidence 논문.
핵심 아이디어는 한 단계의 확신도 대신 최근 여러 단계에 걸친 예측의 일관성을 보는 것입니다. CCD는 최근 d 번의 반복에서 나온 상위 V 개 예측 분포를 저장하는 이력 버퍼(historical buffer)를 유지하고, 현재 후보와 과거 예측의 상위 집합을 교차(intersection)해 "궤적 정정(trajectory rectification)"을 수행합니다. 여러 단계에 걸쳐 꾸준히 같은 위치를 확신하는 토큰만 확정하고, 이번 단계에서만 그럴듯해 보이는 토큰은 기각하는 것입니다. 여기에 단계마다 여는 토큰 수를 고정하지 않고 동적으로 조절하는 적응적 예산(adaptive budget, CCD-DS)을 더합니다. 이 방식은 이력 길이 d=1 이고 후보 집합 크기를 단계별 예산과 같게 두면 정확히 기존 LLaDA와 Dream의 기본 샘플링으로 환원되는 끼워 넣기(plug-and-play) 구조입니다. 저자들은 Dream 기준 Trip Planning 과제에서 단계 수를 256 에서 약 75 로 줄이면서(약 3.48 배) 점수를 15.10 에서 19.01 로 오히려 높였고, MBPP에서는 품질 손실 없이 약 3.78 배 가속했다고 보고합니다. 특히 dLLM이 답변 뒤쪽에서 EOS 토큰을 길게 반복하며 예산을 낭비하는 구간을 CCD-DS가 빠르게 통과한다는 관찰도 흥미롭습니다.
답을 미리 안다: 조기 확정 디코딩(Prophet)
Diffusion Language Models Know the Answer Before Decoding은 제목 그대로의 관찰에서 출발합니다. dLLM은 최종 복원 단계에 한참 못 미친 시점에 이미 내부적으로 정답을 확정한다는 것입니다. 저자들은 이를 "조기 답변 수렴(early answer convergence)"이라 부릅니다. LLaDA 8B와 Dream 7B에서, 특히 무작위 재마스킹 기준으로 GSM8K는 최대 97\%, MMLU는 최대 99\% 의 사례가 전체 복원 단계의 절반만으로도 이미 정답에 도달합니다.
그림: (a) 표준 전체 단계 디코딩에는 낭비되는 단계가 있고, (b) Prophet은 신뢰도 격차가 임계값을 넘으면 조기 확정해 약 절반의 단계를 아낀다. 출처: Prophet 논문.
그렇다면 나머지 절반의 단계는 낭비입니다. Prophet은 언제 복원을 멈출지를 최적 정지(optimal stopping) 문제로 보고, 답변 영역에 한정한 신뢰도 격차(Confidence Gap), 즉 최상위 로짓과 차상위 로짓의 차이를 측정합니다. 이 격차가 임계값을 넘으면 남은 마스크 전체를 한 번에 argmax로 채우고 종료합니다. 디코딩 진행도에 따라 임계값을 7.5, 5.0, 2.5 로 단계적으로 낮춰, 초반에는 신중하게 후반에는 과감하게 확정하도록 설계했습니다. 재학습이 필요 없고 모델에 구애받지 않으며, 저자들은 이 방식으로 복원 단계를 최대 약 3.4 배 줄이면서 품질을 유지했다고 보고합니다. 무엇보다 이 기법은 단계당 비용을 줄이는 다른 방법(KV 캐시, 병렬 디코딩)과 곱셈적으로 결합됩니다. 실제로 Fast-dLLM 단독의 약 6.82 배 가속이 Prophet과 결합하면 약 7.66 배로 늘어납니다. 오답으로 끝나는 사례는 답이 늦게까지 흔들려 조기 확정이 발동하지 않으므로, 이 방식이 품질을 지키는 안전장치 역할도 한다는 분석이 인상적입니다. 다만 Prophet은 수학, 코드, 계획처럼 답변 영역이 뚜렷한 과제에 맞춰진 기법으로, 경계가 모호한 열린 생성에는 조기 수렴 신호가 뚜렷하지 않아 적용이 까다롭다는 점을 저자들이 단서로 답니다.
토큰 순서의 이론: 최악을 대비해 학습하고, 최선을 계획하라
앞의 두 연구가 실용적 디코딩 기법이라면, Train for the Worst, Plan for the Best는 왜 순서가 중요한지에 대한 이론적 토대를 놓습니다. ICML 2025에 발표된 이 논문은 마스킹 확산 모델(masked diffusion model, MDM)의 학습과 추론 사이의 근본적 긴장을 분석합니다.
그림: MDM 학습은 어떤 위치가 마스킹될지 모르므로 지수적으로 많은 채워 넣기 부분 문제를 모두 대비해야 한다("최악을 대비해 학습"). 출처: Train for the Worst 논문.
학습 관점에서 MDM은 지수적으로 많은 채워 넣기(infilling) 부분 문제를 동시에 풀어야 합니다. 길이 L 인 AR 모델이 L 개의 예측 문제를 푸는 반면, MDM은 어떤 위치 조합이 마스킹될지 모르므로 \Theta(L \cdot 2^L) 개의 부분 문제에 대비해야 합니다. 저자들은 그중 일부가 계산적으로 다루기 힘든(computationally intractable) 문제임을 증명합니다. 즉 아무리 학습해도 잘 배우지 못하는 부분 문제가 반드시 존재합니다. 추론 관점에서 이것이 치명적이지 않은 이유는, 어떤 위치를 먼저 열지 적응적으로 고르면 그 어려운 부분 문제를 우회(sidestep)할 수 있기 때문입니다. 논문의 제목은 이 통찰을 압축합니다. 최악의 부분 문제까지 대비해 학습하되(train for the worst), 추론에서는 쉬운 순서를 계획하라(plan for the best)는 것입니다.
저자들은 위치 선택을 위한 두 가지 순서 오라클(ordering oracle)을 제시합니다. 어떤 위치에서 최대 확률이 높은 곳을 먼저 여는 최고 확률(Top-probability) 방식과, 최상위와 차상위 토큰의 확률 격차가 큰 곳을 먼저 여는 최고 확률 마진(Top-probability margin) 방식입니다. 결과는 극적입니다. Sudoku에서 무작위 순서의 MDM은 6.88\% 에 그치지만, 최고 확률 마진 순서를 쓰면 89.49\% 로 뜁니다. 이는 올바른 순서를 교사 강요(teacher forcing)로 학습시킨 7 배 큰 AR 모델의 87.18\% 마저 앞서는 수치입니다. Zebra 퍼즐에서도 76.9\% 에서 98.5\% 로 올랐습니다. 참고로 여기서 쓰인 최고 확률 오라클은 LLaDA의 기본값인 최대 확률 기반 저신뢰도 재마스킹과 사실상 같은 것으로(Dream은 대신 음의 엔트로피를 씁니다), 신뢰도 기반 순서가 왜 통하는지에 대한 이론적 근거를 제공합니다.
유연성의 함정: 임의 순서가 오히려 추론을 가로막을 때
그런데 순서에 관한 이야기는 여기서 반전을 맞습니다. 2026년 초 공개된 The Flexibility Trap은 앞의 낙관론에 정면으로 반론을 제기합니다. Tsinghua University(LeapLab)와 Alibaba 연구진은, 수학과 코딩 같은 일반 추론 과제에서는 임의 순서 생성이 dLLM의 추론 잠재력을 넓히기는커녕 오히려 좁힌다고 주장합니다.
그림: (a) AR 순서는 불확실한 분기 토큰을 정면으로 마주하고, (b) 임의 순서는 "너무 어려우니 우회"하며 쉬운 토큰부터 풀다가 분기점의 다양성을 잃는다. 출처: The Flexibility Trap 논문.
그 메커니즘을 저자들은 "엔트로피 저하(entropy degradation)"로 설명합니다. 추론은 "따라서", "그러므로" 같은 드문 분기 토큰(forking token)에 크게 의존하는데, 이 토큰들은 국소적으로 엔트로피가 치솟는 지점입니다. AR 순서는 이 분기점을 정면으로 마주해(confronting) 샘플링하므로 분기의 다양성이 보존됩니다. 반면 임의 순서는 확신이 서는 쉬운 토큰부터 먼저 풀며 분기점을 우회(bypassing)하는데, 이렇게 주변 문맥이 먼저 확정되면 정작 분기점에 도달했을 때는 답이 이미 결정되어 버립니다. 그 결과 해답의 다양성(solution coverage)이 조기에 붕괴합니다. 실제로 k 가 커질수록 dLLM을 AR 순서로 제약했을 때의 Pass@k가 유연한 순서를 앞섰고, HumanEval에서는 AR 순서로만 풀리는 문제가 21.3\% 인 반면 그 반대는 0.6\% 에 그쳐, 임의 순서로 풀리는 문제가 대체로 AR 순서로 풀리는 문제의 부분집합임을 보였습니다.
여기서 흥미로운 대목은 저자들이 Train for the Worst와의 관계를 직접 언급한다는 점입니다. Sudoku나 Zebra 같은 퍼즐에서 비순차적 순서가 도움이 되는 것은 사실이지만, 그 이점이 일반적인 수학과 코딩 추론으로는 전이되지 않는다고 선을 긋습니다. 정리하면, 순서의 자유가 언제나 이득은 아니며 과제의 성격에 따라 다르다는 것이 현재까지의 지형입니다.
이 관찰은 강화학습으로도 이어집니다. 저자들은 dLLM의 임의 순서를 보존하려는 강화학습 기법들이 (1) 토큰별 기여도(credit) 배정의 모호함, (2) O(N!) 개의 복원 궤적을 주변화해야 하는 다루기 힘든 가능도, (3) 샘플러와 학습자의 불일치라는 "유연성 세금(flexibility tax)"을 치른다고 지적합니다. 그 대안으로 제안한 JustGRPO는 추론 시점의 병렬 디코딩은 그대로 유지하되, 강화학습 동안에만 과거는 관찰하고 미래는 마스킹하는 AR 순서 정책을 정의해 표준 GRPO를 그대로 적용합니다. 이 단순한 방법이 LLaDA-Instruct 기준 GSM8K 89.1\%, MATH-500 45.1\% 를 기록해, 뒤에서 소개할 확산 특화 강화학습 기법들에 필적하거나 앞섭니다(다만 HumanEval에서는 LLaDA 1.5나 LLaDOU가 더 높습니다).
아키텍처 수준의 추론 최적화
디코딩 전략이 "무엇을 언제 확정할까"의 문제라면, 이 절의 연구들은 "같은 계산을 어떻게 덜 반복할까"의 문제를 다룹니다. 앞서 설명했듯 dLLM은 양방향 어텐션 탓에 KV 캐시를 그대로 쓸 수 없고, 매 복원 단계마다 시퀀스 전체를 다시 계산하는 경향이 있습니다. 최적화 기법들은 바로 이 반복 계산을 겨냥합니다. 다만 아래 수치들은 서로 다른 하드웨어(RTX 4090, H100, A100, B200 등)와 서로 다른 지표(FLOPs, 처리량, 지연 시간)로 측정되었으므로 직접 비교보다는 각 기법의 성격을 이해하는 데 초점을 둡니다.
dLLM-Cache와 DyLLM: 특징 재사용으로 반복 계산 줄이기
dLLM-Cache는 ICML 2026에 채택된 연구로, 재학습 없는 적응적 캐싱 프레임워크를 제안합니다. 출발점은 두 가지 관찰입니다. 첫째, dLLM 추론은 정적인 프롬프트와 부분적으로만 변하는 응답으로 나뉩니다. 둘째, 대부분의 토큰은 인접한 복원 단계 사이에 거의 변하지 않습니다.
그림: 인접 복원 단계 사이 특징 표현의 유사도. 프롬프트 특징은 거의 변하지 않고, 응답도 일부 토큰만 크게 변한다. 출처: dLLM-Cache 논문.
그래서 dLLM-Cache는 프롬프트 특징을 긴 간격(예: 100 단계)마다만 갱신하고, 응답은 짧은 간격마다 전체 갱신하되 그 사이에는 가장 많이 변한 일부 토큰만 골라 갱신합니다. 어떤 토큰을 다시 계산할지는 값(Value) 벡터의 코사인 유사도로 고르는 V-verify로 결정합니다. K, V, 어텐션 출력, FFN 출력까지 캐싱하는데, 저자들은 LongBench-HotpotQA에서 FLOPs를 최대 약 9.1 배 줄였고, LLaDA의 GPQA에서는 정확도 저하 없이 약 8.08 배(22.07 T에서 2.73 T FLOPs) 가속했다고 보고합니다. 다만 이 9.1 배는 FLOPs 기준이라 실제 벽시계 속도 향상은 그보다 낮고(약 2.8 에서 5 배), Kp/Kr 같은 하이퍼파라미터를 과제마다 맞춰야 한다는 점은 감안해야 합니다.
같은 문제를 조금 다른 각도에서 공략하는 것이 Seoul National University 연구진의 DyLLM입니다. 역시 ICML 2026에 채택되었습니다. DyLLM은 토큰 표현의 시간적 희소성(temporal sparsity), 즉 매 단계 의미 있게 변하는 토큰은 소수라는 점에 주목합니다.
그림: DyLLM의 부분 어텐션. 현저한(salient) 토큰은 정확한 행 어텐션으로, 그렇지 않은 토큰은 열 희소 근사로 갱신한다. 현저 토큰은 계층마다 코사인 유사도로 선택된다. 출처: DyLLM 논문.
인접 단계 사이 어텐션 문맥의 코사인 유사도로 각 계층마다 "현저한(salient)" 토큰을 가려내는데, 초반 계층에서는 적게 후반의 민감한 계층에서는 더 많이 고르며, 이들만 FFN과 어텐션을 다시 계산하고 나머지는 캐시를 재사용합니다. 여기에 현저한 토큰은 정확한 어텐션을, 그렇지 않은 토큰은 근사 어텐션을 적용하는 부분 어텐션(partial attention)을 더합니다. 저자들은 이 방식으로 처리량을 LLaDA에서 최대 약 7.6 배, Dream에서 최대 약 9.6 배 높였고, dLLM-Cache보다 약 2.16 에서 3.67 배 빠르다고 보고합니다. Dream의 이득이 더 큰 이유는 Dream에서 FFN이 추론 시간의 70\% 이상을 차지하기 때문입니다. dLLM-Cache와 달리 임계값 \tau 가 과제가 아니라 모델에만 의존해, 한 번 보정하면 여러 과제에 그대로 쓸 수 있다는 점도 실용적입니다.
FlashBlock: 블록 외부 어텐션 캐싱
FlashBlock은 특히 긴 문맥의 블록 확산에 초점을 맞춥니다. 핵심 관찰은 "단계 간 중복(cross-step redundancy)"입니다. 현재 복원 중인 블록 바깥에 있는 토큰들의 어텐션 출력은 복원 단계가 바뀌어도 매우 안정적인 반면, 블록 내부의 어텐션만 크게 변한다는 것입니다.
그림: FlashBlock은 단계 s 에서 블록 외부 어텐션 출력과 정규화 항을 캐싱하고, 단계 s+1 에서는 블록 내부만 다시 계산해 로그 공간에서 재결합한다. 출처: FlashBlock 논문.
그래서 FlashBlock은 블록 외부 어텐션 출력과 정규화 항을 캐싱해 두고, 매 단계 블록 내부 어텐션만 다시 계산한 뒤 FlashAttention 방식의 로그 공간 합성(log-space composition)으로 둘을 결합합니다. 이 방식의 이점은 캐싱하는 텐서의 크기가 문맥 길이 N 이 아니라 블록 크기 B 에만 비례한다는 점입니다. 단계당 KV 접근 복잡도가 O(BN) 에서 블록 내부 O(B^2) 와 합성 O(B) 로 줄어, 문맥이 길어질수록 이득이 커집니다. 저자들은 블록 확산 모델 Trado 기준으로 토큰 처리량을 최대 약 1.44 배 높이고 어텐션 시간을 최대 약 1.6 배 줄이면서, 메모리 추가 부담은 0.11\% 이하로 유지했다고 보고합니다. 다만 이산 dLLM에서는 마스크 해제로 어텐션이 급변할 수 있어, 갱신된 토큰 수가 임계값 \tau 를 넘으면 캐시를 재사용하지 않고 다시 계산하는 선택적 재사용을 쓰고, 필요하면 재사용을 고려한 LoRA 증류로 분포 불일치를 보정합니다.
동적 전문가 공유(DES): MoE 확산 LLM의 전문가 폭발 억제
Dynamic Expert Sharing은 MoE 구조의 dLLM에서만 나타나는 독특한 병목을 다룹니다. 바로 "전문가 폭발(expert explosion)"입니다. 병렬 디코딩 블록 크기 N 이 커질수록 그 블록에서 활성화되는 고유 전문가의 수가 거의 선형으로 늘고, 그만큼 HBM에서 SRAM으로 전문가 가중치를 실어 나르는 트래픽이 폭증합니다. 결국 MoE와 병렬 디코딩의 이점이 메모리 바운드에 잡아먹힙니다.
그림: 바닐라 라우팅(고유 전문가 5개)과 전문가 스킵(4개) 대비, DES는 블록 전체가 공유하는 코어셋으로 고유 전문가를 3개로 줄인다. DES-Seq와 DES-Vote 두 방식을 제시한다. 출처: Dynamic Expert Sharing 논문.
DES는 이 문제를 토큰별 전문가 가지치기(pruning)가 아니라 시퀀스 수준의 코어셋 선택(coreset selection)으로 재정의합니다. 블록 전체가 공유할 소수의 전문가 집합을 먼저 고른 뒤, 각 토큰은 그 집합 안에서만 상위-k 라우팅을 하도록 제약합니다. 병렬 디코딩되는 토큰들이 의미적으로 결합되어 있어 필요한 전문가도 크게 겹친다는 점을 활용한 것입니다. 저자들은 각 토큰의 선택을 합집합으로 모으는 DES-Seq와, 라우터 점수로 가중 투표하는 DES-Vote를 제시합니다. 결과적으로 고유 전문가 활성화를 55\% 이상 줄이고 지연 시간을 최대 약 38\% 낮추면서도 원본 정확도의 99\% 를 유지했다고 보고합니다. 여기에 12 개 커널을 2 개로 합친 융합 GPU 커널을 더해 코어셋 선택 자체를 약 6 배 가속했습니다.
DFlash: 확산 드래프트로 speculative decoding 가속
DFlash는 지금까지와 정반대 구도를 취합니다. 확산을 최종 생성기로 쓰는 대신, AR 목표 모델(target model)을 가속하는 speculative decoding의 드래프트 모델로 씁니다. 역시 ICML 2026 채택 연구입니다. 기존 추측 디코딩의 드래프트 모델은 AR이라 초안 생성 자체가 순차적이었는데, DFlash는 가벼운 블록 확산 모델로 토큰 블록 전체를 순전파 한 번에 초안으로 뽑습니다. 초안 비용이 speculation 예산에 둔감해지므로, 드래프터를 약 5 개 계층으로 깊게 쌓아도 지연 시간 부담이 없습니다.
그림: DFlash의 추론 설계. 목표 모델이 만든 융합 문맥 특징을 드래프터의 모든 계층 KV 캐시에 주입해, 얕은 입력 융합보다 강하게 조건화한다. 출처: DFlash 논문.
핵심 기법은 이 작은 확산 드래프터를 목표 모델의 은닉 특징(hidden feature)에 조건화하는 것입니다. 목표 모델이 프리필(prefill)에서 만든 여러 계층의 은닉 상태를 모아 압축한 뒤, 드래프터의 모든 계층의 K와 V 사영에 주입하고 드래프트 KV 캐시에 저장합니다. EAGLE-3가 입력에만 특징을 섞는 것과 달리, 이렇게 하면 조건화가 희석되지 않아 드래프터를 깊게 쌓을수록 수용 길이가 늘어납니다. 저자들은 이 방식이 여러 모델과 과제에서 약 6 배의 무손실(lossless) 가속을 달성하고, EAGLE-3 대비 최대 약 2.5 배 빠르다고 보고합니다. Qwen3-8B에서는 최대 약 6.1 배까지 나옵니다. 목표 특징 없이 확산 드래프터만 쓰면 3 배 안팎에 그친다는 점에서, 조건화가 성능의 핵심임을 알 수 있습니다.
학습과 정렬: 다루기 힘든 가능도와 씨름하기
dLLM에 강화학습이나 선호 최적화를 적용하려 할 때 마주치는 공통의 벽이 있습니다. 바로 다루기 힘든 가능도(intractable likelihood)입니다. AR 모델은 연쇄 법칙(chain rule) 덕분에 시퀀스의 로그 가능도를 토큰별 확률의 곱으로 손쉽게 얻지만, dLLM은 비순차적이고 반복적인 복원 과정 탓에 이 값을 정확히 계산할 수 없습니다. 그래서 증거 하한(ELBO) 같은 근사로 대체해야 하는데, 이 근사가 분산(variance)과 편향(bias)을 끌어들이는 것이 이 절의 공통 주제입니다. 아래 세 연구는 하나의 흐름을 이룹니다. LLaDA 1.5는 선호 최적화에 변동성 이론을, d1은 최초의 정책 경사 강화학습을, GDPO는 그 편향을 겨냥한 개선을 제시합니다. 참고로 아래 세 연구는 서로 다른 샘플링 설정과 평가 구성을 쓰기 때문에, 같은 LLaDA-8B-Instruct라도 기준선 수치가 논문마다 다릅니다(예: GSM8K 기준선이 앞서 LLaDA 절에서 본 69.4 와 달리 여기서는 78 안팎으로 보고됩니다).
LLaDA 1.5와 VRPO: DPO를 확산에 맞게
LLaDA 1.5는 선호 최적화(preference optimization)의 대표 기법인 직접 선호 최적화(Direct Preference Optimization, DPO)를 확산 모델에 적용하는 문제를 다룹니다. DPO 손실은 정책 모델과 참조 모델의 로그 가능도 네 개(두 개의 비)를 필요로 하는데, dLLM에서는 이를 각각 ELBO로 대체하고 다시 이중 몬테카를로(double Monte Carlo)로 추정해야 합니다. 문제는 이 추정의 분산이, 비선형인 로그 시그모이드(log-sigmoid)를 거치며 손실과 그래디언트에 편향까지 유발한다는 점입니다.
그림: VRPO는 예산을 서로 다른 시간에 모두 배분하고(최적 배분), 정책 모델과 참조 모델이 같은 표본을 공유하도록(대조 샘플링) 해 추가 계산 없이 분산을 줄인다. 출처: LLaDA 1.5 논문.
저자들의 이론적 기여는, DPO-ELBO 손실의 편향과 분산이 모두 "선호 점수 추정기(preference score estimator)"의 분산으로 상한이 잡힌다는 것을 증명한 데 있습니다. 즉 이 추정기의 분산만 줄이면 편향과 분산이 동시에 줄어듭니다. 그 처방이 VRPO(Variance-Reduced Preference Optimization)로, 세 가지 기법으로 구성됩니다. (1) 샘플링 예산 n 을 늘리고, (2) 그 예산을 서로 다른 시간 t 에 전부 배분하며, (3) 정책 모델과 참조 모델이 같은 무작위 표본을 공유하는 대조 샘플링(antithetic sampling)을 씁니다. 특히 (2)와 (3)은 추가 계산 없이 표본을 재배치하거나 재사용하는 것이라 저자들의 표현대로 사실상 "공짜 점심(free lunch)"입니다. 어블레이션이 이를 뒷받침합니다. 예산 n 을 1 에서 8 로 늘리면 점수 추정기의 분산이 44.0 에서 1.0 으로 줄고 GSM8K가 오르며, 대조 샘플링을 끄면 분산이 2183.7 로 폭증합니다. 이렇게 얻은 LLaDA 1.5는 LLaDA-8B-Instruct 대비 GSM8K를 78.6 에서 83.3 으로(+4.7 ), HumanEval을 49.4 에서 52.4 로, IFEval을 62.2 에서 66.2 로, Arena-Hard를 10.0 에서 14.3 으로 끌어올렸으며, 이 모든 과정의 비용은 사전학습의 0.5\% 미만입니다.
d1과 diffu-GRPO: 확산 LLM 최초의 RL
d1은 마스킹 확산 LLM에 강화학습 기반 추론 능력을 더한 첫 프레임워크로, UCLA와 Meta 연구진이 발표했습니다. 두 단계 레시피로 구성됩니다. 먼저 추론 흔적(reasoning trace)에 대해 마스킹 SFT를 수행하고, 이어서 diffu-GRPO라는 강화학습을 적용합니다. diffu-GRPO는 마스킹 dLLM을 위한 최초의 정책 경사(policy gradient) 방법입니다.
핵심 난제는 GRPO가 완성문의 토큰별, 시퀀스별 로그 확률을 요구한다는 점입니다. 앞서 말했듯 dLLM은 이 값을 공짜로 얻지 못합니다. d1은 이를 위해 순전파 한 번으로 로그 확률을 추정하는 방법을 고안합니다. 시퀀스 로그 확률을 토큰별 확률의 곱으로 근사하는 평균장(mean-field) 근사에, 프롬프트 토큰을 확률적으로 마스킹하는 무작위 프롬프트 마스킹(random prompt masking)을 결합한 것입니다. 프롬프트에 마스크를 씌운 뒤 한 번의 복원 순전파로 각 토큰의 로그 확률을 읽어 내므로, LLaDA가 쓰던 128 회 몬테카를로 추정보다 훨씬 쌉니다. 이 무작위 마스킹은 매 그래디언트 단계마다 새로 뽑혀 정규화 겸 데이터 증강 역할을 하고, 덕분에 온라인 생성 횟수를 줄이면서 내부 갱신 횟수를 크게 늘릴 수 있습니다. LLaDA-8B-Instruct 기준으로 d1-LLaDA는 GSM8K를 78.2 에서 82.1 로, MATH500을 36.2 에서 40.2 로, Countdown을 20.7 에서 42.2 로, Sudoku를 11.7 에서 22.1 로 개선해, 계획 과제 성능을 사실상 두 배로 끌어올렸습니다(Countdown 수치는 각 모델의 최적 생성 길이 기준이며, 같은 512 길이로 맞추면 16.0 에서 42.2 로 향상됩니다).
GDPO: 시퀀스 수준 ELBO로 편향 줄이기
Group Diffusion Policy Optimization(GDPO)은 Georgia Institute of Technology와 Morgan Stanley 연구진의 연구로, d1의 diffu-GRPO에 정면으로 문제를 제기합니다. diffu-GRPO가 쓰는 평균장, 한 단계 토큰 가능도 추정이 "심하게 편향되어 있다"는 것입니다. 토큰이 순차적으로 생성된다고 가정해 중요한 토큰 상관관계를 버리기 때문입니다. GDPO는 대신 원리적이지만 계산 비용 때문에 회피되던 시퀀스 수준 ELBO로 돌아가되, 그 비용을 낮추는 방법을 제시합니다.
그림: GDPO가 GSM8K, MATH500, Countdown, Sudoku, HumanEval, MBPP에서 LLaDA 기준선과 diffu-GRPO(d1)를 앞서는 결과. 출처: GDPO 논문.
출발점은 ELBO 분산의 원천을 분해하는 것입니다. 분산은 무작위 시간 t 와 무작위 마스킹이라는 두 요인에서 오는데, 저자들은 경험적으로 무작위 시간이 분산을 지배하며 시간에 대한 손실 곡선이 매끄럽고 볼록(convex)함을 보입니다. 그래서 ELBO를 시간에 대한 적분으로 다시 쓰고, 시간 축은 결정론적 가우스 구적법(Gaussian quadrature)으로, 마스킹은 소수의 몬테카를로 표본으로 처리하는 SDMC(Semi-deterministic Monte Carlo)를 제안합니다. 구적점 N 을 2 나 3 만 써도 대부분의 이득을 얻으며, 이론적으로 이중 몬테카를로보다 분산이 빠르게 줄어듭니다. 이 추정기를 GRPO 스타일의 시퀀스 수준 목적 함수에 꽂아 넣은 것이 GDPO입니다. 결과적으로 GDPO는 같은 기반(LLaDA-8B-Instruct)에서 diffu-GRPO를 앞섭니다. GSM8K 84.99, 그리고 특히 Countdown에서 512 길이 기준 80.86 을 기록해 diffu-GRPO의 42.2 를 크게 앞섭니다. 저자들은 함수 평가 횟수를 늘리는 것만으로는 부족하며 추정기 설계가 성능을 좌우한다는 점, 그리고 이 학습을 H100 GPU 2 장만으로도 할 수 있다는 점을 강조합니다.
한계와 전망
지금까지의 지형을 종합하면, dLLM은 하나의 분명한 내기(bet) 위에 서 있습니다. 자기회귀의 순차 병목을 병렬 복원으로 바꾸고, 낮은 배치 크기에서 남는 연산 자원으로 지연 시간을 사는 거래입니다. 이 거래에는 아직 갚아야 할 대가가 남아 있습니다.
첫째, 품질입니다. DiffusionGemma가 같은 아키텍처의 AR 모델보다 대부분의 벤치마크에서 뒤진다는 사실은, dLLM이 아직 품질에서 AR을 앞서는 기술이 아니라 특정 조건에서 속도를 사는 기술임을 정직하게 보여 줍니다. 둘째, 양방향 어텐션이 앗아 간 KV 캐시를 되살리기 위해 dLLM-Cache, DyLLM, FlashBlock 같은 캐싱 기법이, MoE의 전문가 폭발을 막기 위해 DES가 필요했습니다. AR 생태계가 오랜 시간 다져 온 최적화 스택을 dLLM은 새로 쌓아 올리는 중입니다. 셋째, 다루기 힘든 가능도 탓에 정렬과 강화학습마저 VRPO, diffu-GRPO, GDPO처럼 확산에 맞춰 새로 설계해야 합니다.
그럼에도 이 지형에는 하나의 수렴점이 보입니다. 블록 확산과 자기추측입니다. 순수 확산과 순수 AR의 양 극단 대신, 블록 안은 병렬로 블록 사이는 순차로 처리하는 블록 확산이 사실상의 표준이 되었고, Nemotron Diffusion의 자기추측이나 DFlash의 확산 드래프트처럼 확산을 AR을 가속하는 부품으로 쓰는 접근이 실용적 성과를 내고 있습니다. 확산이 반드시 AR을 대체해야 하는 것은 아니며, 두 방식이 하나의 모델 안에서 상호 보완할 수 있다는 Nemotron 기술 보고서의 발견은 이 분야가 나아갈 방향을 시사합니다.
마지막으로 열린 질문 하나가 남습니다. 토큰을 어떤 순서로 열 것인가입니다. Train for the Worst는 적응적 순서가 어려운 부분 문제를 우회해 퍼즐을 극적으로 잘 풀게 한다고 보였지만, The Flexibility Trap은 그 유연성이 일반 추론에서는 오히려 독이 될 수 있다고 반박합니다. 순서의 자유를 언제 살리고 언제 접어야 하는지, 이 물음에 대한 답이 다음 세대 dLLM의 성패를 가를 핵심 변수가 될 것입니다.
LLaDA (Large Language Diffusion Models) 논문
Mercury: Ultra-Fast Language Models Based on Diffusion 논문
Dream 7B: Diffusion Large Language Models 논문
Dream-Coder 7B 논문
DiffusionGemma (Hugging Face)
DiffusionGemma vLLM 네이티브 지원 블로그
How Transparent is DiffusionGemma? 논문
Nemotron-Labs-Diffusion-8B (Hugging Face)
Beyond Confidence: Adaptive and Coherent Decoding 논문
Diffusion Language Models Know the Answer Before Decoding 논문
Train for the Worst, Plan for the Best 논문
The Flexibility Trap 논문
dLLM-Cache 논문
DyLLM 논문
FlashBlock 논문
Dynamic Expert Sharing 논문
DFlash: Block Diffusion for Flash Speculative Decoding 논문
LLaDA 1.5: Variance-Reduced Preference Optimization 논문
d1: Scaling Reasoning in Diffusion LLMs via RL 논문
Group Diffusion Policy Optimization (GDPO) 논문
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! 텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. ![]()
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()

















