すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:コンバーター

最終更新日:Apr 02, 2025

Proxima 2.X は、データ量子化やデータ正規化などのデータ分析用のコンバーターをサポートしています。このトピックでは、INT8 データ量子化を例として使用して、コンバーターを使用してデータを量子化する方法について説明します。

前提条件

コンバーター関連のパラメーター

  • -converter: インデックス構築に使用するコンバーターの名前を指定します。

  • -converter_params: コンバーターのパラメーターを指定します。各パラメーターは単一行の JSON 文字列です。パラメーターの二重引用符(")をエスケープする必要はありません。各パラメーターの構成ではスペースは使用できません。たとえば、NormalizeConverter には {"proxima.normalize.reformer.forced_half_float":false} パラメーターを指定できます。詳細については、「IndexConverter パラメーターの構成」をご参照ください。

    説明

    コンバーターの完全なリストについては、「インデックスコンバーター」をご参照ください。

コマンド例

説明

以下のコード例で使用されているパラメーター構成の詳細については、「リファレンス: Proxima CE パラメーター」をご参照ください。

--@resource_reference{"proxima-ce-aliyun-1.0.2.jar"}  // アップロードされた proxima-ce JAR パッケージを参照します。左側のナビゲーションウィンドウで、[ビジネスフロー] - [MaxCompute] - [リソース] を選択します。アップロードされた JAR パッケージを右クリックし、[リソースの参照] を選択して、このコメント行を生成します。
jar -resources proxima-ce-aliyun-1.0.2.jar  // アップロードされた proxima-ce JAR パッケージ
-classpath proxima-ce-aliyun-1.0.2.jar com.alibaba.proxima2.ce.ProximaCERunner  // クラスパスはメイン関数のエントリクラスを指定します
-doc_table doc_table_xx  // 入力ドキュメントテーブル
-doc_table_partition 20221111  // ドキュメントテーブルのパーティション名
-query_table query_table_xx  // 入力クエリテーブル
-query_table_partition 20221111  // クエリテーブルのパーティション名
-output_table output_table_xx  // 出力テーブル
-output_table_partition 20221111  // 出力テーブルのパーティション名
-data_type float  // ベクターデータ型
-dimension 8  // ベクター次元
-external_volume_name xxx_volume_name // Object Storage Service(OSS)バケットに格納されている作成済みボリューム。基盤となるレイヤーの OSS ディレクトリを作成する必要があります。作成しないと、検索タスクは実行に失敗します。
-owner_id 123456  // ユーザーの ID
-converter Int8QuantizerConverter // コンバーター
-converter_params "" // コンバーターのパラメーターを指定します。このパラメーターはオプションです。各パラメーターは単一行の JSON 文字列です。パラメーターの二重引用符(")をエスケープする必要はありません。各パラメーターの構成ではスペースは使用できません。
; // セミコロンを忘れないでください。これは ODPS SQL ステートメントの終わりを示します。

パフォーマンスの説明

ほとんどの場合、ベクトル量子化によってデータが失われます。量子化後の取得率は 1 ~ 2% 低下します。たとえば、どちらも 512 次元の FLOAT データ型の 2,000 万件のデータレコードを含むドキュメントテーブルとクエリテーブルでテストを実行すると、量子化後の取得率は、量子化前の取得率と比較して 99.0% から 98.2% に低下します。ただし、ベクトル量子化によって検索パフォーマンスが向上します。上記のテストでは、テストデータの検索パフォーマンスが約 10% 向上しています。テストのデータは参考値です。

説明

取得率は、ベクトル検索でクエリ結果の精度を測定するために使用される一般的なメトリックです。ベクトル検索アルゴリズムの場合、取得率とは、ベクトル検索アルゴリズムを使用して取得されたドキュメントデータと、クエリに対してブルートフォース攻撃を使用して取得されたドキュメントデータの類似度を指します。取得率が高いほど、ベクトル検索アルゴリズムの精度が高いことを示します。