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

Platform For AI:PS-SMART 多クラス分類

最終更新日:Mar 11, 2026

Parameter Server (PS) は、大規模なオフラインおよびオンラインのトレーニングタスク向けに設計されています。Scalable Multiple Additive Regression Tree (SMART) は、勾配ブースティング決定木 (GBDT) に基づく反復アルゴリズムであり、PS 上に実装されています。PS-SMART は、数百億のサンプルと数十万の特徴量を持つトレーニングタスクをサポートし、数千のノードで実行できます。また、複数のデータ形式や、ヒストグラム近似などの最適化技術もサポートしています。

制限事項

PS-SMART 多クラス分類コンポーネントの入力データは、次の要件を満たす必要があります。

  • ターゲット列は数値型のみをサポートします。MaxCompute テーブルのデータが STRING 型の場合、そのデータの型を変換する必要があります。たとえば、分類ターゲットが Good/Medium/Bad という文字列の場合、それらを 0/1/2 に変換する必要があります。

  • データが KV フォーマットの場合、特徴量 ID は正の整数、特徴量の値は実数である必要があります。特徴量 ID が文字列の場合は、シリアル化コンポーネントを使用してシリアル化できます。特徴量の値がカテゴリカルな文字列の場合は、特徴量の離散化などの特徴量エンジニアリングを実行できます。

  • PS-SMART 多クラス分類コンポーネントは、数十万の特徴量を持つタスクをサポートしますが、これらのタスクは大量のリソースを消費し、実行速度が遅くなります。GBDT アルゴリズムは、連続特徴量で直接トレーニングするのに適しています。したがって、低頻度の特徴量を除外するためにカテゴリカル特徴量に One-Hot エンコーディングを実行する場合を除き、他の連続する数値特徴量に対して離散化を実行しないでください。

  • PS-SMART アルゴリズムはランダム性を導入します。例としては、data_sample_ratiofea_sample_ratio で示されるデータと特徴量のサンプリング、アルゴリズムが使用するヒストグラム近似の最適化、ローカルスケッチをグローバルスケッチにマージする際のランダムな順序などがあります。複数のワーカーが分散方式で実行される場合、木の構造は異なる可能性がありますが、モデルのパフォーマンスは理論的には類似しています。同じデータとパラメーターで複数回実行して、一貫性のない結果が得られるのは正常です。

  • トレーニングを高速化するために、計算コア数 を増やすことができます。ただし、PS-SMART アルゴリズムは、すべてのサーバーが必要なリソースを取得した後にのみトレーニングを開始します。したがって、クラスターがビジー状態のときにより多くのリソースをリクエストすると、待機時間が増加します。

注意事項

PS-SMART 多クラス分類コンポーネントを使用する際には、次の点にご注意ください。

  • PS-SMART 多クラス分類コンポーネントは、数十万の特徴量を持つタスクをサポートしますが、これらのタスクは大量のリソースを消費し、実行速度が遅くなります。GBDT アルゴリズムは、連続特徴量で直接トレーニングするのに適しています。したがって、低頻度の特徴量を除外するためにカテゴリカル特徴量に One-Hot エンコーディングを実行する場合を除き、他の連続する数値特徴量に対して離散化を実行しないでください。

  • PS-SMART アルゴリズムはランダム性を導入します。例としては、data_sample_ratiofea_sample_ratio で示されるデータと特徴量のサンプリング、アルゴリズムが使用するヒストグラム近似の最適化、ローカルスケッチをグローバルスケッチにマージする際のランダムな順序などがあります。複数のワーカーが分散方式で実行される場合、木の構造は異なる可能性がありますが、モデルのパフォーマンスは理論的には類似しています。同じデータとパラメーターで複数回実行して、一貫性のない結果が得られるのは正常です。

  • 計算コア数 を増やすことで、トレーニングを高速化できます。ただし、PS-SMART アルゴリズムは、すべてのサーバーが必要なリソースを取得した後にのみトレーニングを開始します。したがって、クラスターがビジー状態のときにより多くのリソースをリクエストすると、待機時間が増加します。

コンポーネントの構成

方法 1:GUI の使用

Designer のワークフローで、PS-SMART 多クラス分類 コンポーネントを追加し、右側のペインでそのパラメーターを構成します。

パラメータータイプ

パラメーター

説明

フィールド設定

スパース形式かどうか

スパース形式の場合、スペースを使用して KV ペアを区切り、コロン (:) を使用して キー を区切ります。例:1:0.3 3:0.9

特徴列

トレーニングに使用される入力テーブルの特徴列。入力データが密形式の場合、数値 (BIGINT または DOUBLE) 型の列のみを選択できます。入力データがスパース KV フォーマットで、キー が両方とも数値型の場合、STRING 型の列のみを選択できます。

ラベル列

入力テーブルのラベル列。STRING 型と数値型がサポートされています。内部ストレージでは、数値型のみがサポートされます。例:二項分類における 01

重み列

各サンプル行の重み付けに使用される列。数値型のみがサポートされています。

パラメーター設定

クラス数

多クラス分類のクラス数。クラス数が n の場合、ラベル列の値は {0,1,2,...,n-1} である必要があります。

評価メトリクスタイプ

サポートされているタイプは、多クラス負の対数尤度と多クラス分類エラーです。

木の数

木の数。正の整数である必要があります。トレーニング時間は木の数に比例します。

木の最大深度

デフォルト値は 5 で、最大 32 のリーフノードを意味します。

データサンプリング率

各木を構築する際に、データの一部をサンプリングして弱学習器を構築し、トレーニングを高速化します。

特徴量サンプリング率

各木を構築する際に、特徴量の一部をサンプリングして弱学習器を構築し、トレーニングを高速化します。

L1 ペナルティ係数

リーフノードのサイズを制御します。値が大きいほど、リーフノードのサイズの分布がより均一になります。過学習が発生した場合は、この値を増やしてください。

L2 ペナルティ係数

リーフノードのサイズを制御します。値が大きいほど、リーフノードのサイズの分布がより均一になります。過学習が発生した場合は、この値を増やしてください。

学習率

値は (0,1) の範囲内である必要があります。

近似スケッチ精度

スケッチを構築するための分位数しきい値。値が小さいほど、バケットの数が多くなります。通常は、デフォルト値の 0.03 を使用します。手動での構成は不要です。

最小分割損失変化

ノードを分割するために必要な最小損失変化。値が大きいほど、分割はより保守的になります。

特徴量数

特徴量の数または最大の特徴量 ID。リソース使用量を見積もるには、このパラメーターを構成する必要があります。

グローバルバイアス

すべてのサンプルの初期予測値。

乱数ジェネレーターシード

乱数シード。整数である必要があります。

特徴量重要度タイプ

値は次のいずれかになります。

  • モデル内で特徴量が分割に使用された回数。

  • モデル内で特徴量によってもたらされた情報利得。

  • モデル内の分割ノードで特徴量によってカバーされたサンプル数。

実行チューニング

コア数

デフォルトでは、システムが自動的にコアを割り当てます。

コアあたりのメモリサイズ

単一のコアが使用するメモリ (MB 単位)。通常、手動での構成は不要です。システムが自動的にメモリを割り当てます。

方法 2:PAI コマンドの使用

SQL スクリプトコンポーネントを使用して PAI コマンドを呼び出し、PS-SMART 多クラス分類 コンポーネントのパラメーターを構成できます。詳細については、「シナリオ 4:SQL スクリプトコンポーネントで PAI コマンドを実行する」をご参照ください。

--Train
PAI -name ps_smart
    -project algo_public
    -DinputTableName="smart_multiclass_input"
    -DmodelName="xlab_m_pai_ps_smart_bi_545859_v0"
    -DoutputTableName="pai_temp_24515_545859_2"
    -DoutputImportanceTableName="pai_temp_24515_545859_3"
    -DlabelColName="label"
    -DfeatureColNames="features"
    -DenableSparse="true"
    -Dobjective="multi:softprob"
    -Dmetric="mlogloss"
    -DfeatureImportanceType="gain"
    -DtreeCount="5"
    -DmaxDepth="5"
    -Dshrinkage="0.3"
    -Dl2="1.0"
    -Dl1="0"
    -Dlifecycle="3"
    -DsketchEps="0.03"
    -DsampleRatio="1.0"
    -DfeatureRatio="1.0"
    -DbaseScore="0.5"
    -DminSplitLoss="0"
--Predict
PAI -name prediction
    -project algo_public
    -DinputTableName="smart_multiclass_input";
    -DmodelName="xlab_m_pai_ps_smart_bi_545859_v0"
    -DoutputTableName="pai_temp_24515_545860_1"
    -DfeatureColNames="features"
    -DappendColNames="label,features"
    -DenableSparse="true"
    -DkvDelimiter=":"
    -Dlifecycle="28"

モジュール

パラメーター

必須

デフォルト値

説明

データパラメーター

featureColNames

はい

なし

トレーニングに使用される入力テーブルの特徴列。入力テーブルが密形式の場合、数値 (BIGINT または DOUBLE) 型の列のみを選択できます。入力テーブルがスパース KV フォーマットで、KV フォーマットの キー が数値型の場合、STRING 型の列のみを選択できます。

labelColName

はい

なし

入力テーブルのラベル列。STRING 型と数値型がサポートされています。内部ストレージでは、数値型のみがサポートされます。たとえば、多クラス分類の場合、値は {0,1,2,…,n-1} になります。ここで、n はクラス数です。

weightCol

いいえ

なし

各サンプル行の重み付けに使用される列。数値型のみがサポートされています。

enableSparse

いいえ

false

データがスパース形式であるかどうかを指定します。有効な値は {true,false} です。スパース形式の場合、スペースを使用して KV ペアを区切り、コロン (:) を使用して キー を区切ります。例:1:0.3 3:0.9

inputTableName

はい

なし

入力テーブルの名前。

modelName

はい

なし

出力モデルの名前。

outputImportanceTableName

いいえ

なし

特徴量重要度の出力テーブルの名前。

inputTablePartitions

いいえ

なし

フォーマットは ds=1/pt=1 です。

outputTableName

いいえ

なし

MaxCompute の出力テーブル。バイナリ形式であり、直接読み取ることはできません。SMART 予測コンポーネントによってのみアクセスできます。

lifecycle

いいえ

3

出力テーブルのライフサイクル。

アルゴリズムパラメーター

classNum

はい

なし

多クラス分類のクラス数。クラス数が n の場合、ラベル列の値は {0,1,2,...,n-1} である必要があります。

objective

はい

なし

目的関数のタイプ。多クラス分類のトレーニングには、multi:softprob を選択します。

metric

いいえ

なし

トレーニングデータセットの評価メトリクスタイプ。出力は、Logview ファイルの Coordinator エリアの stdout に書き込まれます。次のタイプがサポートされています。

  • mlogloss:GUI の 多クラス負の対数尤度 タイプに対応します。

  • merror:GUI の 多クラス分類エラー タイプに対応します。

treeCount

いいえ

1

木の数。トレーニング時間はこの値に比例します。

maxDepth

いいえ

5

木の最大深度。値は 1 から 20 の範囲内である必要があります。

sampleRatio

いいえ

1.0

データサンプリング率。値は (0,1] の範囲内である必要があります。値 1.0 はサンプリングなしを意味します。

featureRatio

いいえ

1.0

特徴量サンプリング率。値は (0,1] の範囲内である必要があります。値 1.0 はサンプリングなしを意味します。

l1

いいえ

0

L1 ペナルティ係数。値が大きいほど、リーフノードのサイズの分布がより均一になります。過学習が発生した場合は、この値を増やしてください。

l2

いいえ

1.0

L2 ペナルティ係数。値が大きいほど、リーフノードのサイズの分布がより均一になります。過学習が発生した場合は、この値を増やしてください。

shrinkage

いいえ

0.3

値は (0,1) の範囲内である必要があります。

sketchEps

いいえ

0.03

スケッチを構築するための分位数しきい値。バケットの数は O(1.0/sketchEps) です。値が小さいほど、バケットの数が多くなります。通常は、デフォルト値を使用します。手動での構成は不要です。値は (0,1) の範囲内である必要があります。

minSplitLoss

いいえ

0

ノードを分割するために必要な最小損失変化。値が大きいほど、分割はより保守的になります。

featureNum

いいえ

なし

特徴量の数または最大の特徴量 ID。リソース使用量を見積もるには、このパラメーターを構成する必要があります。

baseScore

いいえ

0.5

すべてのサンプルの初期予測値。

randSeed

いいえ

なし

乱数シード。整数である必要があります。

featureImportanceType

いいえ

gain

計算する特徴量重要度のタイプ。以下が含まれます。

  • weight:モデル内で特徴量が分割特徴量として使用された回数。

  • gain:モデル内で特徴量によってもたらされた情報利得。

  • cover:モデル内の分割ノードで特徴量によってカバーされたサンプル数。

チューニングパラメーター

coreNum

いいえ

システム割り当て

コア数。値が大きいほど、アルゴリズムの実行速度が速くなります。

memSizePerCore

いいえ

システム割り当て

各コアが使用するメモリ (MB 単位)。

モデルのデプロイ

PS-SMART コンポーネントによって生成されたモデルをオンラインサービスとしてデプロイするには、PS-SMART コンポーネントの下流に 汎用モデルエクスポート コンポーネントを追加します。コンポーネントのパラメーターは、他の PS シリーズのコンポーネントと同じ方法で構成します。詳細については、「汎用モデルエクスポート」をご参照ください。

実行が成功したら、PAI-EAS モデルオンラインサービス ページに移動してモデルサービスをデプロイします。詳細については、「コンソールでサービスをデプロイする」をご参照ください。