HTNプランナーは、OpenAIのGPTおよび階層タスクネットワーク(HTN)アーキテクチャを使用して、詳細な計画を自動的に生成します。システムは、LLMを使用して目標を達成するためのタスクを生成し、それを実行できるサブタスクに繰り返し分解します。
最良の結果を得るには、GPT-4を使用しますが、他のOpenSource LLMSではAPIの変更で十分かもしれません
コンポーネント:
- 分解 - タスクを取り、最大深度に達するか、計画が失敗するまでサブタスクに分解します。システムは、候補の分解を追跡し、最適なオプションを選択しようとします。結果が良い場合は、早めに終了する可能性があります。
- 再計画 - 計画が失敗したり、計画の一部が失敗した場合、再計画が発生します
- タスクの実行 - 実行可能ユニットとしてタスクを識別します
- 状態追跡-LLMは、実行が発生したときに状態を追跡および更新します
- テキスト解析 - LLMによって生成された自然言語応答から情報を解析および抽出します
- タスク変換 - 低レベルのタスクを実行できるコマンドまたはコードに変換しようとします。
- フロントエンド - 計画を表す階層を表示するためのシンプルな反応フロントエンド
- PROMPT EVOLVER-進化的アルゴリズムを使用してプロンプトを自動的に生成するように設計されたアプリケーション
roulette wheel selectionを使用して選択が実行されます- 突然変異はLLMによって行われます
- 再結合は、選択の結果を使用してLLMによって実行されます
- フィットネスはLLMによって決定され、Zスコアを使用して正規化されるため、標準偏差を使用して結果を比較できます
- 環境トポロジーは、ローカルまたはグローバルの最適化に動的に適応する2Dトロイダルグリッドです
- ログ - 「ログ」フォルダーで多種多様なログが生成され、関数トレースは「function_trace.log」にあります。
- function_trace.log -"@trace_function_calls"で注釈付けされたすべての関数呼び出し
- 「logs」フォルダーのログは、「log_response」関数を使用して特定のサブシステムを追跡します
- parsing_errors -LLMからの出力を解析する問題を追跡して、パーサーに更新を行い、問題を修正できるようにします
- State_Changes-それが持っている情報に基づいてLLMによって生成された状態遷移を長期にわたって追跡します
TODO :
- 後で使用して生成コストを削減するために、成功した計画の断片をベクターDBに保存します
- より多くのエッジケースに対処するためにテキストの解析を改善し続けます
- より多くの後処理
- タスクの実行の要件として前提条件を再評価します
インストール:
バックエンド
- 環境変数
OPENAI_KEYをOpenai APIキーに設定します - 依存関係をインストールします
pip install -r requirements.txtを実行します。txt
- 計画アプリケーションを実行します
python src/main.py- 初期状態を入力します
- これは、システムが計画を開始する前に知ってほしい情報です
- この入力に
None 、または何も入れないかもしれません
- あなたの目標を説明してください
- システムが到達することを計画しているという目標を入力してください
- 例:
eat a ham sandwich
- デフォルト機能
- これらは、プランを作成するときにプランナーが使用することを検討するツールです
- これはデフォルトで
Linux terminal, internet access 、Enterを押してこれらを使用するだけです
- プランナーを選択してください
- さまざまな種類の計画アルゴリズムを使用して計画を作成するためのオプション。 HTNプランナーや*検索プランナーなどのオプション。
- これにより、HTNプランナーの使用がデフォルトです
- プロンプトEvolverアプリケーションを実行します
python src/prompt_evolver.py- プロンプトを設計したい目標または問題を入力してください。
フロントエンド:
- Frontendディレクトリに移動します
- フロントエンドを開始します
クレジット:
参考文献:
- htn
- 論文
- https://arxiv.org/pdf/1106.4869.pdf
- https://arxiv.org/pdf/1403.7426.pdf
- https://www.cs.umd.edu/~nau/papers/nau2021gtpyhop.pdf
- 本
- Malik Ghallab、Dana Nau、Paolo Traverso(第11章)による自動計画、理論と実践(2008)
- 実装とドキュメント
- https://www.cs.umd.edu/projects/shop/description.html
- https://github.com/ptrefall/fluid-hierarchical-task-network
- https://github.com/maksmaisak/htn
- https://maksmaisak.github.io/htn/front.html
- https://github.com/dananau/gtpyhop
- ビデオ
- https://www.youtube.com/watch?v=7l3tcofmr7w
- https://www.youtube.com/watch?v=mypf9_5wvlm
- https://www.youtube.com/watch?v=7rhi4fwljw4
- https://www.youtube.com/watch?v=kxm467tftcy
- https://www.youtube.com/watch?v=xxusfbvquly