Milvusで4つの人気AIアプリケーションを作る方法
ブログカバー.png
Milvusはオープンソースのベクトルデータベースである。AIモデルを使って非構造化データから特徴ベクトルを抽出して作成された膨大なベクトルデータセットの追加、削除、更新、およびほぼリアルタイムの検索をサポートする。Milvusは、直感的なAPIの包括的なセットと、広く採用されている複数のインデックスライブラリ(Faiss、NMSLIB、Annoyなど)のサポートにより、機械学習アプリケーションの開発と機械学習オペレーション(MLOps)を加速します。Milvusを使用することで、コストを低く抑えながら、MVP(minimum viable product)を迅速に開発することができます。
「Milvusを使ってAIアプリケーションを開発するために、どのようなリソースが利用可能か」というのは、Milvusコミュニティでよく聞かれる質問です。Milvusの開発元であるZilliz社は、Milvusを活用し、インテリジェント・アプリケーションの原動力となる高速類似検索を行うデモを多数開発した。Milvusソリューションのソースコードはzilliz-bootcampでご覧いただけます。以下のインタラクティブなシナリオでは、自然言語処理(NLP)、逆画像検索、音声検索、コンピュータビジョンを実演しています。
特定のシナリオを実際に体験するために、ソリューションを自由に試してみてください!あなた自身のアプリケーション・シナリオを
ジャンプする
自然言語処理(チャットボット)
Milvusは、自然言語処理を使用してライブオペレーターをシミュレートし、質問に答え、ユーザーを関連情報に導き、人件費を削減するチャットボットを構築するために使用できます。この応用シナリオを実証するため、ZillizはMilvusと、自然言語処理の事前学習用に開発された機械学習(ML)モデルであるBERTを組み合わせて、意味言語を理解するAI搭載チャットボットを構築した。
ソースコード:zilliz-bootcamp/intelligent_question_answering_v2
1.png
使用方法
質問と回答のペアを含むデータセットをアップロードする。質問と答えを2列に分けてフォーマットする。また、サンプルデータセットをダウンロードすることもできます。
質問を入力すると、アップロードされたデータセットから類似した質問のリストが検索されます。
あなたの質問に最も似ている質問を選択することで、答えを明らかにすることができます。
👉動画:【デモ】QAシステム Powered by milvus
仕組み
質問はGoogleのBERTモデルを使用して特徴ベクトルに変換され、Milvusはデータセットの管理とクエリに使用されます。
データ処理:
- BERTを使用して、アップロードされた質問と回答のペアを768次元の特徴ベクトルに変換します。その後、ベクトルは Milvus にインポートされ、個々の ID が割り当てられる。
- 質問および対応する回答のベクトル ID は、PostgreSQL に保存されます。
類似問題の検索
- BERTは、ユーザの入力質問から特徴ベクトルを抽出するために使用されます。
- Milvusは、入力質問に最も類似している質問のベクトルIDを検索します。
- システムは、PostgreSQLで対応する回答を検索します。
逆画像検索システム
逆画像検索は、パーソナライズされた商品推奨や類似商品検索ツールによってeコマースに変革をもたらし、売上を向上させることができる。この応用シナリオにおいて、ZillizはMilvusと画像の特徴を抽出できるMLモデルであるVGGを組み合わせることで、逆画像検索システムを構築した。
👉ソースコード:zilliz-bootcamp/image_search
2.jpeg
使用方法
- .jpg画像のみで構成されたzip圧縮された画像データセットをアップロードしてください。または、サンプルデータセットをダウンロードすることもできます。
- 類似画像を見つけるための検索入力として使用する画像をアップロードする。
仕組み
画像はVGGモデルを使って512次元の特徴ベクトルに変換され、Milvusを使ってデータセットの管理とクエリが行われます。
データ処理:
- アップロードされた画像データセットを特徴ベクトルに変換するためにVGGモデルが使用されます。そのベクトルはMilvusにインポートされ、個々のIDが割り当てられる。
- 画像特徴ベクトルと対応する画像ファイルパスはCacheDBに格納される。
類似画像の検索
- ユーザがアップロードした画像を特徴ベクトルに変換するためにVGGが使用されます。
- 入力画像に最も類似した画像のベクトルIDがmilvusから取得されます。
- システムはCacheDBで対応する画像ファイルのパスを検索します。
音声検索システム
音声、音楽、効果音、その他の種類の音声検索により、大量の音声データを素早く照会し、類似した音声を浮かび上がらせることができます。用途としては、類似した効果音の特定、IP侵害の最小化などが挙げられます。この応用シナリオを実証するために、ZillizはMilvusとPANNs(オーディオパターン認識のために構築された大規模な事前学習済みオーディオニューラルネットワーク)を組み合わせることで、非常に効率的なオーディオ類似検索システムを構築した。
👉ソースコード:zilliz-bootcamp/audio_search 3.png
使用方法
- .wavファイルのみで構成されたzip圧縮されたオーディオデータセットをアップロードしてください(他のオーディオファイル形式は受け付けられません)。または、サンプルデータセットをダウンロードすることもできます。
- .wavファイルをアップロードし、類似音声を検索するための検索入力として使用します。
ビデオ[デモ] 音声検索 Powered by Milvus
仕組み
音声は、音声パターン認識用に構築された大規模な事前学習済みオーディオ・ニューラル・ネットワークであるPANNを使って特徴ベクトルに変換されます。その後、Milvusを使ってデータセットの管理とクエリを行う。
データ処理:
- PANNsはアップロードされたデータセットの音声を特徴ベクトルに変換する。ベクトルはMilvusにインポートされ、個々のIDが割り当てられる。
- 音声特徴ベクトルIDとそれに対応する.wavファイルのパスはPostgreSQLに格納される。
類似オーディオの検索
- PANNsは、ユーザーがアップロードしたオーディオファイルを特徴ベクトルに変換するために使用されます。
- アップロードされたファイルに最も類似したオーディオのベクトルIDは、内積(IP)距離を計算することでMilvusから検索されます。
- システムはMySQLで対応するオーディオファイルのパスを検索する。
ビデオオブジェクト検出(コンピュータビジョン)
ビデオオブジェクト検出は、コンピュータビジョン、画像検索、自律走行などに応用されている。この応用シナリオを実証するために、MilvusとOpenCV、YOLOv3、ResNet50などの技術やアルゴリズムを組み合わせて、ビデオオブジェクト検出システムを構築した。
👉ソースコードzilliz-bootcamp/video_analysis
4.png
使用方法
- .jpgファイルのみで構成されたzip圧縮された画像データセットをアップロードしてください(その他の画像ファイル形式は受け付けません)。各画像ファイルには、必ずその画像に描かれているオブジェクトの名前を付けてください。または、サンプルデータセットをダウンロードすることもできます。
- 分析に使用するビデオをアップロードします。
- 再生ボタンをクリックすると、アップロードされたビデオにオブジェクト検出結果がリアルタイムで表示されます。
👉動画[デモ] Milvusによる映像オブジェクト検出システム
仕組み
物体画像はResNet50を用いて2048次元の特徴ベクトルに変換されます。その後、Milvusを用いてデータセットの管理とクエリを行う。
データ処理
- ResNet50は物体画像を2048次元の特徴ベクトルに変換する。このベクトルはMilvusにインポートされ、個々のIDが割り当てられる。
- 音声特徴ベクトルのIDと対応する画像ファイルのパスはMySQLに格納される。
ビデオ内のオブジェクトの検出:
- ビデオのトリミングにはOpenCVを使用。
- YOLOv3を用いて映像内の物体を検出する。
- ResNet50は検出された物体画像を2048次元の特徴ベクトルに変換する。
Milvusはアップロードされたデータセットから最も類似したオブジェクト画像を検索する。対応するオブジェクト名と画像ファイルのパスはMySQLから取得される。
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word