フィフティワンとは
FiftyOneは、コンピュータビジョンモデル開発のためのオープンソースソリューションです。機械学習ツールキットとして、FiftyOneはデータサイエンスチームが様々な機能を通じてコンピュータビジョンモデルの有効性を高めることを支援します。これには、トップクラスのデータセットの綿密な管理、徹底的なモデル評価、エラーの特定、エンベッディングの可視化、本番環境へのパスの合理化などの機能が含まれます。
なぜフィフティワンとジリーズ・クラウド(ミルバス)なのか
Milvusのようなベクトル検索エンジンは、日々増え続けるAIアプリケーションのために、ベクトル埋め込みデータを保存、インデックス化、検索するプロセスを合理化する。
ベクトル検索を画像や動画のワークフローに組み込む場合、クロスモーダル検索の実装や従来の検索フィルタの組み込みといった課題が発生する可能性があります。FiftyOneは、ベクトル検索のコンピュータビジョンインターフェースとしてソリューションを提供します。FiftyOneはMilvusとネイティブに統合されており、ユーザーはコード1行で好みのベクトル検索エンジンをシームレスに活用し、効率的なビジュアルデータ検索を行うことができます。類似画像の検索でも、画像内の特定のオブジェクトの検索でも、FiftyOneはプロセスを簡素化し、ユーザーが検索目的を簡単に達成できるようにします。
ベクトル検索を画像や動画データのワークフローに組み込む場合、いくつかの課題が発生する可能性があります:
- 関連するテキストに基づいて画像を検索するなど、クロスモーダル検索を実装すること。
- 信頼しきい値やクラスラベルのような従来の検索フィルタを組み込むこと。
- 人、猫、犬、車、バイクなど、画像内の特定のオブジェクトを検索する。
FiftyOneとZilliz Cloudの使い方
MilvusをFiftyOneと組み合わせて使用し、FiftyOneデータセットに類似性インデックスを作成し、これを使用してデータを照会する方法は以下の通りです:
- データセットをFiftyOneにロードする
- 埋め込みベクトルの生成に使用するモデルを指定し、埋め込みベクトルの保存に Milvus と Zilliz Cloud のどちらを使用するかを設定します。
- compute_similarity()`メソッドを使用し、backend="milvus "パラメータを設定し、任意のbrain_keyを指定することで、データセット内のサンプルまたはオブジェクトパッチに対するMilvus類似度インデックスを生成する。
- このミルバス類似度インデックスを使って
sort_by_similarity()でデータを検索する。
Milvusのセットアップ
## milvus のセットアップ ## dockerコンテナをダウンロードして起動する pip install pymilvus ## 類似性インデックスを生成する ## CLIPモデルの埋め込みで ## Milvusバックエンドを使う fob.compute_similarity( データセット brain_key="milvus_clip_index"、 backend="milvus"、 metric="dotproduct"Milvusに問い合わせる
## 最初のサンプルのIDを取得 クエリ = dataset.skip(1).first().id ## Milvusバックエンドで最も類似した25枚の画像を見つける sim_view = dataset.sort_by_similarity( query、 k=25, brain_key="milvus_clip_index" ) ## 結果を表示 セッション = fo.launch_app(sim_view)さらに詳しく
FiftyOneとMilvus / Zilliz Cloudの使い方については、以下のチュートリアルをご覧ください。