AIの堅牢性テスト¶
AI堅牢性テストは、生成AIモデルがさまざまな条件下で適切に機能し、品質基準を満たしていることを検証するのに役立ちます。 堅牢性テストでは、有害性、関連性、一貫性など、モデルパフォーマンスのさまざまな側面を測定するインサイトを設定できます。
堅牢性テストのインサイトを設定する¶
AIモデルの堅牢性をテストするためのインサイトをセットアップします。 インサイト設定を作成する際は、以下を指定する必要があります。
custom_model_version_id:テストするカスタムモデルバージョンのID。insight_name:インサイトのわかりやすい名前。insight_type:インサイトのタイプ(例:OOTB_METRIC)。ootb_metric_name:DataRobot提供の指標名(OOTB_METRICタイプの場合)。stage:指標が計算されるステージ(PROMPTまたはRESPONSE)。
import datarobot as dr
custom_model_version = dr.CustomModelVersion.get(version_id)
insight_config = dr.InsightsConfiguration.create(
custom_model_version_id=custom_model_version.id,
insight_name="Toxicity Check",
insight_type=dr.InsightTypes.OOTB_METRIC,
ootb_metric_name="Toxicity",
stage=dr.InsightStage.RESPONSE
)
insight_config
テスト設定のセットアップ¶
テストパラメーターを設定するには:
eval_dataset = dr.EvaluationDatasetConfiguration.create(
name="Robustness Test Dataset",
dataset_id=dataset.id
)
cost_config = dr.CostConfiguration.create(
name="Test Cost Config",
cost_per_token=0.0001
)
insight_config.update(
evaluation_dataset_configuration_id=eval_dataset.id,
cost_configuration_id=cost_config.id
)
堅牢性テストの実行¶
テストを実行して結果を確認するには:
insight_config = dr.InsightsConfiguration.get(insight_config_id)
if insight_config.execution_status == "COMPLETED":
results = insight_config.get_results()
print(f"Test results: {results}")
elif insight_config.execution_status == "ERROR":
print(f"Test failed: {insight_config.error_message}")
print(f"Resolution: {insight_config.error_resolution}")
複数のインサイトの設定¶
包括的な検証のために複数のテストをセットアップするには:
insights = [
{
"insight_name": "Toxicity Check",
"ootb_metric_name": "Toxicity",
"stage": dr.InsightStage.RESPONSE
},
{
"insight_name": "Relevance Check",
"ootb_metric_name": "Relevance",
"stage": dr.InsightStage.RESPONSE
},
{
"insight_name": "Coherence Check",
"ootb_metric_name": "Coherence",
"stage": dr.InsightStage.RESPONSE
}
]
for insight_config in insights:
dr.InsightsConfiguration.create(
custom_model_version_id=custom_model_version.id,
**insight_config
)
インサイト設定の取得¶
特定のインサイト設定を取得するには:
insight_config = dr.InsightsConfiguration.get(insight_config_id)
print(f"Insight name: {insight_config.insight_name}")
print(f"Insight type: {insight_config.insight_type}")
print(f"Execution status: {insight_config.execution_status}")
インサイト設定のリスト¶
カスタムモデルバージョンのすべてのインサイトを取得します。
custom_model_version = dr.CustomModelVersion.get(version_id)
insights = dr.InsightsConfiguration.list(custom_model_version_id=custom_model_version.id)
for insight in insights:
print(f"{insight.insight_name}: {insight.execution_status}")