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 を定義することで、回答を拒否し、モデルにフィードバックを提供しつつ実行を終了せずに済みます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト