2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
リンクをコピー
記事をブックマーク
大嶋勇樹氏:最後に、一番おもしろいモジュールである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.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05