RLM: AI의 궁극적인 진화? Recursive Language Models

발행: (2026년 1월 14일 오전 02:52 GMT+9)
14 min read
원문: Dev.to

I’m ready to translate the article for you, but it looks like the body of the text didn’t come through—only the source link is present. Could you please provide the content you’d like translated? Once I have the full text, I’ll keep the source line unchanged and translate the rest into Korean while preserving all formatting.

간단한 버전

AI에게 두 번째 행동을 시키면, 결과가 놀라울 수 있습니다.

현재의 “더 큰 컨텍스트” 경쟁이 충분하지 않은 이유

  • 컨텍스트‑윈도우 무기 경쟁

    • Gemini: 수백만 토큰 규모의 윈도우
    • GPT 시리즈: 지속적으로 윈도우 확대 중
    • Llama: 수천만 토큰 규모를 목표로 함
  • 문제점 – 윈도우가 크다고 해서 모델이 모든 내용을 읽고 기억할 수 있는 것은 아니다.

  • Retrieval‑Augmented Generation (RAG)

    1. 긴 문서를 청크(조각)로 분할한다.
    2. 청크를 벡터 데이터베이스에 저장한다.
    3. 질의에 맞는 관련 청크를 검색해 모델에 입력한다.

    장점: 전체 문서를 한 번에 입력할 필요가 없다.
    단점: 검색 품질에 크게 좌우되며, 전체 텍스트의 포괄적인 정보를 필요로 하는 질문에 취약하다.

  • 공통적인 결함 – 이러한 접근 방식 모두 모델을 수동적인 존재로 만든다. 모델은 인간(또는 파이프라인)이 정보를 조직·분할·제공하기를 기다려야 한다. 진정한 지능은 이런 제한에 얽매여서는 안 된다.

Source:

MIT의 파격적인 아이디어: Recursive Language Models (RLM)

“모델이 스스로를 읽게 하면 어떨까? 스스로 찾아보게? 스스로 조각내게? 스스로 호출하게?”

핵심 통찰

  • 컨텍스트를 **“입력”**에서 **“환경”**으로 전환한다.
  • 모델은 더 이상 하나의 긴 토큰 문자열을 받지 않는다.
  • 대신 프로그램처럼 전체 컨텍스트를 REPL (Read‑Eval‑Print Loop) 환경 안의 변수로 취급하여 언제든 조회, 슬라이스, 검색, 필터링, 재귀 호출이 가능하도록 만든다.

이제는 “정보를 공급받는” 것이 아니라 “정보를 능동적으로 탐색하는” 것이다.

비유

  • 이전: “읽을 책을 여기 줍니다.”
  • 현재: “검색하고, 해부하고, 요약하고, 당신만의 도우미를 활용할 수 있는 도서관을 여기 제공합니다.”

이 접근 방식은:

  1. 트랜스포머 아키텍처의 컨텍스트 제한을 우회한다.
  2. 모델에게 절차적으로 세계에 접근할 수 있는 능력을 처음으로 부여한다.

Live demo (video)

Watch the demo video

Task: “Print me the first 100 powers of two, each on a newline.”

What the chatbot does

  1. Exploration & inspection

    • 컨텍스트의 작은 조각을 출력합니다.
    • 구조를 확인하고, 헤더, 패턴, 반복되는 구문을 찾습니다.
    • 문자열 슬라이싱과 정규 표현식을 사용해 데이터 조직을 파악합니다.
  2. Programmatic filtering & indexing

    • split(), find(), re.findall(), 루프, 조건문 등 Python 메서드를 적용합니다.
    • 방대한 입력을 중요한 부분으로 좁히고, 초기 단계에서 잡음(noise)을 버립니다.
  3. Task decomposition

    • 주요 문제를 모델 컨텍스트 창에 편하게 들어갈 수 있는 작고 명확한 하위 작업들로 나눕니다.
    • 하위 작업의 분할은 모델이 탐색 결과를 기반으로 스스로 결정합니다.
  4. Recursive self‑calls

    • 각 하위 작업마다 모델이 자신을 호출하거나(또는 작은 헬퍼 모델을) 호출합니다.
    • 이러한 호출들은 단일 체인이 아니라 추론 트리를 형성합니다.
    • 각 호출은 부분 결과를 REPL 변수에 저장하고 반환합니다.
  5. Aggregation & synthesis

    • Python 로직을 사용해 요약을 결합하고, 결과를 비교하며, 쌍별 관계를 계산하거나 구조화된 출력(리스트, 표, 긴 문서)을 조립합니다.
  6. Verification & self‑checking

    • 분석의 일부를 재실행하거나, 다른 재귀 호출과 교차 검증하거나, 코드를 이용해 논리를 검증할 수 있습니다.
    • 인간이 두 번 검토하는 것과 유사한 다중 패스 추론을 제공합니다.
  7. Final output construction

    • 변수를 통해 답변을 조각조각 만들고, 최종적으로 조합된 결과를 반환합니다.
    • 전통적인 LLM이 만들기 어려운 극히 길고 구조화된 출력을 가능하게 합니다.

RLM을 특별하게 만드는 요소는?

전체 크기로 이미지를 보려면 엔터를 누르거나 클릭하세요

(이미지 자리 표시자 – 적절한 그림을 삽입하세요.)

  • 수동적인 독자가 아니라 능동적인 문제 해결자입니다.
  • 입력을 작업 공간으로 간주하여 코드로 탐색하고, 검색하고, 분해할 수 있습니다.
  • 무엇을 읽을지, 어떻게 정보를 나눌지, 그리고 언제 다시 자신을 호출해 더 작은 조각을 처리할지를 스스로 결정합니다.
  • 프로그래밍 접근, 재귀, 자체 검증을 활용함으로써 긴 입력이나 복잡한 입력으로 인한 혼란을 피하고, 작업이 어려워져도 안정적으로 동작합니다.

결과: RLM은 대규모 컨텍스트, 고복잡도 추론, 그리고 긴 구조화된 출력을 처리할 수 있어 전통적인 언어 모델이 따라올 수 없는 능력을 제공합니다.

RLM은 정확히 어떻게 작동하나요?

Enter 키를 누르거나 클릭하면 전체 크기로 이미지를 볼 수 있습니다

(이미지 자리 표시자 – 적절한 그림을 삽입하세요.)

전통적인 LLM 워크플로우

  1. Feed 긴 토큰 문자열을 입력합니다.
  2. Single forward inference 가 답을 생성합니다.

컨텍스트 길이가 모델의 윈도우를 exceeds 하면, 모델은 입력을 잘라내거나 외부 검색에 의존하게 되며, 이 둘 모두 수동 읽기 제한을 다시 도입합니다.

RLM 워크플로우 (대조)

단계전통적인 LLMRLM
Input handling단일 통합 토큰 시퀀스입력은 mutable environment (REPL 변수) 입니다.
Reading수동적, 선형 스캔Active exploration (슬라이싱, 검색, 정규식)
Reasoning단일 사고 흐름Recursive tree of self‑calls
Memory고정된 컨텍스트 윈도우변수를 통한 무제한 작업 공간
Output토큰 예산에 의해 제한됨Incremental assembly of arbitrarily long results
Verification선택적 사후 검증재실행을 통한 내장 self‑checking

TL;DR

  • Recursive Language Models 은 모델을 interactive agent 로 전환하여 필요에 따라 읽고, 검색하고, 슬라이스하고, 자신을 호출 할 수 있게 합니다.
  • 이 패러다임은 context‑window barrierbreaks 하고, 규모에 맞게 procedural, multi‑step reasoningenables 합니다.
  • 그 결과는 방대한 복잡한 작업을 처리하기 위한 more robust, scalable, and intelligent 시스템입니다.

RLM 접근 방식

수십만에서 수백만 개의 토큰을 다룰 때, 전통적인 방법은 누군가에게 전쟁과 평화 전체를 한 번에 읽고 질문에 답하도록 요구하는 것과 같습니다—결국 붕괴됩니다.

RLM (Retrieval‑augmented Language Model)은 완전히 다른 길을 택합니다.

  1. 전체 긴 컨텍스트를 Python REPL에 변수(예: context)로 로드합니다.
  2. 모델은 더 이상 토큰을 직접 “먹지” 않고; 대신 코드를 작성하여 접근합니다. 이는 프로그래머와 같은 방식입니다.

이는 모델에게 처음으로 “도구”가 생긴 순간입니다. 모델은 다음을 할 수 있습니다:

  • 특정 구간 보기

    print(context[:500])
  • 키워드 검색

    re.findall("festival", context)
  • 챕터별 분할

    part1, part2 = context.split("Chapter 2")
  • 하위 작업 구성

    sub_answer = llm_query(f"Please summarize {part1}")
  • 재귀적으로 자신을 호출

    result = rlm_query(sub_prompt)

이렇게 모델에 “손”과 “눈”이 생깁니다. 이제는 수동적인 언어 생성기가 아니라 능동적으로 탐색하고, 분해하고, 계획을 세울 수 있는 지능형 에이전트가 됩니다.

논문의 예시들은 생생합니다:

  • 모델은 먼저 구조를 확인하기 위해 처음 100줄을 출력하고, 이를 바탕으로 어떻게 슬라이스할지 결정합니다.
  • 키워드를 사용해 관련 가능성이 있는 문단을 필터링합니다.
  • 작업을 여러 하위 문제로 나누고, 재귀적으로 자신을 호출해 해결합니다.

핵심: 이것은 프롬프트 엔지니어링이 아니라 프로그램 엔지니어링입니다.

RLM의 한계는 무엇인가?

제한 사항설명
오버헤드 및 복잡성짧은 입력이나 간단한 작업에서는 기본 모델이 더 빠르고 효율적입니다. RLM은 환경 상호작용과 재귀 호출을 추가하기 때문입니다.
동기식, 차단형 서브‑모델 호출전체 지연 시간이 증가하고 응답이 느려질 수 있습니다.
고정된 시스템 프롬프트다양한 작업 유형에 맞게 조정되지 않아 성능 향상이 제한됩니다.
보안 및 안전성 문제모델이 REPL 안에서 코드를 작성하고 실행하도록 허용하면 격리, 안전성, 예측 가능성 등에 대한 엔지니어링 과제가 발생합니다.

요약: RLM은 어려운 대규모 문제에서 빛을 발하지만, 단순 작업에 대해서는 표준 모델보다 무겁고 느리며 복잡합니다.

나의 인상

RLM은 “우리는 어떻게 컨텍스트를 압축할까?”에서 “우리는 어떻게 모델에게 숙련된 개발자처럼 컨텍스트를 능동적으로 관리하도록 가르칠까?” 로의 전환을 의미한다.

컨텍스트 제한을 더 큰 윈도우나 손실이 있는 요약으로 극복하려는 대신, RLM은 제약을 수용하고 그 안에서 작동하는 방법을 학습한다—프로그램적으로 위임하고, 필터링하며, 집중한다. 이는 단순히 엔지니어링이 아니라 학습과 함께 확장되는 스캐폴딩이다.

지원 및 연결

  • Patreon:
  • 예약하기:
  • Buy Me a Coffee (콘텐츠 지원):
  • 뉴스레터 구독 (무료):
Back to Blog

관련 글

더 보기 »

파트 4 — 검색은 시스템이다

왜 대부분의 실용적인 GenAI 시스템은 Retrieval‑Centric인가 - 대형 언어 모델(LLM)은 정적 데이터로 학습되며, 이는 다음과 같은 문제를 초래한다: - 오래된 지식 - 도메인 누락…