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

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:

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 O ícone da guia de configuração , adicione um provedor de aprendizado de máquina e clique no ícone Edit O ícone da guia de configuração exibe. . 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()

Ligação ML do SageMaker

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.