Si vous évaluez des modèles d'apprentissage automatique ou des actifs d'IA générative, vous devez envoyer des transactions de modèle à partir de votre déploiement pour permettre les évaluations de modèle.
Pour générer en permanence des résultats précis pour les évaluations de vos modèles, vous devez continuer à envoyer de nouvelles données à partir de votre déploiement.
Envoi de transactions de modèle
Importation de données
Lorsque vous examinez les résultats d'une évaluation sur le tableau de bord Insights, vous pouvez utiliser le menu Actions pour importer des données de charge utile et de retour d'information pour vos évaluations de modèles.
Pour les modèles de préproduction, vous pouvez importer des données en téléchargeant des fichiers CSV ou en vous connectant à des données stockées dans Cloud Object Storage ou dans une base de données Db2 .
Si vous souhaitez télécharger des données déjà évaluées, vous pouvez cocher la case Test data includes model output
. Cloud Object Storage ne réutilise pas les données de test lorsque vous sélectionnez cette option. Les données que vous importez peuvent également inclure des colonnes record_id
/transaction_id
et record_timestamp
qui sont ajoutées aux tables de journalisation de contenu utile et de commentaires lorsque cette option est sélectionnée.
Pour les modèles de production, vous pouvez importer des données en téléchargeant des fichiers CSV ou en utilisant des noeuds finaux pour envoyer vos transactions de modèle.
Utilisation des points d'extrémité
Pour les modèles de production, des points de terminaison sont pris en charge et peuvent être utilisés pour fournir des données dans des formats permettant les évaluations. Vous pouvez utiliser le noeud final de journalisation du contenu utile pour envoyer des demandes d'évaluation pour les évaluations d'équité et de dérive et utiliser le noeud final de journalisation des commentaires en retour pour fournir des données de retour pour les évaluations de qualité. Vous pouvez également télécharger des fichiers CSV afin de fournir des données pour les évaluations de modèle. Pour plus d'informations sur les formats de données, voir Gestion des données pour les évaluations de modèle.
Un point de terminaison pour les transactions débiaisées, que vous pouvez utiliser pour examiner les résultats des évaluations d'équité, est également pris en charge. Le noeud final des transactions débiaisées applique un débiaisement actif sur vos données de contenu pour détecter tout biais dans votre modèle. Pour plus d'informations sur le débiaisement actif, voir Examen des transactions débiaisées.
Vous pouvez utiliser les étapes suivantes pour envoyer des transactions de modèle pour vos évaluations de modèle avec des points de terminaison :
- Sur la page de configuration du moniteur, sélectionnez l'onglet Noeuds finaux .
- Si vous souhaitez télécharger des données de contenu avec un fichier CSV, cliquez sur Télécharger les données de contenu.
- Si vous souhaitez télécharger des données de retour avec un fichier CSV, cliquez sur Télécharger les données de retour.
- Dans le panneau Informations sur le modèle , cliquez sur Noeuds finaux.
- Dans le menu Noeud final , sélectionnez le type de noeud final à utiliser.
- Dans le menu Langue du code , choisissez le type de fragment de code que vous souhaitez utiliser.
- Cliquez sur Copier dans le presse-papiers ' pour copier l'extrait de code et exécuter le code dans votre bloc-notes ou votre application.
Enregistrement des données de charge utile avec Python
Lorsque vous sélectionnez le point de terminaison des données de charge utile dans le menu Points de terminaison de Watson OpenScale, vous pouvez utiliser l'extrait de code suivant pour vous montrer comment enregistrer vos données de charge utile :
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
from ibm_watson_openscale import APIClient
service_credentials = {
"apikey": "$API_KEY",
"url": "{$WOS_URL}"
}
authenticator = IAMAuthenticator(
apikey=service_credentials["apikey"],
url="https://iam.cloud.ibm.com/identity/token"
)
SERVICE_INSTANCE_ID = "{$WOS_SERVICE_INSTANCE_ID}"
wos_client = APIClient(authenticator=authenticator, service_instance_id=SERVICE_INSTANCE_ID, service_url=service_credentials["url"])
from ibm_watson_openscale.data_sets import DataSetTypes, TargetTypes
# Put your subscription ID here
SUBSCRIPTION_ID = "{$SUBSCRIPTION_ID}"
payload_logging_data_set_id = wos_client.data_sets.list(type=DataSetTypes.PAYLOAD_LOGGING, target_target_id=SUBSCRIPTION_ID, target_target_type=TargetTypes.SUBSCRIPTION).result.data_sets[0].metadata.id
from ibm_watson_openscale.supporting_classes.payload_record import PayloadRecord
# Put your data here
REQUEST_DATA = {
"parameters": {
"template_variables": {
"{$TEMPLATE_VARIABLE_1}": "$TEMPLATE_VARIABLE_1_VALUE",
"{$TEMPLATE_VARIABLE_2}": "$TEMPLATE_VARIABLE_2_VALUE"
}
},
"project_id": "$PROJECT_ID"
}
RESPONSE_DATA = {
"results": [
{
"generated_text": "$GENERATED_TEXT"
}
]
}
RESPONSE_TIME = $RESPONSE_TIME
wos_client.data_sets.store_records(data_set_id=payload_logging_data_set_id, request_body=[PayloadRecord(request=REQUEST_DATA, response=RESPONSE_DATA, response_time=RESPONSE_TIME)])
La valeur " "project_id": "$PROJECT_ID"
indique que vous souhaitez enregistrer les données de charge utile pour les évaluations dans les projets. Pour enregistrer les données de la charge utile pour les évaluations dans les espaces, vous pouvez spécifier la valeur " "space_id": "$SPACE_ID"
à la place. Vous pouvez utiliser l'onglet Gérer dans les projets et les espaces pour identifier l'ID du projet ou de l'espace pour votre modèle.
Enregistrement des données de retour d'information avec Python
Lorsque vous sélectionnez le point de terminaison des données de feedback dans le menu Endpoints de Watson OpenScale, vous pouvez utiliser l'extrait de code suivant pour vous montrer comment enregistrer vos données de feedback :
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
from ibm_watson_openscale import APIClient
from ibm_watson_openscale.supporting_classes.enums import DataSetTypes, TargetTypes
service_credentials = {
"apikey": "$API_KEY",
"url": "{$WOS_URL}"
}
authenticator = IAMAuthenticator(
apikey=service_credentials["apikey"],
url="https://iam.cloud.ibm.com/identity/token"
)
SERVICE_INSTANCE_ID = "{$WOS_SERVICE_INSTANCE_ID}"
wos_client = APIClient(authenticator=authenticator, service_instance_id=SERVICE_INSTANCE_ID, service_url=service_credentials["url"])
subscription_id = "{$SUBSCRIPTION_ID}"
feedback_dataset_id = wos_client.data_sets.list(type=DataSetTypes.FEEDBACK, target_target_id=subscription_id, target_target_type=TargetTypes.SUBSCRIPTION).result.data_sets[0].metadata.id
fields = [
"{$TEMPLATE_VARIABLE_1}",
"{$TEMPLATE_VARIABLE_2}",
"{$LABEL_COLUMN}",
"_original_prediction"
]
values = [
[
"$TEMPLATE_VARIABLE_1_VALUE",
"$TEMPLATE_VARIABLE_2_VALUE",
"$LABEL_COLUMN_VALUE",
"$GENERATED_TEXT_VALUE"
]
]
wos_client.data_sets.store_records(
data_set_id=feedback_dataset_id,
request_body=[{"fields": fields, "values": values}],
background_mode=False
)
Sujet parent : Gestion des données pour l'évaluation des modèles