SubQ의 12M 네이티브 컨텍스트와 서브쿼드라틱 어텐션 설계

SubQ가 SSM·선형·희소 어텐션으로 12M 네이티브 컨텍스트를 처리하는 방식과 분산 캐시, 배치 전략, RAG 대체 가능성, 트랜스포머 대비 비용 구조를 분석한다.

2026-08-14 · 최초 발행 2026-06-10

12M 토큰을 가능하게 만든 계산 구조

2026년 5월 출시된 SubQ는 트랜스포머 아키텍처를 벗어난 상업용 LLM으로, 어텐션의 O(n²) 복잡도를 제품 수준에서 극복한 첫 사례로 주목받았다. 네이티브 12M 토큰 컨텍스트를 지원하며, 전체 코드 레포지토리 분석과 초장문 연구 문서 처리, 여러 문서의 교차 비교를 주요 작업으로 삼는다.

표준 셀프 어텐션은 시퀀스 길이 n에 대해 연산과 메모리 모두 O(n²)을 요구한다. 이 구조로 12M 토큰을 처리하면 단일 포워드 패스에 수백 테라바이트 수준의 KV 메모리가 필요해진다. SubQ는 상태 공간 모델(SSM, State Space Model)과 선형 어텐션 커널을 섞어 이 제약을 우회한다.

SSM은 시퀀스를 h_t = A·h_{t-1} + B·x_t, y_t = C·h_t라는 재귀 방정식으로 인코딩한다. 전체 시퀀스를 고정 크기의 은닉 상태로 압축하므로 메모리 복잡도는 O(1)이다. 대신 순수 SSM만 사용하면 떨어진 위치 사이를 직접 참조하기 어렵다. 함수와 클래스 사이의 비순차적 참조가 많은 코드 레포지토리에서는 이 특성이 정밀도 저하로 이어질 수 있다.

선형 어텐션은 이 약점을 보완한다. 어텐션 스코어 softmax(QKᵀ)V를 커널 함수 φ(Q)·(φ(K)ᵀV)로 근사하고, 결합 법칙에 따라 KV 행렬의 외적을 먼저 계산한 뒤 Q를 곱한다. 연산 복잡도는 O(n)으로 낮아지고 메모리 사용도 시퀀스 길이에 선형적으로 대응한다.

입력 시퀀스 (12M 토큰)청크 분할기(Chunk Splitter)SSM 레이어(상태 공간 모델)선형 어텐션 커널(φ(Q)·φ(K)ᵀV)고정 크기 은닉 상태O(1) 메모리선형 복잡도 어텐션O(n) 연산하이브리드 결합 레이어희소 어텐션 보정(중요 토큰 선별)출력 표현 (OutputRepresentation)

레이어마다 두 구조의 비중도 다르다. 앞쪽 레이어는 SSM을 중심으로 전역 문맥을 압축하고, 뒤쪽으로 갈수록 선형 어텐션의 비중을 높여 세밀한 지역 참조를 보강한다. Mamba, RWKV, RetNet의 성과를 받아들이면서 상업용 일반 언어 이해 성능을 유지하려는 계층적 구성이다.

중요 토큰만 밀집 어텐션으로 다시 본다

선형 어텐션은 함수 선언부나 클래스 정의 헤더, 절 제목처럼 일부 토큰에 정밀하게 집중해야 하는 상황에서 한계를 보인다. SubQ는 학습 기반 희소 어텐션(Learned Sparse Attention)을 추가해 이 부분을 메운다.

경량 라우터 네트워크는 전체 입력에서 어텐션이 필요한 상위 k개 토큰을 고른다. 선택된 토큰에는 기존의 밀집 어텐션을 적용하고, 나머지는 선형 어텐션 커널로 보낸다. 밀집 어텐션 대상은 전체 시퀀스의 약 15%로 제한되며 나머지 9599%는 선형 경로에서 처리된다. 이 방식으로 전체 복잡도를 사실상 선형에 가깝게 유지하면서 국소 참조의 정밀도를 확보한다.

상위 k개 중요 토큰(약 1~5%)나머지 95~99%전체 12M 토큰라우터 네트워크(Router Network)밀집 어텐션(Dense Attention)O(k²)선형 어텐션 커널O(n)정밀 국소 참조(Precise Local Reference)효율적 전역 문맥(Efficient Global Context)출력 결합(Output Fusion)

메모리 경로에는 플래시어텐션(FlashAttention)과 유사한 IO 인식 연산 스케줄링을 비트랜스포머 구조에 맞춰 적용한다. GPU HBM(High Bandwidth Memory)과 SRAM 사이의 이동을 줄이기 위해 선형 어텐션의 커널 중간값을 타일 단위로 처리하고, 역전파에서는 재계산(recomputation)으로 메모리 피크를 제어한다.

SSM과 근사 커널을 안정적으로 학습하는 방법

서브쿼드라틱 구조에서는 그래디언트 흐름을 안정시키는 일이 트랜스포머보다 까다롭다. SSM 행렬 A의 고유값(eigenvalue)이 불안정한 범위에 놓이면 그래디언트가 소실되거나 폭발할 수 있다. 선형 어텐션의 근사 오차가 누적되면 장거리 의존성을 표현하는 능력도 떨어진다.

SubQ는 먼저 HiPPO(High-order Polynomial Projection Operators) 초기화를 사용해 SSM 행렬 A가 다항식 기저 함수를 효율적으로 근사하도록 구성한다. 선형 어텐션에는 ELU+1 또는 Feature Map 기반 커널 근사를 쓰되, 학습 초기에 소프트맥스 어텐션에서 선형 근사로 서서히 옮겨가는 Curriculum Kernel Annealing을 적용한다. 이산적인 토큰 선택을 수행하는 희소 어텐션 라우터에는 Straight-Through Estimator(STE)를 붙여 미분 가능한 그래디언트 경로를 남긴다.

사전 학습에서는 컨텍스트를 4K→64K→512K→12M 순으로 늘리는 Progressive Context Extension을 사용한다. 이런 조합은 서브쿼드라틱 복잡도를 유지하면서 표준 트랜스포머 학습 파이프라인과 유사한 안정성을 확보하기 위한 학습 레시피다.

캐시 크기를 시퀀스 길이에서 분리한 서빙 계층

12M 토큰을 상업 서비스에서 받으려면 모델 구조뿐 아니라 KV 캐시, 입력 인코딩, 요청 스케줄링까지 함께 달라져야 한다.

트랜스포머 서빙의 KV 캐시는 레이어마다 (batch_size, n_heads, seq_len, head_dim) 형태의 텐서를 GPU 메모리에 둔다. 이 구조를 12M 토큰에 적용하면 요청 하나에 수십 GB의 GPU 메모리가 필요하다. SubQ에서는 캐시가 고정 크기의 SSM 상태 벡터와 선형 어텐션의 KV 누적 행렬로 구성된다.

SSM 상태 벡터는 시퀀스 길이에 관계없이 (d_model × d_state) 크기를 유지한다. 선형 어텐션의 KV 누적 행렬도 (d_k × d_v)로 고정된다. 캐시가 컨텍스트 길이에 비례해 커지지 않기 때문에 12M 토큰을 서빙할 때도 수백 MB 수준의 캐시로 처리할 수 있다.

입력 전체를 한 번에 올리는 대신 12M 토큰을 청크 단위로 순차 인코딩한다. 각 청크를 처리할 때 SSM 상태와 KV 누적 행렬을 갱신하고, 청크 경계에서는 상태 핸드오프(state handoff) 프로토콜로 연속성을 보존한다. 청크 크기는 GPU L2 캐시 용량과 메모리 대역폭을 고려해 통상 4K~32K 토큰으로 설정한다.

분산 환경에서는 텐서 병렬과 파이프라인 병렬을 결합한다. SSM 레이어는 상태를 순차 전달해야 하므로 파이프라인 병렬화에 제약이 있다. 이에 따라 레이어 안에서는 텐서 병렬을 우선하고, 레이어 사이에서 파이프라인 병렬을 보조적으로 사용한다.

청크 경계 연속성12M 토큰 입력 요청청크 분할(4K~32K 토큰/청크)청크 (1)청크 (2)청크 (N)SSM 상태 업데이트(고정 크기: d_model ×d_state)분산 KV 캐시(수백 MB 고정)텐서 병렬 서빙(레이어 분산)파이프라인 병렬(레이어 분산)스트리밍 출력(Streaming Output)상태 핸드오프(State Handoff)

요청 길이가 섞일 때의 배치 정책

같은 인프라에 12M 토큰 요청과 일반 8K 토큰 요청이 함께 들어오면 배치 구성에 따라 처리량과 레이턴시가 크게 달라진다.

SubQ 서빙 시스템은 컨텍스트 길이에 따라 요청을 단문(≤64K), 중문(64K1M), 초장문(1M12M)으로 분류한다. 등급마다 독립 큐와 배치 풀을 두며, 단문은 소형 배치에서 빠르게 처리한다. 초장문에는 전용 GPU 파티션을 예약해 다른 요청과의 메모리 경합을 막는다.

연속 배치(continuous batching)에서는 초장문 요청을 처리하는 동안 새 초장문 요청을 같은 배치에 넣지 않는다. 단문과 중문은 프리필(prefill) 슬롯이 허용하는 범위에서 동적으로 추가한다. 초장문 요청의 레이턴시를 예측 가능한 범위에 두면서 서버 전체의 GPU 활용률(GPU utilization)은 80% 이상으로 유지하는 정책이다.

SLA(Service Level Agreement)에 따른 우선순위 조정도 별도 경로로 작동한다. 인터랙티브 코드 에디터처럼 레이턴시 SLA가 엄격한 API 요청에는 작은 배치와 우선순위 큐 접근을 제공한다. 분석을 모아서 처리하는 작업은 대형 배치로 처리량을 높이는 대신 레이턴시 보장을 완화한다.

초장문 입력의 비용은 어떻게 달라지는가

트랜스포머에서는 컨텍스트 길이가 n배 늘면 연산과 메모리 비용이 n²배 증가한다. SubQ의 비용 증가는 선형 또는 로그 선형(log-linear) 수준이다.

12M 토큰 프리필의 처리 비용은 표준 GPT-4급 트랜스포머가 같은 길이를 다루는 비용보다 수십 배에서 수백 배 낮을 것으로 추정된다. 이 차이는 기존에 RAG(Retrieval-Augmented Generation)로 우회하던 전체 레포지토리 분석이나 수천 페이지 문서의 전문 분석을 직접 컨텍스트에서 처리할 수 있는 경제적 기반이 된다.

서빙 단가는 입력 토큰당 단가, GPU 시간당 단가, 네트워크 전송 단가로 구성된다. 고정 크기 캐시는 같은 GPU에서 더 많은 동시 요청을 처리할 수 있게 하며, 서버 효율성(server efficiency)을 기존 대비 3~5배 높이는 것으로 알려져 있다.

O(n²) 트랜스포머와의 계산량 차이

표준 어텐션이 한 레이어에서 수행하는 연산량(FLOPs)은 시퀀스 길이 n에 대해 4 × n² × d_model에 비례한다. n=128K(GPT-4 Turbo 최대)에서 n=12M으로 늘리면 어텐션 연산량은 약 8,789배 증가한다. GPU A100 하나가 처리할 수 있는 초당 토큰 수도 128K 컨텍스트와 비교해 12M 컨텍스트에서 이론적으로 수천 분의 일로 줄어든다. 표준 트랜스포머로 12M 컨텍스트 서비스를 상업화하기 어려운 이유다.

SubQ는 n=12M에서도 연산량을 O(n·d_model·d_state) 수준으로 제한한다. d_state가 d_model의 수십 배를 넘지 않는다면 전체 연산량은 128K 컨텍스트 트랜스포머와 비교 가능한 수준에 머문다.

대신 근사 구조의 대가가 있다. 서브쿼드라틱 어텐션은 임의의 두 토큰 사이를 직접 연결하는 능력을 완전히 복원하지 못한다. 짧은 컨텍스트에서 세밀한 추론을 수행할 때는 최고 수준의 트랜스포머보다 열위일 수 있다. SubQ는 이 차이를 감수하고 12M 토큰이 필요한 워크로드에서 비용·성능 비를 확보하는 쪽에 자리 잡는다.

컨텍스트 길이보다 작업 성격으로 모델을 고른다

컨텍스트 전략 비교SubQ12M 네이티브Gemini 2.0 Flash2M 네이티브GPT-5.5128K 네이티브(1) 비트랜스포머 SSM 기반(2) 고정 크기 KV 캐시(3) 레포 전체 코드 분석 특화(1) 트랜스포머 + 슬라이딩윈도우(2) 멀티모달 통합 지원(3) Google 생태계 통합(1) 고품질 단문 추론 최적화(2) 코드 에이전트 통합(3) 128K에서 최고 밀도 성능

Gemini 2M과 GPT-5.5 128K는 트랜스포머를 유지하면서 컨텍스트를 확장하는 경로를 택했다. Gemini는 슬라이딩 윈도우와 전역 어텐션 토큰을 혼합해 2M까지 늘리고, Google TPU 인프라와 결합해 메모리 효율을 최적화했다. GPT-5.5는 128K에서 높은 추론 밀도를 유지해 짧은 컨텍스트의 품질을 끌어올리는 전략이다.

각 모델은 전제하는 작업이 다르다. GPT-5.5는 128K 안에서 처리할 수 있는 고품질 에이전트 작업, Gemini는 멀티모달 데이터를 포함한 2M 이내의 장문 분석을 주요 대상으로 삼는다. SubQ의 초점은 단일 쿼리로 12M 토큰 전체를 탐색해야 하는 코드베이스와 초대형 문서다.

따라서 선택 기준은 최대 컨텍스트 숫자만이 아니다. 128K 이내의 고정밀 추론에는 GPT-5.5가 우위이고, 2M 이내의 멀티모달 장문 분석에서는 Gemini가 경쟁력을 갖는다. 수백만 줄 규모의 코드 레포지토리 전체 스캔이나 수천 편 논문의 동시 비교 분석, 법률 문서 또는 의료 기록의 전수 검토처럼 12M 토큰이 필요한 작업에서는 SubQ가 유일한 현실적 선택지가 된다.

RAG를 없애거나 더 넓게 쓰는 방식

RAG는 벡터 데이터베이스에서 관련 청크를 찾아 컨텍스트에 주입함으로써 길이 제한을 우회한다. 수백만 개 문서를 처리하는 것처럼 동작하지만 검색 누락(retrieval miss), 청크 경계의 문맥 단절, 문서 간 참조의 어려움이 남는다.

전체 코드베이스나 문서 집합이 12M 토큰 안에 들어온다면 검색 단계를 제거할 수 있다. 수백만 줄 이하의 중소형 레포지토리를 통째로 넣고 모델이 전체 코드를 직접 읽게 하면 버그 분석, 리팩토링 제안, API 문서 생성을 RAG 없이 수행할 수 있다.

12M 토큰을 넘는 코드베이스에서는 RAG와 결합한다. RAG가 상위 N개 관련 파일을 골라 12M 컨텍스트에 넣으면, RAG와 소형 컨텍스트를 조합할 때보다 더 많은 파일을 동시에 참조할 수 있다. 검색 누락을 줄이고 파일 사이의 관계를 파악하는 능력도 높이는 하이브리드 구조다.

비용에는 모델 호출만 들어가는 것이 아니다. 벡터 데이터베이스 구축과 운영, 임베딩 모델 호출, 청크 분할 파이프라인 유지 비용도 함께 봐야 한다. 중소형 코드베이스에서는 SubQ로 직접 처리하는 방식이 경쟁력을 가질 수 있다. 코드가 자주 바뀌어 임베딩 인덱스를 계속 다시 만들어야 한다면 동적 컨텍스트 주입이 유지 관리 부담을 줄이는 대안이 된다.

SubQ의 가치는 모든 작업에서 트랜스포머를 대체하는 데 있지 않다. 짧은 문맥의 높은 추론 밀도보다 전체 저장소나 대규모 문서 집합을 한 번에 읽어야 하는 작업에서 강점이 커진다. SSM과 선형·희소 어텐션의 결합, 고정 크기 캐시, RAG 대체·보완 경로는 그 목표에 맞춰 연결된 설계다.

Sources

SubQ서브쿼드라틱 어텐션상태 공간 모델초장문 컨텍스트LLM 서빙