[논문 리뷰] Recursive Language Models: LLM이 스스로를 호출하여 컨텍스트의 한계를 넘어서다
TL;DR
대형 언어 모델(LLM)은 놀라운 성능을 보여주지만, '컨텍스트 윈도우'라는 명확한 한계를 가집니다. 이 논문은 이러한 한계를 극복하기 위해 **재귀적 언어 모델(Recursive Language Models, RLM)**이라는 새로운 프레임워크를 제안합니다. RLM은 LLM이 스스로를 재귀적으로 호출하여 아무리 긴 입력이라도 효과적으로 처리할 수 있도록 합니다. 실험 결과, RLM은 기존의 긴 컨텍스트 처리 기법에 비해 평균 28.3%의 성능 향상을 보였으며, 입력 길이가 길어질수록 성능 저하가 완만했습니다. RLM은 LLM이 단순히 텍스트를 생성하는 것을 넘어, 문제 해결 전략을 동적으로 수립하고 실행하는 '에이전트'로서의 가능성을 명확히 보여주었습니다.
연구 배경 및 동기
대형 언어 모델(LLM)은 자연어 처리 분야에서 혁명을 일으켰습니다. 그러나 고정된 '컨텍스트 윈도우'라는 근본적인 제약으로 인해 입력 길이가 긴 작업에서는 성능이 급격히 저하됩니다. 예를 들어, 수백만 토큰 길이의 책 전체를 정밀하게 요약하거나, 방대한 코드베이스 전체의 취약점을 분석하는 작업은 기존 LLM에게는 거의 불가능에 가까운 도전 과제입니다.
이러한 한계를 극복하기 위해 여러 접근법이 제안되었지만, 여전히 정보의 손실이나 불완전한 컨텍스트 이해라는 문제에 직면해 있습니다. 이 논문은 이러한 문제를 해결하기 위해 **재귀적 언어 모델(Recursive Language Models, RLM)**이라는 새로운 패러다임을 제안합니다. RLM의 핵심은 LLM이 마치 숙련된 프로그래머처럼, 거대한 문제를 작은 단위로 나누고 각 단위를 해결하기 위해 스스로를 재귀적으로 호출하는 것입니다. 이는 LLM이 단순한 텍스트 생성기에서, 문제 해결 전략을 수립하고 실행하는 진정한 '에이전트'로 진화하는 중요한 전환점을 제시합니다.
관련 연구
기존에 LLM의 컨텍스트 윈도우 한계를 극복하기 위해 제안된 대표적인 방법들은 다음과 같습니다.
| 연구 방법 | 핵심 아이디어 | 한계점 | RLM과의 차별점 |
|---|---|---|---|
| RAG (Retrieval-Augmented Generation) | 외부 데이터베이스에서 관련성 높은 문서 조각을 검색하여 프롬프트에 추가합니다. | 검색 품질에 의존적이며, 전체 문서의 구조적, 순차적 맥락을 파악하기 어렵습니다. | RLM은 외부 DB 없이 주어진 컨텍스트 자체를 동적으로 탐색하고 분해하여 문제를 해결합니다. |
| 슬라이딩 윈도우 (Sliding Window) | 긴 입력을 고정된 크기의 여러 조각으로 나누어 순차적으로 처리하고 결과를 합칩니다. | 조각 간의 상호작용이 제한되어, 문서 전체를 아우르는 복잡한 관계를 놓치기 쉽습니다. | RLM은 재귀적 호출을 통해 상위 수준에서 하위 문제들의 결과를 종합하므로, 계층적 정보 통합이 가능합니다. |
| 메모리 네트워크 (Memory Networks) | 이전의 계산 결과를 외부 메모리에 저장하고, 필요할 때 이를 참조하여 컨텍스트를 확장합니다. | 메모리 관리의 복잡성이 높고, 어떤 정보를 저장하고 인출할지 결정하는 것이 어렵습니다. | RLM은 명시적인 메모리 관리 대신, 문제 해결 계획을 동적으로 수립하고 필요한 정보만 하위 호출로 전달합니다. |
핵심 기여
- 재귀적 언어 모델(RLM) 프레임워크 제안: LLM이 추론 시점에 스스로를 재귀적으로 호출하여 긴 입력을 효과적으로 처리하는 새로운 패러다임입니다.
- REPL 환경을 통한 동적 실행: RLM이 작동하는 REPL(Read-Eval-Print Loop) 환경을 구현하여, 모델이 파이썬 코드를 생성하고 실행함으로써 주어진 컨텍스트를 동적으로 분석하고 처리할 수 있게 했습니다.
- 획기적인 성능 개선: LongBenchPro 벤치마크에서 RLM-Qwen3-8B 모델이 기존 모델 대비 평균 28.3%의 성능 향상을 달성하여 RLM 패러다임의 실질적 효용성을 입증했습니다.
- 코드 공개 및 재현성 확보: 연구 결과를 누구나 재현하고 확장할 수 있도록 GitHub에 코드를 공개하여 연구의 투명성을 높였습니다.
제안 방법론
RLM의 핵심 아이디어는 LLM이 해결해야 할 문제가 자신의 컨텍스트 윈도우보다 크면, 문제를 작은 하위 문제(sub-problems)로 나누고, 각 하위 문제를 해결하기 위해 자기 자신(LLM)을 다시 호출하는 것입니다. 이는 복잡한 문제를 해결하기 위해 재귀 함수를 작성하는 개발자의 사고방식과 매우 유사합니다.
1. 추론 시점의 재귀적 프레임워크
RLM은 모델을 새로 훈련하는 것이 아니라, 추론(inference) 시점에 적용되는 프레임워크입니다. LLM은 긴 프롬프트를 직접 처리하는 대신, 이 프롬프트를 '외부 환경'의 일부로 간주합니다. 그리고 이 환경과 상호작용하며 프롬프트를 탐색하고, 분해하며, 필요한 부분에 대해 스스로를 재귀적으로 호출하여 문제를 해결합니다.
2. REPL 환경: LLM의 동적 작업 공간
RLM은 LLM에게 **REPL(Read-Eval-Print Loop)**과 유사한 가상 환경을 제공하여 코드 실행 능력을 부여합니다. 이 환경에서 LLM은 다음과 같은 작업을 수행하며 문제에 접근합니다.
- 변수 할당: 수십만 토큰에 달하는 긴 프롬프트를
long_text와 같은 변수에 할당합니다. - 코드 생성 및 실행: 할당된 변수를 조작하는 Python 코드를 생성하고 실행합니다. 예를 들어, 긴 텍스트를 문단별로 나누거나, 특정 키워드를 포함한 부분만 필터링하는 코드를 작성할 수 있습니다.
- 재귀 호출: 코드 내에서
rlm_call()과 같은 특수 함수를 사용하여 자기 자신(LLM)을 다시 호출합니다. 이때, 분할된 데이터 조각이나 요약된 정보를 인자로 넘겨주어 하위 문제를 처리하도록 명령합니다.
예제: RLM의 작동 방식
LLM이 "아주 긴 소설 텍스트에서 '알렉스'라는 인물의 행적을 요약하라"는 요청을 받았다고 가정해 봅시다.
# LLM이 생성하고 REPL 환경에서 실행하는 코드 (개념적 예시)
# 1. 긴 텍스트를 변수에 할당
long_text = """... (수십만 토큰의 소설 텍스트) ..."""
# 2. 텍스트를 챕터별로 분할
chapters = long_text.split("CHAPTER")
# 3. 각 챕터에서 '알렉스' 관련 내용만 요약하기 위해 재귀 호출
summaries = []
for chapter in chapters:
if "알렉스" in chapter:
# rlm_call은 자기 자신(LLM)을 다시 호출하는 특수 함수
summary = rlm_call(f"다음 텍스트에서 '알렉스'의 행적만 요약해줘: {chapter}")
summaries.append(summary)
# 4. 수집된 요약본들을 최종적으로 종합하기 위해 다시 한번 재귀 호출
final_summary = rlm_call(f"다음 요약본들을 합쳐서 '알렉스'의 전체 행적을 시간 순서대로 정리해줘: {' '.join(summaries)}")
# 5. 최종 결과를 출력
FINAL(final_summary)
3. 수학적 모델링
RLM 함수는 개념적으로 다음과 같이 정의할 수 있습니다. 프롬프트 가 주어졌을 때,
여기서 는 모델의 컨텍스트 윈도우 크기, 은 원본 프롬프트 를 분할한 하위 문제들이며, Synthesize는 분할된 문제들의 해결 결과()를 종합하여 최종 답을 생성하는 또 다른 LLM 호출을 의미합니다.
실험 설정
데이터셋 및 평가 지표
- 데이터셋: 긴 컨텍스트 추론 능력을 평가하기 위해 설계된 LongBenchPro 벤치마크의 750개 영어 태스크를 사용했습니다.
- 평가 지표: 정확도(Accuracy), F1 스코어(F1 Score)를 사용하여 모델의 성능을 정량적으로 측정했습니다.
모델 및 베이스라인
- 기반 모델: RLM 프레임워크의 기반 LLM으로 Qwen3-8B 모델을 사용했습니다.
- 베이스라인: RLM의 성능을 비교하기 위해 기존의 긴 컨텍스트 처리 기법들(RAG, 슬라이딩 윈도우 등)을 동일한 기반 모델에 적용하여 평가했습니다.
실험 결과 분석
주요 결과
| 모델 | 정확도 | F1 스코어 |
|---|---|---|
| RLM-Qwen3-8B | 92.5% | 91.8% |
| RAG | 85.3% | 84.7% |
| 슬라이딩 윈도우 | 80.2% | 79.5% |
실험 결과, RLM은 기존의 긴 컨텍스트 처리 기법들에 비해 월등한 성능을 보였습니다. 특히, 입력 길이가 길어질수록 기존 방법들의 성능은 급격히 하락한 반면, RLM은 완만한 성능 저하를 보여 확장성(scalability) 측면에서 큰 강점을 입증했습니다.
Ablation Study (제거 연구)
RLM의 각 구성 요소가 성능에 미치는 영향을 분석하기 위해 Ablation Study를 수행했습니다. REPL 환경, 재귀 호출, 코드 생성 기능을 각각 제거했을 때 모두 상당한 성능 저하가 관찰되었습니다. 이는 RLM의 핵심 구성요소들이 시너지를 내며 문제 해결 능력에 필수적으로 기여하고 있음을 보여줍니다. 예를 들어, REPL 환경이 없으면 모델은 입력을 동적으로 분해하고 탐색할 수 없어 복잡한 문제에 대처하지 못했습니다.
비판적 평가
강점
- 혁신적인 접근법: LLM이 스스로의 한계를 인지하고 동적으로 문제 해결 전략을 수립하는 '에이전트'로서의 가능성을 제시한 혁신적인 방법론입니다.
- 뛰어난 확장성: 입력 길이가 길어져도 재귀적으로 문제를 분해하므로, 이론적으로는 무한한 길이의 입력도 처리할 수 있는 잠재력을 가집니다.
- 높은 효율성: 전체 텍스트를 한 번에 처리하는 대신, 필요한 부분만 잘라내어 하위 LLM이 처리하도록 함으로써 계산 자원을 효율적으로 사용합니다.
한계점과 개선 방향
- 속도 문제: 현재 구현은 재귀 호출을 순차적으로 처리하여 여러 번의 LLM 호출로 인한 지연 시간이 큽니다. 각 하위 문제들이 독립적일 경우, 이를 병렬(비동기)으로 처리할 수 있는 견고한 실행 엔진이 필요합니다.
- 출력 형식의 불안정성: 최종 답변을
FINAL()태그로 구분하는 방식은 모델이 때때로 태그를 누락하거나 중간 결과에 잘못 사용하는 등 불안정성을 보입니다. 이는 향후 모델 학습 단계에서 특수 토큰을 도입하는 등 근본적인 해결이 필요합니다.
재현성 평가
논문에서 제안한 방법론은 GitHub에 공개된 코드를 통해 재현 가능합니다. 코드와 데이터셋, 실험 환경에 대한 설명이 명확하게 제공되어 연구 결과의 재현성이 높다고 평가됩니다.
향후 연구 방향
RLM은 LLM의 한계를 극복할 수 있는 강력한 프레임워크를 제시했지만, 여전히 개선의 여지가 많습니다. 향후 연구는 다음과 같은 방향으로 진행될 수 있습니다.
- 병렬 처리 최적화: 비동기 호출을 지원하는 실행기를 개발하여 RLM의 처리 속도를 획기적으로 개선할 수 있습니다.
- RLM 네이티브 모델: 추론 시점의 프레임워크를 넘어, RLM의 재귀적 사고방식을 학습 데이터에 반영하여 모델을 직접 미세조정(fine-tuning)한다면, 훨씬 더 안정적이고 정교한 문제 해결 능력을 갖출 수 있을 것입니다.
- 다양한 도메인 적용: 텍스트뿐만 아니라 이미지, 오디오 등 멀티모달 데이터로 RLM의 적용 범위를 확장하는 연구도 기대됩니다.
실무 적용 가이드
RLM의 개념을 실무에 적용하고자 할 때 고려할 사항은 다음과 같습니다.
- 문제 정의: 해결하려는 문제가 재귀적으로 분해 가능한 구조인지 먼저 분석해야 합니다. (예: 문서 요약, 코드 분석, 법률 문서 검토)
- 프롬프트 엔지니어링: LLM이 문제를 분해하고, 코드를 생성하며, 재귀 호출을 수행하도록 유도하는 정교한 시스템 프롬프트 설계가 핵심입니다.
- 실행 환경 구축: LLM이 생성한 코드를 안전하게 실행하고,
rlm_call과 같은 특수 함수를 처리할 수 있는 REPL 환경을 구현해야 합니다. 보안을 위해 코드 실행은 격리된 샌드박스 환경에서 이루어져야 합니다. - 비용 및 지연 시간 관리: 여러 번의 LLM API 호출은 비용과 지연 시간을 증가시킵니다. 비동기 처리, 결과 캐싱 등의 최적화 전략을 반드시 고려해야 합니다.
결론
재귀적 언어 모델(RLM)은 LLM의 고질적인 한계였던 컨텍스트 윈도우 문제를 극복할 수 있는 효과적이고 실용적인 해법을 제시합니다. RLM은 단순히 긴 텍스트를 처리하는 기술을 넘어, LLM이 스스로의 한계를 인지하고 문제 해결을 위한 전략을 동적으로 수립하고 실행하는 '메타 추론(meta-reasoning)' 에이전트로서의 가능성을 보여주었다는 점에서 큰 의의가 있습니다. 앞으로 RLM 패러다임에 맞춰 LLM을 직접 훈련한다면, 우리는 훨씬 더 복잡하고 거대한 실제 세계의 문제들을 해결할 수 있는 강력한 AI를 마주하게 될 것입니다.
참고 자료
- 논문 링크: arXiv:2512.24601
- 코드 저장소: GitHub - alexzhang13/rlm
- 관련 자료: LongBenchPro 벤치마크, RAG, 슬라이딩 윈도우, 메모리 네트워크 연구 자료

![[논문 리뷰] Recursive Language Models](/assets/images/blog/20260213-paper-2512-24601-recursive-language-models.jpg)