구글의 DiffusionGemma는 한 번에 256개 토큰 블록을 동시에 다듬어서 기존 AR 모델보다 훨씬 빠르게 텍스트를 생성하는 실험적 개방형 언어모델이다
구글의 DiffusionGemma는 한 번에 256개 토큰 블록을 동시에 다듬어서 기존 AR 모델보다 훨씬 빠르게 텍스트를 생성하는 실험적 개방형 언어모델이다
DiffusionGemma는 한 토큰씩 순서대로 생성하는 기존 방식(자기회귀, AR) 대신, 256개 토큰 묶음을 동시에 반복적으로 다듬는 이산 확산(discrete diffusion) 방식으로 텍스트를 만든다. 처음부터 학습시키지 않고, 활성 파라미터 38억 개, 전체 파라미터 252억 개인 혼합전문가(MoE) 구조의 Gemma 4 모델을 미세조정해서 만들었으며, 원래 AR 모델 학습 토큰 예산의 10% 미만만 사용했다. 평가 전반에서 평균적으로 한 번의 순전파마다 약 20개 토큰을 만들어내고, 단일 H100 GPU에서 초당 약 1,500개 토큰을 생성해 최신 추측 디코딩을 쓰는 AR 모델보다도 훨씬 빠른 속도를 보였다.
METAL MEDIA 해설 도표
DiffusionGemma가 텍스트를 만드는 두 단계 흐름
증거 상태측정 결과가 보고됨
- 시작점: Gemma 4 AR 모델활성 38억, 전체 252억 파라미터의 혼합전문가(MoE) AR 모델 가중치에서 출발, 처음부터 새로 학습하지 않음
- 1단계 SFT256토큰 캔버스에 대해 양방향 주의로 노이즈를 제거하도록 지도 미세조정, AR 모델 학습 토큰 예산의 10% 미만 사용
- 2단계 SD·RL샘플러 증류와 강화학습을 결합해 보상 기반 품질 향상과 디노이징 스텝 수 압축을 동시에 학습
- 추론: 블록 단위 확산 생성무작위 노이즈 캔버스에서 시작해 엔트로피 기반 샘플러와 적응형 정지로 평균 약 12스텝만에 256토큰 블록을 완성, 완성된 블록은 KV 캐시에 이어붙임
- 결과: 속도-품질 파레토 프론티어H100 한 대에서 초당 약 1,500토큰, 순전파당 약 20토큰으로 최신 추측 디코딩 AR 모델보다 빠른 지점을 새로 개척
무엇을 했나
- 기존 AR 언어모델은 한 번에 토큰 하나씩만 만들어서, 특히 요청이 적을 때는 GPU 연산 능력을 다 못 쓰고 메모리 전송 속도에 발목 잡힌다(메모리 병목).
- DiffusionGemma는 이 문제를 이산 확산(discrete diffusion)으로 우회한다. 무작위 노이즈 상태의 256토큰 캔버스에서 시작해, 양방향 주의(attention)로 캔버스 전체를 동시에 조금씩 정제하며 텍스트를 만든다.
- 학습은 두 단계다. 1단계 지도 미세조정(SFT)에서 양방향 디노이징을 가르치고, 2단계 샘플러 증류(sampler distillation)와 강화학습(RL)을 합친 SD·RL 단계에서 생성 품질을 높이면서 필요한 디노이징 스텝 수를 줄인다.
- 엔트로피 기반 샘플러와 적응형 정지(adaptive stopping) 기법으로, 확신도가 높으면 최대 스텝 수를 다 채우지 않고 일찍 멈춰서 지연시간을 최대 4배 줄이면서도 품질 저하가 거의 없다.
- Gemma 4와 같은 트랜스포머 구조를 그대로 쓰기 때문에 미세조정 후에도 원래처럼 한 토큰씩 순차 생성(AR)하는 것도 가능해서, 상황에 따라 확산 방식과 AR 방식을 섞어 쓸 여지가 있다.

| Total | 25.2B |
|---|---|
| Activated | 3.85B |
| Vision Encoder | 550M |
| Embedder | 740M |
| Self-Conditioning | 7.8M |
| Active / Total Experts | 8 / 128 |
| + 1 shared |

| Open-weight Models | Closed-weight Model | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| DiffusionGemma | Gemma 4 | LLaDA 2.1 Flash | Nemotron Diffusion | Mercury 2 | ||||||
| 26B A4B | 26B A4B | 100B | 14B | Unknown | ||||||
| Mode | TD | TD (No-think) | AR | AR (No-think) | AR (MTP) | AR (MTP, No-think) | TD (S Mode) | TD (Diffusion Mode) | High | Medium |
| AIME 2026 | 69.1 | 50.8 | 84.2 | 57.5 | 88.3 | 80.0 | 80.0 | 40.0 | 91.7 | 82.5 |
| GPQA Diamond | 73.2 | 64.6 | 79.8 | 67.2 | 82.3 | 73.7 | 68.7 | 47.0 | 75.2 | 66.7 |
| LiveCodeBench-V6 | 69.1 | 60.6 | 71.4 | 58.3 | 77.1 | 72.6 | 39.4 | 28.6 | 79.4 | 74.9 |
| Codeforces ELO | 1429 | 959 | 1569 | 1059 | 1718 | 1529 | 718 | - | 1986 | 1629 |
| BigBench EH | 47.6 | 40.0 | 59.1 | 42.2 | 64.8 | 56.2 | - | - | 48.9 | 43.8 |
| GSM8K | 96.3 | 95.8 | 96.6 | 96.1 | 96.7 | 96.4 | 45.0 | - | 96.5 | 95.8 |
| MGSM | 84.8 | 80.7 | 87.9 | 84.3 | 92.9 | 91.5 | 6.8 | 69.3 | 91.9 | 91.2 |
| MMMLU | 81.5 | 76.3 | 82.2 | 78.0 | 86.3 | 78.0 | - | - | 81.9 | 80.6 |
| MMMU Pro | 54.3 | 66.0 | 63.3 | 66.7 | 73.8 | 72.5 | - | - | - | - |
| Putnam | 67.4 | 57.1 | 74.7 | 59.7 | 81.0 | 72.9 | - | 45.8 | 73.6 | 73.6 |
| HumanEval | 94.5 | 92.7 | 98.2 | 97.6 | 98.8 | 97.6 | 90.2 | 86.0 | 98.2 | 98.2 |
| BigCodeBench | 46.0 | 41.9 | 47.7 | 45.9 | 50.2 | 48.1 | - | 33.5 | 47.6 | 45.3 |
| LBPP | 81.0 | 68.9 | 86.3 | 74.1 | 89.5 | 77.3 | 45.7 | 40.7 | 89.2 | 85.0 |
| IFEval | 97.4 | 94.5 | 97.2 | 95.7 | 98.7 | 97.8 | - | 72.1 | 97.0 | 94.5 |
| Tau2 Retail | 71.5 | 57.5 | 75.4 | 61.0 | 85.5 | 79.0 | - | - | - | - |
| Tau2 Airline | 69.0 | 49.0 | 72.0 | 50.0 | 76.0 | 51.0 | - | - | - | - |
| Tau2 Telecom | 28.1 | 32.0 | 33.8 | 32.0 | 43.0 | 34.2 | - | - | - | - |
| MMLU-Pro | 77.6 | 77.9 | 78.8 | 79.1 | 82.6 | 82.6 | - | - | 77.6 | 75.5 |
| Natural2Code | 94.0 | 90.1 | 96.2 | 92.3 | 96.3 | 94.7 | 86.9 | 73.3 | 79.1 | 71.3 |
| HiddenMath | 80.6 | 74.3 | 85.4 | 77.5 | 87.2 | 81.6 | - | 44.3 | 82.7 | 82.3 |
| Output Speed (TPS) | 1479 | 1512 | 204 | 204 | 303 | 303 | 375 | 49 | 600 | 547 |
| Tokens Per Forward (TPF) | 19.74 | 18.76 | 1.00 | 1.00 | 1.40 | 1.40 | 4.63 | 1.79 | - | - |
| Average Total Tokens | 4,001 | 829 | 5,184 | 1,025 | 7,207 | 1,816 | 4,371 | 941 | 3,882 | 1,222 |


| Score (↑) | TPF (↑) | TPS (↑) | Effective DNS (↓) | Total Forwards (↓) | Total Tokens | E2E Time (s) (↓) | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Benchmark | Think | No-Think | Think | No-Think | Think | No-Think | Think | No-Think | Think | No-Think | Think | No-Think | Think | No-Think |
| AIME 2026 | 69.1 | 50.8 | 19.3 | 16.7 | 1365.4 | 1333.0 | 12.6 | 14.1 | 390.6 | 91.1 | 6,445 | 1,309 | 4.72 | 0.98 |
| GPQA Diamond | 73.2 | 64.6 | 16.7 | 16.5 | 1207.8 | 1330.2 | 15.1 | 13.4 | 443.4 | 48.1 | 5,647 | 726 | 4.68 | 0.55 |
| LiveCodeBench-V6 | 69.1 | 60.6 | 18.5 | 16.9 | 1278.3 | 1333.4 | 13.8 | 14.0 | 581.8 | 195.7 | 7,534 | 1,847 | 5.89 | 1.39 |
| Codeforces ELO | 1429 | 959 | 15.1 | 14.0 | 950.5 | 1040.3 | 17.1 | 18.5 | 959.6 | 521.1 | 11,622 | 4,279 | 12.23 | 4.11 |
| BigBench EH | 47.6 | 40.0 | 20.8 | 17.7 | 1390.2 | 1415.1 | 11.9 | 12.8 | 434.9 | 68.1 | 9,062 | 1,233 | 6.52 | 0.87 |
| GSM8K | 96.3 | 95.8 | 23.2 | 24.1 | 1866.2 | 1966.4 | 9.1 | 7.5 | 43.4 | 13.2 | 883 | 298 | 0.47 | 0.15 |
| MGSM | 84.8 | 80.7 | 19.0 | 16.8 | 1526.7 | 1367.5 | 11.5 | 11.9 | 63.6 | 19.5 | 1,085 | 291 | 0.71 | 0.21 |
| MMMU Pro | 54.3 | 66.0 | 17.7 | 15.4 | 1351.3 | 1255.1 | 13.8 | 15.3 | 191.6 | 31.6 | 3,178 | 472 | 2.35 | 0.38 |
| Putnam | 67.4 | 57.1 | 18.1 | 16.0 | 1330.8 | 1282.4 | 13.4 | 14.4 | 303.8 | 77.4 | 4,725 | 1,103 | 3.55 | 0.86 |
| HumanEval | 94.5 | 92.7 | 23.0 | 24.3 | 1838.2 | 1981.2 | 9.4 | 8.0 | 55.6 | 14.3 | 1,174 | 305 | 0.64 | 0.15 |
| BigCodeBench | 46.0 | 41.9 | 19.6 | 19.4 | 1560.1 | 1579.0 | 11.3 | 10.1 | 77.3 | 21.8 | 1,410 | 394 | 0.90 | 0.25 |
| LBPP | 81.0 | 68.9 | 20.5 | 19.2 | 1509.8 | 1545.4 | 11.6 | 10.9 | 264.3 | 79.4 | 4,730 | 859 | 3.13 | 0.56 |
| IFEval | 97.4 | 94.5 | 17.2 | 9.0 | 1368.3 | 732.1 | 13.0 | 14.4 | 100.8 | 24.0 | 1,464 | 239 | 1.07 | 0.33 |
| Natural2Code | 94.0 | 90.1 | 21.1 | 21.0 | 1682.7 | 1706.5 | 10.5 | 9.6 | 70.5 | 24.7 | 1,391 | 465 | 0.83 | 0.27 |
| HiddenMath | 80.6 | 74.3 | 21.0 | 19.4 | 1591.2 | 1564.7 | 11.3 | 11.5 | 206.4 | 49.7 | 3,501 | 844 | 2.20 | 0.54 |


| Model | Effective Denoising Steps | Accuracy (%) | BLEU |
|---|---|---|---|
| DiffusionGemma | 18.09 | 75.6 | 10.76 |
| + LoRA finetuning | 31.57 | 76.62 | 20.67 |


| Hyperparameter | Sudoku (LoRA) | Sudoku (Full) | PubMedQA |
|---|---|---|---|
| LoRA rank | 8 | — | 4 |
| Canvas size | 256 | 256 | 128 |
| Number of canvases | 1 | 1 | 2 |
| Prompt length | 256 | 256 | 1024 |
| Batch size | 2 | 8 | 2 |
| Peak learning rate | 3×10−4 | 1.125×10−4 | 1.0×10−4 |
| End learning rate | 3×10−5 | 1.125×10−5 | 1.0×10−5 |
| Training steps | 8,000 | 2,000 | 2,000 |
| Optimizer | Adam | Adafactor | Adam |
| LR schedule | Cosine with warmup | Cosine with warmup | Cosine with warmup |
| Warmup iterations | 400 | 100 | 100 |
| Weight decay | 10−4 | 10−4 | 10−4 |
| Min. hardware | 2× A100 80GB | 8× A100 80GB | 2× A100 80GB |


실제로 확인된 결과
- 평가 전반 평균으로 순전파 1회당 약 20개 토큰을 생성하며, 단일 NVIDIA H100 GPU에서 초당 약 1,500개 토큰(TPS)을 낸다.
- 이는 최신 추측 디코딩(speculative decoding)을 적용한 AR 모델(순전파당 약 3~6토큰)보다 훨씬 빠른 수준이다.
- 적응형 정지를 적용하면 최대 48스텝 예산 중 평균 약 12스텝만 써서, 품질 저하 없이 지연시간을 약 4배 줄인다.
- 256토큰을 한 스텝에 처리하면서도, 단일 토큰 AR 생성 대비 스텝당 지연시간 증가는 3.2배에 그친다(H100, FP8, 배치 크기 1 기준).
- AR 모드로 되돌려 생성해도 성능 저하가 크지 않아, 같은 가중치로 AR 생성도 가능하다.
어디에 쓸 수 있나
- 응답 속도가 중요한 저지연 챗봇이나 코드 어시스턴트 서빙
- 적은 동시 요청(낮은 배치 크기) 환경에서 GPU 활용도를 높이는 추론 서버 구성
- 라이선스가 개방(Apache 2.0)되어 있어 특정 도메인(예: 의료 QA, 음성 인식)에 맞춘 경량 미세조정
- 지연시간 제약과 작업 난이도에 따라 확산 생성과 AR 생성을 동적으로 나눠 쓰는 하이브리드 서빙
한계와 남은 검증
- 동시 요청(배치 크기)이 약 32건 이상으로 늘어나면 AR 모델이 처리량 면에서 다시 유리해진다.
- 확산 방식으로 미세조정하면서 원래 AR 기준 대비 약간의 성능 저하가 발생한다.
- Mercury 2 등 폐쇄형 API 모델의 속도는 직접 측정이 아니라 OpenRouter API 응답을 통한 추정치이며 오차 요인이 있다.
- 논문 본문 중간 상세 실험 섹션 및 부록 일부(F, G.3 등)는 이번 자료에서 생략되어 세부 수치를 모두 확인하지 못했다.
- 이산 확산 특성상 각 위치 갱신이 다른 위치의 동시 결정을 보지 못해 국소적인 문법 불일치가 생길 수 있다.
왜 중요한가
챗봇이나 코딩 도우미처럼 응답 속도가 중요한 서비스에서 GPU 한 대로도 훨씬 빠른 텍스트 생성이 가능해질 수 있다는 뜻이다. 또한 가중치를 공개했기 때문에 연구자와 개발자가 직접 이산 확산 모델의 작동 방식을 들여다보고 자신의 용도에 맞게 손쉽게 재조정할 수 있다.
이 논문의 용어
- 이산 확산(discrete diffusion) · 연속적인 이미지 확산과 달리, 어휘 안의 실제 토큰 상태들 사이에서 노이즈를 섞고 되돌리는 방식의 생성 모델
- 자기회귀(AR) 모델 · 왼쪽에서 오른쪽으로 토큰을 하나씩 순서대로 생성하는 기존 언어모델 방식
- 혼합전문가(MoE) · 여러 개의 전문 서브네트워크 중 일부만 골라 활성화해 계산량을 줄이는 모델 구조
- 적응형 정지(adaptive stopping) · 모델의 예측 확신도가 충분히 높아지면 최대 스텝 수를 다 채우지 않고 디노이징을 일찍 끝내는 기법
- 샘플러 증류(sampler distillation) · 고품질이지만 느린 생성 절차의 결과를, 더 적은 스텝으로도 비슷하게 낼 수 있도록 모델에 가르치는 학습 기법
최신 논문
- AI 코딩 에이전트에게 과학 소프트웨어 수리를 시켜보니, 절반도 제대로 못 고쳤다AI 코딩 에이전트에게 과학 소프트웨어 수리를 시켜보니, 절반도 제대로 못 고쳤다
- 논문 속 시연이 아니라 실제 서비스에 넣을 수 있는 희소 어텐션 만들기논문 속 시연이 아니라 실제 서비스에 넣을 수 있는 희소 어텐션 만들기
- 고객상담 AI 상담원이 규정을 '한 번의 행동'이 아니라 '전체 절차'로 지키게 만드는 방법고객상담 AI 상담원이 규정을 '한 번의 행동'이 아니라 '전체 절차'로 지키게 만드는 방법
- 로봇 팔에게 사람의 시연 없이 새 일 시키기, 말 잘하는 AI가 대신 가르친다로봇 팔에게 사람의 시연 없이 새 일 시키기, 말 잘하는 AI가 대신 가르친다
- 에이전트 학습용 환경을 새로 만드는 대신, 기존 환경에 '패치 부품'을 씌워 그 에이전트의 약점에 맞게 바꾸는 방법에이전트 학습용 환경을 새로 만드는 대신, 기존 환경에 '패치 부품'을 씌워 그 에이전트의 약점에 맞게 바꾸는 방법
- AI 모델을 '소유'하지 못한 조직은 안전 통제도 절반밖에 못 한다AI 모델을 '소유'하지 못한 조직은 안전 통제도 절반밖에 못 한다
- AI가 선생님 모델을 따라 배우다가, 정답에 다가가는 '좋은 생각'까지 억누르는 문제를 잡아낸다AI가 선생님 모델을 따라 배우다가, 정답에 다가가는 '좋은 생각'까지 억누르는 문제를 잡아낸다
- AI가 특정 사람 말투를 흉내내도록 시켜봤더니, 결국 AI 자신의 말투에서 못 벗어난다AI가 특정 사람 말투를 흉내내도록 시켜봤더니, 결국 AI 자신의 말투에서 못 벗어난다
METAL MEDIA 최신 기사
그림 출처: DiffusionGemma Team et al., arXiv:2608.00146, CC BY 4.0