grishahq/recursive-llm

Recursive Language Models for efficient long-context processing. Analyze 1M+ tokens by storing context in a Python REPL while reducing LLM token usage.

해결하는 문제

재귀적 언어 모델(RLM)은 표준 LLM 프롬프트에 들어가기엔 너무 크거나 비용이 많이 드는 극도로 큰 컨텍스트를 분석하는 문제를 해결합니다. 전체 소스 텍스트를 모델에 전송하는 대신, RLM은 제한된 Python REPL에 데이터를 유지하고, 모델이 필요한 부분만 선택적으로 검색하고 계산하며 처리할 수 있도록 합니다.

작동 방식

RLM은 지속 가능한 Python REPL 환경 내에 소스 컨텍스트를 변수로 저장합니다. 루트 모델은 쿼리와 지시사항만 받지만 전체 텍스트는 받지 않습니다. 이후 모델은 Python 코드를 사용하여 컨텍스트와 상호작용하며 정규표현식 검색, 특정 문자 범위 확인, 로컬 계산 등의 작업을 수행합니다.

필요할 경우 모델은 특정 작업을 다른 모델 호출로 위임할 수 있습니다: 설정된 재귀 깊이가 허용하는 경우 일반 LLM 호출(llm_query) 또는 자식 RLM(rlm_query)을 생성할 수 있습니다. 이 과정은 모델이 특정 종료 함수를 통해 최종 답변을 제공할 때까지 반복됩니다.

대상 사용자

비용과 토큰 사용량을 제한해야 하는 거대 문서의 고정밀 분석이 필요한 애플리케이션을 개발하는 개발자에게 적합합니다. 정확한 카운팅, 필터링, 로컬 Python 계산이 필요한 작업에 특히 유용합니다.

주요 특징

  • 외부 컨텍스트: 프롬프트에 반복하지 않고 REPL에 대규모 소스 텍스트를 유지합니다.
  • 제한된 실행: 호출 횟수, 토큰 수, 추정 비용, 경과 시간에 대해 트리 전체의 제한을 구현합니다.
  • 프로바이더 이식성: LiteLLM를 통해 OpenAI, Anthropic, DeepSeek 및 로컬 모델(Ollama, llama.cpp) 포함 100개 이상의 프로바이더를 지원합니다.
  • 제한된 실행: 보안을 위해 하드 타임아웃과 리소스 제한이 있는 RestrictedPython 워커를 사용합니다.
  • 관측 가능한 실행: JSONL 형식으로 각 실행의 상세 통계, 타입화된 실패, 완전한 실행 궤적을 제공합니다.
  • 사용자 정의 검증: 개발자가 final_answer_validator를 정의하여 답변을 거부하고 모델에 피드백을 제공하면서 실행을 종료하지 않고도 가능합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트