Proxima CE は、Proxima 2.x カーネルに基づくエンジンであり、膨大な数のオフライン ベクトル検索タスクを同時に処理するために使用されます。タスクには、基本的なベクトル検索タスク、複数カテゴリのベクトル検索タスク、および数百万のデータレコードから上位 K 件の結果を検索するために使用されるタスクが含まれます。このトピックでは、MaxCompute で Proxima CE を使用する方法について説明します。
背景情報
Proxima CE は、ベクトル検索(最近傍探索)を実装するために Alibaba DAMO Academy によって開発された高性能ソフトウェアです。 Faiss などの類似のオープンソース製品と比較して、Proxima CE はより優れた安定性とより高いパフォーマンスを提供します。 Proxima CE は使いやすく、MaxCompute で実行するための組み込みの実行可能 JAR ファイルを提供します。 Proxima CE を実行するときは、MaxCompute テーブルをベクトルデータクエリのベースおよび入力データとして使用できます。 Proxima CE を使用すると、MaxCompute MapReduce ジョブまたは Graph ジョブを実行することにより、インデックスを作成し、複数のクエリタスクを同時に実行できます。バッチクエリ操作の出力結果は、MaxCompute テーブルとして生成されます。
説明
サポートされているデータ型と検索方法
INT8、FLOAT、BINARYなどの複数のデータ型がサポートされています。説明BINARY 型のデータを INT32 型に変換できます。詳細については、「オプションのパラメーター」の binary_to_int パラメーターの説明をご参照ください。
Hierarchical Navigable Small World (HNSW) グラフ、Satellite System Graph (SSG)、Hierarchical Clustering (HC)、Graph Clustering (GC)、Quantized Clustering (QC)、および線形検索を含む複数の検索方法がサポートされています。デフォルトでは、検索にHNSWグラフが使用されます。
オプションのパラメーターに基づく高度な計算機能
ユークリッド距離の二乗、内積、ハミング距離を含む複数の距離計算方法がサポートされています。詳細については、「オプションのパラメーター」の distance_method パラメーターの説明をご参照ください。類似度のしきい値を設定できます。ベクトルの値が指定されたしきい値を超えると、システムはベクトルを除外します。詳細については、「オプションのパラメーター」の threshold_score パラメーターの説明をご参照ください。
準備
Proxima CE を使用する前に、次の準備が完了していることを確認してください。
MaxCompute プロジェクトが作成されている。詳細については、「MaxCompute プロジェクトを作成する」をご参照ください。
DataWorks ワークスペースが作成され、作成された MaxCompute プロジェクトがデータソースとしてワークスペースに追加されている。
DataWorks ワークスペースの作成時に [Data Studio のパブリックプレビューに参加する] を選択した場合は、「ワークスペースに計算リソースを関連付ける(Data Studio のパブリックプレビューへの参加が有効になっている)」の手順に従って計算リソースをバインドします。
DataWorks ワークスペースの作成時に [Data Studio のパブリックプレビューに参加する] を選択しなかった場合は、「ワークスペースにデータソースを追加する、またはクラスターを登録する」の手順に従ってデータソースをバインドします。
Volume 機能が有効になっており、外部ボリュームが作成されている。
Proxima CE がインデックスを作成した後、インデックスは MaxCompute の Volume ストレージに書き込まれる必要があります。 Volume 機能のアクティブ化方法の詳細については、「新機能の試用を申請する」をご参照ください。 Volume 機能が有効になると、ショートメッセージが届きます。 Volume 機能が有効になっていない場合、タスクの実行時に
FAILED: ODPS-0420095: Access Denied - Volumes is not allowed in project config.のようなエラーメッセージが返されます。外部ボリュームの作成方法の詳細については、「外部ボリューム操作」をご参照ください。
説明Proxima CE の後続の操作で外部ボリュームを使用できます。潜在的なセキュリティリスクを回避するために、事前に外部ボリュームを作成することをお勧めします。そうしないと、必須の起動パラメーターとして
role_arnを指定する必要があり、セキュリティ上の懸念が生じる可能性があります。
注意事項
Proxima CE で使用する外部ボリュームは、oss-cn-beijing-internal.aliyuncs.com などの Object Storage Service (OSS) の内部エンドポイントで指定する必要があります。 OSS 内部エンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。
サポートされているツール
リソースのアップロード時と実行時に、MaxCompute クライアント odpscmd または DataWorks を使用できます。
odpscmd: Proxima CE の JAR ファイルは Linux でコンパイルされているため、このツールは Linux でのみ使用できます。 Windows と macOS はサポートされていません。
DataWorks: DataWorks で ODPS MR ノードを作成し、ODPS SQL スクリプトを使用してこれらのノードを実行できます。
手順
Proxima CE パッケージをインストールします。
Proxima CE を使用する前に、「Proxima CE パッケージをインストールする」で環境を準備し、Proxima CE の設定を行う必要があります。
ベクトル検索機能を使用します。
次の表に、ベクトル取得関数のシナリオとさまざまな取得方法を示します。
シナリオ
主な機能
リファレンス
基本的なベクトル検索
数百万のデータレコードから上位 K 件の結果の検索をサポートします。
複数カテゴリ検索
クエリテーブルとドキュメントテーブルが異なるカテゴリに属するシナリオや、単一のクエリテーブルが複数のカテゴリに属するシナリオなど、複数カテゴリのシナリオをサポートします。
クラスターシャーディング
クラスターシャーディングに基づいてインデックスを作成できます。この方法を使用すると、計算されるデータ量を削減し、インデックスベースのクエリを高速化できます。
内積とコサイン距離
内積とコサイン距離検索をサポートします。
コンバーター
コンバーターを使用できます。ほとんどの場合、コンバーターはパフォーマンスを向上させ、インデックスサイズを小さくするのに役立ちます。検索の損失は、実際の状況によって異なります。
参照情報を取得します。次の表に、関連する参照情報へのリンクを示します。
項目
リファレンス
パラメーターとカーネルモジュール
テストレポート
機能テスト
パフォーマンステスト
FAQ
エラーコード