왜 중요한가
긴 문서를 처리할 때 발생하는 연산 병목 현상을 해결하기 위해, 별도의 추가 학습 없이도 중요한 정보만 골라내는 기술이다. 기존 방식과 달리 문장의 구조를 유지하면서 핵심 내용을 압축하여, 속도는 높이면서도 답변의 정확도는 유지하는 것이 특징이다.
핵심 기여
훈련이 필요 없는 계층적 프롬프트 압축 프레임워크
추가적인 모델 학습이나 파라미터 업데이트 없이도 다양한 LLM에 즉시 적용 가능한 구조 인식형 압축 방식을 도입했다.
하드웨어 병렬성을 극대화하는 페이지 단위 텐서 매핑
가변 길이의 컨텍스트를 고정된 크기의 페이지 단위 2D 텐서로 변환하여 GPU 연산 효율을 높이고 담화 구조를 보존한다.
의미론적 및 어휘적 특성을 결합한 하이브리드 플래너
Semantic Matcher와 Lexical Matcher를 결합하여 문맥의 의미와 정확한 키워드 일치를 동시에 고려하는 최적의 페이지 선택 전략을 구현했다.
문장 수준 스무딩을 통한 담화 일관성 유지
압축 과정에서 잘려나간 문장의 경계를 복원하는 Smoothing 메커니즘을 통해 압축된 텍스트의 문법적 완성도와 논리적 흐름을 보장한다.
핵심 아이디어 이해하기
Transformer 기반 LLM은 입력 길이가 길어질수록 Self-Attention 연산량이 시퀀스 길이의 제곱에 비례하여 늘어나는 Computation Wall 문제에 직면한다. 이를 해결하기 위해 기존에는 중요도가 낮은 토큰을 삭제하는 방식을 썼지만, 이는 문장의 의미를 파편화하고 모델을 새로 학습시켜야 하는 비용 문제가 있었다.
BEAVER는 토큰 단위가 아닌 페이지라는 구조적 단위로 접근한다. 텍스트를 의미 있는 덩어리로 나누고, 각 덩어리의 중요도를 LLM의 내부 Embedding 정보를 활용해 계산한다. 이는 마치 책에서 중요한 페이지들만 골라 요약본을 만드는 것과 유사한 원리다.
특히 Dual-path Pooling을 통해 전체적인 맥락과 핵심 키워드를 동시에 포착한다. 이를 통해 훈련 없이도 모델이 어떤 정보에 집중해야 하는지 정확히 판단할 수 있게 된다.
결과적으로 128k에 달하는 초장문 컨텍스트에서도 추론 지연 시간을 26.4배 단축하면서도, RULER 벤치마크 등에서 기존 SOTA 모델보다 월등히 높은 정확도를 보여준다.
방법론
Segmenter 단계에서는 입력 시퀀스를 줄바꿈이나 헤더 같은 자연스러운 구분자를 기준으로 논리적 세그먼트로 분할한다. 이후 고정된 용량을 가진 페이지 단위로 패킹하여 2D 페이지 텐서를 생성함으로써 GPU 연산 효율을 최적화한다.
PageEncoder는 LLM의 Embedding을 입력받아 각 페이지의 특징을 추출한다. 이때 In-context ITF 가중치를 계산하여 흔하지만 정보량이 적은 토큰의 영향력을 줄인다. [토큰 빈도를 입력으로] -> [로그 연산을 통한 역빈도 계산을 수행해] -> [가중치 점수를 얻고] -> [이 값이 클수록 해당 토큰이 문맥상 희소하고 중요한 정보임을 의미한다].
QueryPlanner는 Semantic Matcher와 Lexical Matcher를 통해 쿼리와의 관련성을 점수화한다. Semantic Matcher는 쿼리 벡터와 페이지 벡터 사이의 코사인 유사도를 계산한다. [두 벡터의 내적을 각각의 크기 곱으로 나누어] -> [유사도 점수를 산출하고] -> [이 값이 1에 가까울수록 의미적으로 밀접함을 나타낸다].
마지막으로 Sentence Smoothing 단계에서는 선택된 페이지 인덱스를 다시 토큰 스팬으로 매핑한다. 이때 잘린 문장의 시작과 끝을 가장 가까운 문장 경계까지 확장하여 문법적 완전성을 복원한다.
주요 결과
LongBench와 ZeroSCROLLS 벤치마크에서 BEAVER는 LongLLMLingua와 같은 기존 SOTA 방식과 대등하거나 우수한 성능을 기록했다. 특히 단일 문서 QA에서 40.7점을 기록하며 새로운 최고 성능을 달성했다.
RULER 벤치마크의 멀티 니들 검색 작업에서 압도적인 성능을 보였다. 기존 방식들이 한 자릿수 정확도에 머물 때, BEAVER는 모든 단일 니들 작업에서 100% 정확도를 유지하며 평균 83.7점을 기록해 2위 모델을 크게 앞질렀다.
효율성 측면에서 128k 컨텍스트 기준 LongLLMLingua 대비 26.4배의 속도 향상을 보였다. 실제 처리 시간은 1.20초에 불과하여 고처리량 애플리케이션에 적합함을 입증했다.
실무 활용
추가 학습 없이 기존 LLM 파이프라인에 즉시 통합 가능한 플러그앤플레이 모듈이다. 특히 법률, 의료 등 문장의 구조적 무결성이 중요한 도메인에서 긴 문서를 효율적으로 처리하는 데 유용하다.
- 대규모 코드베이스 분석 및 버그 탐지
- 수백 페이지 분량의 법률 문서 검토 및 요약
- 멀티 에이전트 시스템의 긴 대화 기록 압축
- RAG 시스템의 검색 결과 재구성 및 최적화
기술 상세
BEAVER는 비정형 시퀀스 압축을 최적화된 텐서 연산으로 변환하는 계층적 페이지 선택 아키텍처를 채택했다. 이는 토큰 단위의 세밀한 제거 대신 구조적 무결성을 우선시하는 접근법이다.
PageEncoder는 Weighted Average Pooling과 Max Pooling을 결합한 Dual-path 구조를 사용하여 페이지 표현력을 강화했다. 이는 확률 기반 프루닝에서 발생하는 의미론적 붕괴를 방지한다.
QueryPlanner는 인간의 인지 모델을 모방한 세 가지 구조적 사전 정보를 통합한다. Anchors는 문서의 메타데이터를, Flow는 쿼리 직전의 문맥을, Flash는 쿼리와 가장 관련 높은 핵심 증거를 보존한다.
훈련이 필요 없는 특성 덕분에 0.6B부터 32B까지 다양한 규모의 모델에서 일관된 성능 유지율을 보이며 뛰어난 확장성을 입증했다.
한계점
페이지 단위의 조밀함으로 인해 토큰 단위의 정밀한 프루닝보다는 미세한 중복 정보가 남을 수 있다. 또한 쿼리와 직접적인 겹침이 적고 복잡한 추론이 필요한 멀티홉 시나리오에서는 성능 한계가 발생할 수 있다.
키워드
코드 예제
@array_function_dispatch(_put_dispatcher)
def put(a, ind, v, mode='raise'):
\"\"\"
>>> operation1([[0, 1], [0, 5]], axis=1)
array([1, 5])
\"\"\"
# ... (중략)
a = [[1, 2, 3], [4, 5, 6]]
b = operation1(a, axis=-1)
print(b)BEAVER가 코드의 구조적 구분자와 예시(docstring)를 보존하여 정확한 추론을 가능하게 하는 예시
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.