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.
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 .
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.
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.
Per inviare le transazioni del modello per le valutazioni del modello con gli endpoint, è possibile utilizzare i seguenti passaggi:
- Nella pagina di configurazione del monitor, selezionare la scheda Endpoint .
- Se si desidera caricare i dati del payload con un file CSV, fare clic su Carica dati del payload.
- Se si desidera caricare i dati di feedback con un file CSV, fare clic su Carica dati di feedback.
- Nel riquadro Informazioni sul Modello , fare clic su Endpoint.
- Dal menu Endpoint , selezionare il tipo di endpoint che si desidera utilizzare.
- Dal menu Lingua codice , scegliere il tipo di frammento di codice che si desidera utilizzare.
- Fare clic su 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
)
Argomento principale: Gestione dei dati per la valutazione dei modelli