AI初心者にこそ勧めたい「LangChainとLangGraphによるRAG・AIエージェント[実践]入門」
「検索拡張生成(RAG)からAIエージェントのデザインパターンまで基礎知識と実践ハンズオン」を謳う本書は、大量の社内文書から必要な情報をAIによって検索したいビジネスマンから日々の献立やママ友との旅行の予定を気軽に立てたい主婦まで幅広く勧められる一冊となっています。
数式は全くといって出てこないので、行列や微積分などの知識がなくても読むことのできるAIの書籍で、「生成AIを使って役に立つアプリケーションを作るにはどうしたらいいか?」を教えてくれるクックブックです。
数あるAIのテーマから「検索拡張機能(RAG)」と「作業を行うAIエージェント」の2つにしぼって、わかりやすい詳しい説明とGoogleColab上の豊富な実装によって解説されています。
OpenAI API🧠
本書ではまず、OpenAIのAPIを触ってコードベースで生成AIを利用するところからはじめます。APIが提供する最新の機能について広く触れられていました。特にFunction Callingという機能はアプリで生成AIを利用しているとまず使うことがない有用な機能だと感じました。
Function Calling📢
Function CallingはAIに質問とともに関数の定義の一覧を知らせて、AIは関数の実行が必要だと判断した場合に指定された形式に従って使用する関数とその引数の値を返答します。これによりAIの判断で任意の関数を実行することができるようになります。
関数の実装によってはAIにエアコンをつけさせたり、ニュースサイトから今日の天気を取得させたりと、非常に夢が広がります😊
LangChain🦜⛓️
OpenAIのAPIを用いたハンズオンの次はLangChainについて解説されています。LangChain...🤔いかにもクールで難しそうな響きですが、本書を読むとその実態はプロンプトエンジニアリングのテンプレートのラッパーに過ぎないことがわかります。異なる「言語(Lang)💬」生成AIのモデルを同じ方法で扱い、なおかつ「Chain⛓️」と呼ばれる複数の関数をつなげて記述する機能によってプログラムの実装の見通しをよくしてくれる便利ツール「LangChain」。その説明が非常にわかりやすく書かれています。また、次章以降で登場する検索拡張機能(RAG)を利用するためのベクトルデータベースについても説明されています。LangChainについてのハンズオンを通してコードベースで生成AIを操ることに十分習熟できます。先ほど述べた「AIにエアコンをつけさせたり、ニュースサイトから今日の天気を取得させる」ような家事手伝い生成AI程度であればここまで読めば十分作ることができます。
検索拡張機能(RAG)🫁
いわゆる「社内文書をAIで検索する」というものです。ベクトルデータベースと呼ばれる、1つ1つの文書の内容をベクトルで表記したものをキーとして実際の文書を値としたデータベースを用いています。RAGではベクトルデータベースから質問文に類似度の高い文書を探してAIに質問とともに渡しています。
つまり正確には、「❌社内文書をAIで検索する」ではなく「⭕データベースで検索した社内文書をAIに吟味させる」ということ。ハンズオンでは具体的な実装方法に加えてRAGを利用したうえでさらに精度を上げるための工夫やRAGの妥当性の評価手法なども解説されています。
AIエージェントとLangGraph🤖
本書の中でいう「AIエージェント」とは、1回の質問に対して生成AIをFunction Callingを交えながら複数回呼び出すことにより精度を高めたAIのことです。また、生成AIのプログラムの実装の見通しをよくするのがLangChainであるとすればLangGraphは生成AIに課すタスクの見通しをよくするものです(Lang"Graph"という名前の由来は繰り返し行われる複数のタスクのつながりがグラフ理論とかのグラフに見えるから)。
後半大部分を使ってAIエージェントについてのデザインパターンや具体的なサービス例、LangChainとLangGraphを用いた実装例について解説されていました。特にハンズオンの実装例では生成AIが顧客のペルソナを演じてそれに対してヒアリングを行いそこからプロジェクトの要件定義書の作成までを自動化するという非常に実用性の高い例が挙げられていました(「ヒアリングは実在の人物にしたい」という気持ちもありますが、ヒアリングの約束取るのって大変なので、ある程度の代替にはなるかもしれない)。
AI初心者にこそ勧めたい✨
以上のような内容の本書は「生成AIをもっと普段の生活で有効活用したい!あわよくば煩雑なタスクを自動化したい!」と考えているAI初心者に非常にお勧めできます。450ページほどの分厚い本ですが、非常にわかりやすいためパラパラと流し読みしながら興味を持ったところだけ深く読み込めるレベル感の軽い内容なので週末の休みをかけて読むのにちょうど良い内容です(私は大学の空きコマ3つ分..5時間くらいで読み終わりました)。非常によくまとまっていて読み終わった後には生成AIを使ったアプリ開発に対して明確な見通しが立つくらい詳しくなるでしょう。
本書を読んで生成AIを使いこなせるようになると楽しいと思います❗❗
本書と合わせて読みたい記事🍳
Function CallingでOpenAPIスキーマを用いる方法。API経由でRAGができるのは個人的にアツいです🥳
Discussion