を叶えるポッドキャストチャンネルです。 なんかね、エージェントを作る
増えたよね、話題として。 話題としては増えたし、いやー結構気になる人多いんじゃないかな。 エージェントを作るって、作り方も様々というか、
何をエージェントと言うかみたいなところからあるじゃないですか。 そうね、割となんかしつこくやってるよね、俺らは。
そうだね。 ワークフローなのかとかっていう話もあるし、
何を持って、どの知能レベルをエージェントと言うのかとかもあるし、 なんか結構人によって定義様々だから、
そう。 エージェントを作るって、何?っていうところから話してもいいかなと思いますけどね。
そうね、どっから話すのがいいのか。 実例から話すのがいいんだと思うんだけど、
Googleが提供しているADKっていうサービスがありますと。 で、そこのエージェントってちょっととっつきずれーよなみたいな話があるから、
Google側もそれを見越して、 テンプレーみたいなのを、
練習問題じゃないけど、用意してくれてるんだよね。 で、その中にデータサイエンスエージェントっていうのがあって、
GitHubで公開されてるんだけど。 で、その、このデータサイエンスエージェントっていうのを、
試しに手元で作ってみたっていう感じ。 何ができるんだ?
まあこれ簡単に言うとなんかね、データサイエンティストっぽい動きが結構自由にできるっていうやつで。
簡単に言うと3つの仕事があって、 1個が、その、まあビッグクエリー、Googleのサービスだからビッグクエリーと接続して何か仕事をするっていう大前提の話の中で、
ビッグクエリーの中のデータを探索してくれるっていうエージェント。 で、そのデータを探索した上でクエリを作って、
SQLのクエリを書いて、それを実行してくれるエージェント。 で、そのデータを使ってマシンラーニングのモデルとかを作っていくっていうのを実行してくれるエージェント。
ていうかまあそういう機能たちが含まれていて、で、なんかこうそいつらを統括するルーティングエージェントと呼ばれるものがさらにその上位概念としているんだよね。
で、俺らユーザーはその上位概念みたいな、そのルーティングエージェントと会話して、例えばこういう分析したいんだけどってそいつに相談すると、
じゃあまずそのデータあるか見てくんねって言って、そのルート、ルーティングエージェントってルートを決めるから、じゃあまずデータ探すの得意な奴に聞いてくるわって言って、
そのエージェントが勝手にどのツールを使うかを選んで見に行ってデータを返してくれるみたいな。
みたいなやって、ああいい感じだねみたいな、じゃあそれでここをこう集計してみたいな言ったら、OKって言ってクエリ作るエージェントに次仕事を投げて、で帰ってきて、
でそしたらクエリが実行できるような形になってるみたいな。で、ああこういうデータあんだーってなって、で、ビーキュー、ビッグクエリって
BQMLっていう機能もあるからマシンラーニングのモデルを作れるんだよね。
で、そしたらじゃあそれで売上げの予測をしたいとか、そういうの話題があったら、そしたらまあそのマシンラーニングのモデルを作るエージェントにタスクを振って、
そいつがまた働くみたいな。みたいなのも、その起点となるAIの、まあ
AIの機能みたいなやつから派生して、あのいろんなツールの選択肢を自律的に選択して、
答えを見つけて返してくれるみたいな。のがこのデータサイエンスエージェント。
なるほどね。いろんなエージェントたちがいるんだ。その、何?ツールの中というか。
あ、そうそうそう。なんかこう、機能に特化したエージェントたちをこう持って、いっぱい作っておくみたいな。
うんうんうん。
で、その最適な道を質問とかチャットの内容に応じて、AIが選んで仕事を振る先を決めて、
で、その振った先のAIがまた動いて、仕事をして返してきたやつを見ることができるみたいな。
なるほどね。 えー、じゃあ人はもう自然言語、もう言葉で
チャットボットみたいなところに、分析の依頼をするだけで、あとはヨシナに
いろんな分析の方法を裏側で動かして、エージェントたちが勝手に動いて、アウトプットが表示されるみたいな。
そういうことが実現できるよってことなんだよね。 そうそうそうそうそう。
うわ、これを欲しいやつ。
ね、じゃあこれちょっとやっぱ細かくちゃんと作ってあって、まずそのね、こいつの武器っていうのはこのマシンラーニングのモデルを作れるっていうところに結構でかい武器があるんだけど、
なんか単純なテンプレートとしてGoogleがサクッと作ってくれたわけじゃなくて、
このADKっていうのを使って、なんかツールを作ってみた、多分これGoogleじゃない人なのかな、みたいな人が
そう、カグルで成果を出すのよ。 30分でカグルの題材とデータを渡して、BQのそのMLを走らせるエージェントに30分で考えさせたモデルで
トップ30に食い込んだみたいな。 そのリポジトリなんだ今、
共有してもらってるやつは。 あ、そうそうそうそう。
こいつはGoogleの人なのかな。そこまで細かく見てなかったんだけど、なんかとりあえずカグルトップ30に
within 30 minutesって言ってたから、30分でいけたんす、みたいな。 っていう風な、まぁなんか実用性というか、実用のこう
耐久性みたいなのがある モデルになってて、で、やっぱそのカグルで成果出したっていうポイントがあるから
マシンラーニングを回すエージェントがより細かく設計されてるっていうのがポイントなのね。
なんかそのマシンラーニングのモデル作るときは、いろんなそのデータ読み込むもそうだけど、なんかその
モデル作るときの設計の思想というか、 っていうのとかも学習させたり、あの
知らせたりしなきゃいけないし、こういうコードでこういうの使ってくれとかっていうのを割とまぁこう 言語でやるにしても指示は結構出さなきゃいけない。
で、能力も割と多岐に渡るから、 えっとこの
マシンラーニングを行うエージェントに関しては、それ自体がツールなんじゃなくて、そいつ自体が
サブエージェントっていう役割を担っていて、
さっき言ってたみたいにルーティングエージェントって呼ばれるものと基本は会話しますと。 で、マシンラーニング系のタスクが渡されたら
俺じゃあそこってあんまわかんないからって言って、まぁ実務に近いよね。 ちょっとマシンラーニング詳しいやつ連れてくるわって言って、
なんか詳しいやつ連れてくるじゃん。みたいな感じで、 えっと
マシンラーニングに特化した別のチャットできるエージェントっていうのがルート先にいるの。 なるほど。
つまり難しいマシンラーニング系のタスクが来たら、あのもう チャットの相手がバトンタッチするのね。そっちのエージェントに。
で、そのエージェントはめっちゃいろんなラグだったりとか、普通にマシンラーニング作る 手段だったりとかいろんな手段を持っていて、そいつと喋ると
マシンラーニングに特化した内容をさらに提案してくれるみたいな。 メインエージェントとサブエージェントっていう役割も
別で作られてたりするの。 へー、そうなんだ。
ただ単純にこう、そうルーティングエージェントが3つの選択肢からただ選んでそのAIを使ってとかじゃなくて、
なんか本当に細かい仕事をさせなきゃいけない時は、その細かい仕事にさらに振り分けるための なんか
部長から課長に仕事が渡されるみたいな、そういう流れというか、みたいな感じでより深いところに
構えている別の専門家エージェントみたいな奴らが働いてくれるみたいな感じの構成になっている。
なるほどね。 えー、これさ、そのエージェントが何人もいるよみたいな状態なのは
わかったんだけど、その一つ一つのエージェントの脳みそって 今回だったらジェミニみたいなLLMのモデルなわけじゃない?
あ、そうそうそうそう。 でその
多分基本の脳みそはみんな一緒で各エージェント、それぞれのエージェントがその得意なタスクがあるっていうのは、どうやってその
得意技を各エージェントは持つことができているんですか? それぞれにプロンプトで役割とその背景知識とっていうのを特化した情報を与えておくの。
あ、そういうこと?君はマネージャーだよとか。 あ、そうそうそうそう。
ってなっていって、そいつらをチームみたいな感じで蘇生して作る ような感じ、このデータサイエンスエージェントってやつ。
そのエージェントのその作り方というかが結構なんか元々データサイエンスやってた人
の目線で見ると割と直感的につかみやすいかなっていうのがあって。
なんかあの、まあこれADKのツールとかって例えばこのデータサイエンスエージェントとかもそうなんだけど、パイソンで全部組み立てれるのね。
でこれの組み方で俺めっちゃなんかエモいなぁというか 思い出したのがほらケラスとかでさ
ディープラーニングのモデルとかさ 作る時にさ、シークエンシャルみたいなモデル
というかの引っ張ってきてそこにアドみたいな形でレイヤーをどんどん追加していって ここでコンブ2Dやってみたいな
バックスプーリングしてみたいなやったじゃん。 やりますね、深層学習だから層を何個もこう何層まで深くするかとかを定義するんですよね。
あの感じに近かった。 え、そうな。
なんかその、だからこのエージェントの括りの中に どのエージェントを組みたいかっていうのをまず一個一個その繋がってない個別の
こう 専用エージェントたちを
プロンプトとかでこう作っていって、でそいつになんか変数とかをつけてるやつを 最後なんだっけな
名前忘れちゃったんだけどそいつらを集約する まあなんかリストみたいな感じのところにどんどんどんどん
横並びに入れていくとそいつらがなんかこう 1個束ねられたエージェントとして扱われるみたいな
そういう書き方をすんだよ。だからなんか結構こう 深層学習のレイヤーを積み上げていって
1個のコンポーネントみたいなのにしている感覚にちょっと近かった。 なるほどね、そっかそっか
一つのコンポーネントまとまりにして一つのエージェントとして成り立たせないといけないから、そういう何だろうな
クラスというかインスタンスみたいなのを作ってるんですね、中で。
なるほど っていう感じでね組み上げるのが
このADKの特徴なのか まあADKはとりあえずそうやって
やって、ML 専用エージェント、SQL、Execute専用エージェント、データ探索エージェントみたいな
で、MLの中にさらに細かいツールたちがぶら下がってるみたいな感じで
なんかそのチャットをやり取りするやつを一応エージェントと呼んで、それ以外のやつをツールっていう名前で呼んだりもするらしいんだけど
なんかそういう感じでとにかく一つの塊をいろんなパスをつなぎながら 作り上げていくみたいなのが
エージェントの作り方のざっくりとした流れだった