과정: AI 가 가림막을 하나씩 들어 올리며 (언마스크), 그 자리에 어떤 글자가 들어갈지 추측합니다.
문제점 1 (비효율성): 가림막이 없는 빈 칸도 계속 계산해야 하므로, 컴퓨터가 쓸데없이 많은 에너지를 씁니다. 마치 빈 상자를 계속 들어 올리는 것과 같습니다.
문제점 2 (유연성 부족): 글자 하나를 확정하면 그 위치와 내용이 더 이상 바뀝니다. 만약 처음에 "사과"라고 썼는데 문맥상 "배"가 맞았다면, 이미 써버린 "사과"를 지우고 다시 쓸 수 없어 실수가 쌓입니다. 또한, 글자 길이가 정해져 있어 짧은 문장을 쓸 때도 긴 상자에 맞춰 빈 칸 (패딩) 을 채워야 해서 비효율적입니다.
2. 새로운 방식 (DID): "빈 종이에 글자를 하나씩 끼워 넣는 게임"
이 논문에서 제안한 **DID(삭제 - 삽입 확산 언어 모델)**는 완전히 다른 접근법을 사용합니다.
상황: 처음에는 완전히 빈 종이에 '시작 표시 (BOS)' 하나만 있습니다.
과정: AI 가 빈 공간에 글자를 하나씩 '끼워 넣는 (Insertion)' 방식으로 문장을 만들어갑니다.
핵심 아이디어:
가림막 (MASK) 이 없습니다: 빈 칸을 계산할 필요가 없으니 컴퓨터가 훨씬 빨라집니다. (비유: 빈 상자를 들지 않고, 필요한 물건만 담는 것)
글자 길이가 자유롭습니다: 문장이 짧아도 길어도 상관없습니다. 필요한 만큼만 끼워 넣으면 되니까요.
실수 수정이 가능합니다: 만약 "사과"를 넣었는데 문맥이 안 맞다면, 그 자리 바로 옆에 "배"를 끼워 넣어서 문장을 자연스럽게 고칠 수 있습니다. (비유: 레고 블록을 쌓다가 중간에 틀리면, 그 옆에 새로운 블록을 끼워 넣어 구조를 바로잡는 것)
3. 왜 더 빠르고 똑똑할까요? (핵심 메커니즘)
이 모델은 **"점수 (Score)"**라는 개념을 사용합니다.
어디에, 무엇을 넣을지 점수 매기기: AI 는 "지금 이 문장의 3 번째 자리 뒤에 '사과'를 넣는 게 좋을까, 5 번째 자리에 '배'를 넣는 게 좋을까?"를 계산합니다.
효율적인 계산법: 이 계산을 엄청나게 빠르게 하기 위해, 논문 저자들은 **'동적 계획법 (Dynamic Programming)'**이라는 수학적 기법을 발전시켰습니다.
비유: 보통은 모든 경우의 수를 하나하나 세느라 시간이 걸리는데, 이 방법은 이미 계산한 부분 결과를 재활용해서 순식간에 "어디에 무엇을 넣으면 가장 자연스러운지"를 찾아냅니다.
4. 요약: DID 가 가져온 변화
특징
기존 방식 (MDLM)
새로운 방식 (DID)
일상적인 비유
작동 원리
가림막을 덮고 하나씩 열어봄
빈 상태에서 하나씩 끼워 넣음
가림막 제거 게임 vs 레고 끼워 넣기
계산 효율
가림막 (MASK) 과 빈칸 (PAD) 계산으로 느림
불필요한 계산 제거로 2~3 배 빠름
빈 상자 나르기 vs 필요한 물건만 담기
유연성
글자 위치가 고정됨 (실수 수정 어려움)
글자 위치를 동적으로 조정 가능 (자율 수정)
고정된 벽돌 vs 유동적인 레고
길이
정해진 길이로만 작성 (짧으면 빈칸 채움)
문장 길이에 맞춰 자연스럽게 생성
정해진 칸 수 vs 필요한 만큼만 쓰기
결론
이 논문은 **"AI 가 글을 쓸 때, 불필요한 가림막을 치우고, 빈 종이에 필요한 글자만 똑똑하고 빠르게 끼워 넣는 방식"**을 개발했습니다.
그 결과, 더 적은 계산량으로 더 빠르고, 문맥에 따라 실수를 스스로 고칠 수 있는 유연한 AI 언어 모델을 만들 수 있게 되었습니다. 마치 글을 쓸 때 지우개로 지우지 않고, 문장 중간중간 필요한 단어를 자연스럽게 끼워 넣으며 완성하는 것과 같습니다.
1. 문제 정의 (Problem)
기존의 **마스킹 확산 언어 모델 (MDLMs)**은 토큰을 <MASK> 상태로 점진적으로 변형 (Forward) 하고, 이를 다시 원래 상태로 복원 (Backward) 하는 과정을 통해 텍스트를 생성합니다. 그러나 이 방식에는 두 가지 주요한 한계가 존재합니다.
계산 비효율성:
비정보적 토큰 처리: 모델은 의미 없는 <MASK> 토큰에 대해 반복적으로 계산을 수행해야 하므로, 학습 및 추론 시 불필요한 연산량 (FLOPs) 이 발생합니다.
변수 길이 문제: 가변 길이 (Variable-length) 데이터를 처리할 때, 고정된 길이를 맞추기 위해 <PAD> 토큰을 추가해야 합니다. 이는 짧은 시퀀스를 생성할 때도 긴 패딩 길이에 비례하여 계산 비용이 증가하게 만들어 효율성을 떨어뜨립니다.
생성 유연성 부족:
고정된 위치: MDLM 은 시퀀스 길이가 고정되어 있으며, 한 번 마스킹이 해제 (Unmasking) 되면 토큰의 내용과 위치가 고정됩니다. 이는 autoregressive 모델과 유사하게 초기 오류가 누적될 위험이 있으며, 생성 중 토큰의 위치를 동적으로 조정하거나 자기 수정 (Self-correction) 을 하기 어렵습니다.
2. 방법론 (Methodology)
저자들은 마스킹/언마스킹 과정을 삭제 (Deletion) / 삽입 (Insertion) 과정으로 대체하는 새로운 이산 확산 (Discrete Diffusion) 패러다임을 제안합니다.
전진 과정 (Forward Process - 삭제):
입력 시퀀스에서 토큰들이 독립적으로 삭제되어 빈 시퀀스 (또는 <BOS>만 남음) 가 될 때까지 진행됩니다.
이 과정은 연속 시간 마르코프 체인 (CTMC) 으로 수학적으로 엄밀하게 정의됩니다.
역과정 (Backward Process - 삽입):
빈 시퀀스 (또는 <BOS>) 에서 시작하여 토큰을 하나씩 삽입하여 원래 시퀀스를 복원합니다.
삽입 점수 (Insertion Score): 특정 위치 i에 토큰 v를 삽입할 확률을 모델링하는 점수를 학습합니다. 이는 구체적인 상태 (Concrete Score) 를 직접 예측하는 대신, 모든 가능한 삽입 행동에 대한 점수를 출력하여 계산 효율성을 높입니다.
학습 목표 (Training Objective - DISE):
기존 DSE (Denoising Score Entropy) 목표를 기반으로 **DISE (Denoising Insertion Score Entropy)**를 유도했습니다.
이 목표 함수는 '삽입 전후의 부분 시퀀스 (Subsequence) 개수 비율'을 예측하도록 설계되었습니다.
병렬 동적 프로그래밍 (Parallel Dynamic Programming): 부분 시퀀스 개수 계산은 전통적으로 $O(mn)$의 복잡도를 가지지만, 저자들은 접두사 (Prefix) 와 접미사 (Suffix) DP 를 병렬화하여 모든 가능한 삽입에 대한 비율을 $O(mn)$ 시간 내에 효율적으로 계산하는 알고리즘을 개발했습니다.
고정 길이 설정 최적화 (DICE):
고정 길이 데이터셋의 경우, 시간 의존적 항이 상쇄되어 **DICE (Denoising Insertion Cross Entropy)**라는 더 단순화된 크로스 엔트로피 손실 함수를 사용할 수 있음을 증명했습니다. 이는 네트워크 파라미터를 줄이고 학습을 안정화시킵니다.
3. 주요 기여 (Key Contributions)
DID 아키텍처 제안:<MASK>와 <PAD> 토큰을 완전히 제거하여 계산 효율성을 극대화하고, 가변 길이 시퀀스를 네이티브로 지원하는 새로운 확산 모델 프레임워크를 제시했습니다.
DISE/DICE 학습 목표 및 알고리즘: 삽입 기반 확산을 위한 이론적으로 엄밀한 학습 목표 (DISE) 와 이를 효율적으로 계산하기 위한 병렬 동적 프로그래밍 알고리즘을 개발했습니다.
자기 수정 메커니즘: 삽입 기반 생성 방식은 토큰의 위치를 동적으로 조정할 수 있어, 생성 과정에서 발생하는 오류를 후속 단계에서 수정할 수 있는 내재적인 자기 수정 능력을 제공합니다.
4. 실험 결과 (Results)
저자들은 고정 길이 (OpenWebText) 와 가변 길이 (Stories) 데이터셋에서 DID 를 평가했습니다.
성능 (Performance):
고정 길이: 계산 비용 (FLOPs) 을 동일하게 맞췄을 때, DID 는 기존 강력한 MDLM 베이스라인 (RADD) 보다 더 낮은 퍼플렉시티 (Perplexity) 를 기록하며 언어 모델링 성능이 우수함을 보였습니다.
가변 길이: 생성된 텍스트의 길이 분포가 실제 데이터 분포와 더 잘 일치하며, 샘플링 품질 (Generative PPL) 이 기존 삽입 기반 모델 (ILM) 및 MDLM 보다 뛰어났습니다.
효율성 (Efficiency):
학습 속도:<MASK> 토큰 처리 제거로 인해 학습 속도가 최대 1.99 배 (고정 길이) 및 3.42 배 (가변 길이) 빨라졌습니다.
추론 속도:<PAD> 토큰이 없으며 평균 시퀀스 길이가 짧아지므로, 추론 속도가 최대 1.58 배 (고정 길이) 및 3.79 배 (가변 길이) 향상되었습니다.
유연성: 가변 길이 데이터에 대한 패딩이 필요 없으며, 생성 길이가 데이터 분포에 자연스럽게 적응됩니다.
5. 의의 및 결론 (Significance)
이 논문은 확산 언어 모델의 핵심적인 병목 현상이었던 <MASK> 및 <PAD> 토큰 처리 문제를 근본적으로 해결했습니다.
계산 효율성: 불필요한 연산을 제거하여 대규모 모델 학습 및 추론 비용을 절감할 수 있는 길을 열었습니다.
생성 유연성: 토큰의 위치를 고정하지 않고 동적으로 삽입하는 방식은 자연스러운 문장 구조 생성과 오류 수정 능력을 향상시켰습니다.
이론적 엄밀성: 기존 휴리스틱한 삽입 모델들과 달리, 연속 시간 확산 프레임워크 내에서 엄밀하게 정의된 확률적 목표를 제공하여 이론적 근거를 강화했습니다.
결론적으로, DID 는 확산 언어 모델이 가변 길이 텍스트 생성 분야에서 autoregressive 모델과 경쟁할 수 있는 효율적이고 유연한 대안이 될 수 있음을 입증했습니다.