能動的および受動的なデバイアスにより、直接および間接的なバイアスを検出することができる。 受動的なバイアス緩和はバイアスを明らかにしますが、アクティブなバイアス緩和はモデルをリアルタイムで変更することによってバイアスを防止します。
このアルゴリズムは、 摂動 と呼ばれる方法を適用して、データの期待される結果の差を評価します。 バイアスの計算方法について詳しくは、 公平性の計算を参照してください。
デプロイメントを公正に評価する場合、ペイロードロギングテーブルからトランザクションの直接的および間接的な偏りが検出される。
受動的バイアス緩和
パッシブ・デビアスは1時間ごとに自動的に行われる。 「受動的」というのは、ユーザー介入なしで実行されるからです。 バイアスが分析されると、データも堕落する。 モデルの動作を分析し、モデルがバイアス挙動を示すデータを識別します。
機械学習モデルは、与えられた新しいデータポイントに対して偏った行動をとる可能性があるかどうかを予測するために構築される。 モデルによって受信されたデータは、1時間ごとに分析され、偏りの原因となるデータポイントを見つける。 このようなデータ・ポイントの場合、公平性属性は少数派から多数派、過半数から少数派に摂動され、摂動されたデータは予測のために元のモデルに送信されます。 摂動されたレコードの予測は、元の予測とともに、バイアスの計算に使用されます。
過去1時間にモデルが受信した、特定された偏った記録がデバイアスされる。 デバイアスされた出力の公平性も計算され、デバイアスされたモデルタブに表示される。
アクティブ・バイアス緩和
アクティブ・バイアス緩和とは、ユーザーが REST API エンドポイントを使用してバイアス緩和を要求し、バイアス緩和済みの結果をアプリケーションに返す手段です。 偏りのない方法でアプリケーションを実行できるように、モデルの偏った予測を知るために、積極的にモデル評価を呼び出すことができます。 アクティブなバイアス緩和では、アプリケーションからバイアス緩和 REST API エンドポイントを使用できます。 この REST API エンドポイントは内部でモデルを呼び出し、その動作を検査します。
モデルに偏りがある場合、データは摂動され、元のモデルに戻される。 摂動されたデータポイントの内部分析後、モデルがデータポイントで偏った振る舞いをしている場合、摂動されたデータに対する元のモデルの出力が、偏った予測値として返される。
元のモデルが偏った行動をしていなければ、元のモデルの予測が偏った予測として返される。 したがって、この REST API エンドポイントを使用することで、ご使用のアプリケーションが、バイアスのある出力に基づいた決定を行うことがなくなります。
バイアス緩和済みの値のデータの確認
公平性評価が実行されると、デバイアスされた値がモデル展開のペイロードロギングテーブルに保存される。 このエンドポイントを介して行われるすべてのスコアリング・トランザクションは、該当する場合、自動的にバイアス緩和されます。 デプロイされたモデルの通常のスコアリング・エンドポイントと同様に、バイアス緩和済みのスコアリング・エンドポイントにアクセスできます。 このエンドポイントは、デプロイ済みモデルの応答を返すだけでなく、debiased_prediction
列と debiased_probability
列も返します。
debiased_prediction
列にはバイアス緩和後の予測値が入ります。debiased_probability
列は、バイアス緩和後の予測の確率を表します。 この倍精度値の配列は、いずれかの予測クラスに属するバイアス緩和後の予測の確率を表します。
バイアス緩和パラメーターの有効化
新しいデプロイメントを設定する場合、デバイアスはデフォルトで無効になっています。 PythonSDKのパラメータ・セクションでperform_debias
パラメータをtrue
に設定するか、次の例に示すように、PERFORM_DEBIASING
ポッドレベルの環境ラベルを指定してdebiasingmを有効にすることもできる:
wos_client.monitor_instances.update(
monitor_instance_id=<FAIRNESS_MONITOR_INSTANCE_ID>,
patch_document=[JsonPatchOperation(
op=OperationTypes.ADD,
path='/parameters/perform_debias',
value=True
)],update_metadata_only=True
)
モニター・インスタンスにパッチを適用すると、公平性モニターは次回の評価時にバイアス緩和を実行します。
詳しくは、 Watson OpenScale Python SDK の資料を参照してください。
バイアス緩和済みのトランザクションの検討
バイアス緩和済みのトランザクション・エンドポイントを使用して、公平性を評価するためにバイアス緩和済みのトランザクションを確認できます。 詳しくは、 Watson OpenScaleを参照してください。
バイアス緩和エンドポイントはランタイム・バイアスを処理するため、ペイロード・ロギング・テーブルからの評価データのバックグラウンド・チェックを引き続き実行します。 また、バイアス緩和モデルを更新し続けます。これにより、評価要求のバイアスが緩和されます。
公平性のしきい値を設定することで、データが受け入れ可能で偏りがないことを示すことができる。
新しいバージョンのモデルを使用してバイアスを緩和します。
- 問題を修正する新しいバージョンのモデルを作成する必要があります。 偏った記録はマニュアル・ラベリング・テーブルに保存される。 これらのバイアスのあるレコードには手動でラベルを付ける必要があります。その後、バイアスのない新しいバージョンのモデルを作成するために、追加データによってモデルがリトレーニングされます。
個々のバイアス・レコードのリストを抽出します。
- 手動ラベル付け表に接続し、標準 SQL 照会を使用してレコードを読み取ります。
親トピック: モデル・トランザクションの検討