AI VIDEO BRIEFING

텍스트 확산 언어 모델 원리 정리: 마스크 복원 방식, 추론 10배 속도와 학습 비용의 맞교환

GPT 계열이 토큰을 하나씩 예측하는 것과 달리 확산 언어 모델은 전체 초안을 만든 뒤 여러 번 고쳐 쓴다. 마스크 토큰으로 언어에 확산을 적용하는 원리와, 추론은 빨라지지만 학습은 느려지는 맞교환을 정리했다.

한 단어씩 쓰지 않는 언어 모델, '텍스트 확산'은 무엇을 바꾸나 영상 대표 이미지

핵심 메시지

  • 확산 언어 모델은 토큰을 하나씩 이어 붙이는 대신 응답 전체의 초안을 만들고 여러 번 고쳐 쓰는 방식으로 문장을 만든다.
  • 언어는 픽셀과 달리 이산적인 토큰이라, 최신 모델들은 임베딩이 아니라 토큰 자체를 마스크로 가렸다가 복원하는 방식으로 확산을 구현한다.
  • 바이트댄스의 연구에서 확산 LLM은 같은 GPU에서 초당 1,000~2,000토큰을 냈고, 비슷한 자기회귀 모델은 200토큰 언저리에서 멈췄다.
  • 추론은 빨라지지만 학습은 느려진다. 한 연구는 같은 검증 손실에 도달하는 데 확산 모델이 16배의 학습 연산을 썼다고 보고했다.
  • 코딩처럼 응답 속도가 중요한 영역에서는 이미 쓸 만한 수준이며, 특히 문서 중간을 채우는 과제에서 비슷한 크기의 자기회귀 모델을 크게 앞섰다.

쉽게 이해하기

지금의 주류 대규모 언어 모델은 앞에서 만든 토큰을 보고 다음 토큰 하나를 예측하는 일을 반복한다. 영어 문장을 왼쪽에서 오른쪽으로 써 내려가는 것과 같은 방식이고, 이런 계열을 자기회귀 모델이라고 부른다. 확산 모델은 여기에 전혀 다른 제안을 한다. 시작 시점에는 완전한 횡설수설인 문장 전체를 놓고, 매 단계마다 전체 초안을 다시 계산해 어떤 단어는 남기고 어떤 단어는 더 나은 후보로 바꾼다. 학생이 에세이를 여러 번 고쳐 쓰는 과정에 가깝다.

굳이 이 방식을 시도하는 이유는 세 가지 약속 때문이다. 첫째는 속도다. 자기회귀 모델은 출력 토큰 수만큼 반복해야 하지만 확산 모델은 정해진 횟수의 다듬기만 하면 되고, 그 횟수는 품질과 속도를 조절하는 손잡이 역할을 한다. 둘째는 품질이다. 한 번 뱉은 토큰을 되돌릴 수 없는 구조 탓에 자기회귀 모델은 중간에 결론이 뒤집히는 자기모순이나, 자기 출력의 작은 오류가 눈덩이처럼 불어나는 문제에 취약하다. 셋째는 프롬프트 위치의 자유다. 프롬프트가 반드시 문서 앞머리에 있을 필요가 없어, 문서 중간의 빈 구간을 채우거나 코드 블록만 다시 쓰는 작업이 자연스러워진다.

문제는 확산이 원래 잉크가 물에 퍼지듯 연속적인 과정을 본뜬 기법이라는 점이다. 픽셀 값이 연속적인 이미지에서는 직관적이지만, 언어는 서로 순서도 없는 이산적인 토큰의 나열이다. 한 가지 방법은 문장을 통째로 잠재 벡터로 압축해 그 공간에서 확산을 돌리는 것인데, 이 경우 잠재 벡터를 다시 문장으로 되돌리는 디코더가 결국 자기회귀 방식이어야 해서 자기회귀의 단점이 그대로 따라온다. 토큰마다 임베딩을 따로 두고 확산을 적용하는 방법도 있지만, 잡음을 제거한 임베딩을 실제 어휘 토큰으로 되돌리는 과정에서 가장 가까운 이웃이 전혀 엉뚱한 단어가 되어 버려 자리 잡지 못했다.

그래서 현재 주력 모델들은 수치 표현을 거치지 않고 토큰을 직접 확산시키는 쪽으로 수렴했다. 이 세계에서 입자의 이동은 매끄러운 궤적이 아니라 이산 상태 사이를 튀어 다니는 연쇄이므로, 마르코프 연쇄로 앞뒤 과정을 기술한다. 다만 가능한 모든 문장 쌍에 대한 전이 행렬은 계산이 불가능해서, 토큰이 서로 독립적으로 오염된다고 가정해 어휘 크기의 제곱으로 줄인다. 그래도 어휘가 10만이면 항목이 100억 개라, D3PM 논문은 문자 단위로 어휘를 줄여 보기도 했고 오염 규칙을 닫힌 식으로 정의하기도 했다. 요즘 확산 LLM이 즐겨 쓰는 방식은 특별한 마스크 토큰이다. 토큰은 그대로 남거나 마스크로 바뀔 뿐이어서, 완전한 잡음은 전부 가려진 문장이 된다.

학습과 추론이 실제로 어떻게 돌아가는지는 LLaDA의 세 단계에서 잘 드러난다. 사전학습에서는 일반 문서의 일부를 가리고 맞히되, 노이즈 수준을 0과 1 사이에서 무작위로 하나 뽑는다. 한 번의 순전파로 여덟 토큰 중 두 개만 예측하는 식이라 자기회귀 모델보다 학습 효율이 떨어진다. 이 방식은 입력의 15%를 가리고 맞히던 BERT를 떠올리게 하는데, 고정된 노이즈 하나만 쓴다는 점에서 BERT는 사실상 한 스텝짜리 확산 모델이라고 볼 수 있다. 지시 미세조정에서는 프롬프트는 그대로 두고 응답 부분만 가리며, 샘플링에서는 전부 가려진 상태에서 시작해 일부를 예측한 뒤 그중 일부를 다시 가리는 과정을 반복한다. 이때 다시 가리는 토큰 수를 매번 줄여야 무한 반복에 빠지지 않는다.

주요 인사이트

  • 확산 모델도 자기 출력을 다시 입력으로 삼는다는 점에서는 자기회귀적이다. 차이는 한 번에 내놓는 단위가 토큰 하나냐 응답 전체냐에 있다.
  • 속도 이득은 다듬기 횟수를 줄이는 것만으로는 실현되지 않는다. 모든 토큰을 병렬로 생성해야 의미가 있어서 Inception Labs는 GPU 활용률을 끌어올리는 자체 추론 엔진까지 만들었다.
  • 확산은 추론을 빠르게 만드는 대신 학습을 느리게 만든다. 같은 성능에 16배 연산이 든다는 보고는 상용화 판단에서 무시하기 어려운 비용이다.
  • 토큰을 직접 다루는 확산에서 '개'가 '고양이'로 바뀌는 직접 전이는 없다. 마스크를 한 번 거쳐야만 바뀌는 구조라, 샘플링 중 다시 가리는 단계가 필수가 된다.
  • 이산 공간에는 기울기라는 개념이 없어 지형의 방향을 배우는 대신 지형 자체를 배워야 한다. 이것이 이미지 확산과 텍스트 확산의 가장 큰 개념적 간극이다.

자주 묻는 질문

확산 언어 모델이 자기회귀 모델보다 빠를 수 있는 이유는 무엇인가요?

자기회귀 모델은 종료 토큰이 나올 때까지 출력 토큰 하나마다 한 번씩 계산을 반복해야 해서, 프롬프트에 따라 수천 번 이상 돌기도 합니다. 확산 모델은 정해진 횟수의 다듬기만 하면 되고 오늘날 적정 수준은 수십에서 백 단위입니다. 다만 이 이득은 토큰들을 병렬로 생성할 수 있을 때만 실현됩니다.

토큰 임베딩 공간에서 확산을 돌리는 방식은 왜 자리 잡지 못했나요?

잡음을 제거한 임베딩이 어휘 사전의 어떤 토큰과도 정확히 일치하지 않기 때문입니다. 가장 가까운 이웃을 고르는 수밖에 없는데, 임베딩 공간이 워낙 성기다 보니 그 이웃이 완전히 엉뚱한 토큰이 되어 버립니다. 이 되돌리기 문제 탓에 해당 접근은 널리 쓰이지 못했습니다.

지금 확산 LLM의 성능은 어느 정도인가요?

속도가 중요한 코딩 작업에서 경쟁력이 생기기 시작한 단계입니다. Inception Labs의 Mercury Coder는 GPT-4o mini와 비슷한 수준을 거의 10배 속도로 냈고, 문서 중간을 채우는 과제에서는 비슷한 크기의 자기회귀 모델을 큰 차이로 앞섰습니다. 바이트댄스의 Seed Diffusion도 코딩에서 좋은 성능을 보였지만 Qwen 2.5를 넘어서지는 못했습니다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식

#확산 언어 모델#Diffusion LLM#LLaDA#자기회귀 모델#AI 추론 속도