🤖
【読書メモ】『 LangChainとLangGraphによるRAG・AIエージェント[実践]入門』
復習用メモ
セットアップ系
- git
- OpenAI API
- LangSmith
■ LLMアプリケーションの評価軸
- オフライン評価
- あらかじめ用意したデータセットを使った評価
- オンライン評価
- 実際のユーザー反応など実際のトラフィックベースでの評価
→ LangSmithでは両方の機能がある
- 実際のユーザー反応など実際のトラフィックベースでの評価
■ LangSmithの3つの機能
- トレース
- プロンプト管理
- 評価
■ Ragas
- RAGの評価フレームワークのこと
■ プロンプトアプローチ
- Zero-shotChain-of-Thought(CoT)プロンプティング
- 「ステップバイステップで考えよう」
- Reasoning and Acting(ReAct)
- Reasoning 推論:行動計画の作成や調整
- Acting:推論に必要な追加情報を取り込んだり目的の外部実行を行う
- Plan and Solveプロンプティング
- タスクをサブタスクに分解してから計画にしたがってサブタスクを実行する
■ LLMエージェントフレームワーク
- AutoGPT
- ReAct型エージェント
- AutoGPT Builder
- エージェントのワークフローを定義するフロントエンド
- AutoGPT Builder
- ReAct型エージェント
- BabyAGI
- Task-driven Autonomous Agent
- タスク駆動型自律エージェント
- Task-driven Autonomous Agent
- AutoGen
- 抽象化された会話エージェントとコード実行エージェントを複数組み合わせて実行される
- crewAI
- 抽象化モジュールのつなぎこみ
- LangChainに似た使用感
■ マルチエージェントの定義
- マルチステップなマルチエージェント
- 一連の処理の中で、複数のシステムプロンプトを使って、役割やステップごとに別々のAIエージェントで処理を行う、ワークフローの最適化を目的とした処理形態
- マルチロールなマルチエージェント
- 異なるペルソナや役割を持たせた複数のエージェントを、目的に向かって協調動作させる形態
■ 開発系エージェント
- Devin
- 情報の検索
- コーディング
- プロジェクト展開
- などソフトウェアのすべての工程をAIだけで完結させる構想
- ChatDev
- 複数の役割別の専門家エージェントを自律エージェントとして稼働させる
- 設計→コーディング→テスト
- 複数の役割別の専門家エージェントを自律エージェントとして稼働させる
- MetaGPT
- ソフトウェアを作り上げる工程をメタ化
- MAGIS
- マネージャー / リポジトリ管理者 / 開発者 / QAエンジニア(レビューによる品質担保)
■ エージェンテックなAIシステムの性質
- 目的の複雑さ
- 環境の複雑さ
- 適応性
- 独立した実行
■ AIエージェントの課題
- タスクの適合性評価
- 小さなズレが全体として大きな失敗につながる傾向
- 予期しない状況下での信憑性の低い動作
- 実行環境の制約やアクションの承認の課題
- Human-in-the-Loop方式
- 適宜人の指示や承認が必要なのは完全自律とは反する
- 承認を求めるときの文脈共有の難易度も高い
- Human-in-the-Loop方式
- エージェントの規定の振る舞いの設定
- エージェントアクティビティの可読性
- 自動モニタリング
- 帰属性
- シャットダウン機能と制御の維持
- 拙速なシステム採用による問題
- 労働力の移動や採用不均衡
- 攻撃と防御のバランス不均衡化
【エージェントデザインパターン】
■ 目標生成と計画生成
- パッシブゴールクリエイター
- ユーザーの入力から具体的な目標を抽出
- プロアクティブゴールクリエイター
- ユーザーからの指示以外にも周辺環境や状況から情報を利用し能動的に設定するパターン
- プロンプト / レスポンス最適化
- 得られたプロンプトやレスポンスに最適化プロセスを追加する
- シングルパスプランジェネレーター
- 抽出された目標を達成するための一連の行動計画を生成
- マルチパスプランジェネレーター
- 複数の行動計画を生成し、そのなかから最適は行動を選択
- ワンショットモデルクエリ
- モデルへの単一の問い合わせでエージェントの行動計画を生成する
- インクリメンタルモデルクエリ
- モデルへの複数回の問い合わせや外部システムや人間からの情報収集で段階的に生成
■ 推論の確実性の向上
- 検索拡張生成
- セルフリフレクション
- エージェント自身が出力を評価する
- クロスリフレクション
- 異なる視点や基準を持つ別のAIエージェントによる評価パターン
- ヒューマンリフレクション
- 人間からのフィードバックをもとに評価を行うパターン
- エージェント評価器
- 評価しその結果をフィードバックする
■ エージェント間の協調
- 投票ベース
- 各エージェントが個別に判断や提案を行いその結果を投票によって集約し最終意思決定を行う
- 役割ベース
- エージェントに特定の役割のみ割り当てる
- 議論ベース
- エージェント間で議論や対話を行い問題解決を図る
■ 入出力制御
- マルチモーダルガードレール
■ その他メモ
- temperatureが大きいほど出力がランダムになる
- Output parserは、JSONなどの出力形式を指定するプロンプトの作成と、応答のテキストのPythonオブジェクトへの変換機能を提供
- LangSmithの「Prompts」を使うと、プロンプトの共有やバージョン管理ができる
- LangChain Expression Language(LCEL)は、LangChainでのChainの記述方法です。LCELではプロンプトやLLMを「|」でつなげて書き、処理の連鎖(Chain)を実装
- LCELの最も基本的な実装は、Prompt template・Chat model・Output parserの3つを連結すること
- ベクトルの距離にはいくつも種類があります。ここではとくに単純な「マンハッタン距離」を計算してみます。マンハッタン距離は、2つのベクトルの「各要素の差の絶対値」を「合計」した値
1997年に発売された『エージェントアプローチ人工知能』(共立出版、原題:Artificial Intelligence: A Modern Approach、1995年)においてすでに、「エージェントとは、環境を認識し、目標を達成するために自律的に行動する存在」として定義されています。 この本は、「人工知能の各部分領域をそれらの独自の歴史的文脈に沿って解説するのではなく、現在知られている事柄を共通の枠組みの中で再構築することを試みた」と前書きされているとおり、理論と実践を組み合わせてバランスよく解説されていることで、多くの大学で教科書として採用されているそうです。
Discussion