Treinar e testar modelos projetados para detectar lavagem de dinheiro

Este guia de início rápido orienta você em uma implementação completa de um modelo para detectar lavagem de dinheiro usando a API de IA antilavagem de dinheiro (AML AI). Neste guia, você vai aprender a treinar e testar modelos para detectar lavagem de dinheiro seguindo estas etapas:

  1. Prepare seu ambiente do Cloud e crie uma instância de IA de AML.
  2. Forneça dados de transação sintéticos na forma de tabelas do BigQuery.
  3. Treinar e fazer backtest de um modelo com dados de entrada.
  4. Registrar partidos e fazer previsões de modelos.

Depois de criar resultados de previsão, este guia analisa um único caso de uma festa de exemplo que está lavando dinheiro por estruturação de fundos.

Antes de começar

Nesta seção, descrevemos como configurar uma conta do Google Cloud , ativar os serviços doGoogle Cloud necessários e conceder as permissões exigidas para executar o guia de início rápido.

Se você for usar um projeto que não é seu, talvez seja necessário pedir ao administrador para conceder determinadas permissões de acesso. Saiba mais em Como criar e gerenciar projetos.

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

  3. Se você estiver usando um provedor de identidade externo (IdP), primeiro faça login na CLI gcloud com sua identidade federada.

  4. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  5. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the required APIs:

    gcloud services enable financialservices.googleapis.com bigquery.googleapis.com cloudkms.googleapis.com bigquerydatatransfer.googleapis.com
  8. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

    If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

  9. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/financialservices.admin, roles/cloudkms.admin, roles/bigquery.admin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Replace the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  10. Install the Google Cloud CLI.

  11. Se você estiver usando um provedor de identidade externo (IdP), primeiro faça login na CLI gcloud com sua identidade federada.

  12. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  13. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  14. Verify that billing is enabled for your Google Cloud project.

  15. Enable the required APIs:

    gcloud services enable financialservices.googleapis.com bigquery.googleapis.com cloudkms.googleapis.com bigquerydatatransfer.googleapis.com
  16. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

    If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

  17. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/financialservices.admin, roles/cloudkms.admin, roles/bigquery.admin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Replace the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  18. Esses papéis atendem às seguintes permissões necessárias:

    Permissões necessárias

    As seguintes permissões são necessárias para concluir este guia de início rápido:

    Permissão Descrição
    resourcemanager.projects.getReceber um projeto do Google Cloud
    resourcemanager.projects.listList Google Cloud projects
    cloudkms.keyRings.createCriar um keyring do Cloud KMS
    cloudkms.cryptoKeys.createCriar uma chave do Cloud KMS
    financialservices.v1instances.createCriar uma instância da AI antilavagem de dinheiro
    financialservices.operations.getAcessar uma operação de IA antilavagem de dinheiro
    cloudkms.cryptoKeys.getIamPolicyAcessar a política do IAM em uma chave do Cloud KMS
    cloudkms.cryptoKeys.setIamPolicyDefinir a política do IAM em uma chave do Cloud KMS
    bigquery.datasets.createCriar um conjunto de dados do BigQuery
    bigquery.datasets.getExtrair um conjunto de dados do BigQuery
    bigquery.transfers.getReceber uma transferência do serviço de transferência de dados do BigQuery
    bigquery.transfers.updateCriar ou excluir uma transferência do serviço de transferência de dados do BigQuery
    bigquery.datasets.setIamPolicyDefinir a política do IAM em um conjunto de dados do BigQuery
    bigquery.datasets.updateAtualizar um conjunto de dados do BigQuery
    financialservices.v1datasets.createCriar um conjunto de dados de IA antilavagem de dinheiro
    financialservices.v1engineconfigs.createCriar uma configuração do mecanismo de AI antilavagem de dinheiro
    financialservices.v1models.createCriar um modelo de IA antilavagem de dinheiro
    financialservices.v1backtests.createCriar um resultado de backtest da IA antilavagem de dinheiro
    financialservices.v1backtests.exportMetadataExportar metadados de um resultado de backtest de IA de AML
    financialservices.v1instances.importRegisteredPartiesImportar partes registradas para uma instância de IA de AML
    financialservices.v1predictions.createCriar um resultado de previsão da AI antilavagem de dinheiro
    bigquery.jobs.createCriar um job do BigQuery
    bigquery.tables.getDataExtrair dados de uma tabela do BigQuery
    financialservices.v1predictions.deleteExcluir um resultado de previsão da IA de AML
    financialservices.v1backtests.deleteExcluir um resultado de backtest de IA de AML
    financialservices.v1models.deleteExcluir um modelo de IA antilavagem de dinheiro
    financialservices.v1engineconfigs.deleteExcluir uma configuração do mecanismo de AI antilavagem de dinheiro
    financialservices.v1datasets.deleteExcluir um conjunto de dados da AI antilavagem de dinheiro
    financialservices.v1instances.deleteExcluir uma instância da AML AI
    bigquery.datasets.deleteExcluir um conjunto de dados do BigQuery

  19. As solicitações de API neste guia usam o mesmo projeto e local Google Cloud e IDs de recursos codificados para facilitar a conclusão do guia. Os IDs de recursos seguem o padrão my-resource-type (por exemplo, my-key-ring e my-model).

    Verifique se as seguintes substituições estão definidas para este guia:

    • PROJECT_ID: o ID do projeto Google Cloud listado nas Configurações do IAM
    • PROJECT_NUMBER: o número do projeto associado a PROJECT_ID. Você encontra o número do projeto na página Configurações do IAM.
    • LOCATION: o local dos recursos da API. Use uma das regiões compatíveis.
      Mostrar locais
      • us-central1
      • us-east1
      • asia-south1
      • europe-west1
      • europe-west2
      • europe-west4
      • northamerica-northeast1
      • southamerica-east1
      • australia-southeast1
  20. Criar uma instância

    Nesta seção, descrevemos como criar uma instância. A instância da AI antilavagem de dinheiro fica na raiz de todos os outros recursos da AI antilavagem de dinheiro. Cada instância exige uma única chave de criptografia gerenciada pelo cliente (CMEK) associada, que é usada para criptografar todos os dados criados pela IA de AML.

    Criar um keyring

    Para criar um keyring, use o método projects.locations.keyRings.create.

    REST

    Para enviar a solicitação, escolha uma destas opções:

    curl

    execute o seguinte comando:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d "" \
    "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings?key_ring_id=my-key-ring"

    PowerShell

    execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -Uri "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings?key_ring_id=my-key-ring" | Select-Object -Expand Content

    Você receberá uma resposta JSON semelhante a esta:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/keyRings/my-key-ring",
      "createTime": CREATE_TIME
    }
    

    gcloud

    Execute o seguinte comando:

    Linux, macOS ou Cloud Shell

    gcloud kms keyrings create my-key-ring \
      --location LOCATION

    Windows (PowerShell)

    gcloud kms keyrings create my-key-ring `
      --location LOCATION

    Windows (cmd.exe)

    gcloud kms keyrings create my-key-ring ^
      --location LOCATION
    Você vai receber uma resposta vazia:
    $

    Crie uma chave

    Para criar uma chave, use o método projects.locations.keyRings.cryptoKeys.

    REST

    Corpo JSON da solicitação:

    {
      "purpose": "ENCRYPT_DECRYPT"
    }
    

    Para enviar a solicitação, escolha uma destas opções:

    curl

    Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

    cat > request.json << 'EOF'
    {
      "purpose": "ENCRYPT_DECRYPT"
    }
    EOF

    Depois execute o comando a seguir para enviar a solicitação REST:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/my-key-ring/cryptoKeys?crypto_key_id=my-key"

    PowerShell

    Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

    @'
    {
      "purpose": "ENCRYPT_DECRYPT"
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Depois execute o comando a seguir para enviar a solicitação REST:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/my-key-ring/cryptoKeys?crypto_key_id=my-key" | Select-Object -Expand Content

    Você receberá uma resposta JSON semelhante a esta:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/keyRings/my-key-ring/cryptoKeys/my-key",
      "primary": {
        "name": "projects/PROJECT_ID/locations/LOCATION/keyRings/my-key-ring/cryptoKeys/my-key/cryptoKeyVersions/1",
        "state": "ENABLED",
        "createTime": CREATE_TIME,
        "protectionLevel": "SOFTWARE",
        "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION",
        "generateTime": GENERATE_TIME
      },
      "purpose": "ENCRYPT_DECRYPT",
      "createTime": CREATE_TIME,
      "versionTemplate": {
        "protectionLevel": "SOFTWARE",
        "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION"
      },
      "destroyScheduledDuration": "86400s"
    }
    

    gcloud

    Antes de usar os dados do comando abaixo, faça estas substituições:

    • LOCATION: a localização do keyring. Use uma das regiões compatíveis
      Mostrar locais
      • us-central1
      • us-east1
      • asia-south1
      • europe-west1
      • europe-west2
      • europe-west4
      • northamerica-northeast1
      • southamerica-east1
      • australia-southeast1

    Execute o seguinte comando:

    Linux, macOS ou Cloud Shell

    gcloud kms keys create my-key \
      --keyring my-key-ring \
      --location LOCATION \
      --purpose "encryption"

    Windows (PowerShell)

    gcloud kms keys create my-key `
      --keyring my-key-ring `
      --location LOCATION `
      --purpose "encryption"

    Windows (cmd.exe)

    gcloud kms keys create my-key ^
      --keyring my-key-ring ^
      --location LOCATION ^
      --purpose "encryption"
    Você vai receber uma resposta vazia:
    $

    Criar a instância usando a API

    Para criar uma instância, use o método projects.locations.instances.create.

    Corpo JSON da solicitação:

    {
      "kmsKey": "projects/PROJECT_ID/locations/LOCATION/keyRings/my-key-ring/cryptoKeys/my-key"
    }
    

    Para enviar a solicitação, escolha uma destas opções:

    curl

    Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

    cat > request.json << 'EOF'
    {
      "kmsKey": "projects/PROJECT_ID/locations/LOCATION/keyRings/my-key-ring/cryptoKeys/my-key"
    }
    EOF

    Depois execute o comando a seguir para enviar a solicitação REST:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances?instance_id=my-instance"

    PowerShell

    Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

    @'
    {
      "kmsKey": "projects/PROJECT_ID/locations/LOCATION/keyRings/my-key-ring/cryptoKeys/my-key"
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Depois execute o comando a seguir para enviar a solicitação REST:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances?instance_id=my-instance" | Select-Object -Expand Content

    Você receberá uma resposta JSON semelhante a esta:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
        "createTime": CREATE_TIME,
        "target": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    }
    

    Se a solicitação for bem-sucedida, o corpo da resposta vai conter uma operação de longa duração com um ID que pode ser usado para recuperar o status da operação assíncrona. Copie o OPERATION_ID retornado para usar na próxima seção.

    Verificar o resultado

    Use o método projects.locations.operations.get para verificar se a instância foi criada. Se a resposta contiver "done": false, repita o comando até que a resposta contenha "done": true.

    As operações neste guia podem levar de alguns minutos a várias horas para serem concluídas. Aguarde a conclusão de uma operação antes de continuar neste guia, porque a API usa a saída de alguns métodos como entrada para outros.

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • OPERATION_ID: o identificador da operação

    Para enviar a solicitação, escolha uma destas opções:

    curl

    execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"

    PowerShell

    execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" | Select-Object -Expand Content

    Você receberá uma resposta JSON semelhante a esta:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
        "createTime": CREATE_TIME,
        "endTime": END_TIME,
        "target": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.financialservices.v1.Instance",
        "name": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance",
        "createTime": CREATE_TIME,
        "updateTime": UPDATE_TIME,
        "kmsKey": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/my-key-ring/cryptoKeys/my-key",
        "state": "ACTIVE"
      }
    }
    

    Conceder acesso à chave da CMEK

    A API cria automaticamente uma conta de serviço no seu projeto. A conta de serviço precisa de acesso à chave CMEK para criptografar e descriptografar os dados subjacentes. Conceda acesso à chave.

    gcloud kms keys add-iam-policy-binding "projects/PROJECT_ID/locations/LOCATION/keyRings/my-key-ring/cryptoKeys/my-key" \
      --keyring "projects/PROJECT_ID/locations/LOCATION/keyRings/my-key-ring" \
      --location "LOCATION" \
      --member "serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com" \
      --role="roles/cloudkms.cryptoKeyEncrypterDecrypter" \
      --project="PROJECT_ID"

    Criar conjuntos de dados do BigQuery

    Esta seção descreve como criar conjuntos de dados de entrada e saída do BigQuery e copiar dados bancários de exemplo para o conjunto de dados de entrada.

    Criar um conjunto de dados de saída

    Crie um conjunto de dados para enviar as saídas do pipeline de AML.

    Bash

    bq mk \
      --location=LOCATION \
      --project_id=PROJECT_ID \
      my_bq_output_dataset
    

    PowerShell

    bq mk `
      --location=LOCATION `
      --project_id=PROJECT_ID `
      my_bq_output_dataset
    

    Criar um conjunto de dados de entrada

    Crie um conjunto de dados para copiar as tabelas bancárias de exemplo.

    Bash

    bq mk \
      --location=LOCATION \
      --project_id=PROJECT_ID \
      my_bq_input_dataset
    

    PowerShell

    bq mk `
      --location=LOCATION `
      --project_id=PROJECT_ID `
      my_bq_input_dataset
    

    Copiar o conjunto de dados de amostra

    Exemplos de dados bancários são fornecidos como um conjunto de dados do BigQuery no projeto de conjunto de dados compartilhados do Google. Você precisa ter acesso à API de IA de AML para que esse conjunto de dados seja acessível. Os principais recursos deste conjunto de dados incluem:

    • 100.000 partes
    • Um período principal de 1º de janeiro de 2020 a 1º de janeiro de 2023 e mais 24 meses de dados de retrospecto
    • 300 casos de risco negativos e 20 positivos por mês
    • Casos de risco com os seguintes atributos:
      • Metade dos casos de risco positivo são de atividade de estruturação que ocorreu nos dois meses anteriores ao evento AML_PROCESS_START.
      • A outra metade abrange partidos com o maior valor recebido nos dois meses anteriores ao evento AML_PROCESS_START.
      • Os casos negativos são gerados aleatoriamente
      • Uma chance de 0, 1% de o caso de risco ser gerado no estado oposto (por exemplo, um partido aleatório que é positivo ou um partido que tem atividade de estruturação ou a maior renda e é relatado como negativo)
    • O esquema da AML é definido no modelo de dados de entrada da AML.
    1. Copie os dados bancários de amostra para o conjunto de dados de entrada que você criou.

      Bash

      bq mk --transfer_config \
        --project_id=PROJECT_ID \
        --data_source=cross_region_copy \
        --target_dataset="my_bq_input_dataset" \
        --display_name="Copy the AML sample dataset." \
        --schedule=None \
        --params='{
          "source_project_id":"bigquery-public-data",
          "source_dataset_id":"aml_ai_input_dataset",
          "overwrite_destination_table":"true"
        }'
      

      PowerShell

      bq mk --transfer_config `
      --project_id=PROJECT_ID `
      --data_source=cross_region_copy `
      --target_dataset="my_bq_input_dataset" `
      --display_name="Copy the AML sample dataset." `
      --schedule=None `
      --params='{\"source_project_id\":\"bigquery-public-data\",\"source_dataset_id\":\"aml_ai_input_dataset\",\"overwrite_destination_table\":\"true\"}'
      
    2. Monitore o job de transferência de dados.

      Bash

      bq ls --transfer_config \
      --transfer_location=LOCATION \
      --project_id=PROJECT_ID \
      --filter="dataSourceIds:cross_region_copy"
      

      PowerShell

      bq ls --transfer_config `
      --transfer_location=LOCATION `
      --project_id=PROJECT_ID `
      --filter="dataSourceIds:cross_region_copy"
      

      Depois que a transferência for concluída, um job de transferência de dados com o nome de exibição Copy the AML sample dataset será criado.

      Também é possível verificar o status da transferência usando o console Google Cloud .

      Você vai ver algo como a saída a seguir.

                           name                           displayName         dataSourceId       state
      -------------------------------------------  -----------------------  -----------------  ---------
      projects/294024168771/locations/us-central1  Copy AML sample dataset  cross_region_copy  SUCCEEDED
      

    Conceder acesso aos conjuntos de dados do BigQuery

    A API cria automaticamente uma conta de serviço no seu projeto. A conta de serviço precisa de acesso aos conjuntos de dados de entrada e saída do BigQuery.

    1. Conceda acesso de leitura ao conjunto de dados de entrada e às tabelas dele.

      Bash

      bq query --project_id=PROJECT_ID --use_legacy_sql=false \
        'GRANT `roles/bigquery.dataViewer` ON SCHEMA `PROJECT_ID.my_bq_input_dataset` TO "serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com"'
      

      PowerShell

      bq query --project_id=PROJECT_ID --use_legacy_sql=false "GRANT ``roles/bigquery.dataViewer`` ON SCHEMA ``PROJECT_ID.my_bq_input_dataset`` TO 'serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com'"
      
    2. Conceda acesso de gravação ao conjunto de dados de saída.

      Bash

      bq query --project_id=PROJECT_ID --use_legacy_sql=false \
        'GRANT `roles/bigquery.dataEditor` ON SCHEMA `PROJECT_ID.my_bq_output_dataset` TO "serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com"'
      

      PowerShell

      bq query --project_id=PROJECT_ID --use_legacy_sql=false "GRANT ``roles/bigquery.dataEditor`` ON SCHEMA ``PROJECT_ID.my_bq_output_dataset`` TO 'serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com'"
      

    Criar um conjunto de dados de IA antilavagem de dinheiro

    Crie um conjunto de dados de IA de AML para especificar as tabelas de conjunto de dados de entrada do BigQuery e o período a ser usado.

    Para criar um conjunto de dados, use o método projects.locations.instances.datasets.create.

    Corpo JSON da solicitação:

    {
      "tableSpecs": {
        "party": "bq://PROJECT_ID.my_bq_input_dataset.party",
        "account_party_link": "bq://PROJECT_ID.my_bq_input_dataset.account_party_link",
        "transaction": "bq://PROJECT_ID.my_bq_input_dataset.transaction",
        "risk_case_event": "bq://PROJECT_ID.my_bq_input_dataset.risk_case_event",
        "party_supplementary_data": "bq://PROJECT_ID.my_bq_input_dataset.party_supplementary_data"
      },
      "dateRange": {
        "startTime": "2020-01-01T00:00:0.00Z",
        "endTime": "2023-01-01T00:00:0.00Z"
      },
      "timeZone": {
        "id": "UTC"
      }
    }
    

    Para enviar a solicitação, escolha uma destas opções:

    curl

    Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

    cat > request.json << 'EOF'
    {
      "tableSpecs": {
        "party": "bq://PROJECT_ID.my_bq_input_dataset.party",
        "account_party_link": "bq://PROJECT_ID.my_bq_input_dataset.account_party_link",
        "transaction": "bq://PROJECT_ID.my_bq_input_dataset.transaction",
        "risk_case_event": "bq://PROJECT_ID.my_bq_input_dataset.risk_case_event",
        "party_supplementary_data": "bq://PROJECT_ID.my_bq_input_dataset.party_supplementary_data"
      },
      "dateRange": {
        "startTime": "2020-01-01T00:00:0.00Z",
        "endTime": "2023-01-01T00:00:0.00Z"
      },
      "timeZone": {
        "id": "UTC"
      }
    }
    EOF

    Depois execute o comando a seguir para enviar a solicitação REST:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance/datasets?dataset_id=my-dataset"

    PowerShell

    Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

    @'
    {
      "tableSpecs": {
        "party": "bq://PROJECT_ID.my_bq_input_dataset.party",
        "account_party_link": "bq://PROJECT_ID.my_bq_input_dataset.account_party_link",
        "transaction": "bq://PROJECT_ID.my_bq_input_dataset.transaction",
        "risk_case_event": "bq://PROJECT_ID.my_bq_input_dataset.risk_case_event",
        "party_supplementary_data": "bq://PROJECT_ID.my_bq_input_dataset.party_supplementary_data"
      },
      "dateRange": {
        "startTime": "2020-01-01T00:00:0.00Z",
        "endTime": "2023-01-01T00:00:0.00Z"
      },
      "timeZone": {
        "id": "UTC"
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Depois execute o comando a seguir para enviar a solicitação REST:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance/datasets?dataset_id=my-dataset" | Select-Object -Expand Content

    Você receberá uma resposta JSON semelhante a esta:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
        "createTime": CREATE_TIME,
        "target": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/datasets/my-dataset",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    }
    

    É possível verificar o resultado da operação usando o novo ID. Faça isso para as solicitações de API restantes usadas neste guia.

    Criar uma configuração de mecanismo

    Crie uma configuração de mecanismo de IA de AML para ajustar automaticamente os hiperparâmetros com base em uma determinada versão do mecanismo e nos dados fornecidos. As versões do mecanismo são lançadas periodicamente e correspondem a diferentes lógicas de modelo (por exemplo, segmentação de uma linha de negócios de varejo em vez de uma comercial).

    Para criar uma configuração de mecanismo, use o método projects.locations.instances.engineConfigs.create.

    Essa etapa envolve o ajuste de hiperparâmetros, que pode levar algum tempo para ser processado. Desde que seus dados não mudem muito, essa etapa pode ser usada para criar e testar vários modelos.

    Corpo JSON da solicitação:

    {
      "engineVersion": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/engineVersions/aml-commercial.default.v004.008.202411-001",
      "tuning": {
        "primaryDataset": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/datasets/my-dataset",
        "endTime": "2021-07-01T00:00:00Z"
      },
      "performanceTarget": {
        "partyInvestigationsPerPeriodHint": "30"
      }
    }
    

    Para enviar a solicitação, escolha uma destas opções:

    curl

    Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

    cat > request.json << 'EOF'
    {
      "engineVersion": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/engineVersions/aml-commercial.default.v004.008.202411-001",
      "tuning": {
        "primaryDataset": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/datasets/my-dataset",
        "endTime": "2021-07-01T00:00:00Z"
      },
      "performanceTarget": {
        "partyInvestigationsPerPeriodHint": "30"
      }
    }
    EOF

    Depois execute o comando a seguir para enviar a solicitação REST:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance/engineConfigs?engine_config_id=my-engine-config"

    PowerShell

    Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

    @'
    {
      "engineVersion": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/engineVersions/aml-commercial.default.v004.008.202411-001",
      "tuning": {
        "primaryDataset": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/datasets/my-dataset",
        "endTime": "2021-07-01T00:00:00Z"
      },
      "performanceTarget": {
        "partyInvestigationsPerPeriodHint": "30"
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Depois execute o comando a seguir para enviar a solicitação REST:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance/engineConfigs?engine_config_id=my-engine-config" | Select-Object -Expand Content

    Você receberá uma resposta JSON semelhante a esta:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
        "createTime": CREATE_TIME,
        "target": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/engineConfigs/my-engine-config",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    }
    

    Criar um modelo

    Nesta etapa, você treina um modelo de IA de AML usando 12 meses de dados até 2021-07-01.

    Para criar um modelo, use o método projects.locations.instances.models.create.

    Corpo JSON da solicitação:

    {
        "engineConfig": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/engineConfigs/my-engine-config",
        "primaryDataset": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/datasets/my-dataset",
        "endTime": "2021-07-01T00:00:00Z"
    }
    

    Para enviar a solicitação, escolha uma destas opções:

    curl

    Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

    cat > request.json << 'EOF'
    {
        "engineConfig": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/engineConfigs/my-engine-config",
        "primaryDataset": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/datasets/my-dataset",
        "endTime": "2021-07-01T00:00:00Z"
    }
    EOF

    Depois execute o comando a seguir para enviar a solicitação REST:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance/models?model_id=my-model"

    PowerShell

    Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

    @'
    {
        "engineConfig": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/engineConfigs/my-engine-config",
        "primaryDataset": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/datasets/my-dataset",
        "endTime": "2021-07-01T00:00:00Z"
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Depois execute o comando a seguir para enviar a solicitação REST:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance/models?model_id=my-model" | Select-Object -Expand Content

    Você receberá uma resposta JSON semelhante a esta:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
        "createTime": CREATE_TIME,
        "target": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/models/my-model",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    }
    

    Criar um resultado de backtest

    A previsão de backtest usa o modelo treinado em dados históricos atuais. Crie um resultado de backtest com os 12 meses de dados até janeiro de 2023, que não foram usados no treinamento. Esses meses são usados para determinar quantos casos precisaríamos trabalhar se tivéssemos usado o modelo treinado até julho de 2021 em produção de janeiro a dezembro de 2022.

    Para criar um resultado de backtest, use o método projects.locations.instances.backtestResults.create.

    Corpo JSON da solicitação:

    {
        "model": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/models/my-model",
        "dataset": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/datasets/my-dataset",
        "endTime": "2023-01-01T00:00:00Z",
        "backtestPeriods": 12,
        "performanceTarget": {
          "partyInvestigationsPerPeriodHint": "150"
        }
    }
    

    Para enviar a solicitação, escolha uma destas opções:

    curl

    Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

    cat > request.json << 'EOF'
    {
        "model": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/models/my-model",
        "dataset": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/datasets/my-dataset",
        "endTime": "2023-01-01T00:00:00Z",
        "backtestPeriods": 12,
        "performanceTarget": {
          "partyInvestigationsPerPeriodHint": "150"
        }
    }
    EOF

    Depois execute o comando a seguir para enviar a solicitação REST:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance/backtestResults?backtest_result_id=my-backtest-results"

    PowerShell

    Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

    @'
    {
        "model": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/models/my-model",
        "dataset": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/datasets/my-dataset",
        "endTime": "2023-01-01T00:00:00Z",
        "backtestPeriods": 12,
        "performanceTarget": {
          "partyInvestigationsPerPeriodHint": "150"
        }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Depois execute o comando a seguir para enviar a solicitação REST:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance/backtestResults?backtest_result_id=my-backtest-results" | Select-Object -Expand Content

    Você receberá uma resposta JSON semelhante a esta:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
        "createTime": CREATE_TIME,
        "target": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/backtestResults/my-backtest-results",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    }
    

    Exportar metadados de resultados de backtest

    Depois de executar um backtest, é necessário exportar os resultados para o BigQuery para visualizá-los. Para exportar metadados do resultado do backtest, use o método projects.locations.instances.backtestResults.exportMetadata.

    Corpo JSON da solicitação:

    {
      "structuredMetadataDestination": {
        "tableUri": "bq://PROJECT_ID.my_bq_output_dataset.my_backtest_results_metadata",
        "writeDisposition": "WRITE_TRUNCATE"
      }
    }
    

    Para enviar a solicitação, escolha uma destas opções:

    curl

    Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

    cat > request.json << 'EOF'
    {
      "structuredMetadataDestination": {
        "tableUri": "bq://PROJECT_ID.my_bq_output_dataset.my_backtest_results_metadata",
        "writeDisposition": "WRITE_TRUNCATE"
      }
    }
    EOF

    Depois execute o comando a seguir para enviar a solicitação REST:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance/backtestResults/my-backtest-results:exportMetadata"

    PowerShell

    Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

    @'
    {
      "structuredMetadataDestination": {
        "tableUri": "bq://PROJECT_ID.my_bq_output_dataset.my_backtest_results_metadata",
        "writeDisposition": "WRITE_TRUNCATE"
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Depois execute o comando a seguir para enviar a solicitação REST:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance/backtestResults/my-backtest-results:exportMetadata" | Select-Object -Expand Content

    Você receberá uma resposta JSON semelhante a esta:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
        "createTime": CREATE_TIME,
        "target": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/backtestResults/my-backtest-results",
        "verb": "exportMetadata",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    }
    

    Depois que a operação for concluída, faça o seguinte:

    1. Abra o BigQuery no console do Google Cloud .

      Acesse o Google Cloud console

    2. No painel Explorer, encontre e expanda seu projeto.

    3. Expanda my_bq_output_dataset e clique em my_backtest_results_metadata.

    4. Na barra de menus, clique em Prévia.

    5. Na coluna name, encontre a linha com ObservedRecallValues.

      Valores de recall observados no BigQuery.

    6. Suponha que sua capacidade de investigações seja de 120 por mês. Encontre o objeto de valor de recall com "partyInvestigationsPerPeriod": "120". Para os valores de amostra a seguir, se você limitar as investigações a partes com pontuações de risco maiores que 0,53, poderá investigar 120 novas partes por mês. Durante o período de backtesting, o ano de 2022, você identificaria 86% dos casos que o sistema anterior identificou (e possivelmente outros, que não foram identificados pelos seus processos atuais).

      {
        "recallValues": [
          ...
          {
            "partyInvestigationsPerPeriod": "105",
            "recallValue": 0.8142077,
            "scoreThreshold": 0.6071321
          },
          {
            "partyInvestigationsPerPeriod": "120",
            "recallValue": 0.863388,
            "scoreThreshold": 0.5339603
          },
          {
            "partyInvestigationsPerPeriod": "135",
            "recallValue": 0.89071035,
            "scoreThreshold": 0.4739899
          },
          ...
        ]
      }
      

    Saiba mais sobre os outros campos nos resultados do backtest.

    Ao mudar o campo partyInvestigationsPerPeriodHint, é possível modificar o número de investigações que um backtest produz. Para obter pontuações e investigar, registre as partes e faça previsões sobre elas.

    Importar partes registradas

    Antes de criar resultados de previsão, importe as partes registradas (ou seja, os clientes no conjunto de dados).

    Para importar partes registradas, use o método projects.locations.instances.importRegisteredParties.

    Corpo JSON da solicitação:

    {
      "partyTables": [
         "bq://PROJECT_ID.my_bq_input_dataset.party_registration"
      ],
      "mode": "REPLACE",
      "lineOfBusiness": "COMMERCIAL"
    }
    

    Para enviar a solicitação, escolha uma destas opções:

    curl

    Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

    cat > request.json << 'EOF'
    {
      "partyTables": [
         "bq://PROJECT_ID.my_bq_input_dataset.party_registration"
      ],
      "mode": "REPLACE",
      "lineOfBusiness": "COMMERCIAL"
    }
    EOF

    Depois execute o comando a seguir para enviar a solicitação REST:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance:importRegisteredParties"

    PowerShell

    Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

    @'
    {
      "partyTables": [
         "bq://PROJECT_ID.my_bq_input_dataset.party_registration"
      ],
      "mode": "REPLACE",
      "lineOfBusiness": "COMMERCIAL"
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Depois execute o comando a seguir para enviar a solicitação REST:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance:importRegisteredParties" | Select-Object -Expand Content

    Você receberá uma resposta JSON semelhante a esta:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
        "createTime": CREATE_TIME,
        "target": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance",
        "verb": "importRegisteredParties",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    }
    

    Continue verificando o resultado dessa operação até que ela seja concluída. Quando ele for concluído, você vai ver que 10.000 partes foram registradas na saída JSON.

    Criar um resultado de previsão

    Crie um resultado de previsão nos últimos 12 meses do conjunto de dados. Esses meses não foram usados durante o treinamento. A criação de resultados de previsão gera pontuações para cada partido em cada mês em todos os períodos de previsão.

    Para criar um resultado de previsão, use o método projects.locations.instances.predictionResults.create.

    Corpo JSON da solicitação:

    {
        "model": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/models/my-model",
        "dataset": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/datasets/my-dataset",
        "endTime": "2023-01-01T00:00:00Z",
        "predictionPeriods": "12",
        "outputs": {
          "predictionDestination": {
            "tableUri": "bq://PROJECT_ID.my_bq_output_dataset.my_prediction_results",
            "writeDisposition": "WRITE_TRUNCATE"
          },
          "explainabilityDestination": {
            "tableUri": "bq://PROJECT_ID.my_bq_output_dataset.my_prediction_results_explainability",
            "writeDisposition": "WRITE_TRUNCATE"
          }
        }
    }
    

    Para enviar a solicitação, escolha uma destas opções:

    curl

    Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

    cat > request.json << 'EOF'
    {
        "model": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/models/my-model",
        "dataset": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/datasets/my-dataset",
        "endTime": "2023-01-01T00:00:00Z",
        "predictionPeriods": "12",
        "outputs": {
          "predictionDestination": {
            "tableUri": "bq://PROJECT_ID.my_bq_output_dataset.my_prediction_results",
            "writeDisposition": "WRITE_TRUNCATE"
          },
          "explainabilityDestination": {
            "tableUri": "bq://PROJECT_ID.my_bq_output_dataset.my_prediction_results_explainability",
            "writeDisposition": "WRITE_TRUNCATE"
          }
        }
    }
    EOF

    Depois execute o comando a seguir para enviar a solicitação REST:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance/predictionResults?prediction_result_id=my-prediction-results"

    PowerShell

    Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

    @'
    {
        "model": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/models/my-model",
        "dataset": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/datasets/my-dataset",
        "endTime": "2023-01-01T00:00:00Z",
        "predictionPeriods": "12",
        "outputs": {
          "predictionDestination": {
            "tableUri": "bq://PROJECT_ID.my_bq_output_dataset.my_prediction_results",
            "writeDisposition": "WRITE_TRUNCATE"
          },
          "explainabilityDestination": {
            "tableUri": "bq://PROJECT_ID.my_bq_output_dataset.my_prediction_results_explainability",
            "writeDisposition": "WRITE_TRUNCATE"
          }
        }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Depois execute o comando a seguir para enviar a solicitação REST:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance/predictionResults?prediction_result_id=my-prediction-results" | Select-Object -Expand Content

    Você receberá uma resposta JSON semelhante a esta:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
        "createTime": CREATE_TIME,
        "target": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/predictionResults/my-prediction-results",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    }
    

    Analisar um único caso de estruturação no console do Google Cloud

    1. Abra o BigQuery no console do Google Cloud .

      Acesse o Google Cloud console

    2. No painel de detalhes, clique na guia Consulta sem título para ver o editor.

    3. Copie a instrução SQL a seguir no editor e clique em Executar.

      SELECT *
      FROM `PROJECT_ID.my_bq_input_dataset.transaction`
      WHERE account_id = '1E60OAUNKP84WDKB' AND DATE_TRUNC(book_time, MONTH) = "2022-08-01"
      ORDER by book_time
      

      Esta instrução verifica o ID da conta 1E60OAUNKP84WDKB em agosto de 2022. Esta conta está vinculada ao ID da parte EGS4NJD38JZ8NTL8. Para encontrar o ID da parte de um determinado ID de conta, use a tabela AccountPartyLink.

      Os dados de transação mostram transações frequentes de valores arredondados direcionadas a uma única conta logo após um grande depósito em dinheiro, o que parece suspeito. Essas transações podem indicar smurfing (divisão de uma grande transação de dinheiro em valores menores) ou estruturação.

      Dados de transação suspeita para uma única parte.

    4. Copie a instrução SQL a seguir no editor e clique em Executar.

      SELECT *
      FROM `PROJECT_ID.my_bq_input_dataset.risk_case_event`
      WHERE party_id = 'EGS4NJD38JZ8NTL8'
      

      Essa declaração mostra que houve um caso de risco que levou à saída desse partido. O caso de risco começou dois meses após a atividade suspeita.

      Eventos de caso de risco para uma única parte.

    5. Copie a instrução SQL a seguir no editor e clique em Executar.

      SELECT *
      FROM `PROJECT_ID.my_bq_output_dataset.my_prediction_results`
      WHERE party_id = 'EGS4NJD38JZ8NTL8'
      ORDER BY risk_period_end_time
      

      Ao verificar os resultados da previsão, é possível notar que a pontuação de risco do partido aumenta de quase zero (observe o valor do expoente) para valores altos nos meses seguintes à atividade suspeita. Seus resultados podem variar em relação aos mostrados.

      As pontuações de risco aumentam para uma única parte.

      A pontuação de risco não é uma probabilidade. Uma pontuação de risco sempre deve ser avaliada em relação a outras pontuações de risco. Por exemplo, um valor aparentemente pequeno pode ser considerado positivo em casos em que as outras pontuações de risco são menores.

    6. Copie a instrução SQL a seguir no editor e clique em Executar.

      SELECT *
      FROM `PROJECT_ID.my_bq_output_dataset.my_prediction_results_explainability`
      WHERE party_id = 'EGS4NJD38JZ8NTL8'
      AND risk_period_end_time = '2022-10-01'
      

      Ao verificar os resultados de explicabilidade, você pode ver que as famílias de recursos corretas têm os valores mais altos.

      Resultados de explicabilidade para previsões.

    Limpar

    Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Google Cloud com os recursos.

    Excluir o resultado da previsão

    Para excluir um resultado de previsão, use o método projects.locations.instances.predictionResults.delete.

    Para enviar a solicitação, escolha uma destas opções:

    curl

    execute o seguinte comando:

    curl -X DELETE \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance/predictionResults/my-prediction-results"

    PowerShell

    execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method DELETE `
    -Headers $headers `
    -Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance/predictionResults/my-prediction-results" | Select-Object -Expand Content

    Você receberá uma resposta JSON semelhante a esta:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
        "createTime": CREATE_TIME,
        "target": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/predictionResults/my-prediction-results",
        "verb": "delete",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    }
    

    Excluir o resultado do backtest

    Para excluir um resultado de backtest, use o método projects.locations.instances.backtestResults.delete.

    Para enviar a solicitação, escolha uma destas opções:

    curl

    execute o seguinte comando:

    curl -X DELETE \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance/backtestResults/my-backtest-results"

    PowerShell

    execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method DELETE `
    -Headers $headers `
    -Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance/backtestResults/my-backtest-results" | Select-Object -Expand Content

    Você receberá uma resposta JSON semelhante a esta:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
        "createTime": CREATE_TIME,
        "target": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/backtestResults/my-backtest-results",
        "verb": "delete",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    }
    

    Excluir o modelo

    Para excluir um modelo, use o método projects.locations.instances.models.delete.

    Para enviar a solicitação, escolha uma destas opções:

    curl

    execute o seguinte comando:

    curl -X DELETE \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance/models/my-model"

    PowerShell

    execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method DELETE `
    -Headers $headers `
    -Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance/models/my-model" | Select-Object -Expand Content

    Você receberá uma resposta JSON semelhante a esta:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
        "createTime": CREATE_TIME,
        "target": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/models/my-model",
        "verb": "delete",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    }
    

    Excluir a configuração do mecanismo

    Para excluir uma configuração de mecanismo, use o método projects.locations.instances.engineConfigs.delete.

    Para enviar a solicitação, escolha uma destas opções:

    curl

    execute o seguinte comando:

    curl -X DELETE \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance/engineConfigs/my-engine-config"

    PowerShell

    execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method DELETE `
    -Headers $headers `
    -Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance/engineConfigs/my-engine-config" | Select-Object -Expand Content

    Você receberá uma resposta JSON semelhante a esta:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
        "createTime": CREATE_TIME,
        "target": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/engineConfigs/my-engine-config",
        "verb": "delete",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    }
    

    Excluir o conjunto de dados

    Para excluir um conjunto de dados, use o método projects.locations.instances.datasets.delete.

    Para enviar a solicitação, escolha uma destas opções:

    curl

    execute o seguinte comando:

    curl -X DELETE \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance/datasets/my-dataset"

    PowerShell

    execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method DELETE `
    -Headers $headers `
    -Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance/datasets/my-dataset" | Select-Object -Expand Content

    Você receberá uma resposta JSON semelhante a esta:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
        "createTime": CREATE_TIME,
        "target": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance/datasets/my-dataset",
        "verb": "delete",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    }
    

    Excluir a instância

    Para excluir uma instância, use o método projects.locations.instances.delete.

    Para enviar a solicitação, escolha uma destas opções:

    curl

    execute o seguinte comando:

    curl -X DELETE \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance"

    PowerShell

    execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method DELETE `
    -Headers $headers `
    -Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/my-instance" | Select-Object -Expand Content

    Você receberá uma resposta JSON semelhante a esta:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
        "createTime": CREATE_TIME,
        "target": "projects/PROJECT_ID/locations/LOCATION/instances/my-instance",
        "verb": "delete",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    }
    

    Excluir os conjuntos de dados do BigQuery

    bq rm -r -f -d PROJECT_ID:my_bq_input_dataset
    
    bq rm -r -f -d PROJECT_ID:my_bq_output_dataset
    

    Excluir a configuração do job de transferência

    1. Liste os jobs de transferência no projeto.

      Bash

      bq ls --transfer_config \
        --transfer_location=LOCATION \
        --project_id=PROJECT_ID  \
        --filter="dataSourceIds:cross_region_copy"
      

      PowerShell

      bq ls --transfer_config `
        --transfer_location=LOCATION `
        --project_id=PROJECT_ID `
        --filter="dataSourceIds:cross_region_copy"
      
    2. Uma saída semelhante a esta vai retornar.

      name                                                                                       displayName                    dataSourceId       state
      ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      projects/PROJECT_NUMBER/locations/LOCATION/transferConfigs/TRANSFER_CONFIG_ID    Copy the AML sample dataset.   cross_region_copy   SUCCEEDED
      

      Copie o nome inteiro, começando com projects/ e terminando em TRANSFER_CONFIG_ID.

    3. Exclua a configuração de transferência.

      Bash

      bq rm --transfer_config TRANSFER_CONFIG_NAME
      

      PowerShell

      bq rm --transfer_config TRANSFER_CONFIG_NAME
      

    A seguir