Slide 1

Slide 1 text

2024/11/23 #FullstackAIDev2024 LangChain/LangGraphの進化からみる LLMによるAIエージェントの開発

Slide 2

Slide 2 text

自己紹介 大嶋勇樹(おおしまゆうき) https://x.com/oshima_123 株式会社ジェネラティブエージェンツ取締役CTO/Co-founder 大規模言語モデルを組み込んだアプリケーションやAIエージェントの開発を実施 個人ではエンジニア向けの勉強会開催やUdemy講座の作成など 勉強会コミュニティStudyCo運営 「ChatGPT/LangChainによるチャットシステム構築[実践]入門」(共著) 「LangChainとLangGraphによるRAG・AIエージェント[実践]入門」(共著)

Slide 3

Slide 3 text

会社名 株式会社ジェネラティブエージェンツ (英文:Generative Agents, Inc.) 所在地 東京都港区 ※ 全社員リモート勤務 役員構成 CEO 西見 公宏 COO 吉田 真吾 CTO 大嶋 勇樹 設立年月 2024年3月14日 事業内容 AIエージェント技術を軸とした生成 AIアプリケーション開発 支援、コンサルティング、教育・研修サービスの提供 生成AIアプリケーション開発支援 「LangChain」の公式エキスパートとして、生成AIを活用したソフトウェア開発を支 援します。生成AIを活用した課題解決、新規事業に向けたコンサルティングサー ビス、チームの開発力を上げる教育・研修サービスを提供します。 ノーコードツール「 Dify」のプロサポート Difyとはチャットボット、文章要約やコンテンツ生成など、多彩なワークフローを 現場の社員自ら構築できるツールです。当社はDifyを提供するLangGenius社の 公式パートナーとして、自社内のDifyインフラ構築、導入支援・オンボーディン グ、活用定着支援、アプリ開発研修などニーズに応じたプロフェッショナルサ ポートを提供します。 株式会社ジェネラティブエージェンツ - 会社概要 AIエージェントが「ハブ」となり 人間とAIエージェントの協働が 当たり前になる世界を実現する

Slide 4

Slide 4 text

代表取締役CEO / Founder 西見 公宏 Masahiro Nishimi 事業会社の顧問CTOとして活動するソフトウェア開発のスペシャリス ト。AIエージェントを経営に導入することにより、あらゆる業種業態の 生産性を高めるための活動に尽力している。 「その仕事、AIエージェントがやっておきました。――ChatGPTの次に 来る自律型AI革命」(技術評論社)単著、Software Design「実践LLMア プリケーション開発」(技術評論社)連載。 主な著書 『その仕事、AIエージェントがやっておきました』 取締役COO / Co-founder 吉田 真吾 Shingo Yoshida AWS Serverless Heroとして日本におけるサーバーレスの普及を促進。 「ChatGPT/LangChainによるチャットシステム構築[実践]入門」(技 術評論社)共著、「Azure OpenAI ServiceではじめるChatGPT/LLMシス テム構築入門」(技術評論社)共著、「AWSによるサーバーレスアーキ テクチャ」(翔泳社)監修、「サーバーレスシングルページアプリケー ション」(オライリー)監訳、「AWSエキスパート養成読本」(技術評 論社)共著。ChatGPT Community(JP)主催 主な著書 『ChatGPT/LangChainによるチャットシステム構築[実践]入門』 『Azure OpenAI ServiceではじめるChatGPT/LLMシステム構築入門  エンジニア選書』 取締役CTO / Co-founder 大嶋 勇樹 Yuki Oshima 大規模言語モデルを組み込んだアプリケーションやAIエージェントの開 発を実施。 個人ではエンジニア向けの勉強会開催や教材作成など。オンラインコー スUdemyではベストセラー講座多数。 「ChatGPT/LangChainによるチャットシステム構築[実践]入門」(技 術評論社)共著。勉強会コミュニティStudyCo運営。 主な著書 『ChatGPT/LangChainによるチャットシステム構築 [実践]入門』 運営メンバー

Slide 5

Slide 5 text

11/9に書籍を出しました! 『LangChainとLangGraphによるRAG・AIエージェント[実践]入門』(技術評論社) LangChain公式エキスパート 株式会社ジェネラティブエージェンツ 西見公宏、吉田真吾、大嶋勇樹 [著] ● OpenAIのチャットAPI プロンプトエンジニアリング LangChainの基礎 ● 検索クエリの工夫 リランクモデル ハイブリッド検索 ● LangSmithを使ったRAGアプリケーション評価 ● LLMを活用したAIエージェントの起源と変遷 ● LangChain/LangGraphによるエージェントデザインパターンの実装 LLMを組み込んだアプリケーションの開発について、 初心者の方も経験者の方もぜひ手に取ってください!

Slide 6

Slide 6 text

2024/11/23 #FullstackAIDev2024 LangChain/LangGraphの進化からみる LLMによるAIエージェントの開発

Slide 7

Slide 7 text

はじめに LLMを組み込んだアプリケーション(LLMアプリケーション)の開発という分野が登場し、 そして今、LLMベースのAIエージェントが盛り上がり始めています LLMベースのAIエージェントを開発するためのフレームワークも次々と開発されていますが、 新しい分野のフレームワークからは、その分野に対する試行錯誤を感じとることができます 私はLangChain/LangGraphというフレームワークに注目して追いかけてきましたが、 その進化の過程にはまさにLLMベースのAIエージェントに対する試行錯誤がありました 本セッションでは、LangChain/LangGraphの進化も踏まえつつ、 LLMベースのAIエージェントの開発の変遷をふりかえっていきます

Slide 8

Slide 8 text

LLMの衝撃

Slide 9

Slide 9 text

そもそも... そもそも、LLMは何がすごいのでしょうか? ● とても自然な文章を生成できるようになったこと? ● 今までのAIではできなかったタスクができるようになったこと? ?

Slide 10

Slide 10 text

LLMは何がすごいのか わたしの場合は 【補足】 最近は「Zero-shot」という表現が、Zero-shot PromptingやFew-shot Prompting(Zero-shot LearningやFew-shot Learning)という プロンプトにいくつデモンストレーションを入れるかを指すことも多いです しかし、もともとZero-shot Learning、Few-shot Learningという言葉は、学習につかうデータの数が0個や数個であることを指します ここでは後者の学習に使うデータが0個であることを指して「Zero-shotの学習」と言っています Zero-shotの学習で 未知のタスクに対応できること が非常に衝撃でした (もちろん対応できないタスクもたくさんあります)

Slide 11

Slide 11 text

従来の機械学習とLLM 従来の機械学習 LLM ● 用途に応じて0から専用の 機械学習モデルを作る ● または既存のモデルを用途に応じて ファインチューニングして使う ● 自然言語の入力(プロンプト)を 変えるだけで様々な用途に使用可能 ● 既存のモデルをそのまま使うのが ベース(ファインチューニングは 追加の工夫という立ち位置) 既存のモデルをそのまま様々なタスクに活用できるLLMは、 従来の機械学習とは大きく異なります

Slide 12

Slide 12 text

LLMによるAIエージェント

Slide 13

Slide 13 text

LLMをプログラムに組み込む LLMは自然言語で指示をすると、それらしいテキストを出力してくれる 未知の状況に対してもある程度それらしい判断をしてくれる プログラムで解析しやすい形式で出力させれば、 プログラムの分岐の判断や状況に応じたパラメータの生成に使えるのでは?

Slide 14

Slide 14 text

WebGPT(2021年12月) WebGPTでは、GPT-3をファインチューニングしたモデルに以下のような出力を指示して、 Web検索の能力を与えました Nakano et al.(2021) 「WebGPT: Browser-assisted question-answering with human feedback」 https://arxiv.org/abs/2112.09332

Slide 15

Slide 15 text

MRKL(2022年5月) Web検索に限らず、LLMが様々なActionを選択して呼び出そうとする 汎用的なアーキテクチャ「MRKL」が提案されました ● Weather API ● Currency ● Wiki API ● Calendar ● … Karpas et al.(2022) 「MRKL Systems: A modular, neuro-symbolic architecture that combines large language models, external knowledge sources and discrete reasoning」 https://arxiv.org/abs/2205.00445

Slide 16

Slide 16 text

ReAct(2022年10月) LLMでは、推論の過程を出力することで 精度が向上するChain-of-Thoughtという 手法が知られていました ActionとChain-of-Thoughtを組み合わせ、 Actionの前にReasonを出力することで 性能が向上する「ReAct」が提案されました Yao et al.(2022) 「ReAct: Synergizing Reasoning and Acting in Language Models」 https://arxiv.org/abs/2210.03629

Slide 17

Slide 17 text

LangChainの当初のエージェント MRKLやReActをもとに、LangChainにはアクションを繰り返すエージェントが実装されました https://blog.langchain.dev/openais-bet-on-a-cognitive-architecture/ LLMが判断して外部ツールを使ってアクションする様子はそれだけでも衝撃的でしたが、 LLMエージェントはさらに進化していきました

Slide 18

Slide 18 text

LLMエージェントの進化

Slide 19

Slide 19 text

Plan-and-Solve(2023年5月) Plan-and-Solveは、LLMに「計画を立てて(タスクをサブタスクに分割して)から、計画に従って サブタスクを実行してください」と指示するプロンプトエンジニアリングの手法です これ自体はエージェントの特有の手法ではない一般的なプロンプトエンジニアリングの手法ですが、 サブタスクに分割してから各タスクを進めるという流れをエージェントに実装することも多いです Wang et al.(2023) 「Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models」 https://arxiv.org/abs/2305.04091

Slide 20

Slide 20 text

BabyAGI:計画を管理しながら動作する汎用LLMエージェント 2023年4月には、計画を管理しながら動作する汎用LLMエージェント「BabyAGI」が話題となりました https://github.com/yoheinakajima/babyagi_archive

Slide 21

Slide 21 text

しかし... 汎用エージェントが本当に仕事をなんでもこなしてくれるかというと、そうではありませんでした ● LLMに与えられるツールの不足(プログラムにとって使いやすいAPIの不足) ● 記憶(Memory)を適切に扱う難しさ ● 自律的に動作しているように見えて、実は同じ思考をループしてしまっている エージェントの動作の判断をすべてLLMにまかせるのは(まだ)難しかった...?

Slide 22

Slide 22 text

人がいちいち指示をしなくとも、 自分でやることを考えて、 様々なツールを活用して 目標に向かってタスクをこなしていく AIの仕組みのこと AIエージェントとは?

Slide 23

Slide 23 text

人がいちいち指示をしなくとも、 自分でやることを考えて、 様々なツールを活用して 目標に向かってタスクをこなしていく そのような性質の度合いのこと エージェントらしさ(Agenticness)とは?

Slide 24

Slide 24 text

人間による部分的な管理下において、複雑な目標を、複雑な環境で、適応的に達成する度合い OpenAI『Practices for Governing Agentic AI Systems』より 「現在の通常のAI」と「AIエージェント」には明確な境界があるのではなく、 以下の4つの性質が強いほどAIエージェントらしいと言える。 目標の複雑さ 環境の複雑さ 適応性 独立した実行 複雑で広範な目標を達成できるほどエージェントらしい 多くの環境、利害関係者、外部ツールの関係が必要なほどエージェントらしい ルールベースの対応だけでなく、予期しない状況に対応できるほどエージェントらしい 目標の達成までの人間の加入が少ないほどエージェントらしい エージェントらしさ(Agenticness)とは?

Slide 25

Slide 25 text

Agentic Workflow / Flow Engineering LLMアプリケーションでは、1つのプロンプトで複雑な指示をするのではなく、ワークフローを組んで いくつかのプロンプトでタスクを進めることが有用なケースが多いです そのような構成は「Agentic Workflow」や「Flow Engineering」と呼ばれることがあります Ridnik et al.(2024) 「Code Generation with AlphaCodium: From Prompt Engineering to Flow Engineering」 https://arxiv.org/abs/2401.08500

Slide 26

Slide 26 text

LangChainの進化とLangGraphの登場 LangChainも自由自在なワークフローが組めるように進化しました また、さらに複雑なワークフローに対応するためのLangGraphも開発されました https://langchain-ai.github.io/langgraph/tutorials/rag/langgraph_agentic_rag/ LangChain/LangGraphは、エージェントらしいワークフローを組む フレームワークとして定番の選択肢の1つとなっています

Slide 27

Slide 27 text

まとめ 現状では、エージェントの動作の判断を完全にLLMにまかせるのは難しいことが多いかもしれません そこで、エージェントらしく振る舞うワークフローを組んでいくのが現在地だと考えています 今後LLMが進化していくことで、徐々によりエージェントらしくなっていくのかもしれません LLMやLLMエージェントの進化は非常に活発でとても楽しいです この分野に一緒に取り組んでいく仲間が増えると嬉しいです

Slide 28

Slide 28 text

ご清聴ありがとうございました