milvus - スケーラブルな類似性検索および AI アプリケーション用のベクトル データベース。

(Vector database for scalable similarity search and AI applications.)

Created at: 2019-09-16 14:43:43
Language: Go
License: Apache-2.0

ミルバスバナー

ミルバスとは?

ミルバスのロゴ

Milvus は、組み込み類似検索および AI アプリケーションを強化するために構築されたオープンソースのベクター データベースです。Milvus は、非構造化データ検索をよりアクセスしやすくし、展開環境に関係なく一貫したユーザー エクスペリエンスを提供します。

Milvus 2.0 は、設計によって分離されたストレージと計算を備えたクラウドネイティブのベクター データベースです。このリファクタリングされたバージョンの Milvus のすべてのコンポーネントは、弾力性と柔軟性を強化するためにステートレスです。アーキテクチャの詳細については、Milvus アーキテクチャの概要を参照してください。

Milvus は、2019 年 10 月にオープンソースの Apache License 2.0でリリースされました。現在、LF AI & Data Foundationの卒業プロジェクトです。

主な機能

兆ベクトル データセットのミリ秒検索 1兆個のベクトル データセットでミリ秒単位で測定された平均レイテンシ。
シンプルな非構造化データ管理
  • データ サイエンス ワークフロー用に設計された豊富な API。
  • ラップトップ、ローカル クラスター、およびクラウド全体で一貫したユーザー エクスペリエンス。
  • リアルタイムの検索と分析をほぼすべてのアプリケーションに組み込みます。
  • 信頼性の高い常時ベクター データベース Milvus に組み込まれているレプリケーションおよびフェイルオーバー/フェイルバック機能により、データとアプリケーションが中断した場合でもビジネスの継続性を維持できます。
    高度なスケーラビリティと弾力性 コンポーネント レベルのスケーラビリティにより、必要に応じてスケールアップおよびスケールダウンできます。Milvus は、負荷の種類に応じてコンポーネント レベルで自動スケーリングできるため、リソースのスケジューリングがはるかに効率的になります。
    ハイブリッド検索 ベクトルに加えて、Milvus はブール値、整数、浮動小数点数などのデータ型をサポートしています。Milvus のコレクションは、さまざまなデータの特徴やプロパティに対応するために複数のフィールドを保持できます。Milvus は、スカラー フィルタリングと強力なベクトル類似性検索を組み合わせて、非構造化データを分析するための最新の柔軟なプラットフォームを提供します。例とブール式のルールについては、 https://github.com/milvus-io/milvus/wiki/Hybrid-Searchを確認してください。
    統合ラムダ構造 Milvus は、データ ストレージのストリーム処理とバッチ処理を組み合わせて、適時性と効率のバランスを取ります。その統一されたインターフェースにより、ベクトルの類似性検索が簡単になります。
    コミュニティがサポートし、業界が認めた 1,000 を超えるエンタープライズ ユーザー、GitHub の 9,000 以上のスター、アクティブなオープンソース コミュニティにより、Milvus を使用するのはあなただけではありません。LF AI & Data Foundationの大学院プロジェクトとして、Milvus は機関のサポートを受けています。

    クイックスタート

    ミルバスをインストール

    ソース コードから Milvus をビルドする

    最初に要件を確認してください。

    Linux システム (Ubuntu 18.04 以降を推奨):

    go: >= 1.18
    cmake: >= 3.18
    gcc: 7.5

    x86_64 を搭載した MacOS システム (Big Sur 11.5 以降を推奨):

    go: >= 1.18
    cmake: >= 3.18
    llvm: >= 12

    Apple Silicon を搭載した MacOS システム (Monterey 12.0.1 以降を推奨):

    go: >= 1.18 (Arch=ARM64)
    cmake: >= 3.18
    llvm: >= 13

    Milvus リポジトリをクローンしてビルドします。

    # Clone github repository.
    $ git clone https://github.com/milvus-io/milvus.git
    
    # Install third-party dependencies.
    $ cd milvus/
    $ ./scripts/install_deps.sh
    
    # Compile Milvus.
    $ make

    詳細については、開発者向けドキュメントを参照してください。

    重要master ブランチは、Milvus v2.0 の開発用です。2021 年 3 月 9 日に、長期サポート付きの Milvus の最初の安定バージョンである Milvus v1.0 をリリースしました。Milvus v1.0 を使用するには、ブランチ 1.0に切り替えます。

    Milvus 2.0 と 1.x の比較: クラウドネイティブ、分散アーキテクチャ、高度なスケーラビリティなど

    詳細については、 Milvus 2.0 と 1.xの比較を参照してください。

    実際のデモ

    画像検索 チャットボット 化学構造検索

    画像検索

    画像が検索可能になりました。大規模なデータベースから最も類似した画像を瞬時に返します。

    チャットボット

    ユーザーの時間と企業のお金を節約するインタラクティブなデジタル カスタマー サービス。

    化学構造検索

    指定した分子の超高速類似性検索、部分構造検索、または超構造検索。

    ブートキャンプ

    Milvusブートキャンプは、ベクター データベースのシンプルさと深さの両方をユーザーに紹介するように設計されています。ベンチマーク テストを実行する方法と、チャットボット、レコメンデーション システム、逆画像検索、分子検索などにまたがる類似性検索アプリケーションを構築する方法を発見してください。

    貢献する

    Milvus への貢献は、どなたでも大歓迎です。パッチのサブミットとコントリビューション ワークフローの詳細については、コントリビューションのガイドラインを参照してください。コミュニティ リポジトリを参照して、ガバナンスについて学び、その他のコミュニティ リソースにアクセスしてください。

    すべての貢献者




    ドキュメンテーション

    インストール、開発、展開、および管理に関するガイダンスについては、Milvus Docsを確認してください。技術的なマイルストーンと機能強化の提案については、 milvus confluenceをチェックしてください

    SDK

    実装された SDK とその API ドキュメントを以下に示します。

    アッツ

    Attu は、Milvus に直感的で効率的な GUI を提供します。

    コミュニティ

    Slackの Milvus コミュニティに参加して、提案、アドバイス、質問を当社のエンジニアリング チームと共有してください。

    Miluvs Slack チャンネル

    また、 FAQ ページをチェックして、問題や質問に対する解決策や回答を見つけることもできます。

    Milvus メーリング リストに登録します。

    ソーシャル メディアで Milvus をフォローしてください。

    参照

    研究論文で Milvus を使用する場合の参考文献:

    @inproceedings{2021milvus,
      title={Milvus: A Purpose-Built Vector Data Management System},
      author={Wang, Jianguo and Yi, Xiaomeng and Guo, Rentong and Jin, Hai and Xu, Peng and Li, Shengjun and Wang, Xiangyu and Guo, Xiangzhou and Li, Chengming and Xu, Xiaohai and others},
      booktitle={Proceedings of the 2021 International Conference on Management of Data},
      pages={2614--2627},
      year={2021}
    }
    

    謝辞

    Milvus は、次の依存関係を採用しています。

    • 優れた検索ライブラリを提供してくれたFAISSに感謝します。
    • 優れたオープンソースのキー値ストア ツールを提供してくれたetcdに感謝します。
    • Pulsarのすばらしい分散 pub-sub メッセージング システムに感謝します。
    • 強力なストレージ エンジンを提供してくれたRocksDBに感謝します。

    Milvus は、次のオープンソース プロジェクトで採用されています。

    • 非構造化データの埋め込みベクトルを計算するための柔軟なアプリケーション指向のフレームワークであるTowee 。
    • Transformer モデルを活用するオープンソースの NLP フレームワークであるHaystack