0 / 0
Zurück zur englischen Version der Dokumentation
Modelltransaktionen senden
Letzte Aktualisierung: 05. Dez. 2024
Modelltransaktionen senden

Wenn Sie Modelle für maschinelles Lernen oder generative KI-Assets evaluieren, müssen Sie Modelltransaktionen aus Ihrer Bereitstellung senden, um Modellbewertungen zu ermöglichen.

Um kontinuierlich genaue Ergebnisse für Ihre Modellauswertungen zu generieren, müssen Sie ständig neue Daten von Ihrer Einrichtung senden.

In den folgenden Abschnitten werden verschiedene Methoden beschrieben, mit denen Sie Transaktionen für Modellauswertungen senden können:

Modelltransaktionen senden

Importieren von Daten

Wenn Sie ' überprüfung der Bewertungsergebnisse auf ' Dashboard für Einblicke setzen, können Sie das Menü ' Aktionen verwenden, um Nutzlast- und Rückkopplungsdaten für Ihre Modellauswertungen zu importieren.

Bei Vorproduktionsmodellen können Sie Daten importieren, indem Sie CSV-Dateien hochladen oder eine Verbindung zu Daten herstellen, die in Cloud Object Storage oder einer Db2 -Datenbank gespeichert sind.

Testdaten in Vorproduktion importieren

Wenn Sie Daten hochladen möchten, die bereits gescort wurden, können Sie das Kontrollkästchen Test data includes model output auswählen. Cloud Object Storage führt bei Auswahl dieser Option keinen Rescore für die Testdaten durch. Die Daten, die Sie importieren, können auch Spalten record_id/transaction_id und record_timestamp enthalten, die den Nutzdatenprotokollierungs-und Rückmeldetabellen hinzugefügt werden, wenn diese Option ausgewählt wird.

Bei Produktionsmodellen können Sie Daten importieren, indem Sie CSV-Dateien hochladen oder Endpunkte zum Senden Ihrer Modelltransaktionen verwenden.

Testdaten in Produktion importieren

Endpunkte verwenden

Für Produktionsmodelle werden Endpunkte unterstützt, mit denen Sie Daten in Formaten bereitstellen können, die Auswertungen ermöglichen. Sie können den Endpunkt für die Nutzdatenprotokollierung verwenden, um Scoring-Anforderungen für Fairness-und Driftauswertungen zu senden, und den Endpunkt für die Feedbackprotokollierung verwenden, um Feedbackdaten für Qualitätsbewertungen bereitzustellen. Sie können auch CSV-Dateien hochladen, um Daten für Modellauswertungen bereitzustellen. Weitere Informationen zu den Datenformaten finden Sie unter Daten für Modellauswertungen verwalten.

Ein Endpunkt für entwertete Transaktionen, mit dem Sie die Ergebnisse von Fairnessbewertungen überprüfen können, wird ebenfalls unterstützt. Der Endpunkt für verzerrungsbereinigte Transaktionen wendet aktive Verzerrungsbereinigung auf Ihre Nutzdaten an, um Verzerrungen in Ihrem Modell zu erkennen. Weitere Informationen zur aktiven Verzerrungsbereinigung finden Sie unter Verzerrungsbereinigte Transaktionen überprüfen.

Auswahlmenü für Endpunkte

Sie können die folgenden Schritte verwenden, um Modelltransaktionen für Ihre Modellauswertungen mit Endpunkten zu senden:

  1. Wählen Sie auf der Seite für die Monitorkonfiguration die Registerkarte Endpunkte aus.
  2. Wenn Sie Nutzdaten mit einer CSV-Datei hochladen möchten, klicken Sie auf Nutzdaten hochladen.
  3. Wenn Sie Feedbackdaten mit einer CSV-Datei hochladen wollen, klicken Sie auf Feedbackdaten hochladen.
  4. Klicken Sie in der Anzeige Modellinformationen auf Endpunkte.
  5. Wählen Sie im Menü Endpunkt den gewünschten Endpunkttyp aus.
  6. Wählen Sie im Menü Codesprache den Typ des Codeausschnitts aus, den Sie verwenden wollen.
  7. Klicken Sie auf In die Zwischenablage kopieren ' Das Symbol In Zwischenablage kopieren wird angezeigt., um den Codeausschnitt zu kopieren und den Code in Ihrem Notebook oder Ihrer Anwendung auszuführen.

Protokollierung von Nutzlastdaten mit Python

Wenn Sie den Nutzdatenendpunkt aus dem Menü Endpunkte in Watson OpenScale auswählen, können Sie den folgenden Codeausschnitt verwenden, um zu zeigen, wie Sie Ihre Nutzdaten protokollieren:

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)])

Der Wert ' "project_id": "$PROJECT_ID" gibt an, dass Sie Nutzdaten für Auswertungen in Projekten protokollieren wollen. Um Nutzdaten für Auswertungen in Leerzeichen zu protokollieren, können Sie stattdessen den Wert ' "space_id": "$SPACE_ID" angeben. Sie können die Registerkarte Verwalten in Projekten und Räumen verwenden, um die Projekt- oder Raum-ID für Ihr Modell zu ermitteln.

Protokollierung von Feedback-Daten mit Python

Wenn Sie den Endpunkt für Feedback-Daten aus dem Menü Endpunkte in Watson OpenScale auswählen, können Sie den folgenden Codeausschnitt verwenden, um zu zeigen, wie Sie Ihre Feedback-Daten protokollieren:

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
)

Modelltransaktionen in watsonx.governance senden

Daten in watsonx.governance importieren

Wenn Sie Bewertungsergebnisse in watsonx.governanceüberprüfen, können Sie Daten importieren, indem Sie Jetzt auswerten im Menü Aktionen auswählen, um Nutzdaten und Feedbackdaten für Ihre Modellauswertungen zu importieren.

Ergebnisse der Auswertung von Eingabeaufforderungsvorlagen analysieren

Für Vorproduktionsmodelle müssen Sie eine CSV-Datei hochladen, die Beispiele für Ein-und Ausgabedaten enthält. Zum Ausführen von Auswertungen mit importierten Daten müssen Sie den zugeordneten Spalten in Ihrer CSV-Datei Eingabeaufforderungsvariablen zuordnen und Hochladen und auswerten auswählen, wie im folgenden Beispiel gezeigt:

CSV-Datei hochladen

Bei Produktionsmodellen können Sie Nutzdaten hochladen oder Feedbackdaten hochladen im Fenster Testdaten importieren auswählen, um eine CSV-Datei hochzuladen, wie im folgenden Beispiel dargestellt:

Testdaten importieren

Die CSV-Datei muss beschriftete Spalten enthalten, die den Spalten in Ihren Nutzdaten-und Rückmeldungsschemas entsprechen. Wenn Ihr Upload erfolgreich abgeschlossen wurde, können Sie Jetzt auswerten auswählen, um Ihre Bewertungen mit Ihren importierten Daten auszuführen.

Endpunkte in watsonx.governance verwenden

Für Produktionsmodelle werden Endpunkte unterstützt, mit denen Sie Daten in Formaten bereitstellen können, die Auswertungen ermöglichen. Sie können den Endpunkt für Nutzdatenprotokollierung verwenden, um Scoring-Anforderungen für Driftauswertungen zu senden, und den Endpunkt für die Feedbackprotokollierung verwenden, um Feedbackdaten für Qualitätsbewertungen bereitzustellen.

Sie können Code-Snippets verwenden, um Scoring-Anfragen mit APIs oder Ihren Notizbüchern zu protokollieren.

Protokollierung von Rückmeldedaten mit cuRL

Das folgende Beispiel zeigt Ihnen, wie Sie Rückmeldedaten mit cURL protokollieren können:


# Generate an IAM access token by passing an API key as $APIKEY in the request below
# See: https://cloud.ibm.com/docs/account?topic=account-iamtoken_from_apikey

curl -k -X POST --header "Content-Type: application/x-www-form-urlencoded" --header "Accept: application/json" --data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" --data-urlencode "apikey=$APIKEY" "https://iam.cloud.ibm.com/identity/token"

# the above CURL request will return an auth token that you will use as $IAM_TOKEN in the requests below.

# retrieve the ID of the data set to store the feedback records
curl --location --request GET "${WOS_URL}/openscale/${WOS_SERVICE_INSTANCE_ID}/v2/data_sets?target.target_id=${SUBSCRIPTION_ID}&target.target_type=subscription&type=feedback" --header "Authorization: bearer $IAM_TOKEN" --header "Accept: application/json"

# the above request will return the ID of feedback records data set that you will use as $DATA_SET_ID in the request below. ID will be found at data_sets[0]['metadata']['id']

# TODO: manually define fields and list of values for feedback data

FEEDBACK_PAYLOAD = '[{
    "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"
		]
	]
}]'

curl --location --request POST "${WOS_URL}/openscale/${WOS_SERVICE_INSTANCE_ID}/v2/data_sets/$DATA_SET_ID/records" -d "$FEEDBACK_PAYLOAD" --header "Authorization: bearer $IAM_TOKEN" --header "Accept: application/json" --header "Content-Type: application/json"

Protokollierung von Feedback-Daten mit Python

Das folgende Beispiel zeigt Ihnen, wie Sie Rückmeldedaten mit Python protokollieren können:

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}"
PROJECT_ID = "{$PROJECT_ID}"
feedback_dataset_id = wos_client.data_sets.list(type=DataSetTypes.FEEDBACK, target_target_id=subscription_id, target_target_type=TargetTypes.SUBSCRIPTION, project_id=PROJECT_ID).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}],
    project_id=PROJECT_ID
	background_mode=False
)

Der Wert ' project_id=PROJECT_ID gibt an, dass Sie Feedbackdaten für Auswertungen in Projekten protokollieren wollen. Um Rückmeldedaten für Bewertungen in Leerzeichen zu protokollieren, können Sie stattdessen den Wert " space_id=SPACE_ID angeben. Sie können die Registerkarte Verwalten in Projekten und Räumen verwenden, um die Projekt- oder Raum-ID für Ihr Modell zu ermitteln.

Protokollierung von Nutzdaten mit cURL

Das folgende Beispiel zeigt Ihnen, wie Sie Nutzdaten mit cURL protokollieren können:

# Generate an IAM access token by passing an API key as $APIKEY in the request below
# See: https://cloud.ibm.com/docs/account?topic=account-iamtoken_from_apikey

curl -k -X POST \
--header "Content-Type: application/x-www-form-urlencoded" \
--header "Accept: application/json" \
--data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" \
--data-urlencode "apikey=$APIKEY" \
"https://iam.cloud.ibm.com/identity/token"

# the above CURL request will return an auth token that you will use as $IAM_TOKEN in the requests below.

# retrieve the ID of the data set to store the payload records
curl --location --request GET "${WOS_URL}/openscale/{$WOS_SERVICE_INSTANCE_ID}/v2/data_sets?target.target_id=${SUBSCRIPTION_ID}&target.target_type=subscription&type=payload_logging" \
--header "Authorization: bearer $IAM_TOKEN" \
--header "Accept: application/json"

# the above request will return the ID of payload records data set that you will use as $DATA_SET_ID in the request below.

# TODO: manually define and pass:
# request - input to scoring endpoint in format supported by Watson OpenScale - replace sample fields and values with proper ones
# response - output from scored model in format supported by Watson OpenScale - replace sample fields and values with proper ones
# - $SCORING_TIME - Time (ms) taken to make prediction (for performance monitoring)

SCORING_PAYLOAD='[{
	"response_time": "$SCORING_TIME",
	"request": {
		"parameters": {
			"template_variables": {
				"${TEMPLATE_VARIABLE_1}": "$TEMPLATE_VARIABLE_1_VALUE",
				"${TEMPLATE_VARIABLE_2}": "$TEMPLATE_VARIABLE_2_VALUE"
			}
		},
		"project_id": "$PROJECT_ID"
	},
	"response": {
		"results": [
			{
				"generated_text": "$GENERATED_TEXT"
			}
		]
	},
	"user_id": "$USER_ID"
}]'

curl --location --request POST "${WOS_URL}/openscale/${WOS_SERVICE_INSTANCE_ID}/v2/data_sets/$DATA_SET_ID/records" \
-d "$SCORING_PAYLOAD" \
--header "Authorization: bearer $IAM_TOKEN" \
--header "Accept: application/json" \
--header "Content-Type: application/json"

Der Wert ' "project_id": "$PROJECT_ID" gibt an, dass Sie Nutzdaten für Auswertungen in Projekten protokollieren wollen. Um Nutzdaten für Auswertungen in Leerzeichen zu protokollieren, können Sie stattdessen den Wert ' "space_id": "$SPACE_ID" angeben. Sie können die Registerkarte Verwalten in Projekten und Räumen verwenden, um die Projekt- oder Raum-ID für Ihr Modell zu ermitteln.

Protokollierung von Nutzlastdaten mit Python

Das folgende Beispiel zeigt Ihnen, wie Sie Nutzdaten mit Python protokollieren können:

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}"
PROJECT_ID = "{$PROJECT_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, project_id=PROJECT_ID).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)], project_id=PROJECT_ID)

Der ' PROJECT_ID = "{$PROJECT_ID}" gibt an, dass Sie Nutzdaten für Auswertungen in Projekten protokollieren wollen. Um Nutzdaten für Auswertungen in Leerzeichen zu protokollieren, können Sie stattdessen den Wert ' SPACE_ID = "{$SPACE_ID}" angeben. Sie können die Registerkarte Verwalten in Projekten und Räumen verwenden, um die Projekt- oder Raum-ID für Ihr Modell zu ermitteln.

Weitere Informationen zu den Datenformaten finden Sie unter Daten für Modellauswertungen verwalten.

Übergeordnetes Thema: Verwaltung von Daten für Modellevaluierungen

Generative KI-Suche und -Antwort
Diese Antworten werden von einem großen Sprachmodell in watsonx.ai basierend auf dem Inhalt der Produktdokumentation generiert. Weitere Informationen