milvus-logo
LFAI
フロントページへ
  • コンセプト

用語解説

オートID

AutoIDは主フィールドの属性で、主フィールドのオートインクリメントを有効にするかどうかを決定する。AutoIDの値はタイムスタンプに基づいて定義される。詳細はcreate_schema を参照してください。

自動インデックス

Milvusは経験的なデータに基づいて、特定のフィールドに最適なインデックスタイプとパラメータを自動的に決定します。これは特定のインデックスパラメータを制御する必要がない場合に理想的です。詳細はadd_indexを参照してください。

Attu

AttuはMilvus用のオールインワン管理ツールで、システム管理の複雑さとコストを大幅に削減します。

バードウォッチャー

Birdwatcherはetcdに接続するMilvus用のデバッグツールで、Milvusサーバの状態を監視し、リアルタイムに調整を行うことができます。また、etcdファイルのバックアップにも対応しており、開発者のトラブルシューティングを支援します。

バルクライター

MilvusのSDK(PyMilvusやJava SDKなど)で提供されているデータ処理ツールで、生のデータセットをMilvusと互換性のある形式に変換し、効率的にインポートできるように設計されています。

一括挿入

Bulk Insertは、1回のリクエストで複数のファイルをインポートできるようにすることで、書き込みのパフォーマンスを向上させ、大規模なデータセットの操作を最適化するAPIです。

カーディナル

Zilliz Cloudが開発したCardinalは、比類のない検索品質とパフォーマンスを実現する最先端のベクトル検索アルゴリズムです。革新的な設計と広範な最適化により、CardinalはKサイズの変化、高度なフィルタリング、異なるデータ分布など、多様な生産シナリオに適応的に対応しながら、Knowhereを数倍から1桁上回るパフォーマンスを発揮します。

チャネル

MilvusはPCチャネルと Vチャネルの2種類のチャネルを利用している。各PCチャネルはログストレージのトピックに対応し、各Vチャネルはコレクション内のシャードに対応する。

コレクション

Milvusでは、コレクションはリレーショナルデータベース管理システム(RDBMS)におけるテーブルに相当します。コレクションはエンティティの保存と管理に使用される主要な論理オブジェクトです。詳細については、「コレクションの管理」を参照してください。

依存関係

依存関係とは、他のプログラムが動作するために依存するプログラムのことです。Milvusの依存関係には、etcd(メタデータの保存)、MinIOまたはS3(オブジェクトストレージ)、Pulsar(スナップショットログの管理)などがあります。詳細については、「依存関係の管理」を参照してください。

動的スキーマ

動的スキーマを使用すると、既存のスキーマを変更することなく、新しいフィールドを持つエンティティをコレクションに挿入できます。これは、コレクションの完全なスキーマを知らなくてもデータを挿入でき、まだ定義されていないフィールドを含めることができることを意味します。コレクションを作成するときにダイナミック・フィールドを有効にすることで、このスキーマ・フリー機能を有効にできます。詳細は、Enable Dynamic Fieldを参照してください。

埋め込み

Milvusは一般的な埋め込みプロバイダと連携する埋め込み機能を内蔵しています。Milvusでコレクションを作成する前に、これらの関数を使用してデータセットのエンベッディングを生成し、データやベクトル検索の準備プロセスを合理化することができます。エンベッディングを実際に生成するには、Using PyMilvus's Model To Generate Text Embeddingsを参照してください。

エンティティ

エンティティは実世界のオブジェクトを表すフィールド群で構成されます。Milvusの各エンティティは一意な主キーで表されます。

主キーはカスタマイズできます。手動で設定しない場合、Milvus は自動的に主キーをエンティティに割り当てます。主キーをカスタマイズする場合、Milvusは今のところ主キーの重複排除をサポートしていないことに注意してください。そのため、同じコレクション内に重複した主キーが存在する可能性があります。詳細については、エンティティの挿入を参照してください。

フィールド

MilvusコレクションのフィールドはRDBMSのテーブルのカラムに相当します。フィールドには、構造化データ(数値、文字列など)用のスカラーフィールドと、埋め込みベクトル用のベクトルフィールドがあります。

フィルタ

Milvusは述語検索によるスカラーフィルタリングをサポートしており、クエリや検索内でフィルタ条件を定義して結果を絞り込むことができます。

フィルタリング検索はスカラーフィルタをベクトル検索に適用し、特定の条件に基づいて検索結果を絞り込むことができます。詳細については、フィルタリング検索を参照してください。

ハイブリッド検索はMilvus 2.4.0から搭載されたAPIです。複数のベクトルフィールドを検索し、融合させることができます。ベクトル検索とスカラーフィールドのフィルタリングを組み合わせた検索を「フィルタリング検索」と呼びます。詳細はハイブリッド検索を参照。

インデックス

ベクトルインデックスは生データから導き出された再編成されたデータ構造であり、ベクトル類似検索のプロセスを大幅に加速することができます。Milvusはベクトルフィールドとスカラーフィールドの両方に対して幅広いインデックスタイプをサポートしています。詳細については、ベクトルインデックスタイプを参照してください。

Kafka-Milvusコネクタ

Kafka-Milvusコネクタとは、Milvus用のKafkaシンクコネクタのことです。KafkaからMilvusへベクトルデータをストリーミングすることができます。

Knowhere

KnowhereはMilvusのコアとなるベクトル実行エンジンであり、Faiss、Hnswlib、Annoyを含む複数のベクトル類似性検索ライブラリが組み込まれています。また、Knowhereはヘテロジニアスコンピューティングをサポートするように設計されている。インデックス構築と検索要求をどのハードウェア(CPUまたはGPU)で実行するかを制御する。これがKnowhereの名前の由来であり、どこで処理を実行するかを知っている。

ログブローカー

ログ・ブローカーは、再生をサポートするパブリッシュ・サブスクライブ・システムである。ストリーミングデータの永続化、信頼性の高い非同期クエリの実行、イベント通知、クエリ結果の返送を担当する。また、ワーカーノードがシステムダウンから回復する際に、増分データの整合性を保証します。

ログスナップショット

ログスナップショットはバイナリログであり、milvusのデータに対する更新や変更を記録し、処理するセグメントの小さな単位です。セグメントのデータは複数のバイナリログに永続化されます。MilvusのバイナリログにはInsertBinlog、DeleteBinlog、DDLBinlogの3種類があります。詳細については、メタストレージを参照してください。

ログ購読者

ログサブスクライバは、ローカルデータを更新し、読み取り専用コピーの形でサービスを提供するために、ログシーケンスをサブスクライブします。

メッセージストレージ

メッセージストレージはMilvusのログストレージエンジンです。MilvusはメッセージストレージとしてKafkaまたはPulsaをサポートしています。詳細については、「メッセージストレージの設定」を参照してください。

メトリックタイプ

類似度メトリックタイプはベクトル間の類似度を測定するために使用されます。現在、Milvusはユークリッド距離(L2)、内積(IP)、コサイン類似度(COSINE)、バイナリメトリックタイプをサポートしています。シナリオに応じて最適なメトリックタイプを選択することができます。詳細については、類似度メトリックを参照してください。

マップ

メモリマップされたファイルは、ファイルの内容を直接メモリにマッピングすることで、効率的なデータ処理を可能にします。これは、メモリが限られており、すべてのデータをロードできない場合に特に有効です。このテクニックは、データ容量を増加させ、パフォーマンスをある程度維持することができる。しかし、データがメモリ容量を大幅に超える場合、検索やクエリの速度が大幅に低下する可能性があります。詳細については、MMap-enabled Data Storageを参照してください。

Milvusバックアップ

Milvus Backupはデータのコピーを作成するためのツールであり、データ喪失後にオリジナルを復元するために使用することができます。

Milvus CDC

Milvus CDC(Change data capture)は、Milvusインスタンスの増分データをキャプチャし、同期することができるユーザーフレンドリーなツールです。ソースインスタンスとターゲットインスタンス間でシームレスにデータを転送することで、ビジネスデータの信頼性を確保し、増分バックアップとディザスタリカバリを容易に行うことができます。

Milvus CLI

Milvusコマンドラインインタフェース(CLI)は、データベース接続、データ操作、データのインポート・エクスポートをサポートするコマンドラインツールです。Milvus Python SDKをベースとしており、対話型のコマンドラインプロンプトを使用してターミナルからコマンドを実行することができます。

Milvusマイグレーション

Milvusマイグレーションは、様々なデータソースからMilvus 2.xへのデータ移行を容易にするために設計されたオープンソースツールです。

Milvusクラスタ

Milvusのクラスタ展開では、高可用性と容易なスケーラビリティを実現するために、ノードグループによってサービスが提供されます。

Milvusスタンドアロン

Milvusのスタンドアロン展開では、データ挿入、インデックス構築、ベクトル類似度検索を含むすべての操作は1つのプロセスで完了します。

マルチベクトル

Milvusは2.4.0以降、1つのコレクションで複数のベクトルフィールドをサポートしています。詳細はハイブリッド検索をご参照ください。

パーティション

パーティションはコレクションの分割です。Milvusはコレクションデータを物理ストレージ上で複数のパートに分割することをサポートしています。このプロセスはパーティショニングと呼ばれ、各パーティションは複数のセグメントを含むことができます。詳細については、パーティションの管理を参照してください。

パーティション・キー

フィールドのパーティション・キー属性は、パーティション・キー値に基づいて、エンティティを個別のパーティションに分離することを可能にします。このグループ化によって、同じキー値を共有するエンティティが一緒に保存されるようになり、パーティション・キー・フィールドでフィルタリングされたクエリ中にシステムが無関係なパーティションをバイパスできるようになるため、検索操作が高速化されます。詳細については、「パーティション・キーの使用」を参照してください。

PCチャンネル

PChannelは物理チャンネルを意味します。各PCチャンネルは、ログ・ストレージのトピックに対応します。デフォルトでは、Milvusクラスタの起動時にデータの挿入、削除、更新を記録するログを格納するために16のPCチャネルが割り当てられます。詳細については、メッセージチャネル関連の設定を参照してください。

PyMilvus

PyMilvusはMilvusのPython SDKです。ソースコードはオープンソース化されており、GitHubでホストされています。MilvusClient(新バージョンのPython SDK)またはオリジナルのORMモジュールを選択し、Milvusと対話することができます。

クエリ

Queryは、指定されたブール式をフィルタとしてスカラーフィルタリングを行うAPIです。詳細はGet & Scalar Query を参照してください。

範囲検索では、検索ベクトルから指定した距離内にあるベクトルを見つけることができます。詳細については、範囲検索を参照してください。

スキーマ

スキーマは、データ型とデータプロパティを定義するメタ情報です。各コレクションは、コレクションのすべてのフィールド、自動ID(プライマリキー)割当て有効性、およびコレクションの説明を定義する独自のコレクションスキーマを持っています。フィールドスキーマもコレクションスキーマに含まれ、フィールドの名前、データ型、その他のプロパティを定義します。詳細については、Manage Schemaを参照してください。

Searchはベクトル類似検索を実行するAPIで、その実行にはベクトルデータが必要である。詳細は「Single-Vector Search」を参照。

セグメント

セグメントとは、挿入されたデータを保存するために自動的に作成されるデータファイルである。コレクションは複数のセグメントを含むことができ、各セグメントは多数のエンティティを保持することができる。ベクトル類似検索の間、Milvusは各セグメントを調べ、検索結果をまとめます。

セグメントには、成長するセグメントと密封されたセグメントの2種類がある。成長中のセグメントは、特定のしきい値または時間制限に達するまで新しいデータを収集し続け、その後封印される。一旦封印されると、セグメントは新しいデータを受け付けなくなり、オブジェクトストレージに転送される。一方、受信データは新しい成長中のセグメントに転送される。成長中のセグメントから封印されたセグメントへの移行は、事前に定義されたエンティティの制限に達するか、成長中の状態で許容される最大期間を超えるかのどちらかでトリガーされる。詳細については、設計の詳細を参照してください。

Spark-Milvusコネクタ

Spark-Milvus Connectorは、Apache SparkとMilvus間のシームレスな統合を提供し、Apache Sparkのデータ処理および機械学習(ML)機能とMilvusのベクトルデータストレージおよび検索機能を組み合わせます。

シャード

Milvusは、プライマリキーのハッシュに基づいて編成されたシャードを使用して、書き込み操作を複数のノードに分散させることで、データの書き込みパフォーマンスを向上させます。これはクラスタの並列コンピューティング能力を活用する。

パーティショニングはパーティション名を指定することで読み込み負荷を軽減し、シャーディングは書き込み負荷を複数のサーバーに分散します。

スパース・ベクター

スパース・ベクトルは、ほとんどの要素がゼロであり、ゼロでない要素が1つだけあれば特定の単語が存在することを示すベクトル埋め込みを用いて単語やフレーズを表現する。SPLADEv2のようなスパース・ベクター・モデルは、領域外の知識検索、キーワード認識、解釈可能性において、密なモデルよりも優れている。詳細については、「スパース・ベクトル」を参照してください。

非構造化データ

画像、ビデオ、オーディオ、自然言語などの非構造化データは、事前に定義されたモデルや構成方法に従わない情報です。このデータタイプは世界のデータの約80%を占めており、様々な人工知能(AI)やMLモデルを使用してベクトルに変換することができます。

Vチャネル

VChannelは論理チャネルの略。各VChannelはコレクション内のシャードを表す。各コレクションには、データの挿入、削除、更新を記録するためのVChannelのグループが割り当てられる。VChannelは論理的には分離されているが、物理的にはリソースを共有している。

ベクトル

埋め込みベクトルは、電子メール、IoTセンサーデータ、Instagramの写真、タンパク質構造などの非構造化データの特徴を抽象化したものです。数学的に言えば、エンベッディング・ベクターは浮動小数点数またはバイナリの配列です。最新の埋め込み技術は、非構造化データを埋め込みベクトルに変換するために使用されます。Milvusは2.4.0から密なベクトルと疎なベクトルの両方をサポートしています。

Zillizクラウド

Zilliz Cloud上のフルマネージドMilvusは、より多くのエンタープライズ機能と高度に最適化されたパフォーマンスを備えています。