2024.10.10
将来は卵1パックの価格が2倍に? 多くの日本人が知らない世界の新潮流、「動物福祉」とは
リンクをコピー
記事をブックマーク
大嶋勇樹氏:最後に、一番おもしろいモジュールであるAgentsを見ていこうと思います。質問をまあまあもらっていますが、最後までいってから回答できればと思います。最後に、一番おもしろいのがこのAgentsです。
まずAgentsのモチベーションですが、Indexesを使ってVector Storeを検索する以外にも、LLMが必要に応じていろいろなことをしてくれたら夢が広がると思います。
例えば、必要に応じて知らない知識だったらGoogleで検索してくれるとか。例えば「この環境について知りたい」みたいな状況だったら、Bashでコマンドを実行してくれるとか、Pythonのスクリプトを実行してくれるとかしてくれたら、本当に夢が広がるんじゃないかと思います。そこで登場するのがAgentsというものになります。
Agentsを使うとLLMがいろいろなツールを選択して使いながら動作します。実際にはLLMがツールを使うわけじゃないんですが、まるでLLMがツールを使うかのように動きます。例えばBash、Google Search、IFTTT、Python、PythonのRequestsとか、Wikipedia APIなど、いろいろなものを使いながらLLMが課題を解決してくれます。
まずコードを見ようと思いますが、モデル、text-davinci-003を用意して、load_toolsというものでterminalというツールを用意しています。このterminalはいわゆるBash、コマンドを打てるツールですね。これを設定したagent_executorを作り、それをrun(させます)。
その時に「現在のディレクトリにあるファイルの一覧を教えてください」としてrunを実行します。すると、LLMは本来僕の今いるディレクトリにどんなファイルがあるかなんて知らないはずなんですが、このツールを使ってちゃんと答えてくれます。
poetry run python...。これを実行します。
verboseに出力するようになっているので中の動きもちょっと見えるんですが、いろいろやります。(画面を示して)最終結果はこれですね。ちゃんとこのディレクトリにあるものを答えてくれているんですね。
一時期ChatGPTにlsとかそういうコマンドを実行させるようなことがちょっと流行ったというか、「コマンドを実行したらどうなると思いますか?」みたいに妄想させることが流行ったことがあると思うんですが、これは妄想させているわけじゃなくて、ディレクトリにあるものを表示しているんですね。APIの応答としてこれが返ってきています。
なぜLLMがlsコマンドを実行した結果を返せるのかを見ていこうと思います。
このAgentsは「MRKL」や「ReAct」といった仕組みのプロンプトで動いています。MRKLは“ミラクル”と読むらしいですね。中の細かい紹介まではできませんが、こういった仕組みで動いています。
どんな動きか見ていこうと思います。まずはLLMを呼び出します。「Answer the following questions as best you can. You have access to the following tools:」ということで、「下のほうにある質問にできるだけベストな回答をしてね」と(渡します)。
「次に続くツールが使えますよ」ということでツールを紹介しています。これはツールとしてコードで設定したものですね。「『Terminal』という名前で、コマンドを実行できるツールです」という説明が書いてあります。
そして「LLMに求めるフォーマットはこうしてください」ということが書いてあります。例えば「Question:」と来たら「ここに質問があります」と。「Thought:」と来たら「ここにあなたの考え、AIの考えを書いてください」と。ポイントは、「Action:」と書いて「使うツールの名前を書いてください」、「Action Input:」の箇所に、「使うツールの引数を書いてくださいみたい」なことが書いてあるんですね。
そして続きの説明がいろいろあって、最後に「Question: 」。現在のディレクトリにあるファイルの一覧を教えてください。「Thought:」。考えてね。これをAPIに投げます。
すると、LLMは「I need to find a command that will list the files in the current directory」、つまりカレントディレクトリにあるファイルをリストアップするコマンドを見つける必要がある。「Action: Terminal」「Action Input: ls」、こんな応答を返してくるんですね。
LangChainのAgentsはこの応答からActionとAction Inputを抽出して実行します。ソースコードを見ると無理矢理に正規表現で抽出しているんですが、これを抽出してTerminal、lsと来たからBashでlsを実行するんだなとLangChainのAgentsが判断して実行します。
LangChainのAgentsはそれを実行できるので、実行した結果を先ほどまでのプロンプトの下のほうに入れて、またLLMのAPIを叩きます。
すると今度LLMは、「I now know the final answer」「最終的な回答がわかった、ファイナルアンサーはこれだ」という回答をくれるんですね。これに対してLangChainのAgentsは、「Final Answer:」の箇所を抜き出して、こんなふうに表示してくれます。
ということで、Agentsはややこしいことをしているわりにちょっと駆け足で来ちゃいましたが、MRKLやReActといったプロンプトの仕組みを実装したAgentsを使うことで、LLMとの対話にとどまらず、LLMにアクションを起こさせることができたわけですね。このAgentsを応用すると、LLMで実現できることは本当に大きく広がると思います。
ちなみに、LangChainには「Human as a tool」という人間を使うツールも提供されていて、なかなかおもしろいなと。「Human are AGI so they can certainly be……」、人間はAGIなのでAIが困った時に助けてくれますよ、と。AGIは汎用人工知能ですね。人間が人工かはちょっと置いておいて、こんなツールも提供されていてなかなかおもしろいですね。
というところで駆け足ではありますが、ひととおりLangChainの主な概念を紹介したので、最後にちょっとまとめさせていただきます。
今日の勉強会、大変駆け足ではありましたが、LangChainに登場する基本的な概念を整理してきました。LangChainに登場する概念を理解するには、中で行われているプロンプトエンジニアリングがポイントだと思います。プロンプトエンジニアリングの手法自体も、本当にいろいろあると思いますが、調べていくとけっこうおもしろいですね。
LangChain自体は簡単に触ることができます。インストールはpip installだけです。ぜひ触ってみてもらえればと思います。
関連タグ:
プロンプトエンジニアリングから始めるLangChain入門講座 大嶋勇樹氏が教える、OpenAIのモデルとAPIの使い方
AIモデルへの入力を最適化し、意図した出力を得るために 例から学ぶ、プロンプトエンジニアリングの概要
そもそもLangChainは何に使えるのか 3つの基礎的なモジュール「Models」「Prompts」「Chains」から考える活用事例
保存した文章を利用する「Indexes」、過去のやりとりを記憶する「Memory」 LLMにできることを拡張する2つのLangChainモジュール
まるで“LLMがツールを使う”かのように動作する デモから見るLangChainのモジュール「Agents」の使い方
2024.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.12
自分の人生にプラスに働く「イライラ」は才能 自分の強みや才能につながる“良いイライラ”を見分けるポイント
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.11
気づいたら借金、倒産して身ぐるみを剥がされる経営者 起業に「立派な動機」を求められる恐ろしさ
2024.11.11
「退職代行」を使われた管理職の本音と葛藤 メディアで話題、利用者が右肩上がり…企業が置かれている現状とは
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.12
先週まで元気だったのに、突然辞める「びっくり退職」 退職代行サービスの影響も?上司と部下の“すれ違い”が起きる原因
2024.11.14
よってたかってハイリスクのビジネスモデルに仕立て上げるステークホルダー 「社会的理由」が求められる時代の起業戦略
2024.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.12
自分の人生にプラスに働く「イライラ」は才能 自分の強みや才能につながる“良いイライラ”を見分けるポイント
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.11
気づいたら借金、倒産して身ぐるみを剥がされる経営者 起業に「立派な動機」を求められる恐ろしさ
2024.11.11
「退職代行」を使われた管理職の本音と葛藤 メディアで話題、利用者が右肩上がり…企業が置かれている現状とは
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.12
先週まで元気だったのに、突然辞める「びっくり退職」 退職代行サービスの影響も?上司と部下の“すれ違い”が起きる原因
2024.11.14
よってたかってハイリスクのビジネスモデルに仕立て上げるステークホルダー 「社会的理由」が求められる時代の起業戦略