You’re in!
トレーニング
エージェント型AIの実践:Browser UseとMilvusによるリアルタイムビジョン、記憶、自律性
リソース
1 00:00:03.465 --> 00:00:05.685 それでは本日、本日のセッションをご紹介できることを嬉しく思います。
2 00:00:05.945 --> 00:00:10.205 Agentic AI in action、そしてゲストスピーカーのStephen Batifolさんです。
3 00:00:10.545 --> 00:00:13.685 Stephen BatifolさんはZillizのデベロッパーアドボケイトで、
4 00:00:13.705 --> 00:00:16.725 以前は機械学習エンジニアとして
5 00:00:16.795 --> 00:00:19.165 WaltでMLプラットフォームに携わっていました。
6 00:00:19.225 --> 00:00:21.925 またBravoではデータサイエンティストとして働いていました。
7 00:00:22.435 --> 00:00:24.085 Stephanさんはコンピューターサイエンスと
8 00:00:24.185 --> 00:00:27.245 人工知能を学び、趣味や
9 00:00:27.345 --> 00:00:29.845 好きなことにはダンスやサーフィンがあります。
10 00:00:30.275 --> 00:00:31.285 ようこそ、Stefanさん。
11 00:00:35.185 --> 00:00:37.165 ええ、ご紹介ありがとうございます。
12 00:00:37.165 --> 00:00:39.885 皆さん、先ほどのトラブルについてはすみませんでした。
13 00:00:40.305 --> 00:00:41.805 そしてご参加ありがとうございます。
14 00:00:42.065 --> 00:00:46.845 はい、先ほどお話があったように、今日はAgentic AIについて、
15 00:00:47.745 --> 00:00:51.845 そしてリアルタイム、ビジョン、メモリ、
16 00:00:52.265 --> 00:00:54.845 さらにbrowser useとmembersを使った自律性をどのように活用できるかについてお話しします。
17 00:00:56.145 --> 00:00:57.685 私はStefanです。
18 00:00:57.685 --> 00:01:00.445 先ほど紹介があったように、デベロッパーアドボケイトです。
19 00:01:01.465 --> 00:01:02.925 もしGen AIやベクターデータベース、
20 00:01:02.945 --> 00:01:05.085 あるいは
21 00:01:05.585 --> 00:01:08.205 正直AIの世界に関することなら何でも、
22 00:01:08.235 --> 00:01:09.325 気軽に連絡してください。
23 00:01:09.425 --> 00:01:10.765 こちらをスキャンできます。
24 00:01:10.765 --> 00:01:12.845 私のLinkedInにリダイレクトされます。
25 00:01:13.545 --> 00:01:16.205 はい、それから私もいろいろお手伝いしています。
26 00:01:16.465 --> 00:01:19.565 visに関するbertesのようなことがある場合や、
27 00:01:19.565 --> 00:01:22.005 visをどこかにデプロイしたい場合にも、
28 00:01:22.045 --> 00:01:23.365 本当にお手伝いできます。
29 00:01:24.665 --> 00:01:26.125 では始めましょう。
30 00:01:26.265 --> 00:01:29.365 まずは簡単な導入として、
31 00:01:29.505 --> 00:01:31.925 そもそもエージェントシステムとは何かについてお話しします。
32 00:01:33.315 --> 00:01:35.285 それから、私が使っている
33 00:01:35.285 --> 00:01:37.165 さまざまなテックスタックについても見ていきます。
34 00:01:37.225 --> 00:01:38.765 最後はデモで締めくくります。
35 00:01:39.105 --> 00:01:40.245 ライブでご覧いただき、
36 00:01:40.425 --> 00:01:43.045 実際に私のコンピューターが、
37 00:01:43.105 --> 00:01:45.725 エージェントが私のコンピューターを制御して、
38 00:01:45.945 --> 00:01:48.005 さまざまなアクションを実行する様子をご覧いただきます。
39 00:01:49.345 --> 00:01:51.825 では、Agentic Systemsです。
40 00:01:52.985 --> 00:01:55.465 ここではAnthropicの定義を使っています。
41 00:01:55.685 --> 00:01:57.865 基本的には2つの異なる方法があります。
42 00:01:58.565 --> 00:02:01.785 1つはワークフローと呼ばれるもので、
43 00:02:01.785 --> 00:02:04.665 LMツールが、皆さん自身で定義する
44 00:02:04.665 --> 00:02:07.705 コードパスのようなものを通じてオーケストレーションされるシステムです。
45 00:02:08.525 --> 00:02:12.145 そしてもう1つがエージェントで、これは
46 00:02:12.245 --> 00:02:14.425 LLMが自らのプロセスやツールの使用を
47 00:02:14.425 --> 00:02:15.585 動的に指示するシステムです。
48 00:02:16.365 --> 00:02:18.665 そしてもう一方は、タスクが
49 00:02:18.665 --> 00:02:20.985 実際に達成されていることを確認します。
50 00:02:21.405 --> 00:02:22.865 問題があれば、
51 00:02:22.865 --> 00:02:23.945 それを確認します。
52 00:02:24.485 --> 00:02:26.425 そして、それを解決しようとします。
53 00:02:26.565 --> 00:02:28.265 これを自分たちで修正するためです。
54 00:02:30.685 --> 00:02:35.585 そして、エージェントをいつ使うべきか、いつ使うべきでないかを知っておくのは良いことです。
55 00:02:35.925 --> 00:02:38.865 ええと、つまりエージェントシステムは非常に強力になり得ますが、
56 00:02:39.405 --> 00:02:40.865 同時にレイテンシー
57 00:02:40.865 --> 00:02:43.305 やコストと引き換えに、より良いパフォーマンスを得るものでもあります。
58 00:02:43.305 --> 00:02:46.505 つまり、もし何かに取り組んでいて、
59 00:02:46.505 --> 00:02:48.585 本当に非常に低いレイテンシーが必要な場合、
60 00:02:48.995 --> 00:02:51.345 エージェントシステムは、ええと、あなたには適していないかもしれません。
61 00:02:53.335 --> 00:02:57.105 また、ワークフローの良いところは、つまり、
62 00:02:57.105 --> 00:02:59.485 予測可能性と一貫性を提供してくれることですが、
63 00:03:00.065 --> 00:03:02.285 タスクが非常に明確に定義されている必要があります。
64 00:03:02.305 --> 00:03:04.205 つまり、あなたは、その、やはり
65 00:03:04.905 --> 00:03:07.125 エージェント以前にやっていたやり方で行う必要があり、
66 00:03:07.125 --> 00:03:10.125 実際に関数を定義し、ええと、
67 00:03:10.125 --> 00:03:11.205 その関数が何をするのかを定義する、ということです。
68 00:03:11.625 --> 00:03:14.165 ええと、そして本当にYOLOで進めることはできません。つまり、
69 00:03:14.195 --> 00:03:16.045 エージェントで時々やるような感じにはできないのです。
70 00:03:17.345 --> 00:03:20.485 そして、柔軟性が必要で、
71 00:03:21.025 --> 00:03:23.365 モデルに実際に意思決定をしてもらう必要がある場合には、エージェントの方が良い選択肢になり得ます。
72 00:03:23.365 --> 00:03:26.565 つまり、ええと、たとえば質問をして、ええと、
73 00:03:26.865 --> 00:03:28.965 多くのユーザーがいて、その人たちがさまざまな
74 00:03:28.965 --> 00:03:30.005 種類の質問をできるような場合です。
75 00:03:30.915 --> 00:03:33.365 その場合、NLMに判断させることができます。つまり、
76 00:03:33.365 --> 00:03:35.085 これが私の取るアクションになる、というようにです。
77 00:03:35.745 --> 00:03:38.485 ええと、そしてこれが、エージェントを持つことになる場面です。
78 00:03:41.095 --> 00:03:42.715 ここでいくつか例を挙げます。
79 00:03:43.295 --> 00:03:46.875 ええと、これは基本的に、私たちが扱っているものです。
80 00:03:47.455 --> 00:03:50.555 ええと、ここでは左側に表示されている入力があり、ええと、
81 00:03:50.735 --> 00:03:52.515 その入力があり、それからLLMに渡され、
82 00:03:52.655 --> 00:03:56.275 そしてLMは拡張されています。つまり、検索ツールで
83 00:03:56.275 --> 00:03:57.555 拡張されています。
84 00:03:57.615 --> 00:04:00.195 たとえばここでは、データベースのようなものを考えてください。
85 00:04:00.855 --> 00:04:02.675 しかし、他のツールを追加することもできます。
86 00:04:02.895 --> 00:04:04.955 たとえば、Web検索を追加できます。
87 00:04:05.095 --> 00:04:08.195 社内にあるさまざまなツールとの
88 00:04:08.195 --> 00:04:09.275 統合を追加することもできます。
89 00:04:09.935 --> 00:04:12.475 ええと、そうすることで、つまり、
90 00:04:12.585 --> 00:04:15.435 ユーザーが、たとえば、何でしょう、
91 00:04:15.475 --> 00:04:18.435 Notionページについて質問している場合、Notionを呼び出すツールを用意して、
92 00:04:18.655 --> 00:04:20.195 その結果を返してもらうことができます。
93 00:04:21.825 --> 00:04:23.965 メモリの読み書きもできます。
94 00:04:24.505 --> 00:04:26.565 ええと、それも通常は、ええと、
95 00:04:26.565 --> 00:04:28.525 ここでベクトルデータベースに保存するものです。
96 00:04:29.145 --> 00:04:31.285 ええと、そしてそれらすべてがそろうと、
97 00:04:31.425 --> 00:04:32.605 出力が得られることになります。
98 00:04:33.145 --> 00:04:35.245 そしてこれが、私たちが拡張されたものと呼ぶもので、
99 00:04:35.645 --> 00:04:38.805 私たちが扱っているものです。ええと、ほとんどの場合はそうです。
100 00:04:39.145 --> 00:04:41.165 ええと、これは私が扱っているもので、ええと、
101 00:04:41.165 --> 00:04:42.845 顧客と、はい、ほとんどの場合に扱っています。
102 00:04:45.105 --> 00:04:48.525 そして、ワークフローが何であるかをよりよく理解してもらうために、ええと、
103 00:04:48.715 --> 00:04:50.925 これはプロンプトチェイニングと呼ばれるワークフローです。
104 00:04:51.465 --> 00:04:55.965 つまり入力があり、この入力はLMを通り、
105 00:04:56.545 --> 00:04:58.605 そしてこのLLMの出力が得られます。
106 00:04:58.665 --> 00:05:00.405 それから何らかのゲートがあります、つまり、
107 00:05:00.405 --> 00:05:02.605 実際には、ええと、プログラムされたものです。
108 00:05:02.625 --> 00:05:03.885 つまり何らかのコードを書いて、
109 00:05:04.265 --> 00:05:06.485 そして、よし、自分が持っている出力に応じて、
110 00:05:06.485 --> 00:05:09.205 ええと、それを合格か不合格として
111 00:05:09.305 --> 00:05:11.045 判断する、という感じになります。
112 00:05:11.555 --> 00:05:13.325 そして不合格なら、そのワークフローを
113 00:05:13.325 --> 00:05:14.405 終了することになります。
114 00:05:14.825 --> 00:05:17.405 でも合格なら、2つ目のLMを呼び出して、
115 00:05:17.545 --> 00:05:19.565 3つ目も呼び出して、というように、
116 00:05:19.585 --> 00:05:21.885 満足するところまで続けられます。
117 00:05:22.345 --> 00:05:24.325 そして結果をユーザーに返すことができます。
118 00:05:25.905 --> 00:05:27.245 これが私たちの言うプロトレーニングです。
119 00:05:27.305 --> 00:05:30.285 そしてここでは、そう、自分でコードを定義します。
120 00:05:30.585 --> 00:05:33.245 ええ、判断を下しているのはエージェントではありません。
121 00:05:34.875 --> 00:05:37.005 それから、たとえば何らかのルーティングを
122 00:05:37.345 --> 00:05:38.525 持つことも考えられます。
123 00:05:38.825 --> 00:05:42.485 ええと、ここではエージェントが判断を下しているのですが、
124 00:05:42.545 --> 00:05:44.485 ただ、ほら、定義しておいて、
125 00:05:44.485 --> 00:05:46.005 ルートは自分で指定することになります。
126 00:05:46.665 --> 00:05:48.485 ええと、入力があって、
127 00:05:48.985 --> 00:05:51.285 そしてまた、LLMを通します。
128 00:05:51.865 --> 00:05:55.205 そしてこのLLMが、どのルートを取るかを判断します。
129 00:05:55.865 --> 00:05:59.605 そして通常、そのためには、LMが理解できるように、
130 00:05:59.605 --> 00:06:02.805 かなり長いプロンプトを書かなければなりません。ええと、
131 00:06:02.865 --> 00:06:06.085 そしてこのプロンプトで、たとえばユーザーが尋ねている場合、
132 00:06:06.405 --> 00:06:09.685 返金を受ける方法について、私はよくわかりませんが、ええと、
133 00:06:09.755 --> 00:06:11.165 その場合は、LMに進みます。
134 00:06:11.165 --> 00:06:12.525 それは、サポートを担当しているものです。
135 00:06:13.665 --> 00:06:17.165 誰かが、たとえばクレジットをもっと得る方法を尋ねているなら、
136 00:06:17.515 --> 00:06:19.365 それは別のLMかもしれません。つまり、ほら、
137 00:06:19.365 --> 00:06:20.685 クレジットを追加するものか何かです。
138 00:06:21.305 --> 00:06:24.165 そして通常かなり長いプロンプトになります。
139 00:06:24.165 --> 00:06:27.725 そして、それがどう動作するかについて、さまざまな例を定義します。
140 00:06:28.265 --> 00:06:30.045 するとルーティングシステムがそれを理解します。
141 00:06:30.105 --> 00:06:33.365 そしてクエリがあると、それを
142 00:06:33.365 --> 00:06:34.685 あなたが持っている別々のLMにリダイレクトします。
143 00:06:36.195 --> 00:06:38.015 回答を組み合わせる場合もあれば、そうでない場合もあります。
144 00:06:38.155 --> 00:06:40.575 ええ、この例によっては、組み合わせません。
145 00:06:40.575 --> 00:06:43.495 ただ、別々の呼び出しから得た結果を返すだけです。
146 00:06:45.185 --> 00:06:48.885 そしてエージェントについては、基本的に常に、たとえば、
147 00:06:49.065 --> 00:06:51.885 ここに人間がいて、つまり、チャットしていて、ええと、
148 00:06:52.275 --> 00:06:54.565 LLMとやり取りし、それからLLMが
149 00:06:54.565 --> 00:06:56.445 言われた内容に基づいて行動を取ると判断します。
150 00:06:56.905 --> 00:06:58.605 ええ、でも通常それは事前定義されていません。
151 00:06:58.705 --> 00:07:02.045 あるいは、LMがアクセスできる
152 00:07:02.045 --> 00:07:05.125 いくつかのアクションを定義し、説明を与えることはできるかもしれません。
153 00:07:05.705 --> 00:07:07.285 ええと、でも実際には「ねえ、
154 00:07:07.785 --> 00:07:09.285 それがあるなら、これをやる」とは言わないんです。
155 00:07:10.145 --> 00:07:12.525 そしてその行動は、まあ、
156 00:07:12.705 --> 00:07:15.165 何であれ環境の中で進展していき、
157 00:07:15.985 --> 00:07:17.205 その後フィードバックを得ます。
158 00:07:17.465 --> 00:07:20.045 ええと、それから、LLM はその後、まあ、
159 00:07:20.045 --> 00:07:22.405 環境からのこのフィードバックを見て、
160 00:07:22.465 --> 00:07:24.045 「満足しているのか、していないのか?」
161 00:07:24.065 --> 00:07:25.365 「もっと行動を取る必要があるのか?」
162 00:07:25.945 --> 00:07:27.925 ええと、そんな感じで続いていきます。
163 00:07:28.595 --> 00:07:29.885 LLM が満足して
164 00:07:30.265 --> 00:07:33.245 フィードバックが肯定的になったら、次に
165 00:07:33.555 --> 00:07:35.605 「よし、ここで止める必要がある」という感じになります。
166 00:07:35.745 --> 00:07:37.045 そしてこれは停止し、
167 00:07:37.045 --> 00:07:38.605 結果を返してくれます。
168 00:07:39.385 --> 00:07:42.085 これが基本的にエージェントと呼ばれるものです。
169 00:07:42.345 --> 00:07:44.685 少なくとも Anthropic が定義したもの、ええと、
170 00:07:44.685 --> 00:07:45.765 私が同意している定義です。
171 00:07:47.245 --> 00:07:50.345 そして、ここで制御を失うことになります。
172 00:07:50.765 --> 00:07:53.705 ええと、エージェントを実際に動かす必要があります。
173 00:07:54.205 --> 00:07:57.825 ええと、だから、実行することがとても重要です。つまり、
174 00:07:57.825 --> 00:07:59.345 できればサンドボックス環境で実行し、
175 00:07:59.685 --> 00:08:01.465 適切なガードレールも用意することです。
176 00:08:01.895 --> 00:08:05.025 なぜなら、エージェントに、たとえば
177 00:08:05.045 --> 00:08:06.585 データベースを削除されたくはないですし、
178 00:08:07.245 --> 00:08:09.425 エージェントに、まあ、
179 00:08:09.485 --> 00:08:10.745 支払いを実行されたくもないからです。
180 00:08:11.125 --> 00:08:13.065 そしてそれは私たちが目にしていることの一つです。
181 00:08:13.185 --> 00:08:14.345 聞いたことがあるかどうか分かりませんが、
182 00:08:14.365 --> 00:08:18.545 ええと、MCP、つまり Anthropic の model context protocol も
183 00:08:18.645 --> 00:08:20.585 ええと、非常に人気があり、
184 00:08:20.925 --> 00:08:24.025 それによって、ええと、さまざまな LLM が
185 00:08:24.025 --> 00:08:27.785 実際にあなたの環境に対してアクションを実行できるようになります。
186 00:08:28.445 --> 00:08:31.305 ええと、vis ではたとえば、それをサポートしていますが、
187 00:08:31.325 --> 00:08:35.265 ただし、そこにデータベースの削除は追加しませんでした。
188 00:08:35.375 --> 00:08:36.665 リスクが高すぎるからです。
189 00:08:36.765 --> 00:08:39.705 そしておそらく、ええと、それは
190 00:08:39.705 --> 00:08:41.665 エージェントに任せるのではなく、自分でやりたいことでしょう。
191 00:08:42.895 --> 00:08:44.595 つまり、そういったことを
192 00:08:44.595 --> 00:08:45.795 考慮に入れる必要があります。
193 00:08:47.495 --> 00:08:50.355 そして、はい、いつエージェントを使うべきか。
194 00:08:50.655 --> 00:08:53.395 たとえば、何が起こるか本当に分からないような
195 00:08:53.395 --> 00:08:55.765 オープンエンドな問題に使います。つまり、
196 00:08:55.765 --> 00:08:56.765 必要なステップ数を
197 00:08:56.985 --> 00:08:58.845 予測するのが難しい場合です。
198 00:08:59.665 --> 00:09:01.805 また、固定された経路をハードコードすることも本当にできません。
199 00:09:02.395 --> 00:09:05.295 そして先ほど言ったように、可能であればサンドボックス環境を使い、
200 00:09:05.555 --> 00:09:06.735 ガードレールも用意してください。
201 00:09:07.155 --> 00:09:08.295 ええと、それによって
202 00:09:08.295 --> 00:09:09.975 何が起きているかを制御し続けられます。
203 00:09:12.855 --> 00:09:14.795 そして、もしかすると Vector Search や Vector database に
204 00:09:14.825 --> 00:09:17.315 馴染みのない人のために、
205 00:09:17.315 --> 00:09:20.835 というのも、これが後ほど私が示す内容で、
206 00:09:20.835 --> 00:09:24.675 browser use がインターネットをブラウズし、
207 00:09:24.775 --> 00:09:26.715 その後、実際にすべてを vu に保存します。
208 00:09:26.815 --> 00:09:29.675 そして私は、その後 browser use を通じて処理された
209 00:09:29.675 --> 00:09:31.875 すべてのものを検索できるようになります。
210 00:09:32.855 --> 00:09:36.155 では手短に説明すると、ベクトルは構造化データ、
211 00:09:36.355 --> 00:09:38.715 馴染みのない方のために言うと、非構造化データを解き放ちます。
212 00:09:39.025 --> 00:09:41.515 それは、画像から動画、
213 00:09:42.155 --> 00:09:46.675 文書、音声、ええと、さらにそれ以上まで、すべてを
214 00:09:46.675 --> 00:09:47.835 埋め込みモデルと呼ぶものに通します。
215 00:09:48.895 --> 00:09:51.955 すると、それを通じていくつかの埋め込みが生成されます。
216 00:09:52.455 --> 00:09:54.635 それらをベクトルデータベースに直接保存します。
217 00:09:55.295 --> 00:09:57.275 そしてその後、それができれば、
218 00:09:57.545 --> 00:10:00.115 検索を実行できます。たとえば、ええと、
219 00:10:00.215 --> 00:10:01.955 degeneration を伴う検索などです。
220 00:10:01.975 --> 00:10:04.915 つまり RAG、あるいは推薦システム、
221 00:10:05.335 --> 00:10:07.955 またはテキスト、画像、音声の検索もできます。
222 00:10:08.865 --> 00:10:12.195 創薬や異常検知にも非常に有用です。
223 00:10:14.015 --> 00:10:16.955 仕組みとしては、すべてのベクトルを
224 00:10:16.955 --> 00:10:18.075 ベクトル空間と呼ぶものに射影します。
225 00:10:18.775 --> 00:10:21.355 そして意味的に互いに似ているものは、ええと、
226 00:10:21.375 --> 00:10:22.835 近い位置になります。
227 00:10:23.535 --> 00:10:26.715 ええと、ここで見られるように、たとえば
228 00:10:26.855 --> 00:10:27.875 バナナの画像と
229 00:10:28.215 --> 00:10:30.395 テキストの banana では、
230 00:10:30.395 --> 00:10:31.555 非常に近いことがわかります。
231 00:10:32.495 --> 00:10:35.715 同じように、ここにある動物の場合も、
232 00:10:35.815 --> 00:10:38.795 テキストの dog とテキストの cat、
233 00:10:38.975 --> 00:10:40.275 そして猫の画像があると、
234 00:10:40.275 --> 00:10:42.355 それらもかなり似ていて、かなり近くなります。
235 00:10:42.855 --> 00:10:45.835 ここにある青い点はすべて
236 00:10:45.965 --> 00:10:47.515 他のベクトルだと想像してください。つまり、
237 00:10:47.545 --> 00:10:48.835 それぞれ別の意味を持っています。
238 00:10:49.605 --> 00:10:51.025 だから、あちこちに散らばっているようなものです。
239 00:10:51.965 --> 00:10:54.905 もちろん、ここでは 3D の例で、
240 00:10:54.935 --> 00:10:56.105 3 次元です。
241 00:10:56.325 --> 00:10:58.305 しかし、ええと、想像してほしいのは、
242 00:10:58.305 --> 00:11:02.745 実際には通常 512、1024、ええと、
243 00:11:02.965 --> 00:11:06.905 あるいはそれ以上の次元で、最新の Gemini はかなり、ええと、
244 00:11:06.905 --> 00:11:08.385 正しく覚えていれば 4,000 です。
245 00:11:08.965 --> 00:11:12.105 ええ、でもそうやって何が何に似ているのか、
246 00:11:12.105 --> 00:11:16.455 そしてそれがどのように機能するのかを把握できます。
247 00:11:16.955 --> 00:11:18.775 ええと、つまり非構造化データがあり、
248 00:11:19.535 --> 00:11:20.975 それらをベクトルに変換し、
249 00:11:20.975 --> 00:11:22.455 ベクトルデータベースに直接保存します。
250 00:11:22.455 --> 00:11:24.775 次にクエリがあり、それを再び
251 00:11:24.895 --> 00:11:25.935 同じ埋め込みモデルに通します。
252 00:11:26.475 --> 00:11:28.535 すると 1 つのベクトル埋め込みが得られ、
253 00:11:29.075 --> 00:11:32.135 そして、ええと、最近傍、ええと、を実行します。
254 00:11:32.135 --> 00:11:34.655 類似検索を行い、それから結果が得られます。
255 00:11:35.075 --> 00:11:38.455 そしてこれが、WebU vis が、つまり
256 00:11:38.455 --> 00:11:39.535 基本的にそれを行うのを手助けするためのものです。
257 00:11:41.375 --> 00:11:43.755 つまり VIS はオープンソースのベクトルデータベースです。
258 00:11:44.135 --> 00:11:46.555 ええと、私たちは始めやすいと言いたいです。
259 00:11:47.295 --> 00:11:49.155 ええ、つまり、直接自分のラップトップで peep install から始められると言えますし、ええ、
260 00:11:49.155 --> 00:11:51.675 そしてそれを実行でき、つまり、直接自分のコード内で実行できますし、
261 00:11:51.695 --> 00:11:53.885 あるいは notebook で実行することもできます。
262 00:11:53.945 --> 00:11:55.325 そしてそれから本番環境にも直接プッシュできます。
263 00:11:56.305 --> 00:11:59.485 ただ、ええと、VU client の UAI を変更するだけでいいのです。
264 00:11:59.505 --> 00:12:03.845 そして、例えば、ええと、WS のどこかや
265 00:12:04.145 --> 00:12:05.245 Google Cloud で動かしているなら、ええ、
266 00:12:05.345 --> 00:12:07.725 本番環境に直接プッシュすることが可能です。
267 00:12:07.725 --> 00:12:10.165
268 00:12:10.875 --> 00:12:12.205 また、私たちは多くの異なる機能もサポートしています。
269 00:12:13.945 --> 00:12:16.725 つまり、ベクトル検索がありますが、
270 00:12:17.225 --> 00:12:18.925 それについては後ほどもう少し話します。
271 00:12:19.465 --> 00:12:21.645 私たちはベクトル検索だけをサポートしているわけではありません、ええ、
272 00:12:21.645 --> 00:12:24.365 full tech search もサポートしています。
273 00:12:24.465 --> 00:12:25.925 それから、例えば、いくつかの index もあります
274 00:12:27.025 --> 00:12:28.675 それはこの basic、この base based index のようなものです、すみません、ええ、
275 00:12:28.675 --> 00:12:32.955 water simple dynamic schemas、ええ、思いつくものとしては。
276 00:12:32.955 --> 00:12:35.595 つまり fluids binary や sparse vectors のようなものです。
277 00:12:35.615 --> 00:12:38.395 そして、はい、私たちには本当に多くの異なる機能があります。
278 00:12:40.575 --> 00:12:42.675 ですので、もし非常に強力な
279 00:12:43.515 --> 00:12:45.935 ベクトルデータベースが欲しいなら、とても良いです。
280 00:12:46.205 --> 00:12:48.015 そして私たちは異なる機能をサポートしていますが、
281 00:12:49.795 --> 00:12:51.775 スケールする準備もできています。
282 00:12:51.775 --> 00:12:52.975 つまり VIS slide があり、
283 00:12:53.275 --> 00:12:54.535 これは PIP install を行うときに実行するものです。
284 00:12:54.535 --> 00:12:56.775 vis によって、これは約100万ベクトルまでスケールします。
285 00:12:56.915 --> 00:13:00.015 それから VIS standalone があります、ええ、
286 00:13:00.565 --> 00:13:02.615 これは単一の docker image に直接バンドルされています。
287 00:13:02.625 --> 00:13:05.015 これは primary と secondary をサポートしており、
288 00:13:05.525 --> 00:13:07.855 約1億ベクトルまでスケールできます。
289 00:13:07.855 --> 00:13:09.935 それから、ええ、多数のベクトルがある場合には、distributed があります。
290 00:13:11.015 --> 00:13:14.865 これは es 上で動作し、ええ、load balancer と
291 00:13:15.095 --> 00:13:18.345 multi-node management があり、
292 00:13:18.445 --> 00:13:19.625 これは約1000億ベクトルまでスケールしました。
293 00:13:20.205 --> 00:13:22.465
294 00:13:24.645 --> 00:13:27.905 はい、前にすでに言ったと思いますが、ええ、
295 00:13:27.965 --> 00:13:30.385 Metaverse は今や単なるベクトル以上のものです。
296 00:13:31.085 --> 00:13:33.465 ええと、なぜなら私たちのビジョンは本当にそれ以上だからです。
297 00:13:33.805 --> 00:13:35.545 ええ、私たちは、つまり、検索の未来は
298 00:13:35.605 --> 00:13:38.625 異なる検索技術を組み合わせることだと信じています。
299 00:13:39.285 --> 00:13:42.305 まずは semantic search で、つまり、
300 00:13:42.565 --> 00:13:44.465 ええと、embedding model と dense embeddings を使います。
301 00:13:45.845 --> 00:13:49.065 しかしそれから keyword search です、つまり、それは
302 00:13:49.065 --> 00:13:51.185 ある意味古い技術で、実際に
303 00:13:51.205 --> 00:13:53.345 正確なキーワードや正確な単語を検索するものです、
304 00:13:54.205 --> 00:13:55.745 その上でフィルタリングします。
305 00:13:55.885 --> 00:13:57.505 つまり、データを通じてフィルタリングすることもできます
306 00:13:58.045 --> 00:14:00.025 特にメタデータのフィルタリングを通じてです。
307 00:14:00.325 --> 00:14:02.345 ですから、多くのデータを取り除くことができます
308 00:14:02.345 --> 00:14:04.345 本当に興味がないとわかっているものをです。
309 00:14:05.325 --> 00:14:09.065 そしてそれらを1つの統合プラットフォームで組み合わせることで、
310 00:14:09.325 --> 00:14:11.625 基本的に最良の結果を得る最善の方法になります。
311 00:14:12.285 --> 00:14:13.465 そしてそれは非常に、非常に重要です
312 00:14:13.465 --> 00:14:16.465 なぜならエージェントはインターネットに行くと、ほら、
313 00:14:16.465 --> 00:14:17.825 大量のデータを取得するからです。
314 00:14:18.425 --> 00:14:20.225 エージェントが何をしているにせよ、ほとんど
315 00:14:20.225 --> 00:14:21.825 の場合、実際にはデータを取得しています。
316 00:14:22.885 --> 00:14:27.125 そして優れた検索はエージェントの成功の鍵です。
317 00:14:28.585 --> 00:14:31.005 それは、ほら、OpenAI
318 00:14:31.185 --> 00:14:33.685 やさまざまな、ええと、ツールでも見られます。例えば、ほら、
319 00:14:33.685 --> 00:14:36.405 ディープサーチやディープリサーチがあるとき、ええと、
320 00:14:36.825 --> 00:14:38.925 品質はデータの検索にかかっています。
321 00:14:39.825 --> 00:14:41.605 ですから、はい、私たちは、ほら、
322 00:14:41.605 --> 00:14:43.125 それらすべてを組み合わせられると考えています。
323 00:14:44.225 --> 00:14:48.205 そして以前はいつも、ほら、もし
324 00:14:48.225 --> 00:14:49.885 キーワード検索
325 00:14:50.025 --> 00:14:52.685 とベクトル検索が欲しいなら、ええと、
326 00:14:52.685 --> 00:14:55.525 2つの別々のシステムが必要でした。1つはベクトルデータベースで
327 00:14:55.525 --> 00:14:58.765 セマンティック検索用、もう1つはElasticsearch
328 00:14:58.785 --> 00:15:00.365 や類似のものをキーワード検索用に使うという形です。
329 00:15:01.385 --> 00:15:03.485 それは良かったのですが、ほら、動いてはいましたし、
330 00:15:03.625 --> 00:15:05.965 素晴らしかったのですが、その一方で何らかの
331 00:15:05.965 --> 00:15:09.055 複雑なアーキテクチャもそこに伴っていました。
332 00:15:09.715 --> 00:15:12.975 ええと、だから今は自分たちでやることに決めました。
333 00:15:13.075 --> 00:15:15.815 そしてフルテキスト検索を提供しています、
334 00:15:15.815 --> 00:15:17.015 基本的にはaddressを通じて実行されます。
335 00:15:18.195 --> 00:15:19.655 前にも触れましたが、
336 00:15:20.155 --> 00:15:22.335 それによって検索品質を向上させることができます
337 00:15:22.955 --> 00:15:24.775 埋め込みベースの、ええと、セマンティック検索の品質です。
338 00:15:25.555 --> 00:15:27.975 そしてさらに検索を提供することにもなります
339 00:15:27.975 --> 00:15:30.375 Q1マッチングをより重視したものです。
340 00:15:30.375 --> 00:15:34.255 例えば、そうですね、あなたがAdidasで働いていて
341 00:15:34.555 --> 00:15:37.535 そしてたぶんAmazonで働いているとして、
342 00:15:37.715 --> 00:15:39.935 ユーザーが、ほら、探すのは
343 00:15:40.835 --> 00:15:42.975 Adidasの靴で、そして最初に返すのは、
344 00:15:42.975 --> 00:15:44.455 ほら、Nikeの靴
345 00:15:44.635 --> 00:15:45.815 や他のブランドになるわけです。
346 00:15:46.435 --> 00:15:50.495 それは、セマンティック検索だけを実行している場合、seman、
347 00:15:50.635 --> 00:15:52.375 ほら、それらのブランドは非常に、非常に近い
348 00:15:52.375 --> 00:15:54.415 ものになるからです。同じようなものを売っているからです。
349 00:15:55.155 --> 00:15:57.095 だからこそ、そこで、例えば、
350 00:15:57.095 --> 00:15:58.415 キーワード検索が非常に役立つことがあります
351 00:15:58.725 --> 00:16:01.215 なぜなら、そうすると本当に、ほら、
352 00:16:01.275 --> 00:16:04.295 他のブランドではなくAdidasに重点を置くからです。
353 00:16:04.955 --> 00:16:06.495 そのため、より良い結果が得られ、
354 00:16:06.555 --> 00:16:07.895 ユーザーもより満足するでしょう。
355 00:16:10.515 --> 00:16:11.975 そして私たちのアプローチは、
356 00:16:11.975 --> 00:16:14.255 基本的にベクトルのことは忘れていいというものです。
357 00:16:14.475 --> 00:16:16.375 ええと、そのやり方は、
358 00:16:16.435 --> 00:16:18.575 実際それがとても良い理由でもあるのですが、
359 00:16:18.575 --> 00:16:19.935 テキストを用意して、
360 00:16:20.395 --> 00:16:22.655 それを直接 vis に挿入し、
361 00:16:22.795 --> 00:16:25.135 そして同じテキストを使って検索する、というものです。
362 00:16:25.675 --> 00:16:27.975 だから埋め込みモデルについて考える必要はなく、
363 00:16:28.515 --> 00:16:30.375 それに、ええと、ああ、
364 00:16:30.415 --> 00:16:31.895 ベクトルを得たけど、これをどうすればいいんだ?
365 00:16:32.235 --> 00:16:34.295 みたいなことを考える必要もありません。ええと、
366 00:16:34.525 --> 00:16:36.575 挿入するときも検索するときも、テキストを扱うことになります。
367 00:16:37.735 --> 00:16:39.895 なぜなら、テキストのトークン化や、
368 00:16:40.595 --> 00:16:43.215 分布の管理を私たちが引き受けるからです。ええと、
369 00:16:43.215 --> 00:16:45.855 実際それを行うのはそれほど単純ではありません。
370 00:16:46.955 --> 00:16:48.855 そして、必要であれば実際に
371 00:16:48.855 --> 00:16:49.975 すべてをベクトルにエンコードできるように
372 00:16:49.975 --> 00:16:51.295 しておく、ということです。
373 00:16:52.155 --> 00:16:54.495 ええと、そしてすべてを BM 25 でスコアリングします。
374 00:16:56.695 --> 00:16:57.795 そしてこれがその見た目です。
375 00:16:58.255 --> 00:17:00.515 考え方としては、つまり、これはあなたのテキストデータを受け取り、
376 00:17:01.135 --> 00:17:04.395 そして milli versus がテキストの解析を担当し、
377 00:17:04.395 --> 00:17:06.395 必要であればいくつかの関数も含めて、
378 00:17:06.815 --> 00:17:08.635 そして異なる埋め込みを作成します。
379 00:17:08.735 --> 00:17:11.595 ええと、だからテキストをクエリするときには、ええと、
380 00:17:11.665 --> 00:17:13.275 何も考える必要はありません。
381 00:17:13.275 --> 00:17:14.395 私たちがすべてやります。
382 00:17:17.015 --> 00:17:19.435 でもそれらについてはもう十分です。
383 00:17:19.735 --> 00:17:21.195 ええと、では今日は何を作るのでしょうか?
384 00:17:22.055 --> 00:17:23.555 ええと、私はそれを管理しました、
385 00:17:24.495 --> 00:17:27.395 そして実際、そのアイデアは私が抱えている問題から来ています。
386 00:17:27.695 --> 00:17:30.235 ええと、VIS に詳しくない人のために言うと、
387 00:17:30.235 --> 00:17:33.675 これはもちろん、ええと、Vector database の名前ですが、
388 00:17:33.775 --> 00:17:35.235 同時に鳥の名前でもあります。
389 00:17:35.895 --> 00:17:40.005 ええと、例えば X に行って、
390 00:17:40.105 --> 00:17:42.285 vis について検索すると、いくつか、
391 00:17:42.305 --> 00:17:45.125 例えば Lang chain によるツイートのようなものが見られます。
392 00:17:45.185 --> 00:17:48.325 それは、つまり私たちの graph agent についてのもので、
393 00:17:48.865 --> 00:17:51.605 そして NEO four J と行ったことについてのものです。これは、ええと、
394 00:17:51.905 --> 00:17:53.205 彼らとの共同作業でした。
395 00:17:53.825 --> 00:17:55.565 それは、いいですね、嬉しいです。
396 00:17:55.565 --> 00:17:58.885 なぜなら dev advocates として、私はユーザーと話したいからです。
397 00:17:59.645 --> 00:18:01.325 人々が nervous で何を作っているのか見たいのです。
398 00:18:02.345 --> 00:18:04.925 しかしその一方で、とてもクールな写真も見えます。
399 00:18:05.055 --> 00:18:06.605 誤解しないでください、ええと、
400 00:18:06.625 --> 00:18:09.285 でもそれは、つまり、黒いトビで、
401 00:18:09.285 --> 00:18:11.765 そしてそれが、つまり、建物の上にいるだけです。
402 00:18:12.585 --> 00:18:15.245 そして検索すると、そういうものがたくさん見つかります。
403 00:18:15.245 --> 00:18:17.885 なぜなら Vis は、ええと、鳥としてとても人気があり、
404 00:18:18.465 --> 00:18:19.845 ええと、人気のある鳥だからです。
405 00:18:19.985 --> 00:18:22.405 そしてそういうものには、私は関心がありませんし、Twitter でも
406 00:18:22.505 --> 00:18:25.365 またはXには実際にはフィルターがありません。
407 00:18:25.785 --> 00:18:28.085 だから、もしすべてのツイートを取得すると、ええと、そうすると、
408 00:18:28.235 --> 00:18:30.405 問題が起きるし、面倒なことになります。
409 00:18:31.665 --> 00:18:34.885 なのでアイデアとしては、ええと、ボットが欲しくて、基本的には
410 00:18:34.885 --> 00:18:39.365 エージェントを使って、より賢いAIのようなものを作りたいんです。
411 00:18:39.785 --> 00:18:41.525 そうすれば、自分のSNSを閲覧できるし、
412 00:18:41.625 --> 00:18:44.365 私が確認しなくても、さまざまなウェブサイトも
413 00:18:44.365 --> 00:18:45.485 閲覧できます。
414 00:18:45.665 --> 00:18:49.005 ええ、そして私がデータをクリーンアップしたり、
415 00:18:49.265 --> 00:18:53.085 鳥の写真を取り除いたり、カメラの写真も
416 00:18:53.785 --> 00:18:55.885 取り除いたりしなくても済みます。これも非常に多いので。
417 00:18:56.625 --> 00:19:00.755 はい、つまり視覚理解を
418 00:19:01.415 --> 00:19:02.835 文脈認識と組み合わせます。
419 00:19:03.535 --> 00:19:05.275 そうするとエージェント、つまり
420 00:19:05.275 --> 00:19:07.635 アシスタントは実際に、ええと、
421 00:19:07.775 --> 00:19:11.035 鳥とvisに関する新しい記事の違いがわかるようになります。
422 00:19:11.575 --> 00:19:14.435 そして将来的に私が望んでいるのは、
423 00:19:15.305 --> 00:19:17.835 このアシスタントが私に、ええ、
424 00:19:17.835 --> 00:19:20.475 ユーザーが何について話しているのか、Melvaに満足しているのか、
425 00:19:20.475 --> 00:19:22.395 何か助けを必要としているのかを教えてくれることです。
426 00:19:23.015 --> 00:19:26.435 そうすれば、すべての写真や、
427 00:19:26.655 --> 00:19:27.715 鳥に関するすべてのものを除外できます。
428 00:19:28.415 --> 00:19:31.315 ええ、でもこれはデモのために考えているアイデアにすぎません。
429 00:19:31.735 --> 00:19:33.555 ただ、後ほど実際に動く様子をご覧いただけます。
430 00:19:33.895 --> 00:19:37.595 本当にどんなウェブサイトにも行けますし、ええ、たくさんのことができます。
431 00:19:37.595 --> 00:19:40.315 そしてエージェントに、ええ、
432 00:19:40.985 --> 00:19:42.475 あなたの、ええ、ウェブブラウザを操作させることができます。
433 00:19:42.525 --> 00:19:47.475 すみません。では、ここで使う技術スタックですが、
434 00:19:48.975 --> 00:19:50.255 すでに何度か言及しました。
435 00:19:50.675 --> 00:19:53.535 ええ、browser useを使います。これはオープンソースの、ええ、
436 00:19:54.155 --> 00:19:56.975 AIエージェントがブラウザを制御できるようにするシステムです。
437 00:19:57.715 --> 00:20:01.255 ええ、もし不安であれば、
438 00:20:01.315 --> 00:20:02.655 必要に応じて新しいブラウザを使わせることもできます。
439 00:20:03.355 --> 00:20:06.535 ええ、それには複数タブ管理のような便利な機能があり、
440 00:20:06.535 --> 00:20:08.935 どのタブでどこへ行くべきかがわかります。
441 00:20:09.595 --> 00:20:11.535 ええ、また非常に良い点として、
442 00:20:12.075 --> 00:20:15.535 視覚とHD ML抽出をサポートしています。
443 00:20:16.315 --> 00:20:18.255 たとえば、あるウェブサイトに行って、
444 00:20:18.915 --> 00:20:23.215 HTMLタグに埋め込まれた画像しかないとします。
445 00:20:23.235 --> 00:20:26.575 その場合、そこでHTMLを抽出しても、
446 00:20:27.085 --> 00:20:28.255 あまり役に立ちません。
447 00:20:28.255 --> 00:20:30.335 画像のタグだけが得られるだけです。
448 00:20:30.715 --> 00:20:34.055 そこでここでは視覚言語モデルを使って、
449 00:20:34.055 --> 00:20:35.855 画像で何が起きているのかを理解します。
450 00:20:36.395 --> 00:20:38.735 ええ、これがBrowser usesが行っていることです。
451 00:20:38.765 --> 00:20:41.575 基本的に、何が起きているのかを理解できるようになります。
452 00:20:41.575 --> 00:20:44.815 視覚言語モデルとHTMLを通じてです。
453 00:20:45.935 --> 00:20:49.405 また、いくつかのアクション、ええ、カスタムアクションを定義することもできます。
454 00:20:49.975 --> 00:20:51.725 そこでプロンプトを定義する必要があります
455 00:20:51.865 --> 00:20:53.965 そして何が欲しいのか、何が欲しいのかを定義します。
456 00:20:54.755 --> 00:20:56.085 それは自己修正もします。
457 00:20:56.185 --> 00:20:57.845 ええと、後で私のターミナルで見ることになりますが、
458 00:20:58.065 --> 00:20:59.765 でも、つまり、こんな感じです、オーケー、
459 00:21:00.145 --> 00:21:01.485 エージェントが異なるステップを実行していて
460 00:21:02.025 --> 00:21:04.125 それからそのステップが成功したかどうかを確認します。
461 00:21:04.345 --> 00:21:06.885 成功していなければ、それを修正しようとします。
462 00:21:07.505 --> 00:21:09.525 ええと、それから、そうですね、いろいろなアクションを行います。
463 00:21:10.065 --> 00:21:12.445 そして異なる LLM をサポートしているので、何かに
464 00:21:12.465 --> 00:21:14.445 縛られる、ええと、ということはありません。
465 00:21:14.465 --> 00:21:15.885 好きなものを使えばいいだけです。
466 00:21:18.315 --> 00:21:20.765 それから私は Gemini Flash 2.0 を使います。
467 00:21:21.305 --> 00:21:23.605 ええと、これはネイティブにマルチモーダルです。
468 00:21:23.835 --> 00:21:26.725 マルチモーダルで、ええと、非常に強力な性能を持っています、
469 00:21:26.735 --> 00:21:27.765 マルチモーダルタスクにおいて。
470 00:21:28.185 --> 00:21:30.325 そして指示に従うのが本当に得意です、
471 00:21:30.615 --> 00:21:31.685 これはとても重要です
472 00:21:32.235 --> 00:21:33.805 なぜならプロンプトは、ええと、
473 00:21:34.105 --> 00:21:36.445 かなり長く、かなり高度なものになるからです。
474 00:21:36.585 --> 00:21:37.925 だから本当に、
475 00:21:37.925 --> 00:21:39.325 本当に指示に従うのが得意なものが必要です。
476 00:21:40.155 --> 00:21:41.725 また良い点として、入力の、ええと、
477 00:21:41.895 --> 00:21:44.925 トークン制限が 100 万なので、実際かなり長いです。
478 00:21:45.545 --> 00:21:47.885 そしてテキスト、画像、音声、動画をサポートしています。
479 00:21:48.225 --> 00:21:51.765 ですから、これは別のウェブサイトに行く場合にも良いです、ええと、
480 00:21:51.945 --> 00:21:53.365 そして、あなたができるようになりたい、つまり、
481 00:21:53.365 --> 00:21:55.445 そこで起きていることを実際にすべて理解したい場合にも。
482 00:21:58.295 --> 00:22:00.155 私はそれを組み合わせてもいます、組み合わせています、
483 00:22:00.415 --> 00:22:01.475 ええと、構造化出力と。
484 00:22:01.895 --> 00:22:06.235 ええと、L LMS を使い、function calling を使い
485 00:22:06.255 --> 00:22:08.835 そしてそれらすべてを使うとき、ええと、
486 00:22:09.015 --> 00:22:10.275 出力が得られます
487 00:22:10.455 --> 00:22:12.315 そしてそれらの出力を
488 00:22:12.315 --> 00:22:13.675 特定のものに定義できます、つまり。
489 00:22:13.675 --> 00:22:16.675 そうすると、つまり、解析しなければならないテキストを持つ代わりに、
490 00:22:16.675 --> 00:22:19.395 ええと、例えば生成できます、
491 00:22:19.395 --> 00:22:21.875 JSON か ID オブジェクトのどちらかを、
492 00:22:22.605 --> 00:22:24.315 それによって作業がずっと楽になります。
493 00:22:24.815 --> 00:22:27.355 ええと、なぜならそうすると、つまり、型安全性を持てるからです。
494 00:22:27.695 --> 00:22:29.235 だから検証したり
495 00:22:29.535 --> 00:22:31.035 再試行したりする必要がありません、つまり、何か
496 00:22:31.035 --> 00:22:32.555 正しくフォーマットされていないものを。
497 00:22:33.855 --> 00:22:36.075 TIC はそれを自動でやってくれます、例えば Jason、
498 00:22:36.255 --> 00:22:39.875 でも Den では、クラスを定義するときに、こう言うこともできます、
499 00:22:39.975 --> 00:22:43.155 ねえ、この属性は値として
500 00:22:43.155 --> 00:22:44.875 例えば 0 から 10 の間にしたい、と。
501 00:22:45.215 --> 00:22:46.595 そして値が 20 だった場合、
502 00:22:47.015 --> 00:22:48.515 そのときエラーを発生させることができます。
503 00:22:48.515 --> 00:22:49.795 だから自分でそれをする必要はありません。
504 00:22:50.295 --> 00:22:51.395 そしてそれは非常に、非常に便利です
505 00:22:51.465 --> 00:22:55.305 なぜならそうすると本当に、つまり、制御もできるからです。
506 00:22:55.305 --> 00:22:56.985 まあ、基本的には私が言ったことなんですが、
507 00:22:56.985 --> 00:22:58.625 明示的な拒否のようなものです。
508 00:22:59.365 --> 00:23:01.185 ええと、つまり、それを
509 00:23:01.185 --> 00:23:04.825 プロ、プログラム、プログラム的にできるんです、すみません、ええと、
510 00:23:04.825 --> 00:23:07.185 いろいろ渡したりして複雑にするように
511 00:23:07.245 --> 00:23:08.625 やらなくてもいいんです。
512 00:23:09.965 --> 00:23:12.985 それに、プロンプトも少し簡単にできます。
513 00:23:13.845 --> 00:23:15.345 定義したり、
514 00:23:15.345 --> 00:23:16.665 将来のプロンプトのようなことをしたりする必要はありません。
515 00:23:16.885 --> 00:23:20.225 ええと、LLMを使うときには、こう言うことになります。
516 00:23:20.225 --> 00:23:22.465 「ねえ、Jasonで返してください」、ええと、
517 00:23:22.965 --> 00:23:26.265 または「このTICオブジェクトで返してください」と。
518 00:23:26.805 --> 00:23:29.745 ええと、そうするとLLMはそれをしようとします。
519 00:23:29.925 --> 00:23:32.065 だからプロンプトはどんどん簡単になっていきます。
520 00:23:32.365 --> 00:23:36.915 それはいいことです。で、これはMistralを使った例ですが、
521 00:23:37.135 --> 00:23:40.515 ええと、考え方は同じで、取得するのは、ええと、
522 00:23:40.615 --> 00:23:42.595 左側にはJがあります。つまりこれは
523 00:23:42.595 --> 00:23:44.195 J用の構造化出力を定義する方法です。
524 00:23:44.375 --> 00:23:47.325 つまり、この例では、クライアントでmissile、
525 00:23:47.685 --> 00:23:49.005 missileモデルを呼び出します。
526 00:23:50.665 --> 00:23:52.725 そして、ただ質問しているんです、つまり、
527 00:23:52.725 --> 00:23:54.325 最高のフランス料理は何ですか?
528 00:23:54.465 --> 00:23:55.645 そして、名前
529 00:23:55.785 --> 00:23:57.965 と材料を短いJasonオブジェクトで返して、と言います。
530 00:23:58.665 --> 00:24:01.245 これがあなたのプロンプトです。そして次に、
531 00:24:01.675 --> 00:24:03.725 completionを作るとき、すみません、
532 00:24:03.725 --> 00:24:06.725 ここでレスポンスフォーマットを定義します。
533 00:24:07.025 --> 00:24:09.525 そして、タイプはJasonsオブジェクトにしてください、と言います。
534 00:24:10.315 --> 00:24:13.085 するとモデルは訓練されているので、モデルは
535 00:24:13.085 --> 00:24:14.605 それをどう行うか、Jasonsが何かを知っています。
536 00:24:15.105 --> 00:24:16.925 ええと、だから、そうですね、Jasonsが何かを
537 00:24:16.945 --> 00:24:18.565 説明する必要はありません。
538 00:24:18.565 --> 00:24:19.925 辞書などを作る
539 00:24:19.925 --> 00:24:21.605 必要もありません。
540 00:24:21.625 --> 00:24:25.965 モデルは右側に表示します。ええと、これはden用です。
541 00:24:26.625 --> 00:24:30.125 ここではクラスを宣言しています、ええと、これはbookクラスで、
542 00:24:30.255 --> 00:24:32.805 nameがあります、ええと、それは文字列で、
543 00:24:32.805 --> 00:24:34.525 それからauthorsがあり、これは文字列のリストです。
544 00:24:35.505 --> 00:24:36.965 そして少し違いますが、
545 00:24:36.985 --> 00:24:39.685 考え方は同じです、ええと、つまり、
546 00:24:39.785 --> 00:24:43.205 クライアントを見つけて、それから、
547 00:24:43.205 --> 00:24:44.205 異なるメッセージを与えます。
548 00:24:44.225 --> 00:24:45.845 つまりsystem、ええと、promptで、
549 00:24:45.895 --> 00:24:47.765 これは単に書籍情報を抽出するものです。
550 00:24:49.275 --> 00:24:52.015 そしてここでは、ユーザーからの1つのメッセージを渡しています。
551 00:24:52.025 --> 00:24:53.215 それは、つまり、
552 00:24:53.295 --> 00:24:56.535 最近her Leeの『To Kilo Mockingbird』を読みました、というものです。
553 00:24:56.995 --> 00:24:58.975 ええと、そしてここで実際に欲しい
554 00:24:58.975 --> 00:25:00.095 レスポンスフォーマットを定義します。
555 00:25:00.435 --> 00:25:04.375 左側にはJSオブジェクトがあり、これはここで定義されています。
556 00:25:05.075 --> 00:25:09.175 そして右側には book があります。これは den クラスで、ええと、
557 00:25:09.175 --> 00:25:10.175 ここで定義したものです。
558 00:25:10.875 --> 00:25:13.455 そしてこれが、より良い出力を得る方法になります。
559 00:25:13.595 --> 00:25:15.215 ええと、それから、ご存じのように、コードの中で、
560 00:25:15.455 --> 00:25:16.455 実際に物事が意味を成すようになります
561 00:25:17.155 --> 00:25:19.735 そしてこれはエージェントにとって非常に、非常に重要です。ええと、なぜなら
562 00:25:19.735 --> 00:25:22.895 そうでないと、最初にミスがある場合、ええと、
563 00:25:23.155 --> 00:25:25.055 あるいは最初に間違った形式がある場合、
564 00:25:25.565 --> 00:25:27.455 それはどんどんどんどん悪化していくからです。
565 00:25:27.675 --> 00:25:29.735 なので、本当にコントロールできる状態でいたいのです、
566 00:25:29.735 --> 00:25:31.295 たとえそれらが自律的になるとしても。
567 00:25:33.975 --> 00:25:35.555 そしてもちろん、私は VIS を使います。
568 00:25:35.935 --> 00:25:38.675 ええと、なので先ほど言ったように、PIP install を実行して
569 00:25:38.675 --> 00:25:39.715 ラップトップにインストールし、
570 00:25:40.215 --> 00:25:42.955 それからコレクションを作成して、ええと、試してみることができます。
571 00:25:44.565 --> 00:25:46.265 そしてこれが、これから使うアーキテクチャです。
572 00:25:47.045 --> 00:25:49.385 つまり、ユーザークエリがあり、ええと、
573 00:25:49.575 --> 00:25:51.265 次に browser use を使います、
574 00:25:51.635 --> 00:25:53.305 これは Gemini も使用します。
575 00:25:54.045 --> 00:25:57.955 そしてその後、browser user があり、
576 00:25:57.955 --> 00:25:59.915 それが自律的なウェブブラウジングを行い、Gemini は
577 00:25:59.915 --> 00:26:01.795 マルチモーダル処理を行います。
578 00:26:02.135 --> 00:26:03.995 そしてすべてを bu に保存します。
579 00:26:04.575 --> 00:26:06.635 そしてそこで、そこで
580 00:26:06.635 --> 00:26:08.675 ベクトル検索と全文検索のようなことができ、
581 00:26:08.855 --> 00:26:10.475 それから完全な RAG システムを構築します。
582 00:26:11.295 --> 00:26:13.035 そして、ええ、うまくいけば
583 00:26:13.825 --> 00:26:15.155 かなり良いものができるはずです。
584 00:26:16.415 --> 00:26:20.595 ええと、共有します、ええと、私は
585 00:26:22.125 --> 00:26:25.825 実行中のコードを持っていて、ええと、ここで、確認しているところです。
586 00:26:26.085 --> 00:26:28.705 なので、ここにある web UI が開きます。
587 00:26:29.565 --> 00:26:31.905 つまりこれは、ええと、
588 00:26:32.015 --> 00:26:34.345 browser use の web UI を使うときに見えるものです。
589 00:26:35.655 --> 00:26:36.715 これを使う必要はありませんが、
590 00:26:36.735 --> 00:26:38.115 これはただ非常に、非常に便利です。
591 00:26:39.135 --> 00:26:42.435 ええと、そしてちゃんとズームインされているか確認します。
592 00:26:44.585 --> 00:26:46.285 ええと、そうですね、すべてを制御できます。
593 00:26:46.505 --> 00:26:48.485 そして次に、エージェント用にさまざまな
594 00:26:48.485 --> 00:26:49.805 設定を定義します。
595 00:26:50.025 --> 00:26:53.165 つまり、デフォルトのものやカスタムのものを定義できます。
596 00:26:53.385 --> 00:26:54.645 私はカスタムのものを待っています。
597 00:26:55.025 --> 00:26:57.085 ええと、少し後で、ええと、裏側で何が起きているのか
598 00:26:57.085 --> 00:26:59.125 お見せしますが、すべてのプロンプトを見ることになります。
599 00:27:00.035 --> 00:27:02.245 それから、さまざまなステップを定義します。つまり、
600 00:27:02.425 --> 00:27:05.325 ステップ数はいくつあるのか、最大でいくつにしたいのか、ええと、
601 00:27:05.465 --> 00:27:07.165 そしてステップごとの最大アクション数です。
602 00:27:07.905 --> 00:27:10.205 そしてここでは vision を有効にしています
603 00:27:10.235 --> 00:27:12.285 なぜなら実際に視覚言語モデルを使いたいからです。
604 00:27:15.005 --> 00:27:17.225 先ほど言ったように、さまざまなプロバイダーを定義できます。
605 00:27:17.325 --> 00:27:18.545 つまり、もし
606 00:27:18.725 --> 00:27:20.625 クラウドモデルを使いたいなら、それは可能です。
607 00:27:21.605 --> 00:27:24.425 ええと、でも私の側では、Googleを選びます、ええ、
608 00:27:24.605 --> 00:27:26.585 そしてGemini 2.0を選びます。
609 00:27:27.405 --> 00:27:29.985 次に、temperatureも定義します。
610 00:27:30.885 --> 00:27:34.305 そしてここが、ええ、ちょっとした魔法があるところです。
611 00:27:34.885 --> 00:27:37.785 なので、自分のブラウザを使うと言います。
612 00:27:38.565 --> 00:27:40.625 今はARCを使っていますが、
613 00:27:40.685 --> 00:27:42.545 でもChromeが開きます、ええ、
614 00:27:42.545 --> 00:27:43.905 これを定義しているからです。
615 00:27:44.605 --> 00:27:46.545 でも、そうする必要もありません。
616 00:27:46.565 --> 00:27:48.785 もし私が、そうしなかったとしたら、
617 00:27:48.785 --> 00:27:49.985 chromiumが開きます。
618 00:27:50.565 --> 00:27:52.425 そうすれば、ほら、そのほうが良いんです。
619 00:27:52.425 --> 00:27:54.145 例えば、何かを分けておきたい場合、
620 00:27:54.145 --> 00:27:55.665 つまり、こう、したいけれど、
621 00:27:55.665 --> 00:27:57.065 自分のブラウザをあちこちで使いたくない場合です。
622 00:27:57.965 --> 00:28:01.385 でもそうすることで、本当に良いのは、そのLLMが、
623 00:28:01.445 --> 00:28:03.265 つまり、すでに自分のウェブサイトに接続されていて、
624 00:28:03.725 --> 00:28:05.825 ソーシャルネットワークにも接続されていて、
625 00:28:05.825 --> 00:28:08.305 そして、つまり、あらゆるものに接続されているんです、ええ、
626 00:28:08.305 --> 00:28:11.705 自分のアカウントですでに接続されているので、
627 00:28:11.705 --> 00:28:14.185 そのため、セキュリティシステムにもあまり検出されません、ええ、
628 00:28:14.365 --> 00:28:15.465 なぜなら、もしそれをやろうとしたら、
629 00:28:15.465 --> 00:28:19.025 つまり、ええ、
630 00:28:19.135 --> 00:28:20.825 ターミナル経由でやると、通常は、
631 00:28:20.895 --> 00:28:22.425 ブロックされたり、いろいろされるからです。
632 00:28:22.425 --> 00:28:26.025 一方ここでは、実際にあなたの、あなたのGoogle Chromeなんです。
633 00:28:26.725 --> 00:28:29.065 ええ、なので実際にはずっと良くなります。
634 00:28:30.915 --> 00:28:33.015 そしてここでエージェントを実行します。
635 00:28:34.875 --> 00:28:38.415 では実際に、ええ、何が起きているかお見せします。
636 00:28:38.475 --> 00:28:41.735 ここに見えているタスクの説明があります。
637 00:28:42.715 --> 00:28:46.535 ここでは、はい、e.comに行って、
638 00:28:46.535 --> 00:28:49.175 ここにあるvisを検索して、
639 00:28:49.915 --> 00:28:51.895 それから最近の検索を見ていきます。
640 00:28:53.315 --> 00:28:54.775 そして、はい、visについて話しているツイートを
641 00:28:54.775 --> 00:28:55.895 見つけて、という感じです。
642 00:28:56.635 --> 00:28:58.935 そして、私が欲しいのは
643 00:28:58.935 --> 00:29:00.815 その、ベクターデータベースについて話しているツイートだけです。
644 00:29:01.435 --> 00:29:03.535 それから、ここはかなり強調していて、
645 00:29:03.955 --> 00:29:07.055 鳥、写真、カメラについてのツイートは含めないでください、
646 00:29:07.915 --> 00:29:08.935 またはブランドのCanonも、
647 00:29:08.935 --> 00:29:10.855 なぜかそうしたツイートでも非常に、ええ、人気があるからです。
648 00:29:11.635 --> 00:29:12.695 ええ、そうしたツイートでは。
649 00:29:13.115 --> 00:29:15.615 そして、はい、JSON形式で返してください、
650 00:29:16.145 --> 00:29:17.735 そこにはツイート本文、
651 00:29:17.795 --> 00:29:19.415 ツイートとツイート投稿者が欲しいです。
652 00:29:21.175 --> 00:29:23.035 そして今、まあ、ここが
653 00:29:23.035 --> 00:29:24.035 面白くなる瞬間です。
654 00:29:24.095 --> 00:29:27.075 もしエージェントを実行すると、おそらく
655 00:29:28.135 --> 00:29:30.905 Google Chromeが開きます、ブープ、ブープ、ブープ。
656 00:29:30.905 --> 00:29:31.905 ここに置かせてください。
657 00:29:32.485 --> 00:29:33.785 それでGoogle Chromeを開きます、
658 00:29:36.285 --> 00:29:39.065 そして今は、私のカーソルが動かないのがわかるはずです。
659 00:29:39.525 --> 00:29:42.165 ええと、なのでTwitterを閲覧していて、
660 00:29:42.875 --> 00:29:44.565 それからすべてを確認します。
661 00:29:44.565 --> 00:29:45.765 リアルタイムで起きていることを。
662 00:29:46.745 --> 00:29:49.845 ええと、そうですね、言おうとしたのは、実際にスクロールするかもしれません。
663 00:29:50.425 --> 00:29:53.165 なので、さらにツイートやイベントを見つけるためにスクロールもしています。
664 00:29:54.145 --> 00:29:57.085 ええと、それで見てみると、
665 00:29:58.395 --> 00:29:59.565 はい、今は終わったようです。
666 00:30:00.265 --> 00:30:02.125 いや、終わっていません。はい、続いています。
667 00:30:02.745 --> 00:30:04.245 ええと、ここを見てみると、
668 00:30:04.705 --> 00:30:06.205 何があるかお見せします。
669 00:30:07.385 --> 00:30:08.565 ええと、はい。
670 00:30:09.115 --> 00:30:13.005 これは、ええと、私がWeb UIを開始したときですね。
671 00:30:14.065 --> 00:30:16.485 そしてこれは、ええと、私が与えたタスクです。
672 00:30:17.445 --> 00:30:19.215 つまり、はい、ツイートだけが欲しい、
673 00:30:19.515 --> 00:30:21.095 そしてここでさまざまなステップを見ることができます。
674 00:30:22.305 --> 00:30:25.645 つまり、はい、ページは空白です。
675 00:30:25.785 --> 00:30:28.485 それで、モデルが実際に伝えていて、ええと、
676 00:30:28.675 --> 00:30:30.805 エージェントがすでに伝え返していて、
677 00:30:30.805 --> 00:30:32.165 LLMにも何が起きているか伝えています。
678 00:30:32.625 --> 00:30:34.605 つまり、はい、空白ページがあります。
679 00:30:35.145 --> 00:30:36.605 なので前のアクションはありません。
680 00:30:37.555 --> 00:30:40.485 それから、このタスクでは特定のURLに移動する必要があります。
681 00:30:41.305 --> 00:30:43.325 それで、今後行う計画をいくつか提示します。
682 00:30:43.325 --> 00:30:44.445 今後実行することですね。
683 00:30:44.985 --> 00:30:47.245 つまり、はい、私たちは
684 00:30:47.245 --> 00:30:50.565 この指定されたURLに移動して、それから2番目に。
685 00:30:50.725 --> 00:30:52.645 次に、ページからツイートを抽出し、
686 00:30:53.185 --> 00:30:54.605 そしてフィルタリングします、つまり、
687 00:30:54.605 --> 00:30:56.245 関連性のないツイートを除外します。
688 00:30:57.155 --> 00:31:00.085 それから、ツイートを特定の方法で整形します。
689 00:31:00.905 --> 00:31:03.245 そして、そうですね、これで計画ができました。
690 00:31:03.625 --> 00:31:05.925 では実行しましょう、つまり、はい、私は
691 00:31:05.925 --> 00:31:06.925 xに移動する必要があります。
692 00:31:07.705 --> 00:31:09.445 ええと、そしてこれが最初のアクションです。
693 00:31:09.825 --> 00:31:13.405 ここでURLに移動し、それから、まあ、
694 00:31:13.665 --> 00:31:15.365 そして2番目のアクションに進みます。
695 00:31:16.185 --> 00:31:19.845 それから確認し、評価を行います。
696 00:31:20.075 --> 00:31:22.685 はい、実際にそこへ正常に移動できました。
697 00:31:23.225 --> 00:31:24.845 ええと、なので私たちは満足しています、少なくとも、
698 00:31:24.905 --> 00:31:26.045 エージェントは満足しています。
699 00:31:26.665 --> 00:31:28.845 そして、それは新しい情報を
700 00:31:28.845 --> 00:31:30.285 エージェントのメモリにも追加しています。
701 00:31:30.745 --> 00:31:34.645 つまり、はい、visに関する結果があるのがわかります。
702 00:31:35.295 --> 00:31:36.765 VISからのツイートもありますし、
703 00:31:36.765 --> 00:31:38.925 link chainもあります。つまり、それらは、
704 00:31:38.925 --> 00:31:41.725 さまざまなツイートで、link chainからのものが1つあり、
705 00:31:41.725 --> 00:31:43.405 deep research agentsについて話しています。
706 00:31:44.385 --> 00:31:45.605 そして、だいたいわかると思います。
707 00:31:47.305 --> 00:31:51.845 ええと、そしてここで、LLMがその後判断しました。
708 00:31:52.545 --> 00:31:53.925 ええと、下にスクロールすることを
709 00:31:53.995 --> 00:31:56.565 なぜなら、はい、私にはない、と判断したからです。
710 00:31:56.635 --> 00:31:57.725 まだそんなに多くのツイートはありません。
711 00:31:57.945 --> 00:31:59.165 ええと、では下にスクロールします
712 00:31:59.165 --> 00:32:01.205 もっと、ええと、詳細を見つけられるように。
713 00:32:01.865 --> 00:32:03.045 そして、それが起きていることです。
714 00:32:03.425 --> 00:32:04.925 いくつかの部分は飛ばします。
715 00:32:05.065 --> 00:32:08.845 でもその後、ええと、見えるのは、ほら、
716 00:32:08.845 --> 00:32:11.845 実際に、ええと、抽出されたツイートがいくつかあるということです。
717 00:32:12.385 --> 00:32:14.045 なのでツイートが見えます、ええと、
718 00:32:14.265 --> 00:32:17.005 そして著者が見えます、ええと、ここにあります、vis です
719 00:32:17.005 --> 00:32:18.765 それから @、ええと、
720 00:32:18.905 --> 00:32:20.685 そしてそれは、ほら、まさに私たちが持っているものです。
721 00:32:20.785 --> 00:32:23.565 そしてここも同じです、ええと、著者があり、
722 00:32:23.785 --> 00:32:26.165 @ があり、それからツイートがあります。
723 00:32:26.505 --> 00:32:31.245 そしてこれは、ええと、私が望んでいた方法です、あなたに、
724 00:32:31.325 --> 00:32:33.645 それを、ええと、そのように表示された形で見たかったんです、
725 00:32:35.345 --> 00:32:37.325 それから、うまくいけば、はい、オーケー、いいですね。
726 00:32:37.785 --> 00:32:39.805 そしてここで、ええと、わかるのは
727 00:32:39.805 --> 00:32:41.685 テストが正常に完了したということです。
728 00:32:42.505 --> 00:32:45.725 なので Crow に戻ると、見えるように
729 00:32:45.725 --> 00:32:47.485 今はすべてのボックスが消えています。
730 00:32:48.185 --> 00:32:49.565 ええと、これは良いです。
731 00:32:49.565 --> 00:32:51.725 少なくとも私が、それが、ほら、
732 00:32:51.755 --> 00:32:52.885 完了したとわかる方法です。
733 00:32:54.145 --> 00:32:58.685 そして自分の UI に戻ると、今、
734 00:32:58.835 --> 00:33:00.885 それがやることは、ええと、
735 00:33:00.885 --> 00:33:04.525 それらの結果をすべて直接 vis に挿入したということです、
736 00:33:06.025 --> 00:33:08.205 ええと、それは、今回の vis、
737 00:33:08.205 --> 00:33:09.365 ベクターデータベースです。
738 00:33:09.865 --> 00:33:12.325 そして今、いろいろな質問ができます、ほら、例えば、ええと、
739 00:33:12.505 --> 00:33:16.745 bu で何が、ええと、
740 00:33:18.295 --> 00:33:20.195 なので質問できます、検索します、
741 00:33:20.655 --> 00:33:24.155 そして戻ると、はい、わかりますね、ほら、
742 00:33:25.095 --> 00:33:28.675 今は検索を直接 bu に対して実行しています
743 00:33:29.335 --> 00:33:33.985 そして、いいですね、はい、今見えます、
744 00:33:34.285 --> 00:33:37.305 ほら、私たちが見たすべてのツイート、ええと、ほら、
745 00:33:37.305 --> 00:33:39.025 モデルが、ええと、通過して
746 00:33:39.025 --> 00:33:41.465 そして browser use が通過したものです、ええと、こんな感じです、オーケー、
747 00:33:41.465 --> 00:33:43.785 vis を使っている L chain があります。
748 00:33:44.135 --> 00:33:47.665 それから、ええと、私自身の MCP 実装があり、
749 00:33:48.285 --> 00:33:49.345 ええと、それについて話しています。
750 00:33:49.725 --> 00:33:52.785 ええと、それから、ほら、私たちには、ええと、
751 00:33:53.185 --> 00:33:55.185 VIS もトークを共有していました、ほら、
752 00:33:55.265 --> 00:33:56.825 iCal 検索のデコードについてです。
753 00:33:58.125 --> 00:33:59.705 そしてそれから要約があるのがわかります、
754 00:34:01.105 --> 00:34:03.805 そしてこれが基本的にできることです、ほら、これは、
755 00:34:04.385 --> 00:34:06.285 ええと、可能なことです。
756 00:34:06.475 --> 00:34:09.885 また、ここでお見せすると、いくつか
757 00:34:10.635 --> 00:34:12.005 写真に関するツイートがあります。
758 00:34:12.355 --> 00:34:15.685 ここで見えるように、これは、ほら、Canon
759 00:34:15.685 --> 00:34:17.725 などなどですが、これは実際には
760 00:34:17.725 --> 00:34:20.325 Milway に追加されていません、なぜなら、ええと、フィルタリングしたからです。
761 00:34:20.745 --> 00:34:23.605 そして、なので今それについて質問すると、ほら、
762 00:34:23.605 --> 00:34:25.205 それはベクターデータベースについてだけです
763 00:34:25.465 --> 00:34:28.445 それに、鳥についても何についても何もありません。
764 00:34:29.425 --> 00:34:32.485 それから、ええ、コードもここにありますが、
765 00:34:32.485 --> 00:34:33.885 共有されると思います。
766 00:34:35.145 --> 00:34:38.725 それで以上だと思います。はい、以上です。
767 00:34:39.145 --> 00:34:41.245 これから質問を受け付けます。ありがとうございます。
768 00:34:46.555 --> 00:34:47.655 ええ、はい。
769 00:34:50.445 --> 00:34:53.695 では、質問が1つありますので、
770 00:34:54.605 --> 00:34:56.015 直接受けます。
771 00:34:57.435 --> 00:35:00.415 これは調査を行うために browser use なしで、API だけで
772 00:35:00.435 --> 00:35:01.455 できますか?
773 00:35:01.915 --> 00:35:06.135 ええ、そして、そうですね。ああ、ACHI、戻ってきましたね。
774 00:35:07.065 --> 00:35:08.685 こんにちは、ええ、すみません。
775 00:35:08.825 --> 00:35:10.445 最初の質問に答えていただいて大丈夫です。
776 00:35:10.505 --> 00:35:12.725 どうぞ。はい。ええと、それで
777 00:35:12.725 --> 00:35:13.925 これは browser use なしでできますか?
778 00:35:13.925 --> 00:35:16.365 調査を API だけで行うということですね?ええ、できます。
779 00:35:16.485 --> 00:35:19.525 つまり、私がそれを選んだ理由は、Twitter の API が
780 00:35:19.525 --> 00:35:21.005 信じられないほど高いからです。
781 00:35:21.225 --> 00:35:23.405 なので、それをやれば
782 00:35:23.405 --> 00:35:24.805 より安くなると思いました。
783 00:35:25.825 --> 00:35:27.405 それから
784 00:35:28.065 --> 00:35:30.885 私が UI を通して browser use をしているのが見えると思います。
785 00:35:31.665 --> 00:35:34.965 ただ、実行の仕組みとしては、私は主にデモのために UI を使っていますが、
786 00:35:35.025 --> 00:35:37.380 実行の仕方としては、コード内でタスクを定義して、
787 00:35:37.380 --> 00:35:40.125 それから実行されて、
788 00:35:40.425 --> 00:35:41.525 実行されます。つまり、
789 00:35:41.675 --> 00:35:43.685 たとえば Google Chrome を作成して、
790 00:35:44.345 --> 00:35:45.965 その後は実際には見えません。
791 00:35:45.965 --> 00:35:47.485 ただデータを返してくれるだけです。
792 00:35:48.625 --> 00:35:51.745 なので、それは良い方法のようなもので、
793 00:35:51.745 --> 00:35:53.305 それ以外なら、もちろん
794 00:35:53.365 --> 00:35:54.705 API ベースのツールを使えます。
795 00:35:55.405 --> 00:35:59.785 ただ、このケースでは、Twitter の EPI が
796 00:35:59.785 --> 00:36:00.865 非常に高いことを知っているので。
797 00:36:01.485 --> 00:36:03.585 なので、これを選びました。
798 00:36:05.355 --> 00:36:07.145 わかりました。ええと、
799 00:36:07.365 --> 00:36:10.505 それから、わかりませんが、あなたは彼の、ええと、
800 00:36:10.505 --> 00:36:12.385 彼らの追加質問に答えましたか?ええと、もし
801 00:36:12.545 --> 00:36:14.105 私は、追加質問に答えたところです。わかりました、
802 00:36:14.105 --> 00:36:15.105 素晴らしいです。ええと、
803 00:36:15.105 --> 00:36:16.945 それから次の質問は、
804 00:36:16.945 --> 00:36:19.265 エンドユーザーに関する個人データを収集する場合、
805 00:36:19.265 --> 00:36:20.345 フローはどうなりますか?
806 00:36:21.005 --> 00:36:23.465 ええと、その後に例を挙げていて、ユーザーがログインし、
807 00:36:23.525 --> 00:36:25.545 システムがその人の
808 00:36:25.545 --> 00:36:27.985 検索データなどを記録します、うん。
809 00:36:28.405 --> 00:36:30.305 たとえば、靴や衣服に関するデータが収集され、
810 00:36:30.325 --> 00:36:32.905 データは将来の参照のために保持されます。
811 00:36:33.535 --> 00:36:36.865 靴のサイズ、男性用または女性用の服などです。
812 00:36:38.155 --> 00:36:42.495 うん。ええと、個人データを収集している場合、
813 00:36:43.315 --> 00:36:46.815 つまり、もし、その、から、
814 00:36:49.955 --> 00:36:52.175 ええと、どちら側の立場なのかに応じて、
815 00:36:52.175 --> 00:36:53.415 質問をもう少し具体化してもらえますか?
816 00:36:53.435 --> 00:36:55.175 browser use 側の話ですか?
817 00:36:55.395 --> 00:36:58.455 つまり、そこに行って、仕組みがどうなっているのか気になっているということですか?
818 00:36:58.835 --> 00:37:02.255 あるいは、あなたがプロダクトや会社のような立場で
819 00:37:02.275 --> 00:37:03.495 データを収集している場合ですね。
820 00:37:04.495 --> 00:37:05.295 これによって、
821 00:37:05.295 --> 00:37:06.415 答えが変わってくるので。
822 00:37:07.465 --> 00:37:11.195 はい。ええと、あなたは匿名ですが、どうか、ええ、明確にしてください。
823 00:37:11.855 --> 00:37:12.855 ああ、エンドユーザー。
824 00:37:14.605 --> 00:37:16.145 私はエンドユーザーとしてログインしています。はい。
825 00:37:16.145 --> 00:37:19.705 ではその場合、ええと、彼らがあなたについてのデータを収集するなら、
826 00:37:19.895 --> 00:37:22.625 あなたが自分のデータを使って自分のブラウザを使っているなら、
827 00:37:23.405 --> 00:37:25.025 ええと、それは同じになります、つまり、
828 00:37:25.025 --> 00:37:26.505 彼らにはTwitterみたいにあなたが見えるだけです。
829 00:37:26.535 --> 00:37:29.505 私がTwitterに行くと、彼らにはただ私が
830 00:37:29.615 --> 00:37:31.065 自分のアカウントを使っているように見えるだけです、わかりますよね?
831 00:37:31.445 --> 00:37:32.945 ええと、なのでそういう仕組みで、
832 00:37:32.945 --> 00:37:35.305 基本的に彼らは本当にはわかりません。
833 00:37:35.415 --> 00:37:38.425 また、browser useは十分に賢いので、
834 00:37:39.525 --> 00:37:41.705 インターネットにアクセスするときに速すぎないんです、わかりますよね?
835 00:37:41.705 --> 00:37:44.585 だから、ロボットだと見抜かれる方法の一つは、
836 00:37:44.585 --> 00:37:46.545 ミリ秒単位で
837 00:37:46.545 --> 00:37:47.625 アクションを実行してしまうことです。
838 00:37:47.855 --> 00:37:50.065 一方これは実際に、あちこちクリックしたり
839 00:37:50.165 --> 00:37:54.505 スクロールしたりするので、本当に
840 00:37:55.245 --> 00:37:58.965 検出されにくくする賢い方法なんです。
841 00:38:01.505 --> 00:38:03.285 ええ、はい。
842 00:38:04.915 --> 00:38:07.095 ええと、この人が尋ねているのは、
843 00:38:08.195 --> 00:38:12.615 browser useは基本的にスマートなLLM型のseleniumスクレイピングなのか、
844 00:38:13.235 --> 00:38:16.375 そして高価なAPIを使う必要がなくなるのか、
845 00:38:16.375 --> 00:38:17.575 それを置き換えるようなものなのか?
846 00:38:17.795 --> 00:38:20.695 ええ、そうなり得ます。これは、ええ、まさに、
847 00:38:21.515 --> 00:38:23.135 時にはAPIがない場合や、
848 00:38:23.595 --> 00:38:26.695 あるいは、非常に具体的なことをしたい場合、
849 00:38:26.695 --> 00:38:28.215 それが視覚的なもので、たとえばAPIでは提供されていない
850 00:38:28.215 --> 00:38:29.455 場合があります。
851 00:38:30.115 --> 00:38:31.575 ええ、そこには、こう、
852 00:38:31.795 --> 00:38:33.575 browser useを使うと本当に便利なことがあります。
853 00:38:35.135 --> 00:38:37.305 わかりました。それからチャットで誰かが質問しています。
854 00:38:37.605 --> 00:38:41.985 Xからの抽出は、VL lmを使って、どのように機能するのですか?
855 00:38:42.145 --> 00:38:43.145 VLMですか?はい。
856 00:38:44.045 --> 00:38:47.265 はい。もしご覧になっていたなら、ええと、
857 00:38:48.845 --> 00:38:53.225 browser useが私のTwitterアカウントを開いたとき、
858 00:38:53.225 --> 00:38:54.665 色とりどりのボックスが全部ありました。
859 00:38:55.485 --> 00:38:58.705 ええ、これは基本的に、そのボックスを見ているんです。
860 00:38:58.845 --> 00:38:59.865 つまりH CMLコンテンツですが、
861 00:39:00.565 --> 00:39:02.745 同時に、その時点でVLMも使っています。
862 00:39:02.745 --> 00:39:05.745 基本的にウェブページ上で何が起きているかの
863 00:39:05.765 --> 00:39:07.105 スクリーンショットも渡しているようなものです。
864 00:39:07.645 --> 00:39:09.945 ええと、そしてスクリーンショットに基づいて
865 00:39:09.945 --> 00:39:11.145 コンテンツを抽出します。
866 00:39:12.195 --> 00:39:14.465 すみません。ええと、なのでそれが、その、ええと、
867 00:39:14.645 --> 00:39:15.745 そういうふうに見えるわけです。
868 00:39:16.815 --> 00:39:19.395 ここでVLMが、すみません、使われている方法はそういうことです。
869 00:39:21.175 --> 00:39:23.395 また、動画などがある場合を考えても、
870 00:39:23.575 --> 00:39:26.715 ええと、それも可能です
871 00:39:26.715 --> 00:39:29.195 それらを送信すると、VLM も
872 00:39:29.195 --> 00:39:31.995 それらを処理できるようになります。例えば、ええと、gamma three のように、
873 00:39:32.115 --> 00:39:33.435 昨日 Google からリリースされました。
874 00:39:33.775 --> 00:39:35.715 ええと、動画などを処理できます。
875 00:39:39.375 --> 00:39:41.545 役立つ回答をありがとう、と言っています。
876 00:39:42.005 --> 00:39:46.185 ええと、それから、もう一つ質問があります。これが、
877 00:39:46.345 --> 00:39:47.865 単なる確認の質問だと思います。
878 00:39:48.585 --> 00:39:51.625 パーソナライゼーションを 1 つの db に入れ、その後、もう一方の DB
879 00:39:52.165 --> 00:39:53.305 vector D へのポインタ 私は
880 00:39:53.305 --> 00:39:55.425 わかりません、これについてはよくわかりません。
881 00:39:55.425 --> 00:39:59.225 あなたが言いたいのは、たとえば、少し前の
882 00:39:59.285 --> 00:40:02.185 回答を確認してみますが、データ
883 00:40:02.285 --> 00:40:05.505 などを収集しているなら、ええと、これはそれに関連していると思います、ええ、
884 00:40:05.505 --> 00:40:07.505 その場合、たとえば、
885 00:40:07.505 --> 00:40:09.625 選択やパーソナライゼーションに関して収集されたデータがあります。
886 00:40:09.965 --> 00:40:13.295 ええと、必要であれば、それらを直接、ええと、
887 00:40:14.115 --> 00:40:16.135 1 つのデータベースまたはコレクションに入れることができます
888 00:40:16.555 --> 00:40:18.615 そして、もう一方はどこでしたっけ?
889 00:40:19.035 --> 00:40:21.935 ええと、パーソナライゼーションを 1 つのデータベースまたは 1 つのコレクションに入れ、
890 00:40:21.935 --> 00:40:25.055 必要であれば、vector database へのポインタを持たせることもできますが、
891 00:40:25.115 --> 00:40:27.575 この質問で何を意味しているのかは
892 00:40:27.575 --> 00:40:28.735 正確にはわかりません。
893 00:40:29.525 --> 00:40:33.775 はい、もしそれについて追加の質問があれば、ええと、
894 00:40:33.795 --> 00:40:36.335 遠慮なく入れてください。そうすれば SEF が答えられます。
895 00:40:36.435 --> 00:40:40.175 では、次の質問は、LLM スラッシュ V-L-L-M-A-P-I のコストの
896 00:40:40.175 --> 00:40:43.575 予測をどのように立てられるか、です。
897 00:40:44.265 --> 00:40:46.915 はい、それはもちろん LLM によります。
898 00:40:46.915 --> 00:40:50.795 送信する予定の、ええと、
899 00:40:51.135 --> 00:40:52.195 トークン量を確認する必要があります。
900 00:40:52.855 --> 00:40:55.235 ええと、browser user は大量のトークンを送信しています。
901 00:40:55.655 --> 00:40:57.635 ええと、そこが問題のようなものです。つまり、
902 00:40:57.635 --> 00:41:00.555 入力トークンごと、出力トークンごとに支払うわけです。
903 00:41:01.095 --> 00:41:03.395 ええと、ただし入力トークンは非常に非常に安いです。
904 00:41:03.455 --> 00:41:05.755 ですから、確認する必要があります。たとえば、
905 00:41:05.755 --> 00:41:07.755 別の質問に答えようと思います、ええと、
906 00:41:07.755 --> 00:41:10.795 私が尋ねられた、どの VM を使っているかという質問ですが、ええと、
907 00:41:11.435 --> 00:41:15.395 私は Gemini 2.0、ええと、Gemini 2.0 Flash を使っています、すみません。
908 00:41:16.135 --> 00:41:20.195 ええと、100 万トークンあたりの価格は非常に非常に低いです。
909 00:41:21.175 --> 00:41:23.315 ですから、見積もる必要があります。つまり、
910 00:41:23.315 --> 00:41:25.835 どのウェブサイトを閲覧するかによって、
911 00:41:25.835 --> 00:41:27.075 どれだけのトークンを送ることになるかです。
912 00:41:27.175 --> 00:41:30.475 そうすれば、価格のおおよその見当をつけることができます。
913 00:41:31.055 --> 00:41:34.685 ええと、はい、つまり、それらがあり、はい、また、
914 00:41:35.905 --> 00:41:38.445 価格を下げたいならキャッシュも使えますが、
915 00:41:38.745 --> 00:41:41.925 それはどのウェブサイトに
916 00:41:41.925 --> 00:41:43.165 移動しているかによります。
917 00:41:43.785 --> 00:41:47.405 ええと、そうですね、これらは、ええと、難しい質問です。
918 00:41:49.165 --> 00:41:50.475 皆さん、ご質問ありがとうございます。
919 00:41:50.625 --> 00:41:52.155 q and a tool で引き続き質問してください。
920 00:41:52.415 --> 00:41:54.355 ここで簡単な質問をします。では、うん。
921 00:41:54.575 --> 00:41:57.755 なぜOpenAIではなくGeminiモデルを使っているのですか? ええ、
922 00:41:58.615 --> 00:42:00.275 1つ目は、ええと、とても安いことです。
923 00:42:00.735 --> 00:42:03.315 ええと、彼らは本当に、本当に安くするのが得意なんです。
924 00:42:03.515 --> 00:42:04.955 Googleがどうやってそれを実現しているのか、いまだに分かりませんが、
925 00:42:05.015 --> 00:42:07.955 でも、ええと、それは、うーん、良い方法です。
926 00:42:08.055 --> 00:42:11.115 それから、彼らは、ええと、さまざまなモダリティをサポートしています。
927 00:42:11.295 --> 00:42:13.075 つまり画像をサポートしていますし、
928 00:42:14.065 --> 00:42:16.035 動画のサポートも追加されたばかりです。
929 00:42:16.375 --> 00:42:18.315 うーん、そういったものです。
930 00:42:18.315 --> 00:42:19.795 なので、とにかく非常に、非常に便利なんです。
931 00:42:20.375 --> 00:42:24.715 ええと、それに入力、うーん、コンテキスト、入力コンテキスト、
932 00:42:24.715 --> 00:42:26.635 すみません、それも非常に長いです、ええと、
933 00:42:26.635 --> 00:42:29.675 大量のデータを処理するときには、それがとても良いんです。
934 00:42:30.195 --> 00:42:31.415 なので、それが理由です。
935 00:42:32.645 --> 00:42:35.915 ありがとうございます。うーん、皆さんご質問ありがとうございます。
936 00:42:36.115 --> 00:42:37.675 ここにもう1つ見えます。うんうん。
937 00:42:37.755 --> 00:42:39.515 マルチモーダルという機能に気づきました。
938 00:42:39.855 --> 00:42:41.835 ええと、それは私に、
939 00:42:41.855 --> 00:42:44.715 複数の自律エージェントを作成する能力があるという意味ですか、1つは動画用、別のものは
940 00:42:44.715 --> 00:42:45.795 テキスト用、などですか?
941 00:42:46.735 --> 00:42:48.515 ええ、望むならできます。
942 00:42:48.975 --> 00:42:52.995 ええと、それは最初にお見せしたスライドの1つです。
943 00:42:54.455 --> 00:42:57.475 お見せしましょう。スライドがたくさんありました。
944 00:42:58.365 --> 00:43:03.115 Escキーを押しておくべきだったかもしれません。もう少しです。
945 00:43:04.895 --> 00:43:05.945 これです。
946 00:43:07.445 --> 00:43:08.985 ええと、例えばこれですが、
947 00:43:09.015 --> 00:43:10.465 これがあなたがやることになります。
948 00:43:10.765 --> 00:43:11.905 ルーティングシステムを持って、
949 00:43:12.005 --> 00:43:14.985 そして、ほら、「動画に特化したa LMへ行け、
950 00:43:14.985 --> 00:43:17.105 テキストに特化したものへ行け」と定義します、
951 00:43:17.105 --> 00:43:18.225 テキストに特化したものへ、という感じです。
952 00:43:18.805 --> 00:43:21.265 あるいは、マルチモデルのモデルを使うだけでもよく、
953 00:43:21.835 --> 00:43:23.945 それなら画像を理解できますし、
954 00:43:24.245 --> 00:43:26.225 テキストも直接理解できます。
955 00:43:26.525 --> 00:43:28.945 なので、実際には切り替えシステムを作る必要はありません。
956 00:43:29.285 --> 00:43:33.505 うーん、pixel for AIがそれをやっていますし、
957 00:43:34.205 --> 00:43:35.465 Geminiもそれをやっています。
958 00:43:36.285 --> 00:43:38.625 ええと、Claudeも画像などを理解できます。
959 00:43:39.165 --> 00:43:41.145 なので、画像や
960 00:43:41.245 --> 00:43:43.065 テキストがあるなら、同じモデルに投げ込めます。
961 00:43:44.285 --> 00:43:46.735 他の種類のデータがある場合は少し厄介ですが、
962 00:43:47.035 --> 00:43:49.455 音声があると想像してみてください。その場合は、はい、
963 00:43:49.455 --> 00:43:50.535 ルーティングシステムを持つことになります。
964 00:43:51.115 --> 00:43:53.615 そしてルーターの中で、「音声については、
965 00:43:54.355 --> 00:43:55.575 このLLMへ行ってください」と言います。
966 00:43:55.915 --> 00:43:56.915 それがやり方です。
967 00:43:58.615 --> 00:44:00.435 説明ありがとうございます、Stepan。
968 00:44:00.895 --> 00:44:05.475 うーん、別の質問ですが、
969 00:44:05.605 --> 00:44:08.555 フィードバック機構は
970 00:44:08.555 --> 00:44:09.875 agエージェントアプローチのどこに入ってくるのか説明していただけますか?
971 00:44:10.495 --> 00:44:13.715 はい。なのでこれは実際には、つまり、それは
972 00:44:13.715 --> 00:44:15.835 ブラウザ利用の一部ですが、それ以外では実際にチェックしています。
973 00:44:16.575 --> 00:44:18.635 つまり、LLMに何をしたのか尋ねているのです、
974 00:44:18.855 --> 00:44:19.915 そしてメモリを確認しています
975 00:44:20.295 --> 00:44:22.915 それから、よし、アクションは何だ?という感じになります
976 00:44:22.935 --> 00:44:25.475 つまり、開始してから起きていることの
977 00:44:25.475 --> 00:44:27.275 リストを保持していくわけです
978 00:44:27.695 --> 00:44:28.755 なのでアクションから始めます
979 00:44:28.855 --> 00:44:30.235 最初のものでは、アクションは空白です
980 00:44:30.735 --> 00:44:32.965 つまり、まだ何も行われていない、ということです
981 00:44:33.515 --> 00:44:35.805 それから次のタスクを行います。それは
982 00:44:36.425 --> 00:44:38.485 この例ではTwitterに行くことですが、何でも構いません
983 00:44:38.945 --> 00:44:41.965 そしてTwitterに行き、それから実際に確認します
984 00:44:42.635 --> 00:44:44.725 ページが読み込まれたら、つまり
985 00:44:44.725 --> 00:44:46.325 実際にページが読み込まれたかを確認します
986 00:44:46.835 --> 00:44:48.245 それから確認するのは、
987 00:44:48.265 --> 00:44:50.365 実際に正しいウェブサイトにいるかどうかです、ええと
988 00:44:50.945 --> 00:44:52.045 つまり、別の場所ではないか、ということです
989 00:44:53.425 --> 00:44:55.565 そしてその2つの条件が揃っていれば、
990 00:44:56.105 --> 00:44:58.565 まず、よし、このウェブサイトに正しく
991 00:44:58.705 --> 00:44:59.965 移動できた、と言えます
992 00:45:00.915 --> 00:45:04.245 それを行うと、それから、まあ、あの、
993 00:45:04.395 --> 00:45:06.445 それはログに直接表示されていましたが、
994 00:45:06.445 --> 00:45:08.285 要するに異なるステップがあって、
995 00:45:08.465 --> 00:45:09.685 それらが生成されるわけです
996 00:45:10.145 --> 00:45:11.685 そして、よし、最初のステップは
997 00:45:11.685 --> 00:45:13.045 このウェブサイトへ移動することだった
998 00:45:13.465 --> 00:45:15.845 今このウェブサイトにいる。だからそれを成功と呼びます
999 00:45:16.515 --> 00:45:19.125 それから次のステップはツイートを抽出することです
1000 00:45:19.825 --> 00:45:22.085 ええ、なのでツイートを抽出します
1001 00:45:22.625 --> 00:45:25.725 そして、もしそれに、ええと、成功したら、
1002 00:45:25.875 --> 00:45:27.645 それを成功だと言います
1003 00:45:28.265 --> 00:45:30.245 そして成功しなかった場合、エラーがある場合、
1004 00:45:30.245 --> 00:45:32.205 たとえば、わかりませんが、Twitterが落ちているとか、
1005 00:45:32.255 --> 00:45:34.445 ツイートを抽出できないとか
1006 00:45:34.445 --> 00:45:38.205 なぜなら私のプロンプトで抽出すると言ったときに、つまり
1007 00:45:38.205 --> 00:45:40.125 何かを、ええと、それが見つからない場合です
1008 00:45:40.425 --> 00:45:41.285 だからクラッシュするかもしれないし、
1009 00:45:41.285 --> 00:45:42.205 エラーが出るかもしれません
1010 00:45:42.665 --> 00:45:46.085 すると、ああ、ここでエラーがある、ということになります
1011 00:45:46.705 --> 00:45:49.285 ええ、何が起きているのかを確認するために戻って、
1012 00:45:49.285 --> 00:45:50.725 自分のアプローチを少し変える必要があります
1013 00:45:51.185 --> 00:45:53.845 そしてそれが基本的に、ええと、あなたが
1014 00:45:54.385 --> 00:45:55.565 フィードバック機構を持つ方法です
1015 00:45:58.815 --> 00:46:01.205 素晴らしいです、Stepan、そこでのご回答、本当にありがとうございます
1016 00:46:01.785 --> 00:46:04.245 ええと、質問は片付いたようですね、
1017 00:46:05.065 --> 00:46:06.365 本当に矢継ぎ早でしたね
1018 00:46:06.905 --> 00:46:10.445 ええと、もし他にあれば、1分ほど待ってください
1019 00:46:10.495 --> 00:46:11.965 1分、1分
1020 00:46:11.985 --> 00:46:14.205 ほど、皆さんが質問を入力し終えるまで待ちます
1021 00:46:14.665 --> 00:46:18.815 うん。ええと、全体として、こちらが、この画面が
1022 00:46:18.985 --> 00:46:21.015 Stefanとつながれる場所です、ええと
1023 00:46:21.955 --> 00:46:26.455 さまざまなプラットフォームで。そしてオフィスアワーもあります
1024 00:46:26.795 --> 00:46:28.415 ええと、なのでそのリンクを共有します
1025 00:46:28.955 --> 00:46:32.255 Stefan と1対1で会うことに興味がある場合や、
1026 00:46:32.715 --> 00:46:36.335 実はここには別の Stefan の開発者アドボケイトもいます。
1027 00:46:36.715 --> 00:46:39.215 ええと、なので、そのうちの1人が
1028 00:46:39.215 --> 00:46:40.935 あなたの質問に1対1で答えられます。
1029 00:46:41.835 --> 00:46:45.095 ええと、そのリンクをチャットに貼ります。
1030 00:46:47.965 --> 00:46:51.465 はい。そうですね、たとえば vis をどこかにデプロイする場合、
1031 00:46:51.465 --> 00:46:55.545 オフィスアワーは役に立ちます、ええと、そして、
1032 00:46:56.045 --> 00:46:57.585 その後、何らかの形で、たとえば
1033 00:46:57.585 --> 00:46:58.625 スケールアップなどの助けが必要になった場合です。
1034 00:46:59.925 --> 00:47:03.265 はい、質問があります。これを受けてもらえますか。
1035 00:47:03.775 --> 00:47:06.505 もちろん、もちろん。そしてここで最後の質問ですが、もし
1036 00:47:06.505 --> 00:47:08.345 あなたの X フィードの1つで画像を見つけた場合、
1037 00:47:09.085 --> 00:47:10.825 それをどうやって vis に保存しますか。
1038 00:47:11.485 --> 00:47:14.425 つまり、それを埋め込みモデルに通すことになります。
1039 00:47:14.425 --> 00:47:16.145 そのモデルは画像を使えたり、
1040 00:47:16.365 --> 00:47:17.505 画像を理解できたりするものです。
1041 00:47:18.165 --> 00:47:22.785 ええと、そして私たちの場合、たとえば clip のように、
1042 00:47:23.245 --> 00:47:25.985 これは OpenAI のもので、今では古くなり始めていますが、ええと、
1043 00:47:26.165 --> 00:47:28.985 画像とテキストのペアで学習されています。
1044 00:47:29.625 --> 00:47:31.485 それで、私たちがしているのは、
1045 00:47:31.485 --> 00:47:33.925 この画像を埋め込みモデルに通すことです。
1046 00:47:34.105 --> 00:47:35.925 でも、その後テキストで検索できます。
1047 00:47:35.925 --> 00:47:38.485 つまり、画像とテキストに対して
1048 00:47:38.485 --> 00:47:39.565 類似度検索を行うことになります。
1049 00:47:40.225 --> 00:47:41.925 ええと、なので Metaverse では単なるベクトルです。
1050 00:47:42.545 --> 00:47:46.445 ええと、そしてもちろん後で使うために、画像の URL も
1051 00:47:46.445 --> 00:47:47.965 追加で保存します。
1052 00:47:48.465 --> 00:47:49.485 ええと、でも私たちの場合、それ以外では、
1053 00:47:49.485 --> 00:47:51.445 検索したいなら、それはあなたのベクトルだけです。
1054 00:47:55.905 --> 00:47:59.605 他に質問はありますか。ここでの
1055 00:47:59.605 --> 00:48:01.125 すべての質問に感謝します。
1056 00:48:01.905 --> 00:48:05.115 うんうん。つまり皆さんが実際に
1057 00:48:05.115 --> 00:48:06.155 セッションに参加し続けているということですね。
1058 00:48:13.065 --> 00:48:15.075 あと1分ほど待ちます。
1059 00:48:17.885 --> 00:48:19.545 また、さらに質問があれば、気軽に
1060 00:48:19.545 --> 00:48:20.665 ソーシャルで連絡してください。
1061 00:48:21.525 --> 00:48:23.955 ええと、喜んでお手伝いします。
1062 00:48:29.345 --> 00:48:31.715 チャットにもいくつかリソースを入れておきました。
1063 00:48:31.735 --> 00:48:34.435 今後のイベントや、私たちの、ええと、
1064 00:48:34.435 --> 00:48:38.915 全体のリソースページ、そして私たちの vis discord が見つかります。
1065 00:48:39.255 --> 00:48:42.595 フォローアップがある場合は、ええと、ポッドキャストもあります。
1066 00:48:42.765 --> 00:48:44.075 それもチャットに入れておきました。
1067 00:48:44.295 --> 00:48:45.355 それから、ええと、
1068 00:48:45.355 --> 00:48:49.315 最後に、私たちのチームの誰かと1対1で会いたい場合のために、
1069 00:48:49.315 --> 00:48:50.475 オフィスアワーがあります。
1070 00:48:52.955 --> 00:48:55.005 はい、いいですね。ここで終了します。
1071 00:48:55.415 --> 00:48:56.885 本日はご参加いただきありがとうございました。
1072 00:48:57.105 --> 00:49:00.205 今後のウェビナーでお会いできるのを楽しみにしています。
1073 00:49:01.745 --> 00:49:03.835 いいですね。どうもありがとうございました。では。


