본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 15. 05:44

Google, DiffusionGemma 출시: 병렬 블록 디코딩 (Parallel Block Decoding)

요약

Google이 병렬 블록 디코딩 기술을 적용한 오픈 웨이트 모델 DiffusionGemma를 출시했습니다. 반복적 노이즈 제거 방식을 통해 기존 자기회귀 방식의 순차적 한계를 극복하고 디코딩 속도를 혁신적으로 높였습니다.

핵심 포인트

  • 병렬 블록 디코딩을 통해 H100 기준 최대 4배 빠른 속도 구현
  • 초당 1000개 이상의 토큰 생성 가능
  • 양방향 어텐션을 활용하여 문맥에 따른 토큰 수정 가능
  • 이미지 확산 모델의 노이즈 제거 방식을 텍스트 생성에 적용

무엇인가 (What): Google은 DiffusionGemma를 출시했습니다. 이 오픈 웨이트 (open-weight) 모델의 핵심 기술은 **병렬 블록 디코딩 (parallel block decoding)**입니다. 이 모델은 한 번에 하나의 다음 토큰을 예측하는 대신, **반복적 노이즈 제거 (iterative denoising)**를 통해 전체 토큰 블록을 한꺼번에 정제하며 텍스트를 작성합니다.

이유 (Why): 디코딩 (Decoding)은 LLM을 실행할 때 느리고 순차적인 부분입니다. 일반적으로 N개의 토큰을 생성하려면 이전 토큰이 완료될 때까지 기다려야 하는 N번의 순방향 패스 (forward passes)가 필요합니다. 블록을 **병렬 (in parallel)**로 배치하는 방식 덕분에 DiffusionGemma는 H100에서 최대 4배 빠른 디코딩 속도와 **초당 1000개 이상의 토큰 (1000+ tokens/sec)**을 기록합니다.

이전 방식과의 차이 (vs prior): 인과적 마스크 (causal mask) 하에서 순방향 패스당 하나의 토큰을 왼쪽에서 오른쪽으로 생성하는 표준 자기회귀 (autoregressive) 디코딩과 비교했을 때, DiffusionGemma는 256개의 플레이스홀더 (placeholder) 토큰 캔버스에서 시작하여 **양방향 어텐션 (bidirectional attention)**을 통해 이들을 한꺼번에 정제합니다. 따라서 나중에 나오는 문맥을 사용하여 앞선 토큰을 수정할 수 있습니다.

비유하자면

프린터가 왼쪽에서 오른쪽으로 글자를 타이핑하는 것과 대비되는, 폴라로이드 사진이 한꺼번에 인화되는 과정과 같습니다.

                       문단 (THE PARAGRAPH)
                           │
             ┌─────────────┴─────────────┐
...
  • 프린터 (자기회귀 방식, autoregressive) = 왼쪽에서 오른쪽으로 토큰을 하나씩 타이핑하며, 각 토큰은 이전 토큰이 완료될 때까지 기다립니다.
  • 빈 폴라로이드 (blank Polaroid) = 256개의 플레이스홀더 토큰 블록으로, 모두 동시에 존재하지만 아직 읽을 수 없는 상태입니다.
  • 사진이 인화되는 과정 (the photo developing) = 반복적 노이즈 제거 (iterative denoising) — 몇 번의 패스를 거치며 전체 블록이 병렬로 선명해집니다.
  • 순서 제약 없음 (no corner-first rule) = 양방향 어텐션 (bidirectional attention)을 사용하여, 어떤 토큰이든 다른 토큰을 참조하여 스스로를 수정할 수 있습니다.

용어 사전 (Quick glossary)

자기회귀 디코딩 (Autoregressive decoding) — LLM이 글을 쓰는 표준 방식입니다: 다음 (next) 토큰을 예측하고, 이를 추가한 뒤, 더 길어진 시퀀스를 다시 입력으로 넣는 과정을 반복합니다. 각 토큰은 고유의 순방향 패스 (forward pass)가 필요하며, 이는 엄격하게 순서대로 발생합니다. 이러한 순차적 체인이 디코딩을 느리게 만드는 원인입니다.

Diffusion language model (확산 언어 모델) — 이미지 생성기(image generators)의 방식을 빌려온 텍스트 모델입니다. 노이즈 (noise) (무작위 플레이스홀더 토큰)에서 시작하여 깨끗한 출력물로 향하도록 반복적으로 디노이징 (denoise) 합니다. 이미지 확산(image diffusion)과 달리 이 모델은 이산적 토큰 (discrete tokens) 상에서 작동하며, 왼쪽에서 오른쪽으로 진행하는 대신 블록(block) 단위로 정제합니다.

Iterative denoising (반복적 디노이징) — 정제 루프입니다. 각 패스(pass)는 신뢰도가 높은 토큰을 고정 (locks in) 하고 나머지를 재평가합니다. 따라서 빈 블록은 한 번에 하나의 토큰씩 생성되는 대신, 몇 번의 패스를 거쳐 읽을 수 있는 텍스트로 선명해집니다.

Bidirectional (non-causal) attention (양방향 (비인과적) 어텐션)왼쪽에서 오른쪽으로 가는 규칙이 없는 (no left-to-right rule) 어텐션입니다. 모든 위치가 미래를 포함한 다른 모든 위치를 참조할 수 있습니다. 이는 모델이 나중에 나타나는 문맥을 사용하여 초기 토큰을 수정할 수 있게 해주며, 이는 자기회귀 디코더 (autoregressive decoders)가 의존하는 인과적 마스크 (causal mask)와 반대되는 개념입니다.

Forward pass (순방향 패스) — 입력을 네트워크를 통해 한 번 실행하는 것입니다. 자기회귀 디코딩 (Autoregressive decode)은 토큰당 한 번의 순방향 패스를 수행하지만, DiffusionGemma는 각 패스에서 256개의 토큰을 방출한 다음, 몇 번의 패스를 더 사용하여 이를 정제합니다.

Mixture-of-Experts (MoE, 전문가 혼합) — 모델을 여러 개의 전문가 서브 네트워크 (expert sub-networks)로 나누어, 각 토큰이 오직 몇 개의 전문가만 활성화하도록 하는 방식입니다. DiffusionGemma는 총 26B / 활성(active) 약 3.8B 규모로, 큰 모델의 지식을 갖추면서도 토큰당 연산량은 작은 모델 수준을 유지합니다.

뉴스. 2026년 6월 10일, Google은 왼쪽에서 오른쪽으로 샘플링하는 대신 _반복적 디노이징 (iterative denoising)_을 통해 텍스트를 생성하는 Apache-2.0 모델인 DiffusionGemma를 출시했습니다. 이 모델은 플레이스홀더 토큰으로 블록을 시딩(seed)하고, 양방향 어텐션 (bidirectional attention)을 사용하여 순방향 패스당 256개의 토큰을 병렬로 정제합니다. 이를 통해 H100에서 1000+ tokens/sec, RTX 5090에서 700+ tokens/sec의 속도를 달성하며, 양자화(quantized) 시 18 GB의 VRAM에 탑재할 수 있습니다. 이 모델은 약 3.8B의 활성 파라미터를 가진 26B 파라미터 규모의 전문가 혼합 (mixture-of-experts) 모델입니다. 공지사항 읽기 →

같은 단락을 인쇄하는 두 대의 기계를 상상해 보세요. 첫 번째는 도트 매트릭스 프린터입니다. 왼쪽에서 오른쪽으로 한 글자를 타이핑하고, 마지막 글자가 찍히기 전까지는 다음 글자를 시작할 수 없습니다. 이것이 바로 **자기회귀 디코딩 (Autoregressive Decoding)**이며, 여러분이 사용해 온 거의 모든 LLM이 한 번에 하나의 토큰씩 작성하는 방식입니다. 두 번째는 폴라로이드 카메라입니다. 사진 전체가 한꺼번에 나오는데, 처음에는 하얗고 흐릿하다가 몇 초에 걸쳐 모든 부분이 동시에 선명해집니다. DiffusionGemma는 바로 이 폴라로이드와 같습니다. 먼저 전체 블록에 플레이스홀더 토큰 (placeholder tokens)을 깔아둔 다음, 이를 병렬로 현상(develop)합니다. 따라서 단락이 한꺼번에 나타나며 각 패스(pass)를 거칠 때마다 점점 더 명확해집니다.

이 비유의 이면에는 반복적 노이즈 제거 (Iterative Denoising) 과정이 있습니다. 모델은 256개의 노이즈 섞인 플레이스홀더 슬롯으로 블록을 채운 뒤, 여러 번의 정제 패스(refinement passes)를 수행합니다. 각 패스는 현재 확신이 있는 토큰을 고정하고 나머지를 다시 평가합니다. 이를 가능하게 하는 핵심 기술은 **양방향 어텐션 (Bidirectional Attention)**입니다. 즉, 일반적인 디코더가 오직 과거만을 바라보도록 강제하는 인과적 마스크 (Causal Mask)를 제거하는 것입니다. 모든 슬롯이 미래를 포함한 다른 모든 슬롯을 참조(attend)할 수 있기 때문에, 모델은 나중에 결정된 단어들을 사용하여 초기에 생성된 토큰을 스스로 수정할 수 있습니다. 왼쪽에서 오른쪽으로 진행하는 디코더는 결코 이를 수행할 수 없습니다. 토큰 5를 확정하면 토큰 6 이후의 것들은 토큰 5에 의존할 수 있지만, 토큰 5는 토큰 6 이후의 것들에 의존할 수 없기 때문입니다.

속성자기회귀 (Autoregressive, 표준 Gemma)병렬 블록 디코딩 (Parallel block decoding, DiffusionGemma)
토큰 생성 방식단일 다음 토큰을 예측하고, 추가하고, 반복함플레이스홀더 (placeholders) 블록을 시드(seed)하고, 한꺼번에 모든 것을 디노이징 (denoise)함
...

왜 블록 단위 생성이 더 유리할까요? 512개 토큰의 답변을 생성할 때의 수치를 계산해 보겠습니다 (예시적 수치). 자기회귀 (Autoregressive) 방식의 프린터는 512번의 순방향 패스 (forward passes)가 필요합니다. 토큰당 한 번씩 수행되며, 각 단계는 이전 토큰이 나올 때까지 대기하며 멈춰 있어야 합니다. 이것이 바로 디코딩 (decode) 단계가 LLM 추론 (inference)에서 지연 시간(latency)에 제한을 받고 메모리가 부족해지는(memory-starved) 단계인 정확한 이유입니다. 반면 DiffusionGemma는 이 512개의 토큰을 256개씩 두 개의 블록으로 배치하고, 몇 번의 디노이징 (denoising) 패스 — 예를 들어 총 ~16회의 패스 — 를 통해 각 블록을 정교화합니다 (예시적 수치이며, Google은 패스 횟수가 아닌 속도 향상을 보고함). 이는 수백 개의 엄격하게 순차적인 단계를 몇 개의 병렬 단계로 압축하며, 병렬 처리에 친화적인 패스는 GPU를 계속 바쁘게 유지합니다. 이것이 바로 최대 4배 빠른 디코딩과 H100에서 **초당 1000개 이상의 토큰 (1000+ tokens/sec)**을 생성할 수 있는 비결입니다.

문제는 각 디노이징 (denoising) 패스가 단일 자기회귀 (autoregressive) 단계보다 더 무겁다는 점입니다. 양방향 어텐션 (Bidirectional attention)은 매 패스마다 블록 전체를 다시 읽기 때문에, 인과적 디코더 (causal decoder)가 하는 것처럼 역방향 전용 KV 캐시 (KV cache)를 재사용할 수 없습니다. 또한, 헤드라인에 언급된 4배의 속도 향상은 해당 병렬 작업이 채울 수 있는 경로(lanes)가 있는 전용 GPU에서 측정된 결과입니다. DiffusionGemma는 전문가 혼합 (Mixture-of-Experts, MoE) 설계를 통해 이 비용을 상쇄합니다. 총 파라미터는 26B이지만 토큰당 활성 파라미터는 약 3.8B에 불과하며, 양자화 (quantized) 시 18 GB의 VRAM으로 구동되므로 소스 벤치마크에 언급된 RTX 5090과 같은 하이엔드 소비자용 GPU에도 여전히 적합합니다. 그 보상은 LLM의 새로운 형태입니다. 단순히 더 빠른 프린터가 아니라, 문단 전체를 한 번에 초안을 잡고 이를 다듬는 모델, 즉 왼쪽에서 오른쪽으로 진행되는 디코딩 (left-to-right decoding)에 대한 실시간 오픈 웨이트 (open-weight) 대안입니다.

더 자세한 내용: LLM 내부 구조 (LLM Internals) → 텍스트 생성 (Text Generation) → 한 번에 하나의 토큰씩 (One Token at a Time)

관련 설명 자료

FAQ

병렬 블록 디코딩 (Parallel Block Decoding)이란 무엇인가요?

한 번에 하나의 토큰씩 생성하는 대신, 전체 블록을 한 번에 생성하는 방식입니다. DiffusionGemma는 256개의 플레이스홀더 (placeholder) 토큰으로 블록의 씨앗을 뿌린 다음, 확신이 있는 토큰을 고정하고 나머지를 재평가하는 여러 번의 "디노이징 (denoising)" 패스를 수행하여 전체 블록이 병렬로 선명해지도록 합니다. 양방향 어텐션 (bidirectional attention)을 사용하기 때문에, 모델은 나중에 나타나는 문맥을 사용하여 초기 토큰을 수정할 수 있습니다. 이는 자기회귀 (autoregressive) 방식의 좌측에서 우측으로 진행하는 디코더는 할 수 없는 일입니다.

왜 자기회귀 생성 (autoregressive generation)보다 빠른가요?

자기회귀 디코딩은 순전파 (forward pass) 한 번당 하나의 토큰을 생성하며, 각 패스가 엄격하게 순서대로 발생하므로 512개 토큰의 답변을 얻으려면 512번의 순차적인 단계가 필요합니다. 반면 DiffusionGemma는 패스당 256개의 토큰을 방출하며 몇 번의 패스만으로 블록을 완료하므로, 수백 개의 직렬 단계를 몇 개의 병렬 단계로 압축합니다. Google은 H100에서 최대 4배 빠른 디코딩과 초당 1000개 이상의 토큰 생성을 보고했습니다. 트레이드오프 (trade-off)는 각 디노이징 패스가 더 무겁고 역방향 전용 KV 캐시 (KV cache)를 재사용할 수 없다는 점이며, 따라서 전용 GPU에서 가장 큰 이득을 얻을 수 있습니다.

이것이 확산 이미지 모델 (diffusion image models) 및 일반적인 텍스트 생성과 어떤 관련이 있나요?

이는 이미지 확산 (image diffusion)의 핵심 아이디어인 '노이즈에서 시작하여 깨끗한 결과물을 향해 반복적으로 노이즈를 제거 (denoise)한다'는 개념을 빌려왔지만, 이를 이산 토큰 (discrete tokens)에 적용하고 2D 이미지 대신 블록 (block)을 정제 (refine)합니다. 일반적인 자기회귀 (autoregressive) 텍스트 생성과 비교하면, "인과적 마스크 (causal mask) 하에서 다음 토큰을 예측"하는 대신 "양방향 어텐션 (bidirectional attention) 하에서 전체 블록을 정제"하는 방식으로 전환합니다. 출력물은 여전히 텍스트이며, 오직 디코딩 (decoding) 절차만 변경됩니다.

원문은 Learn AI Visually에 게시되었습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0