롱컨텍스트 시대가 촉발한 LLM 아키텍처의 구조적 변화
최근 대형언어모델(LLM) 생태계는 추론(Reasoning) 모델과 자율 에이전트 워크플로우의 확산으로 인해 전례 없이 긴 컨텍스트 토큰을 유지하고 처리해야 하는 과제에 직면해 있습니다. 컨텍스트 길이가 증가함에 따라 KV 캐시(Key-Value Cache)의 메모리 점유율, 메모리 대역폭 트래픽, 어텐션 연산 비용이 추론 시스템의 주요 병목으로 떠올랐습니다.
이러한 문제를 해결하기 위해 오픈가중치(Open-weight) 모델 진영을 중심으로 트랜스포머 블록 내부의 잔차 연결(Residual Stream), KV 캐시, 어텐션 연산 방식을 정밀하게 재설계하는 움직임이 활발히 나타나고 있습니다. 대표적으로 Google의 Gemma 4, Poolside의 Laguna XS.2, ZAYA1-8B, DeepSeek V4 등 최신 모델들은 연산 비용을 억제하면서 긴 문맥을 다루기 위한 다양한 아키텍처 설계를 채택했습니다.
```
- 에이전트·추론 확장
- KV 캐시 메모리 병목
- 교차 레이어 KV 공유·압축
- 온디바이스 롱컨텍스트 추론 달성
```
---
Gemma 4 경량 모델의 KV 캐시 절감: 교차 레이어 어텐션
Google이 발표한 오픈가중치 제품군인 Gemma 4는 온디바이스 및 임베디드 장치를 위한 E2B(2.3B/5.1B), E4B(4.5B/8B) 모델과 로컬 추론 최적화용 26B MoE, 고품질 및 사후 학습 편의성을 위한 31B Dense 모델 등 총 3가지 범주로 구성되어 있습니다.
이 중 모바일 및 임베디드 기기를 겨냥한 Gemma 4 E2B와 E4B 모델에는 KV 공유(KV Sharing), 즉 교차 레이어 어텐션(Cross-Layer Attention) 기법이 적용되었습니다. 기존의 Grouped Query Attention(GQA)이나 Multi-Query Attention(MQA)이 동일 레이어 내에서 쿼리 헤드 간에 KV 헤드를 공유했다면, 교차 레이어 어텐션은 상위 레이어가 하위 레이어의 Key-Value 상태 텐서를 재사용하는 방식입니다.
| 모델명 | 총 레이어 수 | 독립 KV 계산 레이어 | KV 공유 레이어 | 128K 컨텍스트 절감 메모리(bfloat16) |
|---|---|---|---|---|
| Gemma 4 E2B | 35개 | 15개 | 20개 | 약 2.7 GB |
| Gemma 4 E4B | 42개 | 24개 | 18개 | 약 6.0 GB |
Gemma 4 E2B 모델은 일반 GQA/MQA와 슬라이딩 윈도우 어텐션을 4:1 패턴으로 혼합 사용합니다. 상위 레이어는 자체적인 Key와 Value 프로젝션을 연산하지 않고, 동일한 어텐션 유형을 가진 가장 인접한 하위 레이어의 KV 텐서를 그대로 재사용합니다. 즉, 슬라이딩 윈도우 레이어는 이전 슬라이딩 윈도우 레이어의 KV를, 풀 어텐션(Full-attention) 레이어는 이전 풀 어텐션 레이어의 KV를 공유합니다.
각 레이어는 고유한 Query 프로젝션을 여전히 계산하므로 레이어마다 독립적인 어텐션 패턴을 형성할 수 있습니다. 이 기법을 통해 전체 KV 캐시 크기를 약 절반 수준으로 줄였으며, 128K 토큰의 초장문 컨텍스트 환경(bfloat16 정밀도 기준)에서 E2B는 2.7 GB, E4B는 약 6 GB의 메모리를 절감할 수 있습니다.
---
레이어별 임베딩(PLE)을 통한 파라미터 효율 극대화
Gemma 4의 경량 'E' 라인업 모델에 도입된 두 번째 설계는 레이어별 임베딩(Per-Layer Embeddings, PLE)입니다. PLE는 트랜스포머 스택 전체의 연산량을 크게 늘리지 않으면서도 토큰별 고유 정보를 각 레이어에 공급하여 모델의 표현 용량(Capacity)을 확장하는 기술입니다.
- 유효 파라미터(Effective Parameters): Gemma 4 E2B는 트랜스포머 메인 연산 스택 기준 2.3B, 임베딩 테이블을 포함하면 총 5.1B 파라미터를 갖습니다. Gemma 4 E4B는 유효 4.5B, 총 8B 파라미터로 구성됩니다.
- 연산 및 전달 구조: 토큰 ID에 대한 레이어별 임베딩 룩업과 일반 토큰 임베딩의 선형 프로젝션이 결합된 후 레이어 수에 맞춰 분할됩니다. 트랜스포머 블록 내부에서는 어텐션 및 피드포워드(FFN) 잔차 연산을 수행한 뒤, 최종 은닉 상태($z$)로 레이어 전용 PLE 벡터를 게이팅(Gating)하여 모델 은닉 크기로 정규화 및 프로젝션한 후 추가 잔차로 더해집니다.
이러한 룩업 기반 임베딩 방식은 고비용의 어텐션 및 FFN 가중치를 전체 레이어에 걸쳐 확장하지 않고도 메모리 캐싱이 가능한 임베딩 테이블을 통해 모델 용량을 효과적으로 확보할 수 있도록 설계되었습니다.
---
오픈가중치 아키텍처 분석을 위한 실증적 접근법
최근 업계 연구소들이 공개하는 기술 보고서(Technical Reports)는 과거에 비해 세부 구현 사양이 생략되는 경향이 늘고 있습니다. 따라서 공개된 오픈가중치 모델의 실제 구조를 정확하게 파악하기 위해서는 정형화된 코드 분석 절차가 요구됩니다.
"동작하는 코드는 거짓말을 하지 않습니다(working code doesn’t lie). 기술 보고서의 설명이 부족할 때, Hugging Face 모델 허브의 설정 파일(config.json)과 transformers 라이브러리의 참조 구현 코드를 직접 검증하는 것이 가장 정확합니다."
상용 폐쇄형 모델(ChatGPT, Claude, Gemini 등)과 달리 가중치와 코드가 공유되는 오픈 모델은 `config.json`의 파라미터 설정과 실제 PyTorch 레이어 정의를 직접 대조함으로써 교차 레이어 KV 참조 방식이나 잔차 연결 순서와 같은 세부적인 아키텍처 변형을 정확히 파악할 수 있습니다.