Vertex AI Matching Engineを使ってみる

Vertex AI Matching Engineを使ってみる



Vertex AIを有効化しておく
Matching Engine APIを使用してインデックスを作成できます
実験のうちは最も安いリージョンを選んでおく
初期データを保存するGCSバケットも同じリージョンに作ること。multi regionはだめ。

Node.jsから呼び出してみよう
どのAPIが関係するかは叩きながら考える
Cloud Run jobsを触ったときと雰囲気が似ている
未実装のメソッドが多くて結局これは使えず、素朴にfetchするしかなかった daiiz

実験リポジトリ
OpenAIの text-embedding-ada-002 で得られる1536次元のembeddingを使った
1で作ったIndexはindexUpdateMethodが BATCH_UPDATE だったので作り直し
PaLM APIの textembedding-gecko@001 で得られる768次元のembeddingを試す


あとで読みたくなりそう
public endpoint (認証必須) の作成方法
これそのものは目指さないけれど参考になる


さらに先: 検索クエリ発行
この論理フィルタは柔軟で凄い
検索時にどうやって指定するのか

Protocol Buffersの定義を読み解く
Node.jsのClient libraryを使ったサンプルコードが世に無いので自分で引数を考えて組み立てるしかない
~~~

疑問
STREAM_UPDATEモードでupsertしてから検索可能になるまでの時間
ただちに可能
upsertされたデータポイントはインデックス作成時に指定したGCSに永続化されるの?
されない。Elasticsearchの運用と同様に永続化は別でやっておくべき。upsertする前にGCSに保存しておけばいい。次回のインデックス構築時の初期データとしてもそのまま使える。
ストリーミング更新で追加されたものを含めてデータポイント数を確認するには?
不明
大きい neighbor_count で検索して全件取得する方法しか思いつかない daiiz
Powered by Helpfeel