改めて始めます。
機材トラブルから復活。
復活して数日経ち、改めて話すことになるんですけど、服とかも変わってるからね。
パリサンジェルマンになってしまった、俺は。
本当だよね。ADKの話をちょっとしていて。
聞きたかったのが、ADKで自分たちでエージェントを実装するっていう話と、
一方でChatGPTのエージェント機能とかが直近リリースされたりとか、
そういうすでにエージェントを実装利用できる環境があるんですけど、
その違いみたいなところって何かあるのかを聞きたかったです。
なんかね、正直、どっちでもいいっていう感じではあって、
いろいろメリットとデメリットはあって、
性能面で言うと、例えば、クロードとか、
あとは、ChatGPTのエージェントモードはちょっと微妙なんだよね。
クロードとか、あとは有名どこで言うと、カーソルとか、コパイロットとか、ウィンドサーフとか、
あの辺り、あそこら辺はなんかもう本当に、
汎用的なエージェントみたいな表現に近くって、
だから、割とどんなタスクをお願いしてもできる。
ADKで作る場合だと、ジェミニーのモデルが挟まってるとかっていう感じだから、
基本的にはあんま変わんないんだけど、
そいつに与えるシステムプロンプトみたいなものを自分たちで制御するから、
そのタスク特化のエージェントみたいにできるのがADKで、
ちょっと何でも答えれるのが、クロードとか、
あとは、ちょっと横並びにしていいかわかんないけど、カーソルとか、
そういったものになってる。
で、比較してみてめっちゃ思ったのは、
普通にやっぱ、カーソルとかコパイロットとかマジすげえな、みたいなのはあって。
そうなんだ。そっちがすごいんだ。
いや、すごいよ。
何聞いてもいけんじゃん、みたいな。
基本的には、ある程度のタスクはエージェントモードと一緒にいろいろできるから助かるし、
例えば今回、データサイエンスエージェントでやらせたみたいな、
クエリを書かせるとか、データ探索させるとか、
そういったのも結構簡単にできるんだよね。
イメージはGitHub CopilotにGCPのプロジェクトを設定して渡して、
この中にあるテーブルのスキーマ情報を取ってきて、みたいなのを言ったら、
自分でどうやったら取れるか考えて、
一番オーソドックスなのはGcloud SDK、
Gcloudとかやって、BQとかやったらビッグクエリが動くみたいなやつとかで、
取りに行くコマンド探してくれるみたいな。
ってなって提案してくれるから、
じゃあそれで行こうって言って、
普通にビッグクエリ見に行って、
テーブルこんなのあるよ、みたいな。
じゃあそのテーブル使ってこういうクエリ書いてくれない?みたいな言ったら、
じゃあバーってクエリ書いてくれるとか、
設定ファイルの中にサンプルクエリとかたくさん入れといたら、
過去のナレッジをベースにしてクエリ提案してくれるとか、
そういうのが別にデータ分析特化のエージェントじゃなくてもやってくれるんだよね。
そうだよね、何でもやってくれるよね、確かに。
で、それに使うモデルとかをこっちで決めるわけじゃん。
Cloud for SONNETにしますとか、
O3にします、みたいな。
っていうのでできるから、普通にそれでいいよなっていう感じがあって。
で、だからそれが何でも答えられるように、
たぶん裏でそういうADKでエージェント作るみたいなことを、
まあカーソルの開発者だったりGitHubコパイロットの開発者たちは、
たぶん裏でそういうどういうルーティングになるかどうかみたいなのを、
ちゃんと設計してくれてるんだよね。
なるほどね。
ちゃんと対話ができて自律的に考えてエラー解消できるようなパスを繋いでくれてるみたいな。
で、その繋ぎ方も自分で制御しなきゃいけないのがADKなのよ。
ただその分カスタマイズ性が高かったりはするから、
まあどっちがいいのかみたいなのはあって、
けど良さ、ADKで作る良さみたいなのもあって、
言っちゃえばなんか自分で一つのモデルを作るみたいなイメージでもあるわけよ、
そのADKでエージェントを作るっていうのは。
まあAIのものそのものを作るみたいな。
で、このAIのモデル自体をどこにでも埋め込めるっていう自由度があるわけよ。
で、カーソルとかGitHubコパイロットっていうのは、
例えばGitHubコパイロットだったらVSコードの中で展開するサービスだし、
カーソルっていうエディターの中で完結するサービスであって、
それを自分たちのウェブページの中で自由に埋め込むとかはちょっと難易度が高いよね。
そうだね。埋め込みはちょっとリッチすぎるかなとも思うよね。
そうそうそうそう。
だけど、例えばADKで作ったモデルを簡易的なチャットウェブのGUIみたいなのを作って、
それの裏でそのチャットを入れたら、
そのメッセージを送る先を自分が作ったADKのモデルにするとかはできるから、
だけど手軽にいろんなところにデプロイできるというかは結構メリットがでかいメリットの一つ。
確かにね。システム側によったというか、ADKを使うことでね。
よりアプリケーションのレイヤーから1個深いところの操作ができるようになるみたいなのがADKの立ち位置っていうか。
けどやっぱ欲しい結果を程よく返してくれるみたいな出力を制御するのは結構多分テクニックがいるし、むずい。
そうだよね。だから誰もがADKを触ってみたいな必要があるのかなっていうのも今聞いてて思いますよね。
今のよっちの話を聞いた限りはMacloadのコードとかそういうありもののアプリケーションが出てきてるわけだから、
それを使っても一定のやりたいことができるんじゃないのっていう話なのかなと。
そうまさにね。ただちょっとめんどいのは例えば会社のチームでGitHubコパイロットとかカーソルとかでチームみんなでその環境でやろうってしたときに、
同じ環境で同じように動かして後ろのデータを共有するっていうのの、この環境というかシステムを作るのが結構めんどくさいっていう面もあるわけよ。
ああいうのってローカルのエディターだから、例えばGitHubのリポジトリで全部管理しますみたいになったら、
ちゃんとそれをマネージできる人がいないといけなかったりとか、ローカルの環境に依存するから全員の環境が一致するように、
例えばDockerみたいな仮想環境みたいなのをちゃんと作んなきゃいけないとか、
足並みを揃えようとするとなかなか難しかったりする。まあできるんだけど。
で、ただ例えばADKを埋め込んだオリジナルのStreamlitとかで作ったチャットアプリケーションみたいなものがウェブ上にデプロイされていれば、
環境設定とか一切なくそのURLを知ってるとか、そこにログインできる人は全員同じものを同じ環境で使えるっていうメリットもある。
確かに。一応言ったんだね、これはね。
そう。で、それの一番いいところを取ったのが今のところね。今のところ、クロードデスクトップ、いや違う、クロードデスクトップじゃない。
なんだっけ、クロードウェブ、ウェブの方、なんていうんだっけな。
クロードウェブデスクトップじゃないね、それはね。
とかは、今あれなのよ、MCPの機能がついてるのよ。
で、前もMCPの話したじゃん、エピソードで。だからまあ、細かい説明は割愛するんだけど、そのMCPでビッグクエリとかにMCPで接続できる。
つまり、クロードのプロプラン20ドルさえ払えば、クロードの中に載っているエージェントモードを使ってビッグクエリ叩いてエージェンティックな分析ができちゃうわけよ。
なるほど。
なんかインテグレートするのはなかなかハードルは高いかもしれないけど、それぞれを一箇所で呼び出すことは割と容易になった気がする。
そうだよね。
あの頃は多分MCPが超浸透したみたいな状態じゃなかったから、データブリックスのそこのいろんなクラウドから取れるっていうところも優位性めっちゃあったけど、
それはなんかMCPが担えるようにもなった。
もちろんデータブリックスの良さってそれだけじゃないから、別になんか終わりって感じって言いたいわけじゃないんだけど全然。
ただクラウドみたいなものができてきたことで、データサイエンスの人たちだけじゃなくて、いわゆるソフトウェアエンジニアとか、
本当にエディターを使って作業するような人たちにとっては使いやすい環境がまた一個できて、便利なものができてきたのかなと思いますね。
でなんか、メルカリがほら、誰でも会社の人がみんなが使えるAIエージェント、分析エージェントとしてソクラテスっていうのを展開してるけど、
あれはADKで作られていて、でまさに環境構築とかが不要で、
ビズ、企画とかPDMとかやってる人たちのいわゆる非アナリストとか非エンジニアみたいな人でもデータに自然言語で触れられるみたいな。
ところが強みとして出てるのはまさにそこの良いポイントを拾ったもの。
確かに会社全員例えば100人とかいて、100人のためにそれを展開しようとすると、全員がクロードの例えば全員が取れるエンタープライズプランとか、
15人とかでチームプランとかってやったときのコストとADKをストリームリット上にポーンって置くっていうのと、
どっちがいいのかっていう話になるとまたむずいところではあるんだけど、
そういういろんなところで一長一短があって、どこに注力するかみたいな過渡期なんだろうね、今。
そうだね。
自分もこの機材不良でちょっと時間空いたときにADK触ってみて、実際にコードを見てみたんですけど、
仕組みとしてはシンプルで、エージェントを定義する場所と各種ツールを使うツールみたいなところの場所と、
あとは全てを包括するメインみたいなファイルで簡単に制御できるエージェントっていう、そんな仕組みを取ってるんだなっていうのは理解したんですけど、
この構造ってあくまでADKってGoogleが出したサービスというかオープンソースのサービスじゃないですか、
これが今後汎用的というかスタンダードになっていくのかっていうところもどうなんだろうなと思ってて、
みんながみんなこのエージェントの作り方をやっていくことになるのか、みたいなところがこれから定まってくる今は段階なのかなと思ってるんですよね。
そうだね、なんか汎用的なAIのモデルがめちゃめちゃ性能が良くなっていくと、
多分そんなに複雑なルートを作らなくても自分で考えれるじゃんっていう話にもなってきて、
今作ってるような簡単なエージェントみたいなものはいらないかもしれないね。
けど何でもできるようになったからこそ、そうすると平均的に頭の良い、超頭の良い人間みたいなのが出来上がるってなって、
けどやっぱり人間で言うとスペシャルスキルみたいなの特化してるとよりパフォーマンスが上がるみたいなのがあったりするから、
もしかしたらそれも精度の上がったAIには、AIにもその特徴が出ていて、
自分、むしろ動きやすい場っていうのをユーザーがちゃんと定義してあげるとめちゃくちゃ性能を発揮するみたいなので、
自作のエージェントがまた輝くっていうパターンもあるかもしれないし。
何が普通になってるか分かりにくいというか、まだ見えない状況ではあるよね。
機械学習とかも、それこそビッグクエリの中でBQMLっていうのが出てきてたりとか、
あとはいろんな機械学習をノーコードで制御できるようなツールとかがめっちゃ出てきたじゃん。
あれですげえ民主化した感じはするんだけど、でもデータサイエンティストでゴリゴリにこう自分でモデルを組んで精度を出すっていう仕事の仕方をするスタイルも別になくならなかったじゃん。
もちろんそうだね。
だからなんか汎用性を持たせる分何かとトレードオフになって、そこを補うような専門家みたいなのを作んなきゃいけない可能性も出てきて。
全部ひっくるめて一個のモデルでいけますっていう世界かもしれないけどね。
結構最近だったらドメイン特化型のエージェントを作ってほしいみたいな求人とかもちらほら出てきてるなというふうに自分は見ていて、
そっちの方向のニーズはやっぱこれからはあるよねと。
いくら汎用的なLLMが世の中にはできたとしても業務に落とし込んでいくときにはその事業会社の持つドメインに特化したエージェントがやっぱり必要になると思うし、
そこのチューニングみたいな、会社としてLLMを使っていくチューニングは必要になるからそこの知識を持った人かつそういったチューニングされたモデルを作っていくっていうところのニーズはあるからやっぱりADKは触れた方がいいのかなと思いますよね。
多分ね、あくまでGoogleのサービスの一つだから。
そうだね、他の方法を取るっていうのはもちろんあると思うし、少なくともこのADKっていうシステムというか、このファイル構成は理にかなっていてすごくシンプルで理解しやすいから別にこれでもいいのかなと思いますけど
このエージェントのシステム、インスタンスを立てるときの各エージェントにどういう指示を出すかみたいなところが自然言語でディスクリプションとして引数として渡すっていう形を取ってるのは結構面白いなと思いましたね。
なんかそのさ、畳み込みニューラルネットワークで積み上げていく感覚と似てるっていうのはちょっと分かったでしょ。
分かる分かる。このエージェントを使っていくよみたいな指示を出すというか、定義をしたりとか。
で、一つのシークエンスみたいな、なんかパックみたいなのにモデルの引数詰め込んでみたいな。
そうだね、一個のインスタンスを立ててみたいな。で、それを何個かエージェントを横に並べてオーケストレートする一つの大きいエージェントをまた作るみたいな。
めちゃめちゃ分かりやすいですね。で、モデルとかももう裏で何のモデルを呼び出すかっていうところを指示するだけだから、JMEなのかGPなのかとか。
めちゃめちゃシンプル。使いやすい。
で、これあと結構おもろかったのは、多分前回話してないと思うんだけど、
どうやって一旦ADKが動くことを確認するとこまで環境構築とかGitHubの内容を解釈して落とし込んだのかみたいな。
隣のデータ分析屋さん、今回も面白いと思ったらフォローやレビューよろしくお願いします。
番組の感想や質問は、ハッシュタグ隣の分析屋、隣のがひながらで、分析屋は漢字でお願いします。
また概要欄にあってあるお手紙ホームからコメントを寄せてください。
ではまた。バイバイ。