Slide 1

Slide 1 text

© 2024 Loglass Inc. 0 © 2024 Loglass Inc. Agentic RAG with LangGraph 宮本 淳志 2024.12.19

Slide 2

Slide 2 text

© 2024 Loglass Inc. 1 自己紹介 自動車整備士としてキャリアをスタートし、退職後カナダのバンクーバーへ渡航。その後、プログラ ミングを現地の学校で勉強した後に、機械学習エンジニアとして現地のスタートアップでエンジニア としてのキャリアをスタートさせる。 2年半カナダに滞在したのち、福岡へ移住。 福岡の受託開発会社でバックエンドエンジニアとして3年ほど勤務。バックエンド・フロント・インフ ラの経験を積む。 2024年10月に株式会社ログラスへクラウドエンジニアとして入社。 生成AI入門中 株式会社ログラス クラウドエンジニア 宮本 淳志 Atsushi Miyamoto

Slide 3

Slide 3 text

© 2024 Loglass Inc. 2

Slide 4

Slide 4 text

© 2024 Loglass Inc. 3 今日話すこと 0. 背景 1. RAGとは 2. LangGraphとは 3. AI Agentとは 4. Agentic RAG + LangGraphのアプローチ 5. まとめ Agenda

Slide 5

Slide 5 text

© 2024 Loglass Inc. 4 00|背景 今年は、RAGやAI Agentについて耳にする機会が増えたので、このLTをきっかけに、AI AgentとRAGについて改めて キャッチアップしてみようと思いました。 実務での活用事例などについてのお話は含まないので、そこはご容赦いただければと思います! 背景

Slide 6

Slide 6 text

© 2024 Loglass Inc. 5 01 RAGとは

Slide 7

Slide 7 text

© 2024 Loglass Inc. 6 01|RAGとは RAG(Retrieval Augmented Generation)の概要 大規模言語モデル(LLM)の出力を最適化するプロセス LLMの応答生成前に外部の信頼できる知識ベースを参照して、回答の質を向上させることが可能 利点: ● 最新の情報へのアクセス ○ OpenAIのgpt-4o-2024-11-20のモデルの場合2023/10月カットオフ ● 信頼性の強化 ○ 出力へ参照元の資料のURLなども含めることが可能 ● ハルシネーションの低減 ○ 外部知識に基づいて回答を生成させるため、LLMが誤った回答をするリスクを軽減 ※参考: https://aws.amazon.com/what-is/retrieval-augmented-generation/

Slide 8

Slide 8 text

© 2024 Loglass Inc. 7 01|RAGとは RAGの基本構成 ※参考: https://aws.amazon.com/jp/blogs/news/a-practical-guide-to-im prove-rag-systems-with-advanced-rag-on-aws/ 1. 外部データ(ドキュメント)をベクトル化して、ベクトル データベースへ保存 2. ユーザが何かしらの質問を投げる 3. 埋め込みモデルが質問をベクトル化 4. データベースから質問に類似したチャンクを検索 5. LLMへの入力コンテキスト構築 6. LLMが回答生成

Slide 9

Slide 9 text

© 2024 Loglass Inc. 8 02 LangGraphとは

Slide 10

Slide 10 text

© 2024 Loglass Inc. 9 LLMを用いた、ステートフルなMulti Actorアプリケーションを構築可能な ライブラリー 02|LangGraphとは 概要 主な機能 ● Cycles and Branching ○ 条件分岐やループ処理 ● Persistance ○ グラフの状態を保存可能かつ特定の状態から再実行もできる ● Human-in-the-Loop ○ 実行しようとしているアクションを人間が確認・承認可能 ● Streaming Support ○ 生成された出力を、リアルタイムでストリーミング ● Integration with LangChain ○ LangChainやLangSmithとも連携可能 例: ベクトル化されたテキスト 参考: https://www.langchain.com/langgraph

Slide 11

Slide 11 text

© 2024 Loglass Inc. 10 02|LangGraphとは 例 Persistance 参考: https://langchain-ai.github.io/langgraph/concepts/persistence/ DynamoDBを使用して、グラフの状態を保存した例

Slide 12

Slide 12 text

© 2024 Loglass Inc. 11 03 AI Agentとは

Slide 13

Slide 13 text

© 2024 Loglass Inc. 12 仕組み ● 目標の決定 ○ ユーザから受け取った目標を小さなタスクに分割 特定の順序または条件に基づいてでそれらを実行 ● 情報を取得 ○ タスクを実行するために、必要な情報を取得する ■ インターネットにアクセス ■ 他のエージェントと対話 ● タスクを実行 ○ 取得した情報をもとに、タスクを完了させる エージェントとは、環境と対話し、データを収集し、データを使用して自己決定タスク を実行して、事前に決められた目標を達成するためのソフトウェア 03|AI Agentとは AI Agentとは 参考: https://aws.amazon.com/jp/what-is/ai-agents/

Slide 14

Slide 14 text

© 2024 Loglass Inc. 13 ● Replit Agent ○ https://replit.com ● Lovable ○ https://lovable.dev ● Bolt.new ○ https://bolt.new ● Google Agentspace ○ https://cloud.google.com/products/ag entspace?hl=ja 03|AI Agentとは AI Agent関連のサービス

Slide 15

Slide 15 text

© 2024 Loglass Inc. 14 04 Agentic RAG + LangGraphのアプローチ

Slide 16

Slide 16 text

© 2024 Loglass Inc. 15 RAGの実装にAI Agentを組み込んだもの 外部の情報を取得させるかを動的にエージェントに判断させることも可能 04|Agentic RAG + LangGraphのアプローチ Agentic RAGとは 参考: https://langchain-ai.github.io/langgraph/tutorials/rag/langgra ph_agentic_rag/#nodes-and-edges Self-Reflective RAG

Slide 17

Slide 17 text

© 2024 Loglass Inc. 16 Self-Reflective RAGの実装例 04|Agentic RAG + LangGraphのアプローチ 実際の処理 グラフ定義 定義したグラフ構造 参考: https://langchain-ai.github.io/langgraph/tutorials/rag/langgraph_agentic_rag/ #nodes-and-edges

Slide 18

Slide 18 text

© 2024 Loglass Inc. 17 Agentic RAGでできること 03|GCP Vertex AI Agent BuilderからSupabaseに乗り換えた話 ● 複数の処理を組み合わせることで、複雑なタスク処理が可能 ● Agent自体が、処理を行うか否かの判断可能 ● リアルタイムで外部のデータを取得、使用可能 ● 実装は複雑になりそう 参考: https://www.analyticsvidhya.com/blog/2024/11/rag-vs-agentic-rag/#h-agen tic-rag-workflow

Slide 19

Slide 19 text

© 2024 Loglass Inc. 18 05 まとめ

Slide 20

Slide 20 text

© 2024 Loglass Inc. 19 05|まとめ まとめ ● Agentic RAGを使うことで、より難しいタスクをAIに任せることができそう ● 来年はAIにどっぷり浸かれるように、キャッチアップしていく

Slide 21

Slide 21 text

© 2024 Loglass Inc. 20