Estruturas Amazon SageMaker
Você pode usar o Amazon SageMaker para registrar dados de carga útil e de feedback e para medir a precisão do desempenho, a detecção de viés, a capacidade de explicação e a função de autodebias para avaliações de modelos.
Os seguintes frameworks da Amazon SageMaker são suportados para avaliações de modelos:
Tabela 1. Detalhes do suporte da estrutura
| Estrutura | Tipo de problema | Tipo de dados |
|---|---|---|
| Native | Classificação | Estruturado |
| Native | Regressão1 | Estruturado |
1O suporte para modelos de regressão não inclui a magnitude do desvio.
Adição do Amazon SageMaker
Você pode configurar avaliações de modelos para trabalhar com o Amazon SageMaker usando um dos seguintes métodos:
- Na primeira vez em que adicionar um provedor de aprendizado de máquina, você poderá usar a interface de configuração. Para obter mais informações, consulte Especificando uma instância do Amazon SageMaker.
- Também é possível incluir seu provedor de aprendizado de máquina usando o Python SDK. Deve-se usar esse método se você deseja ter mais de um provedor. Para obter informações adicionais, consulte Incluir seu mecanismo de aprendizado de máquina Amazon SageMaker.
Blocos de notas de amostra
Os Blocos de Notas a seguir mostram como trabalhar com a Amazon SageMaker:
Especificando uma instância de serviço do Amazon SageMaker ML
Sua primeira etapa para configurar avaliações de modelos é especificar uma instância de serviço do Amazon SageMaker. A sua instância de serviço do Amazon SageMaker é onde você armazena seus modelos e implementações de IA.
Conecte sua instância de serviço do Amazon SageMaker
Modelos e implementações de IA em uma instância de serviço do Amazon SageMaker. Para conectar seu serviço, vá para a guia Configure
, adicione um provedor de aprendizado de máquina e clique no ícone Edit
. Além de um nome e descrição e se o ambiente Pré-produção ou Produção, deve-se fornecer as informações a seguir que são específicas para este tipo de instância de serviço:
- ID de chave de acesso: seu ID de chave de acesso da AWS,
aws_access_key_id, que verifica quem você é e autentica e autoriza chamadas que você faz para a AWS. - Chave de acesso secreta: sua chave de acesso secreta da AWS,
aws_secret_access_key, que é necessária para verificar quem você é e para autenticar e autorizar chamadas que você faz para a AWS. - Região: insira a região onde seu ID de Chave de Acesso foi criado. As chaves são armazenadas e usadas na região em que foram criadas e não podem ser transferidas para outra região.
Agora você está pronto para selecionar modelos implementados e configurar seus monitores. Seus modelos implantados são listados no painel do Insights, onde você pode clicar em Add to dashboard (Adicionar ao painel). Selecione as implementações que deseja monitorar e clique em Configurar.
Para obter mais informações, consulte Configurar monitores.
Criação de log de carga útil com o mecanismo de aprendizado de máquina do Amazon SageMaker
Incluir seu mecanismo de aprendizado de máquina do Amazon SageMaker
Um mecanismo de tempo de execução watsonx.ai que não seja da IBM é vinculado como personalizado usando metadados. Não é possível nenhuma integração direta com o serviço de tempo de execução watsonx.ai que não seja da IBM.
SAGEMAKER_ENGINE_CREDENTIALS = {
'access_key_id':””,
'secret_access_key':””,
'region': '}
wos_client.service_providers.add(
name="AWS",
description="AWS Service Provider",
service_type=ServiceTypes.AMAZON_SAGEMAKER,
credentials=SageMakerCredentials(
access_key_id=SAGEMAKER_ENGINE_CREDENTIALS['access_key_id'],
secret_access_key=SAGEMAKER_ENGINE_CREDENTIALS['secret_access_key'],
region=SAGEMAKER_ENGINE_CREDENTIALS['region']
),
background_mode=False
).result
Para ver a sua assinatura de serviço, execute o código a seguir:
client.service_providers.list()

Incluir assinatura do Amazon SageMaker ML
Para incluir a assinatura, execute o código a seguir:
asset_deployment_details = wos_client.service_providers.list_assets(data_mart_id=data_mart_id, service_provider_id=service_provider_id).result
asset_deployment_details
deployment_id='684e35eee8a479470cee05983e1f9d64'
for model_asset_details in asset_deployment_details['resources']:
if model_asset_details['metadata']['guid']==deployment_id:
break
aws_asset = Asset(
asset_id=model_asset_details['entity']['asset']['asset_id'],
name=model_asset_details['entity']['asset']['name'],
url=model_asset_details['entity']['asset']['url'],
asset_type=model_asset_details['entity']['asset']['asset_type'] if 'asset_type' in model_asset_details['entity']['asset'] else 'model',
problem_type=ProblemType.BINARY_CLASSIFICATION,
input_data_type=InputDataType.STRUCTURED,
)
from ibm_watson_openscale.base_classes.watson_open_scale_v2 import ScoringEndpointRequest
deployment_scoring_endpoint = model_asset_details['entity']['scoring_endpoint']
scoring_endpoint = ScoringEndpointRequest(url = model_asset_details['entity']['scoring_endpoint']['url'] )
deployment = AssetDeploymentRequest(
deployment_id=model_asset_details['metadata']['guid'],
url=model_asset_details['metadata']['url'],
name=model_asset_details['entity']['name'],
#description="asset['entity']['description']",
deployment_type=model_asset_details['entity']['type'],
scoring_endpoint = scoring_endpoint
)
asset_properties = AssetPropertiesRequest(
label_column="Risk",
prediction_field='predicted_label',
probability_fields=['score'],
training_data_reference=training_data_reference,
training_data_schema=None,
input_data_schema=None,
output_data_schema=None,
feature_fields=feature_columns,
categorical_fields=categorical_columns
)
subscription_details = wos_client.subscriptions.add(
data_mart_id=data_mart_id,
service_provider_id=service_provider_id,
asset=aws_asset,
deployment=deployment,
asset_properties=asset_properties,
background_mode=False
).result
Para obter a lista de assinatura, execute o comando a seguir:
subscription_id = subscription_details.metadata.id
subscription_id
details: wos_client.subscriptions.get(subscription_id).result.to_dict()
Ativar a criação de log de carga útil
Para ativar a criação de log de carga útil, execute o comando a seguir:
request_data = {'fields': feature_columns,
'values': [[payload_values]]}
Para obter detalhes de criação de log, execute o comando a seguir:
response_data = {'fields': list(result['predictions'][0]),
'values': [list(x.values()) for x in result['predictions']]}
Pontuação e criação de log de carga útil
- Pontue o seu modelo.
Para armazenar a solicitação e a resposta na tabela de criação de log de carga útil, execute o código a seguir:
wos_client.data_sets.store_records(data_set_id=payload_data_set_id, request_body=[PayloadRecord(
scoring_id=str(uuid.uuid4()),
request=request_data,
response=response_data,
response_time=460
)])
Para linguagens diferentes de Python, também é possível registrar a carga útil usando uma API de REST.