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.
해결하는 문제
Recursive Language Models (RLM)는 표준 모델 프롬프트에 들어가기에는 너무 비용이 많이 들거나 너무 큰 대규모 컨텍스트를 분석하는 문제를 해결합니다. 전체 소스 텍스트를 LLM에 전송하는 대신, RLM은 모델이 제한된 Python REPL을 통해 데이터와 상호작용할 수 있게 하여, 필요한 텍스트 부분만 검색, 필터링, 처리할 수 있도록 합니다.
작동 방식
RLM은 지속 가능한 Python REPL 환경 내에 소스 텍스트를 변수로 저장합니다. 루트 모델은 쿼리와 지시사항만 받지만 전체 텍스트는 받지 않습니다. 이후 모델은 컨텍스트를 탐색하기 위한 Python 코드(예: 정규표현식 또는 슬라이싱 사용)를 생성하고, 로컬 계산을 수행하거나 특정 데이터 청크를 처리하기 위해 다른 LMs로 재귀적 하위 호출을 수행합니다. 이 과정은 모델이 최종 답변을 생성할 때까지 반복됩니다. 안전성과 비용 제어를 보장하기 위해 REPL은 RestrictedPython을 사용하여 격리된 하위 프로세스에서 실행되며, 하드 타임아웃과 선택적 POSIX 리소스 제한이 적용됩니다.
대상 사용자
직접 완료가 비용이 너무 많이 들거나 컨텍스트 창을 초과하는 거대한 문서나 데이터셋을 처리해야 하는 개발자 및 연구자에게 적합합니다. 또한 프로그래밍 기반 검색, 정확한 카운팅, 로컬 계산이 작업에 유리한 경우에 최적입니다.
주요 특징
- 외부화된 컨텍스트: 대규모 소스 텍스트를 프롬프트에 반복적으로 포함하지 않고 REPL 내에 보관합니다.
- 제한된 실행: API 호출, 토큰, 추정 비용, 경과 시간에 대해 트리 전체에 걸쳐 제한을 구현합니다.
- 프로바이더 이식성: LiteLLM를 통해 OpenAI, Anthropic, DeepSeek 및 Ollama 또는 llama.cpp를 통한 로컬 모델을 포함해 100개 이상의 프로바이더를 지원합니다.
- 관측 가능한 실행: 세부적인 실행 통계, 타입화된 실패, JSONL 형식의 완전한 실행 궤적을 제공합니다.
- 비용 최적화: 의사결정에는 고성능 루트 모델을 사용하고, 재귀적 하위 호출에는 저비용 모델을 사용할 수 있습니다.
- 답변 검증: 사용자 정의 결정론적 검증기를 지원하여 실행을 다시 시작하지 않고도 최종 답변을 거부하고 피드백을 제공할 수 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트