Google I/O에서 발표된 제미니 디퓨전은 기존 트랜스포머 모델 대신 디퓨전 방식을 적용한 구글의 첫 LLM입니다. 이 방식의 특징과 작동 원리, 속도와 성능에 대한 초기 소감, 그리고 전문가들의 보충 설명까지 함께 다룹니다.
어제 Google I/O에서 발표된 내용 중 하나는 바로 제미니 디퓨전입니다. 이는 이미지 모델인 Imagen, Stable Diffusion 등과 유사하게, 트랜스포머(Transformers) 대신 디퓨전 방식을 도입한 구글의 첫 LLM(대형 언어 모델)입니다.
구글은 이를 다음과 같이 설명합니다:
기존의 자기회귀(autoregressive) 언어 모델은 텍스트를 한 번에 한 단어(혹은 토큰)씩 생성합니다. 이런 순차적 프로세스는 느리고, 결과물의 품질이나 일관성을 제한할 수 있습니다.
디퓨전 모델은 작동 방식이 다릅니다. 텍스트를 직접 예측하는 대신, 점진적으로 노이즈를 정제해 출력을 생성하는 법을 학습합니다. 이렇게 하면 매우 빠르게 반복적으로 솔루션을 탐색할 수 있고, 생성 과정에서 오류를 수정할 수도 있습니다. 특히 수학이나 코드 등 편집이 필요한 과제에서 뛰어난 성능을 보여줍니다.
따라서 주요 특징은 바로 속도 입니다. 저는 대기명단에서 통과하여 방금 체험해봤는데, 정말로 엄청나게 빠르더군요.
아래 영상에서는 “시뮬레이션 채팅 앱을 만들어줘”라고 프롬프트를 입력하자, 초당 857 토큰 속도로 응답을 했고, 채팅 도구 내에(Claude Artifacts 스타일로) HTML+JavaScript로 된 인터랙티브 페이지를 한 자릿수 초 만에 생성해냈습니다.
체감 성능은 Cerebras Coder 도구와 비슷했습니다. 해당 도구는 Cerebras를 사용해 Llama3.1-70b를 약 2,000 토큰/초로 실행했습니다.
모델의 품질은 어떨까요? 독립적인 벤치마크는 아직 못 봤지만, 구글의 관련 랜딩 페이지에는 “Gemini 2.0 Flash-Lite와 비슷한 성능을 5배 빠른 속도로 제공”한다고 명시되어 있습니다. 아마도 구글의 저렴한 모델 중 하나인 Gemini 2.0 Flash-Lite와 비슷한 급으로 내놓은 듯합니다.
그 전까지 제가 접해본 유일한 상업용 디퓨전 LLM은 올해 2월의 Inception Mercury였습니다.
업데이트: Hacker News의 synapsomorphy가 다음과 같이 정정했습니다:
디퓨전은 트랜스포머를 대체하는 게 아니라 자기회귀를 대체하는 것입니다. Mercury와 같은 기존 디퓨전 LLM도 트랜스포머는 사용하지만, 인과 마스킹(causal masking)이 없으므로 전체 입력을 한 번에 처리하며, 출력 생성 방식이 달라집니다. 저도 이 모델이 트랜스포머를 쓸 것으로 강하게 추측합니다.
nvtop은 아래와 같이 설명을 덧붙였습니다:
이름과는 달리, 디퓨전 LM은 이미지 디퓨전과 거의 관련이 없고, 오히려 BERT 같은 구 마스킹 언어 모델과 가깝습니다. BERT의 학습 방식은 다음과 같습니다:
- 전체 문장(예: "the cat sat on the mat")을 받는다.
- 15%의 토큰을 [MASK]로 대체한다("the cat [MASK] on [MASK] mat").
- 트랜스포머가 마스킹된 위치의 토큰을 예측하도록 한다. 이 과정은 병렬로, 한 번의 추론(inference) 스텝으로 이뤄진다.
디퓨전 LM은 이 아이디어를 한 단계 더 나아간 것입니다. BERT는 전체의 15%에 해당하는 노이즈([MASK])를 복구하지만, 30%, 50%, 90%, 심지어 100%에 가까운 비율까지 확장할 수 있습니다.
이렇게 학습된 모델은, 완전히 [MASK]로 채워진 입력을 던져주면 무작위 위치에 일부(예: 10%) 토큰을 먼저 복구(생성)하고, 이를 "확정(final)"된 토큰으로 간주합니다. 다음 추론에서는 90%만 [MASK]고 10%는 이미 생성된 상태로, 다시 10%를 확정시키는 식으로 진행합니다. 이런 과정을 10번 반복하면 전체 시퀀스가 생성됩니다. 이게 바로 디퓨전 LLM의 핵심 아이디어입니다. [...]