0 / 0
Torna alla versione inglese della documentazione
Invio di transazioni modello
Ultimo aggiornamento: 05 dic 2024
Invio di transazioni modello

Se si stanno valutando modelli di apprendimento automatico o risorse di IA generativa, è necessario inviare transazioni di modelli dall'implementazione per consentire le valutazioni dei modelli.

Per generare risultati accurati per le valutazioni del modello in modo continuo, è necessario continuare a inviare nuovi dati dall'installazione.

Le seguenti sezioni descrivono diversi metodi che è possibile utilizzare per inviare transazioni per le valutazioni del modello:

Invio di transazioni modello

Importazione dei dati

Quando si esaminano i risultati della valutazione nella dashboard Insights, è possibile utilizzare il menu Azioni per importare i dati del carico utile e del feedback per le valutazioni del modello.

Per i modelli di preproduzione, puoi importare i dati caricando i file CSV o collegandoti ai dati archiviati in Cloud Object Storage o in un database Db2 .

importa dati di test in pre - produzione

Se si desidera caricare i dati di cui è già stato calcolato il punteggio, è possibile selezionare la casella di controllo Test data includes model output . Cloud Object Storage non esegue nuovamente la scansione dei dati di test quando si seleziona questa opzione. I dati che si importano possono includere anche le colonne record_id/transaction_id e record_timestamp che vengono aggiunte alle tabelle di feedback e di registrazione del payload quando questa opzione è selezionata.

Per i modelli di produzione, è possibile importare i dati caricando i file CSV o utilizzando gli endpoint per inviare le transazioni del modello.

importa dati di test in produzione

Utilizzo degli endpoint

Per i modelli di produzione, sono supportati endpoint che possono essere utilizzati per fornire i dati in formati che consentono le valutazioni. È possibile utilizzare l'endpoint di registrazione payload per inviare richieste di calcolo del punteggio per le valutazioni di correttezza e deviazione e utilizzare l'endpoint di registrazione del feedback per fornire i dati di feedback per le valutazioni di qualità. È anche possibile caricare file CSV per fornire dati per le valutazioni del modello. Per ulteriori informazioni sui formati dati, consultare Gestione dei dati per le valutazioni del modello.

È supportato anche un endpoint per le transazioni debiased che può essere utilizzato per esaminare i risultati delle valutazioni di correttezza. L'endpoint delle transazioni con distorsione annullata applica la distorsione attiva sui dati del payload per rilevare qualsiasi distorsione nel modello. Per ulteriori informazioni sull'annullamento della distorsione attivo, consultare Revisione delle transazioni senza distorsione.

Menu di selezione degli endpoint

Per inviare le transazioni del modello per le valutazioni del modello con gli endpoint, è possibile utilizzare i seguenti passaggi:

  1. Nella pagina di configurazione del monitor, selezionare la scheda Endpoint .
  2. Se si desidera caricare i dati del payload con un file CSV, fare clic su Carica dati del payload.
  3. Se si desidera caricare i dati di feedback con un file CSV, fare clic su Carica dati di feedback.
  4. Nel riquadro Informazioni sul Modello , fare clic su Endpoint.
  5. Dal menu Endpoint , selezionare il tipo di endpoint che si desidera utilizzare.
  6. Dal menu Lingua codice , scegliere il tipo di frammento di codice che si desidera utilizzare.
  7. Fare clic su Copia negli appunti 'Viene visualizzata l'icona Copia negli appunti. per copiare il frammento di codice ed eseguirlo nel blocco note o nell'applicazione.

Registrazione dei dati del carico utile con Python

Quando si seleziona l'endpoint dei dati del payload dal menu Endpoints di Watson OpenScale, è possibile utilizzare il seguente frammento di codice per mostrare come registrare i dati del payload:

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

Il valore '"project_id": "$PROJECT_ID" specifica che si desidera registrare i dati del carico utile per le valutazioni nei progetti. Per registrare i dati del payload per le valutazioni in spazi, è possibile specificare il valore '"space_id": "$SPACE_ID". È possibile utilizzare la scheda Gestione in progetti e spazi per identificare l'ID del progetto o dello spazio per il modello.

Registrazione dei dati di feedback con Python

Quando si seleziona l'endpoint dei dati di feedback dal menu Endpoints di Watson OpenScale, è possibile utilizzare il seguente frammento di codice per mostrare come registrare i dati di 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
)

Invio di transazioni modello in watsonx.governance

Importazione di dati in watsonx.governance

Quando si revisionano i risultati della valutazione in watsonx.governance, è possibile importare i dati selezionando Valuta ora dal menu Azioni per importare i dati di payload e feedback per le valutazioni del modello.

Analizzare i risultati della valutazione del modello di richiesta

Per i modelli di pre - produzione, è necessario caricare un file CSV che contiene esempi di dati di input e output. Per eseguire le valutazioni con i dati importati, è necessario associare le variabili prompt alle colonne associate nel file CSV e selezionare Carica e valuta come mostrato nel seguente esempio:

Carica file CSV

Per i modelli di produzione, è possibile selezionare Carica dati di payload o Carica dati di feedback nella finestra Importa dati di test per caricare un file CSV come mostrato nel seguente esempio:

Importa dati di test

Il file CSV deve contenere colonne etichettate che corrispondono alle colonne nel payload e negli schemi di feedback. Quando il caricamento viene completato correttamente, è possibile selezionare Valuta ora per eseguire le proprie valutazioni con i dati importati.

Utilizzo degli endpoint in watsonx.governance

Per i modelli di produzione, sono supportati gli endpoint che si possono utilizzare per fornire i dati in formati che consentano le valutazioni. È possibile utilizzare l'endpoint di registrazione payload per inviare richieste di calcolo del punteggio per le valutazioni di deviazione e utilizzare l'endpoint di registrazione del feedback per fornire dati di feedback per le valutazioni di qualità.

È possibile utilizzare gli snippet di codice per registrare le richieste di punteggio con le API o con i notebook.

Registrazione dei dati di feedback con cuRL

L'esempio seguente mostra come registrare i dati di feedback con gli snippet di codice cURL:


# 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"

Registrazione dei dati di feedback con Python

L'esempio seguente mostra come registrare i dati di feedback con frammenti di codice Python:

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
)

Il valore " project_id=PROJECT_ID specifica che si desidera registrare i dati di feedback per le valutazioni nei progetti. Per registrare i dati di feedback per le valutazioni negli spazi, è possibile specificare il valore 'space_id=SPACE_ID. È possibile utilizzare la scheda Gestione in progetti e spazi per identificare l'ID del progetto o dello spazio per il modello.

Registrazione dei dati del carico utile con cURL

L'esempio seguente mostra come registrare i dati del payload con frammenti di codice cURL:

# 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"

Il valore '"project_id": "$PROJECT_ID" specifica che si desidera registrare i dati del carico utile per le valutazioni nei progetti. Per registrare i dati del payload per le valutazioni in spazi, è possibile specificare il valore '"space_id": "$SPACE_ID". È possibile utilizzare la scheda Gestione in progetti e spazi per identificare l'ID del progetto o dello spazio per il modello.

Registrazione dei dati del carico utile con Python

L'esempio seguente mostra come registrare i dati del payload con frammenti di codice Python:

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)

Il " PROJECT_ID = "{$PROJECT_ID}" specifica che si desidera registrare i dati del carico utile per le valutazioni nei progetti. Per registrare i dati del payload per le valutazioni in spazi, è possibile specificare il valore 'SPACE_ID = "{$SPACE_ID}". È possibile utilizzare la scheda Gestione in progetti e spazi per identificare l'ID del progetto o dello spazio per il modello.

Per ulteriori informazioni sui formati dati, consultare Gestione dei dati per le valutazioni del modello.

Argomento principale: Gestione dei dati per la valutazione dei modelli

Ricerca e risposta AI generativa
Queste risposte sono generate da un modello di lingua di grandi dimensioni in watsonx.ai basato sul contenuto della documentazione del prodotto. Ulteriori informazioni