Enviando transações de modelo

Se você estiver avaliando modelos de aprendizado de máquina ou ativos de IA generativa, deverá enviar transações de modelo da sua implantação para permitir avaliações de modelo.

Para gerar resultados precisos para suas avaliações de modelo continuamente, você deve continuar a enviar novos dados de sua implantação.

Enviando transações de modelo

Importando Dados

Ao revisar os resultados da avaliação no painel do Insights, você pode usar o menu Ações para importar dados de carga útil e feedback para as avaliações do modelo.

Para modelos de pré-produção, você pode importar dados enviando arquivos do tipo ` CSV ` ou conectando-se a dados armazenados no ` Cloud Object Storage ` ou em um banco de dados do tipo ` Db2 `.

importar dados de teste na pré-produção

Se desejar fazer upload de dados que já foram pontuados, será possível marcar a caixa de seleção Test data includes model output . O Cloud Object Storage não refaz os dados de teste ao selecionar essa opção. Os dados importados também podem incluir colunas record_id/transaction_id e record_timestamp que são incluídas nas tabelas de criação de log e feedback de carga útil quando essa opção é selecionada.

Para modelos de produção, você pode importar dados enviando arquivos do tipo ` CSV ` ou utilizando pontos de extremidade para enviar as transações do seu modelo.

importar dados de teste na produção

Usando pontos de extremidade

Para modelos de produção, há suporte para pontos de extremidade que você pode usar para fornecer dados em formatos que permitam avaliações. É possível usar o terminal de criação de log de carga útil para enviar solicitações de pontuação para avaliações de justiça e desvio e usar o terminal de criação de log de feedback para fornecer dados de feedback para avaliações de qualidade. Você também pode enviar arquivos d CSV s para fornecer dados para as avaliações do modelo. Para obter mais informações sobre os formatos de dados, consulte Gerenciando dados para avaliações de modelo.

Também há suporte para um ponto de extremidade de transações com redução de custos que você pode usar para revisar os resultados das avaliações de equidade. O terminal de transações sem propensão aplica a propensão ativa em seus dados de carga útil para detectar qualquer propensão em seu modelo. Para obter mais informações sobre remoção de propensão ativa, consulte Revisando transações sem propensão.

Menu de seleção de terminais

Você pode usar as etapas a seguir para enviar transações de modelo para suas avaliações de modelo com pontos de extremidade:

  1. Na página de configuração do monitor, selecione a guia Terminais
  2. Se você deseja enviar dados de carga útil com um arquivo do tipo “ CSV ”, clique em “Enviar dados de carga útil ”.
  3. Se você deseja enviar dados de feedback usando um arquivo do tipo “ CSV ”, clique em “Enviar dados de feedback ”.
  4. No painel Informações do modelo , clique em Terminais
  5. No menu Terminal , selecione o tipo de terminal que você deseja usar.
  6. No menu Linguagem de código escolha o tipo de fragmento de código que você deseja usar.
  7. Clique em Copiar para a área de transferência ' O ícone Copiar para a área de transferência é exibido para copiar o trecho de código e executar o código em seu notebook ou aplicativo.

Registro de dados de carga útil com Python

Ao selecionar o endpoint de dados de carga útil no menu Endpoints do Watson OpenScale, você pode usar o seguinte trecho de código para mostrar como registrar seus dados de carga útil:

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

O valor " "project_id": "$PROJECT_ID" especifica que você deseja registrar dados de carga útil para análises em projetos. Para registrar dados de carga útil para avaliações em espaços, é possível especificar o valor ' "space_id": "$SPACE_ID" em vez disso. Você pode usar a guia Gerenciar em projetos e espaços para identificar o ID do projeto ou do espaço para o seu modelo.

Registro de dados de feedback com Python

Ao selecionar o endpoint de dados de feedback no menu Endpoints do Watson OpenScale, você pode usar o seguinte trecho de código para mostrar como registrar seus dados 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
)