확산 언어 모델 직접 만들기 — 자기회귀보다 5~10배 빠른 이유

확산 언어 모델이란

기존 GPT 계열의 자기회귀(autoregressive) 모델이 토큰을 왼쪽에서 오른쪽으로 순차 생성하는 것과 달리, 확산 언어 모델은 초기 추정치에서 시작해 전체 시퀀스를 동시에 반복적으로 정제한다. HN에서 160점을 기록한 코넬대 Kuleshov 그룹의 튜토리얼이 그 구축 방법을 상세히 공개했다.

마스킹 확산의 핵심 원리

학습 과정은 놀랍도록 직관적이다. 무작위 비율로 토큰을 마스킹한 뒤 모델이 이를 복원하도록 훈련하는 방식으로, 연구진은 이를 "무작위 마스킹 비율을 가진 BERT"라고 표현한다.

순방향 과정(Forward process): 점진적으로 토큰을 마스킹해 데이터를 오염시킨다.

역방향 과정(Reverse process): 학습된 모델이 마스킹을 단계적으로 해제하며 완성된 시퀀스로 수렴한다.

실용적 확장 기법

블록 확산: 가변 길이 생성을 지원하기 위해 토큰을 설정 가능한 블록 단위로 처리한다.

인코더-디코더 구조: 표현 학습과 노이즈 제거를 분리해 연산 효율을 높인다.

오류 수정: 리마스킹(remasking) 메커니즘으로 이미 확정된 토큰도 재수정할 수 있다.

균일 상태 확산: 마스크 대신 무작위 어휘 항목으로 대체해 더 유연한 정제를 지원한다.

주요 장점

확산 방식의 가장 큰 강점은 병렬 생성이다. 자기회귀 모델 대비 5~10배 빠른 처리 속도를 달성하며, 내장된 오류 수정 메커니즘과 분류기 기반 제어 생성도 지원한다.

출처: Kuleshov Group Blog — How to build a diffusion language model