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支持超过100个提供方,包括OpenAI、Anthropic、DeepSeek以及本地模型(Ollama、llama.cpp)。
- 受限执行: 使用带有硬超时和资源限制的Spawned RestrictedPython工作进程,确保安全性。
- 可观测运行: 提供详细的每运行统计、类型化失败和JSONL格式的完整执行轨迹。
- 自定义验证: 允许开发者定义
final_answer_validator,在不结束运行的情况下拒绝答案并为模型提供反馈。
相关
- 项目
- 项目
- 项目
- 项目
- 项目