광고 자리 모집 중 · 제휴 문의

Supermaven의 100만 토큰 Babble 아키텍처는 어떻게 RAG 청킹 지연 없이 전체 코드베이스를 인라인 완성하는가

365Finds Editorial
Wiki 문서 11,430편 수록

내 AI에서 365 Wiki 사용하기

아래 프롬프트를 복사해 평소 사용하는 AI에 붙여넣고 바로 질문하세요.

전체 Skill 다운로드

먼저 프롬프트로 체험해 보세요. 365 Wiki를 자주 쓴다면 전체 365Wiki Skill을 설치해 매번 붙여넣는 수고를 줄일 수 있습니다. 평소 쓰는 AI가 없다면 Gemini나 Microsoft Copilot 웹 버전도 사용할 수 있습니다.

실시간 인라인 코드 자동 완성(Inline Completion)에서 지연 시간(Latency)은 제품의 효용성을 결정짓는 가장 핵심적인 지표입니다. 개발자가 키보드를 입력하거나 잠시 타이핑을 멈추었을 때, 몰입 상태(Flow state)를 유지하려면 자동 완성 추천이 250~300밀리초(ms) 이내에 화면에 나타나야 합니다. 응답 시간이 700~1,000ms를 초과하기 시작하면 AI는 생산성 도구가 아니라 타이핑 리듬을 끊는 방해 요소로 전락합니다.

초기 AI 코딩 어시스턴트들은 여러 파일로 구성된 대규모 코드베이스의 문맥을 파악하기 위해 검색 증강 생성(RAG, Retrieval-Augmented Generation)에 의존했습니다. 그러나 기존 RAG 방식은 필연적인 기술적 한계를 안고 있었습니다. 벡터 검색, 유사도 계산, 프롬프트 재구성에 수백 밀리초가 소모되는 데다, 코드를 임의의 조각(청크)으로 자르는 과정에서 파일 간 타입 정의, 인터페이스 규약, 공통 유틸리티 함수의 연결 고리가 끊어지는 문제가 빈번하게 발생했습니다.

Tabnine의 창립자인 제이콥 잭슨(Jacob Jackson)이 개발한 Supermaven은 자체 개발한 신경망 아키텍처 Babble과 네이티브 100만 토큰(1-Million-Token) 컨텍스트 윈도우를 통해 이 문제를 해결했습니다. 키 입력마다 코드를 동적으로 쪼개고 검색하는 대신, 리포지토리 전체를 활성 메모리에 직접 올려둔 채 약 250ms의 초저지연으로 프로젝트 전체를 아우르는 인라인 추론을 수행합니다.


코드 자동 완성에서 기존 RAG 파이프라인의 구조적 한계

Supermaven이 독자적인 모델 아키텍처를 직접 설계한 이유를 이해하려면, 기존 RAG 파이프라인이 실시간 코딩 환경에서 겪는 물리적 병목을 살펴봐야 합니다.

기존 RAG 기반 자동 완성 엔진은 키보드 입력이 발생할 때마다 다음과 같은 다단계 절차를 수행합니다.

[키 입력 발생]
       │
       ▼
1. 로컬 컨텍스트 추출 (커서 위치, 활성 파일 앞뒤 코드 파악)
       │
       ▼
2. 벡터 및 키워드 검색 (임베딩 계산, 벡터 DB 대상 ANN 유사도 검색)
       │
       ▼
3. 청크 순위 책정 및 필터링 (색인된 파일에서 상위 K개 코드 조각 선별)
       │
       ▼
4. 프롬프트 조립 (선별된 청크를 4k~8k 크기의 작은 컨텍스트 윈도우에 주입)
       │
       ▼
5. LLM 전방 추론 (인라인 완성 토큰 생성)

대화형 챗봇 인터페이스에서는 문서 검색에 500ms가 더 걸려도 체감하기 어렵습니다. 하지만 1초에 여러 번 키를 누르는 인라인 자동 완성 환경에서 이와 같은 다단계 호출은 치명적인 지연을 유발합니다.

1. 다단계 검색으로 인한 누적 지연 시간

RAG의 각 단계는 계산 시간을 소모합니다. 커서 주변 코드를 임베딩 벡터로 변환하고, 수만 개의 벡터 인덱스에서 근사 최근접 이웃(ANN) 검색을 수행하며, 검색 결과를 재정렬하는 데만 100~400ms가 소요됩니다. 이 과정이 모두 끝난 뒤에야 모델이 토큰 생성을 시작할 수 있으므로, 기존 코파일럿 도구들의 종단 간 지연 시간은 통상 700~900ms 이상으로 늘어납니다.

2. 코드 청킹으로 인한 추상 구문 트리(AST) 및 의존성 단절

자연어 문서는 300단어 단위로 나누어도 맥락이 크게 손상되지 않지만, 소스 코드는 상호 연결된 추상 구문 트리(AST)와 의존성 그래프 구조를 갖습니다.

코드를 고정된 크기의 텍스트 조각으로 분할하면 파일 간 연결 관계가 끊어집니다. 임베딩 모델이 다른 폴더에 있는 타입 정의와의 의미적 유사성을 포착하지 못하면 해당 정의는 프롬프트에서 누락됩니다. 그 결과 모델은 존재하지 않는 메서드를 지어내거나(할루시네이션), 잘못된 타입을 반환하여 컴파일되지 않는 코드를 출력합니다.


Babble 아키텍처의 내부 원리: 표준 트랜스포머의 한계 극복

RAG의 한계를 극복하는 가장 직관적인 방법은 컨텍스트 윈도우를 대폭 확장해 리포지토리 전체를 프롬프트에 직접 담는 것입니다. 그러나 표준 트랜스포머(Transformer) 아키텍처로는 연산 비용과 응답 속도 면에서 이를 실시간으로 서빙하기 어렵습니다.

표준 셀프 어텐션의 연산 한계

표준 트랜스포머의 멀티 헤드 어텐션은 프롬프트를 읽는 단계에서 시퀀스 길이에 대해 2차 함수($O(N^2)$) 비율로 계산량이 급증하며, 키-값(KV) 캐시 메모리 사용량은 토큰 수에 비례하여 선형적으로 늘어납니다. 100만 토큰을 표준 방식으로 처리할 경우:

Babble 아키텍처의 핵심 혁신

Babble은 실시간 코드 시퀀스 모델링을 위해 처음부터 완전히 새롭게 설계된 독자적인 신경망 아키텍처로, 다음과 같은 혁신을 통해 한계를 극복했습니다.

  1. 준선형(Sub-quadratic) 컨텍스트 처리: Babble은 모든 토큰 간의 밀집 결합 대신, 상태 공간 모델(SSM)이나 효율적인 순환 신경망 기법에 착안한 시퀀스 모델링 메커니즘을 적용했습니다. 이를 통해 100만 토큰에 달하는 긴 문맥을 단 4,000 토큰 크기의 표준 트랜스포머와 유사한 계산 복잡도 및 지연 시간으로 처리합니다.
  2. 초경량 메모리 상태 유지: 거대한 KV 캐시를 필요로 하지 않는 구조 덕분에 장기 컨텍스트 유지에 필요한 하드웨어 메모리 소모를 획기적으로 줄였으며, 클라우드 환경에서 대규모 실시간 동시 추론을 경제적으로 지원합니다.
  3. 정적 파일이 아닌 '편집 시퀀스(Edit Sequences)' 기반 학습: 대다수 코드 모델이 깃허브의 완성된 정적 파일 스냅샷을 학습 데이터로 사용하는 반면, Babble은 git diff와 같은 개발자의 실제 편집 이력 시퀀스를 바탕으로 학습되었습니다. 따라서 모델은 최종 코드 형태뿐 아니라 개발자가 리팩터링, 변수명 변경, 기능 확장을 진행할 때의 사고 흐름을 근본적으로 이해합니다.

리포지토리 수집 파이프라인: 250ms 응답의 구현 방식

Supermaven이 100만 토큰 규모의 방대한 문맥을 유지하면서도 250ms의 초고속 응답을 달성한 핵심 비결은 리포지토리 수집과 키 입력 추론을 완벽하게 분리한 데 있습니다.

[프로젝트 열기] ──► 10~20초 1회성 백그라운드 사전 처리 ──► 서버에 사전 계산된 컨텍스트 캐시 생성
                                                                 │
[개발자가 키 입력] ──────────────────────────────────────────────┴──► 차분 데이터 전방 추론 (≤ 250ms)

초기 사전 계산 단계

개발자가 VS Code, JetBrains, Neovim에서 프로젝트를 열면, Supermaven의 백그라운드 클라이언트가 로컬 코드베이스를 비동기적으로 스캔합니다. 초기 10~20초 동안 최대 100만 토큰의 코드가 서버로 전송되어 사전 계산된 상태 캐시(Prefix Caching)를 형성합니다.

이 과정은 백그라운드에서 완전히 비동기적으로 실행되므로 에디터 작동이 지연되지 않습니다. 사전 계산이 완료되면 모델은 프로젝트 내부의 모든 API, 데이터 모델, 코딩 컨벤션을 완전히 숙지한 상태가 됩니다.

키 입력 단위 증분 추론

개발자가 에디터에서 타이핑을 시작하면:

  1. 동적 검색 단계 전면 생략: 임베딩 생성, 벡터 검색, 청크 순위 재조정 과정을 거치지 않습니다.
  2. 캐시된 상태 직접 재사용: 활성 파일의 최신 버퍼 변경분만을 서버에 이미 캐싱된 코드베이스 상태에 직접 연결하여, 새롭게 입력된 소수의 토큰에 대해서만 증분 추론을 수행합니다.
  3. 즉각적인 화면 렌더링: 사용자가 키를 입력한 시점부터 화면에 추천 코드가 표시될 때까지의 프레임 수를 측정한 테스트에서, Supermaven은 일관되게 약 250ms(15프레임)를 기록하여 타 도구를 압도했습니다.
도구명화면 표시 소요 프레임평균 종단 간 지연 시간
Supermaven (Babble)15 프레임250 ms
GitHub Copilot47 프레임783 ms
Tabnine50 프레임833 ms
Codeium53 프레임883 ms
Cursor (초기 단독 Tab 모델)113 프레임1,883 ms

실증 검증: 100만 토큰 컨텍스트는 실제로 작동하는가?

초거대 컨텍스트 모델에서 흔히 발생하는 문제는 중간 영역의 정보를 망각하는 현상(Lost in the Middle)입니다. 또한 과도한 문맥이 유입되면 무의미한 노이즈로 인해 예측 정확도가 저하될 수 있습니다.

Supermaven은 Babble이 100만 토큰을 유의미하게 활용하는지 검증하기 위해 정밀한 벤치마크를 수행했습니다.

1. 건초더미 속 바늘 찾기 (Needle in a Haystack)

임의로 생성된 8자리의 키-값 쌍 주석(// needle: vhmpphtv => 'oualsoki')을 5만~100만 토큰 길이의 코드베이스 내 다양한 위치에 삽입했습니다.

2. 밀집 키-값 검색 (Dense Retrieval)

단일 주석보다 훨씬 난도가 높은 과제로, 30만 토큰에 이르는 연속된 코드 사이에 수많은 단언문(assert)을 촘촘하게 배치했습니다.

assert obj['tvdiqaac'] == 'm'
assert obj['qacbblfk'] == 'c'
# 수만~수십만 토큰 간격...
assert obj['tvdiqaac'] == 'm'

다시 등장한 키에 대한 값을 완성하도록 유도했을 때, Babble은 거대한 토큰 간격에도 불구하고 75~100%의 높은 정확도를 유지하여 구조화된 정보를 안정적으로 기억함을 증명했습니다.

3. 컨텍스트 길이 대비 예측 오차 추이

대규모 문맥이 실제 코드 작성 환경에서 도움이 되는지 확인하기 위해 공식 PyTorch 리포지토리 전체(200가지 이상의 파일 순서 조합 평균)를 대상으로 다음 토큰 예측 손실(Prediction Loss)을 측정했습니다.


기술 아키텍처 비교: 네이티브 100만 컨텍스트 vs 기존 RAG 방식

비교 기준기존 RAG 기반 자동 완성Supermaven Babble (100만 네이티브 컨텍스트)
종단 간 지연 시간700 ms ~ 1,500 ms; 벡터 검색 및 다단계 네트워크 오버헤드 발생약 250 ms; 서버에 캐시된 상태에 대한 즉각적인 증분 전방 추론
파일 간 의존성 추적취약함; 검색 청크에 포함되지 않은 타입 및 순환 참조 누락완벽함; 프로젝트의 모든 파일이 단일 활성 컨텍스트에 공존
실시간 편집 반영지연됨; 주기적인 재색인이나 로컬 버퍼 수집에 의존기민함; 실제 편집 이력 및 Diff 스트림을 기반으로 학습됨
지원 가능한 코드 규모이론상 무제한; 벡터 데이터베이스에 수억 토큰 저장 가능최대 1,000,000 토큰(일반적인 코드 기준 약 5만~10만 줄)
초기 프로젝트 로딩첫 쿼리는 밀리초 단위; 색인은 백그라운드에서 비동기 처리프로젝트 오픈 시 10~20초의 1회성 백그라운드 사전 계산 필요
서빙 인프라 구성범용 상용 LLM과 외부 벡터 데이터베이스 조합자체 개발한 시퀀스 모델 및 전용 초장문 추론 클러스터

기술적 진화 및 업계에 미친 영향

2024년 11월, Cursor를 개발하는 Anysphere가 Supermaven을 인수했습니다. Cursor 팀은 프론티어 LLM이 복잡한 멀티 파일 에이전트 작업에는 최적이지만, 매초 입력되는 Tab 키 기반 인라인 완성에는 극도로 최적화된 전용 시퀀스 모델과 초저지연 추론 파이프라인이 필수적임을 간파했습니다.

Supermaven의 핵심 기술과 초저지연 장기 컨텍스트 노하우는 Cursor Tab에 통합되었으며, Cursor의 구문 트리 기반 문맥 분석 역량과 Babble의 초고속 추론 속도가 결합되었습니다. 이후 Supermaven은 2025년 11월 단독 상용 서비스를 순차 종료(Sunsetting)한다고 발표하며, 기존 Neovim 및 JetBrains 사용자에게는 무료 추론을 지속 제공하는 한편 VS Code 사용자에게는 Cursor로의 이전을 권장했습니다.

소프트웨어 엔지니어를 위한 결론

Supermaven의 Babble 아키텍처는 AI 시스템 설계에 있어 중요한 교훈을 남겼습니다. 인라인 코드 자동 완성처럼 극도로 엄격한 실시간성이 요구되는 영역에서는 다단계 RAG 파이프라인보다 네이티브 초장문 컨텍스트를 갖춘 경량 전용 시퀀스 아키텍처가 월등한 성능과 사용성을 제공한다는 점입니다. 코드 분할로 인한 문맥 손실과 벡터 검색의 지연 페널티를 근본적으로 제거함으로써, Babble은 프로젝트 전반에 대한 완벽한 이해와 250ms의 즉각적인 응답 속도가 공존할 수 있음을 증명했습니다.


참고 자료