AI Sparkup

복잡한 AI 세상을 읽는 힘 ⚡

코드 작성 AI가 2.3배 빨라진다: 디퓨전 모델의 구조화 마법

AI 코딩 도구를 쓰다 보면 답답할 때가 있죠. 한 글자 한 글자 순차적으로 생성되는 걸 기다리는 시간이요. 그런데 텍스트 디퓨전(diffusion) 모델이라는 새로운 접근 방식은 코드를 생성할 때 기존 방식보다 2배 이상 빠르다고 합니다.

사진 출처: nathan.rs

개발자 Nathan Barry가 텍스트 디퓨전 언어 모델의 코드 생성 속도를 측정한 실험 결과를 발표했습니다. 핵심 발견은 구조화된 텍스트일수록 병렬 디코딩 효율이 높아져 생성 속도가 급격히 증가한다는 점입니다. 코드 생성은 일반 텍스트보다 2.33배 빠른 72 tok/s를 기록했습니다.

출처: Text Diffusion Models are Faster at Writing Code – nathan.rs

병렬로 여러 토큰을 한 번에 생성하는 방식

기존 autoregressive 모델(GPT 계열)은 토큰을 하나씩 순차적으로 생성합니다. Speculative decoding이라는 기법으로 속도를 높이긴 하는데, 이건 작은 모델이 먼저 여러 토큰을 예측하면 큰 모델이 검증하는 방식이죠. 예를 들어 “Geoffrey Hinton did his PhD at the University _“라는 문장에서 “of”는 쉽게 예측 가능하지만 “Edinburgh”는 어렵습니다.

디퓨전 모델은 이와 다르게 작동합니다. 신뢰도 기반 병렬 디코딩을 사용해서, 특정 신뢰도 이상인 모든 토큰을 한 번에 생성해버립니다. “Repeat the word grape over and over again”이라는 명령을 받으면, 전체 문맥 길이만큼 “grape”를 한 스텝에 생성할 수 있어요. Speculative decoding은 아무리 예측 가능한 시퀀스라도 한 번에 4-8개 토큰만 처리하는 것과 대조적이죠.

더 좋은 점은 별도의 작은 모델이 필요 없고, 전체 문맥에 걸쳐 전역적으로(globally) 작동한다는 겁니다.

구조화된 텍스트일수록 압도적으로 빠르다

Nathan은 Fast dLLM v2 모델로 다양한 유형의 텍스트 생성 속도를 측정했습니다. 결과는 명확했어요:

  • 단순 반복 (grape): 108.41 tok/s
  • 코드 생성: 72.14 tok/s (이진 탐색 트리 97.61, 버블 정렬 63.86, 순열 함수 54.95)
  • 구조화 데이터 (JSON/HTML): 53.86 tok/s
  • 일반 텍스트: 31.01 tok/s (창작 스토리, 철학 에세이, 역사 설명)
  • 암기된 텍스트 (독립선언문): 34.74 tok/s

코드 생성이 일반 텍스트보다 2.33배 빠른 이유는 명확합니다. 코드는 구조화되어 있고 패턴이 반복되기 때문이죠. self.input = input 같은 보일러플레이트 코드는 엔트로피가 낮아서 모델이 높은 신뢰도로 예측할 수 있고, 그 결과 더 많은 토큰을 병렬로 디코딩하게 됩니다.

흥미로운 점은 암기된 텍스트(독립선언문)의 속도가 그리 빠르지 않았다는 겁니다. 이건 단순 암기가 아니라 출력의 ‘구조화 정도’가 핵심이라는 걸 보여줍니다.

아직 해결해야 할 문제

이 실험은 1시간 만에 진행된 간단한 테스트라 더 엄밀한 검증이 필요합니다. Nathan도 프로그램 복잡도가 높아질수록 속도 향상이 줄어들 거라고 예상했어요.

더 중요한 한계는 constrained decoding 문제입니다. Autoregressive 모델에서는 문법적으로 유효하지 않은 토큰의 확률을 0으로 설정해서 올바른 JSON이나 코드만 생성하도록 강제할 수 있는데, 디퓨전 모델에는 이걸 단순하게 적용할 수 없거든요. 하지만 KVCache 근사 방식처럼 실용적 해결책이 나올 가능성은 있습니다.

이 연구가 시사하는 건 명확합니다. AI 코딩 도구의 미래는 단순히 더 똑똑한 모델이 아니라, 작업의 특성에 맞는 아키텍처를 선택하는 것일 수도 있다는 거죠.


AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)

Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다