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

MaxCompute:リファレンス: Proxima CEパラメータ

最終更新日:Jan 07, 2025

このトピックでは、Proxima CEでタスクを実行するときに使用される必須パラメーターとオプションパラメーターについて説明します。

必須パラメーター

パラメーター

説明

doc_table

MaxComputeテーブルであるdocテーブルの名前。 docテーブルを準備し、検索用の候補データセットとして使用する必要があります。

重要

テーブル名には、MaxComputeでは特殊文字と見なされるピリオド (.) を含めることはできません。 テーブル名にピリオド (.) が含まれている場合、テーブルの解析に失敗します。 別のプロジェクトから参照されるテーブルの場合は、project_name.table_name形式でテーブル名を指定できます。

doc_table_partition

docテーブル内のパーティションの名前。

query_table

クエリテーブルの名前。MaxComputeテーブルです。 クエリテーブルを準備し、検索用のデータセットとして使用する必要があります。

重要

テーブル名には、MaxComputeでは特殊文字と見なされるピリオド (.) を含めることはできません。 テーブル名にピリオド (.) が含まれている場合、テーブルの解析に失敗します。 別のプロジェクトから参照されるテーブルの場合は、project_name.table_name形式でテーブル名を指定できます。

query_table_partition

クエリテーブル内のパーティションの名前。

output_table

検索結果の格納に使用される出力テーブルの名前。 出力テーブルは自動的に生成されます。 出力テーブルを作成する必要はありません。 テーブル名を指定するだけです。

output_table_partition

出力テーブル内のパーティションの名前。

data_type

docテーブルとクエリテーブルのデータ型。 FLOAT、INT8、およびBINARYデータ型がサポートされています。

dimension

特性ベクトルの次元。 data_typeパラメーターがBINARYに設定されている場合、ディメンションは32の整数倍である必要があります。

オプションパラメーター

パラメーター

説明

デフォルト値

h (-help)

ヘルプ情報。

デフォルト値なし

topk

検索される類似性結果の数。 10,20、30などの値のカンマ区切りリストを指定できます。 出力テーブル内の検索された類似結果の実際の数は、リスト内の最大値に基づいて決定される。

200

pk_type

入力テーブルのpk列のデータ型。 有効な値: int64およびstring。 デフォルト値: string。 の値がpk列のデータ型がINT64のように、型を指定すると、Proxima CEはタスクの一時入力テーブルを作成し、pk列をtmp_pkの列INT64型を実行し、参加最終結果を得る操作。 この場合、100万のドキュメントからベクトルデータを検索するには、約30分の追加期間が必要です。

String

vector_separator

ベクトル区切り文字。 区切り文字として、チルダ (~) 以外の特殊文字を指定できます。 スペースがサポートされています。 スペースを区切り文字として使用する場合は、このパラメーターを空白に設定します。 このパラメーターを設定するときは、区切り文字として使用する文字を一重引用符 (') または二重引用符 (") で囲まないでください。 それ以外の場合は、文字列全体をセパレータとみなす。 たとえば、このパラメーターを ',' に設定した場合、カンマではなく ',' という文字列が区切り文字と見なされます

~

binary_to_int

BINARY型のデータをINT32型に変換するかどうかを指定します。 このパラメーターは、BINARY型のデータに対してのみ有効です。 このパラメーターを指定した場合でも、dimensionパラメーターはバイナリ特性ベクトルの次元を指定します。 例えば、カンマ (,) がセパレータとして使用される。 binary_to_intパラメーターがfalseに設定されている場合、入力データは1,1、1,1、1,1、... になります。 binary_to_intパラメーターがtrueに設定されている場合、入力データは12345,13423、13325、... になります。 このパラメータを使用すると、0と1で構成されるN個のバイナリ値をN個の32ビット整数に変換できます。 この変換は、インデックスサイズの縮小に役立ちます。

false

job_mode

ジョブモード。 有効な値:

  • train:build:seek (デフォルト)

  • build:seek

  • シーク

  • train: ビルド: シーク: リコール

  • build:seek: リコール

  • シーク: リコール

train: ビルド: シーク

clean_build_volume

ビルドおよびシークプロセスの完了後にインデックスを削除するかどうかを指定します。 ビルドプロセスでインデックスが作成された後、インデックスはMaxComputeの外部ボリュームに書き込まれ、シークプロセスでロードされます。 シークプロセスが完了すると、インデックスは自動的に削除されます。

説明

このパラメーターをtrueに設定すると、タスクが失敗したときにインデックスも削除されます。

true

algo_model

インデックス作成アルゴリズム。 Proxima 2.xカーネルでは、Hierarchical Navigable Small World (HNSW) グラフ、Satellite System graph (SSG) 、Hierarchical Clustering (HC) 、Graph Clustering (GC) 、Quantized Clustering (QC) 、および線形検索のアルゴリズムがサポートされています。 このパラメーターは、インデックス作成のビルダーとデータクエリの検索者を決定します。 パラメータ値とビルダーおよびサーチャーとのマッピング:

  • hnsm: HNSWビルダーとHNSWサーチャー

  • ssg: SSGビルダーとSSGサーチャー

  • hc: クラスタリングビルダーとクラスタリングサーチャー

  • gc: GCビルダーとGCサーチャー

  • qc: QCビルダーとQCサーチャー

  • linear: linear builder and linear searcher (ブルートフォース検索)

hnsw

builder_params

IndexBuilderモジュールに指定するパラメーター。 デフォルトでは、このパラメータは空のままです。 指定するパラメーターのインデックス型は、algo_modelで指定されたアルゴリズムに対応している必要があります。 このパラメーターには、1行のJSON文字列を指定する必要があります。 二重引用符 (") はエスケープする必要はありません。 スペースは使用できません。 たとえば、このパラメーターを {"proxima.hnsw.builder.efconstruction":400,"proxima.hnsw.builder.max_neighbor_count":100} に設定した場合、HNSWグラフアルゴリズムで使用される構築方法のef値と、ノードの最近傍の最大数が指定されます。 このパラメーターの詳細については、「IndexBuilder」をご参照ください。

デフォルト値なし

searcher_params

IndexSearcherモジュールに指定するパラメーター。 デフォルトでは、このパラメータは空のままです。 指定するパラメーターのインデックス型は、algo_modelで指定されたアルゴリズムに対応している必要があります。 このパラメーターには、1行のJSON文字列を指定する必要があります。 二重引用符 (") はエスケープする必要はありません。 スペースは使用できません。 たとえば、このパラメーターを {"proxima.hnsw.searcher.ef":400} に設定した場合、HNSWベースのクエリのef値が指定されます。 このパラメーターの詳細については、「IndexSearcher」をご参照ください。

デフォルト値なし

converter

IndexConverterモジュールの名前。 IndexConverterは、Proxima 2.xが特性ベクトルを変換するために使用するモジュールです。 たとえば、特性ベクトルに対してハーフフロート変換とINT8量子化を実行できます。 IndexConverterモジュールは、検索プロセスで別に使用することも、他のモジュールと共に使用することもできます。 詳細については、「IndexConverter」をご参照ください。

デフォルト値なし

converter_params

IndexConverterモジュールに指定するパラメーター。 このパラメーターには、1行のJSON文字列を指定する必要があります。 二重引用符 (") はエスケープする必要はありません。 スペースは使用できません。 たとえば、MIPSコンバーターパラメーターを指定できます。 サンプル設定: {"proxima.mips.converter.m_value":4,"proxima.mips.converter.u_value":0.38196601,"proxima.mips.converter.forced_half_float":false,"proxima.mips.converter.spherical_injection":false} 詳細については、「IndexConverter」をご参照ください。

デフォルト値なし

distance_method

特性ベクトル距離を計算するための式。 有効な値:

  • squared_euclidean

  • euclidean

  • mips_squared_euclidean

  • inner_product

  • ハミング (BINARY型のデータに使用)

  • マンハッタン (L1间隔)

  • チェビシェフ

  • キャンベラ

  • geo_distance

  • rogers_tanimoto (BINARYタイプのデータに使用)

  • russell_rao (BINARY型のデータに使用)

  • matching (BINARY型のデータに使用)

squared_euclidean

measure_params

distance_methodに指定するパラメーター。 measure_paramsには1行のJSON文字列を指定する必要があります。 二重引用符 (") はエスケープする必要はありません。 スペースは使用できません。 たとえば、distance_methodをmips_squared_euclideanに設定した場合、{"proxima.mips_euclidean.measure.injection_type":0} を指定できます。 詳細については、「IndexMeasure」をご参照ください。

デフォルト値なし

column_num

IndexBuilderモジュールの列数。 デフォルト値:0

  • 自動設定: システムは、doc_tableで指定されたテーブルのデータ量とdata_typeで指定されたデータ型に基づいて列数を計算します。 合計データ量が50 GB未満の場合、各列に2 GBのデータが割り当てられます。 合計データ量が50 GBを超える場合、各列に2.5 GBのデータが割り当てられます。

  • 手動設定: ほとんどの場合、自動設定方法が使用されます。 クラスターリソースに基づいて設定を変更することもできます。

このパラメーターは、column_numrow_numの両方を正の値に設定した場合にのみ有効です。

0

row_num

IndexSearcherモジュールの行数。 デフォルト値:0

  • 自動設定: システムは、doc_tableで指定されたテーブルのデータ量とdata_typeで指定されたデータ型に基づいて行数を計算します。 クエリの総数が100万未満の場合、各行に2百万のクエリが割り当てられます。 クエリの総数が100万を超える場合、各行に1,000万のクエリが割り当てられます。

  • 手動設定: ほとんどの場合、自動設定方法が使用されます。 クラスターリソースに基づいて設定を変更することもできます。

このパラメーターは、column_numrow_numの両方を正の値に設定した場合にのみ有効です。

0

category_threshold

マルチカテゴリ検索シナリオで大カテゴリ検索をトリガーするためのしきい値。 カテゴリ内のドキュメントの数が指定されたしきい値を超えると、システムはこのカテゴリの大規模なカテゴリ検索を実行します。 それ以外の場合、システムはこのカテゴリの小カテゴリ検索を実行します。 デフォルトでは、小カテゴリ検索には線形検索方法が使用され、複数の小カテゴリのデータが検索用にマージされます。

1000000

category_col_num

カテゴリごとにデータをクエリするときに、小さなカテゴリのインデックスが作成される列の数。 小さなカテゴリには100万未満のドキュメントがあります。 詳細は、「colum_num」をご参照ください。

0

category_row_num

カテゴリごとにデータをクエリするときに、小さなカテゴリのインデックスが作成される行数。 小さなカテゴリには100万未満のドキュメントがあります。 詳細については、「row_num」をご参照ください。

0

category_thread_num

カテゴリごとにデータをクエリするときに、大規模なカテゴリ検索を実行するために使用されるタスクの同時実行性。 大きなカテゴリには100万を超えるドキュメントがあります。 タスクの同時実行は、スレッドプールのサイズを示します。

10

query_multi_label

クエリに複数のカテゴリが含まれるかどうかを指定します。 このパラメーターをtrueに設定した場合、docテーブルにcategory列が含まれている必要があります。 詳細については、「マルチカテゴリ検索」をご参照ください。

false

threshold_score

検索結果を除外するためのスコアのしきい値。 検索された文書の類似スコアは、内積MIPS二乗ユークリッド距離を用いて算出された類似スコアを除き、スコアが低いほど類似度が高いことを示す。 スコアが指定されたしきい値を超える場合、システムはスコアを除外します。 内積またはMIPS二乗ユークリッド距離を用いて算出された類似性スコアは、スコアが高いことが類似性が高いことを示す。 スコアがしきい値未満の場合、システムはスコアを除外します。

デフォルト値なし

tunnel_endpoint

MaxCompute Tunnelエンドポイント。 デフォルトでは、このパラメータは空のままです。 このパラメーターを指定すると、有効なMaxCompute Tunnelエンドポイントを設定できます。 これにより、ネットワーク間でテーブルにアクセスするときにダウンロードセッションの確立に失敗するのを防ぎます。 詳細については、「MaxCompute Tunnel Endpointの問題」をご参照ください。

デフォルト値なし

memory_load

シークプロセスでインデックスをメモリにロードするかどうかを指定します。 デフォルトでは、このパラメーターはtrueに設定され、インデックスがメモリに読み込まれることを示します。 クラスターのメモリリソースが不足している場合は、このパラメーターをfalseに設定できます。

true

sharding_mode

インデックスシャーディングの実行方法を指定します。 有効な値: hashおよびcluster。 このパラメーターをhashに設定すると、モジュロハッシュ機能を使用してインデックスシャーディングが実行されます。 このパラメーターをclusterに設定した場合、インデックスシャーディングはk-meansクラスタリングを使用して実行されます。 このシャーディング方法は、シークプロセスにおいて計算されるデータの量を減らすのに役立ち得る。

hash

kmeans_resource_name

k-meansクラスタリングの重心の名前。 このパラメーターは、sharding_modeがclusterに設定されている場合に有効です。 クラスターは、MaxComputeでグラフ計算タスクを開始することにより、元のデータのk平均クラスタリングを実行します。

kmeans_resource_name

kmeans_sample_ratio

k-meansクラスタリングの重心のサンプルレート。 このパラメーターは、sharding_modeがclusterに設定されている場合に有効です。 有効な値: 0-1。

0.05

kmeans_seek_ratio

k-meansクラスタリングの重心のフィルタリングレート。 このパラメーターは、sharding_modeがclusterに設定されている場合に有効です。 有効な値: 0-1。

0.1

kmeans_iter_num

k-meansクラスタリングの反復回数。 このパラメーターは、sharding_modeがclusterに設定されている場合に有効です。

30

kmeans_cluster_num

k-meansクラスタリングの重心の数。 このパラメーターは、sharding_modeがclusterに設定されている場合に有効です。

1000

kmeans_init_center_method

k-meansクラスタリングの重心を初期化する方法を指定します。 このパラメーターは、sharding_modeがclusterに設定されている場合に有効です。

""

kmeans_worker_num

k-meansクラスタリングのワーカーの数。 このパラメーターは、sharding_modeがclusterに設定されている場合に有効です。

0

mapper_split_size

内部マッパーが処理できるデータの量。 このパラメーターは、mapper.split.sizeオプションを公開するために使用されます。 単位:MB。 このパラメーターを指定しない場合、MaxCompute MapReduceのデフォルトサイズ (256 MB) が使用されます。

256

odps_task_priority

プロキシマCEタスクの優先度。 SQLジョブ、MapReduceジョブ、Graphジョブなど、すべてのMaxComputeジョブでProxima CEタスクの優先順位を設定できます。 有効な値: [0-9] 。 小さい値は、高い優先度を示す。 このパラメーターを-1に設定すると、MaxComputeのベースライン優先度がタスク優先度として使用されます。

-1

oss_access_id

Alibaba CloudアカウントまたはAlibaba CloudアカウントのRAMユーザーのAccessKey ID。 AccessKeyペアページからAccessKey IDを取得できます。

デフォルト値なし

oss_access_key

AccessKey IDに対応するAccessKeyシークレット。

AccessKeyペアページからAccessKey secretを取得できます。

デフォルト値なし

oss_endpoint

MaxComputeプロジェクトのエンドポイント。

パラメーター値は、MaxComputeプロジェクトの作成時に選択したリージョンとネットワーク接続方法によって異なります。 異なるリージョンとネットワーク接続方法に対応するエンドポイントの詳細については、「エンドポイント」をご参照ください。

デフォルト値なし

oss_bucket

Object Storage Service (OSS) バケットの名前。 OSSバケットの名前を表示する方法の詳細については、「バケットのリスト」をご参照ください。

デフォルト値なし