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)解决了分析非常大上下文的问题,这些上下文要么成本过高,要么过大而无法放入标准模型的提示中。RLM 不会将整个源文本发送给 LLM,而是允许模型通过受限的 Python REPL 与数据交互,从而仅搜索、过滤和处理文本中必要的部分。
工作原理
RLM 将源文本存储在持久化的 Python REPL 环境中的一个变量内。根模型接收查询和指令,但不接收完整文本。随后,模型生成 Python 代码来探索上下文(例如使用正则表达式或切片),执行本地计算,或对其他 LMs 进行递归子调用以处理特定数据块。此过程持续进行,直到模型生成最终答案。为确保安全性和成本控制,REPL 在使用 RestrictedPython 的隔离子进程中运行,并设置硬性超时和可选的 POSIX 资源限制。
适用人群
RLM 专为需要处理超大文档或数据集的开发者和研究人员设计,这些场景下直接完成任务成本过高或超出上下文窗口,且任务受益于程序化搜索、精确计数或本地计算。
特色亮点
- 外部化上下文:将大源文本保留在 REPL 中,而非在提示中重复出现。
- 执行范围可控:对 API 调用、令牌数、估算成本和经过时间实施全树范围的限制。
- 提供方可移植性:通过 LiteLLM 支持超过 100 个提供方,包括 OpenAI、Anthropic、DeepSeek,以及通过 Ollama 或 llama.cpp 的本地模型。
- 可观测运行:提供详细的运行统计、类型化失败和 JSONL 格式的完整执行轨迹。
- 成本优化:允许使用高能力根模型进行决策,而递归子调用使用更便宜的模型。
- 答案验证:支持自定义确定性验证器,可在不重启运行的情况下拒绝最终答案并提供反馈。
相关
- 项目
- 项目
- 项目
- 项目
- 项目