Habilite a detecção de anomalias nos sensores de um ativo - AWS IoT SiteWise

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Habilite a detecção de anomalias nos sensores de um ativo

Crie um modelo de computação ()AWS CLI

Para criar um modelo computacional, use a interface de linha de AWS comando (AWS CLI). Depois de definir o modelo de computação, treine o modelo e programe a inferência para fazer a detecção de anomalias em um ativo em. AWS IoT SiteWise

  • Crie um arquivo anomaly-detection-computation-model-payload.json com o seguinte conteúdo:

    { "computationModelName": "anomaly-detection-computation-model-name", "computationModelConfiguration": { "anomalyDetection": { "inputProperties": "${input_properties}", "resultProperty": "${result_property}" } }, "computationModelDataBinding": { "input_properties": { "list": [{ "assetModelProperty": { "assetModelId": "asset-model-id", "propertyId": "input-property-id-1" } }, { "assetModelProperty": { "assetModelId": "asset-model-id", "propertyId": "input-property-id-2" } } ] }, "result_property": { "assetModelProperty": { "assetModelId": "asset-model-id", "propertyId": "results-property-id" } } } }
  • Execute o comando a seguir para criar um modelo de computação:

    aws iotsitewise create-computation-model \ --cli-input-json file://anomaly-detection-computation-model-payload.json

ExecuteAction Preparação da carga útil da API

As próximas etapas para executar o treinamento e a inferência são realizadas com a ExecuteActionAPI. Tanto o treinamento quanto a inferência são configurados com uma configuração de carga de ação JSON. Ao invocar a ExecuteActionAPI, a carga útil da ação deve ser fornecida como um valor com uma stringValue carga útil.

A carga útil deve seguir rigorosamente os requisitos da API. Especificamente, o valor deve ser uma string simples, sem caracteres de controle (por exemplo, novas linhas, guias ou retornos de carro).

As opções a seguir fornecem duas maneiras confiáveis de fornecer uma carga útil de ação válida:

Opção 1: usar um arquivo de carga útil limpo

O procedimento a seguir descreve as etapas para um arquivo de carga útil limpo:

  1. Limpe o arquivo para remover os caracteres de controle.

    tr -d '\n\r\t' < original-action-payload.json > training-or-inference-action-payload.json
  2. Execute a ação com o arquivo@=file://....

    aws iotsitewise execute-action \ --target-resource computationModelId=<MODEL_ID> \ --action-definition-id <ACTION_DEFINITION_ID> \ --resolve-to assetId=<ASSET_ID> \ --action-payload stringValue@=file://training-or-inference-action-payload.json

Opção 2: string embutida com aspas escapadas

As etapas a seguir descrevem as etapas para fornecer a carga em linha e evitar arquivos intermediários:

  • Use aspas duplas de escape (\") dentro da string JSON.

  • Coloque a StringValue=.. expressão inteira entre aspas duplas.

exemplo de uma carga útil de ação que escapou:
aws iotsitewise execute-action \ --target-resource computationModelId=<MODEL_ID> \ --action-definition-id <ACTION_DEFINITION_ID> \ --resolve-to assetId=<ASSET_ID> \ --action-payload "stringValue={\"exportDataStartTime\":1717225200,\"exportDataEndTime\":1722789360,\"targetSamplingRate\":\"PT1M\"}"

Treine o AWS CLI

Com um modelo de computação criado, você pode treinar um modelo em relação aos ativos. Siga as etapas abaixo para treinar um modelo para um ativo:

  1. Execute o seguinte comando para encontrar actionDefinitionId da ação AWS/ANOMALY_DETECTION_TRAINING. computation-model-idSubstitua pela ID retornada na etapa anterior.

    aws iotsitewise describe-computation-model \ --computation-model-id computation-model-id
  2. Crie um arquivo chamado anomaly-detection-training-payload.json e adicione os seguintes valores:

    nota

    A carga útil deve estar em conformidade com. Opção 1: usar um arquivo de carga útil limpo

    1. StartTimecom o início dos dados de treinamento, fornecidos em segundos de época.

    2. EndTimecom o final dos dados de treinamento, fornecidos em segundos de época.

    3. OpcionalmenteConfigurações avançadas de treinamento, você pode configurar para melhorar o desempenho do modelo.

      1. (Opcional) TargetSamplingRate com a taxa de amostragem dos dados.

      2. (Opcional) LabelInputConfiguration para especificar períodos de tempo em que ocorreu um comportamento anômalo para melhorar o treinamento do modelo.

      3. (Opcional) ModelEvaluationConfiguration para avaliar o desempenho do modelo executando inferências em um intervalo de tempo especificado após a conclusão do treinamento.

    { "exportDataStartTime": StartTime, "exportDataEndTime": EndTime }
    exemplo de um exemplo de carga útil de treinamento:
    { "exportDataStartTime": 1717225200, "exportDataEndTime": 1722789360 }
  3. Execute o comando a seguir para iniciar o treinamento. Substitua os parâmetros a seguir no comando:

    1. computation-model-idcom o ID do modelo de computação de destino.

    2. asset-idcom o ID do ativo com o qual você treinará o modelo.

    3. training-action-definition-idcom o ID da AWS/ANOMALY_DETECTION_TRAINING ação da Etapa 1.

    aws iotsitewise execute-action \ --target-resource computationModelId=computation-model-id \ --resolve-to assetId=asset-id \ --action-definition-id training-action-definition-id \ --action-payload stringValue@=file://anomaly-detection-training-payload.json
    exemplo de uma ação de execução:
    aws iotsitewise execute-action --target-resource computationModelId=27cb824c-fd84-45b0-946b-0a5b0466d890 --resolve-to assetId=cefd4b68-481b-4735-b466-6a4220cd19ee --action-definition-id e54cea94-5d1c-4230-a59e-4f54dcbc972d --action-payload stringValue@=file://anomaly-detection-training-payload.json
  4. Execute o comando a seguir para verificar o status do processo de treinamento do modelo. O resumo da execução mais recente mostra o status da execução (RUNNING/COMPLETED/FAILED).

    aws iotsitewise list-executions \ --target-resource-type COMPUTATION_MODEL \ --target-resource-id computation-model-id\ --resolve-to-resource-type ASSET \ --resolve-to-resource-id asset-id
  5. Execute o comando a seguir para verificar a configuração do modelo treinado mais recente. Esse comando produz uma saída somente se pelo menos um modelo tiver sido treinado com sucesso.

    aws iotsitewise describe-computation-model-execution-summary \ --computation-model-id computation-model-id \ --resolve-to-resource-type ASSET \ --resolve-to-resource-id asset-id
  6. Quando a ComputationModel estiver usando AssetModelProperty, use a ListComputationModelResolveToResourcesAPI para identificar os ativos com ações executadas.

    aws iotsitewise list-computation-model-resolve-to-resources \ --computation-model-id computation-model-id

Iniciar e interromper a inferência ()AWS CLI

Depois de treinar o modelo, inicie a inferência. Isso instrui AWS IoT SiteWise a monitorar ativamente seus ativos industriais em busca de anomalias.

Inicie a inferência

  1. Execute o seguinte comando para encontrar actionDefinitionId da ação AWS/ANOMALY_DETECTION_INFERENCE. computation-model-idSubstitua pelo ID real do modelo de computação criado anteriormente.

    aws iotsitewise describe-computation-model \ --computation-model-id computation-model-id
  2. Crie um arquivo anomaly-detection-start-inference-payload.json e adicione os seguintes valores:

    nota

    A carga útil deve estar em conformidade com. Opção 1: usar um arquivo de carga útil limpo

    "inferenceMode": "START", "dataUploadFrequency": "DataUploadFrequency"
    1. DataUploadFrequency: configure a frequência com que o cronograma de inferência é executado para realizar a detecção de anomalias. Os valores permitidos são: PT5M, PT10M, PT15M, PT30M, PT1H, PT2H..PT12H, PT1D.

    2. (Opcional) DataDelayOffsetInMinutes com a compensação de atraso em minutos. Defina esse valor entre 0 e 60 minutos.

    3. (Opcional) TargetModelVersion com a versão do modelo a ser ativada.

    4. (Opcional) Configure o weeklyOperatingWindow com uma configuração de turno.

    5. Você pode configurar Configurações avançadas de inferência opcionalmente.

      1. Inferência de alta frequência (5 minutos — 1 hora).

      2. Inferência de baixa frequência (2 horas — 1 dia).

      3. Programação flexível.

  3. Execute o comando a seguir para iniciar a inferência. Substitua os parâmetros a seguir no arquivo de carga útil.

    1. computation-model-idcom o ID do modelo de computação de destino.

    2. asset-idcom a ID do ativo contra o qual o modelo foi treinado.

    3. inference-action-definition-idcom o ID da AWS/ANOMALY_DETECTION_INFERENCE ação da Etapa 1.

    aws iotsitewise execute-action \ --target-resource computationModelId=computation-model-id \ --resolve-to assetId=asset-id \ --action-definition-id inference-action-definition-id \ --action-payload stringValue@=file://anomaly-detection-inference-payload.json
  4. Execute o comando a seguir para verificar se a inferência ainda está em execução. O inferenceTimerActive campo é definido como TRUE quando a inferência está ativa.

    aws iotsitewise describe-computation-model-execution-summary \ --computation-model-id computation-model-id \ --resolve-to-resource-type ASSET \ --resolve-to-resource-id asset-id
  5. O comando a seguir lista todas as execuções de inferência:

    aws iotsitewise list-executions \ --target-resource-type COMPUTATION_MODEL \ --target-resource-id computation-model-id \ --resolve-to-resource-type ASSET \ --resolve-to-resource-id asset-id
  6. Execute o comando a seguir para descrever uma execução individual. execution-idSubstitua pelo id da Etapa 5 anterior.

    aws iotsitewise describe-execution \ --execution-id execution-id

Pare a inferência

  1. Execute o seguinte comando para encontrar actionDefinitionId da ação AWS/ANOMALY_DETECTION_INFERENCE. computation-model-idSubstitua pelo ID real do modelo de computação criado anteriormente.

    aws iotsitewise describe-computation-model \ --computation-model-id computation-model-id
  2. Crie um arquivo anomaly-detection-stop-inference-payload.json e adicione o código a seguir.

    { "inferenceMode": "STOP" }
    nota

    A carga útil deve estar em conformidade com. Opção 1: usar um arquivo de carga útil limpo

  3. Execute o comando a seguir para interromper a inferência. Substitua o seguinte parâmetro no arquivo de carga:

    1. computation-model-idcom o ID do modelo de computação de destino.

    2. asset-idcom a ID do ativo contra o qual o modelo foi treinado.

    3. inference-action-definition-idcom o ID da AWS/ANOMALY_DETECTION_INFERENCE ação da Etapa 1.

    exemplo do comando stop inference:
    aws iotsitewise execute-action \ --target-resource computationModelId=computation-model-id \ --resolve-to assetId=asset-id \ --action-definition-id inference-action-definition-id \ --action-payload stringValue@=file://anomaly-detection-stop-inference-payload.json

Encontre modelos de computação que usam um determinado recurso na vinculação de dados

Para listar modelos de computação vinculados a um determinado recurso:

  • modelo de ativo (busque todos os modelos de computação em que qualquer uma das propriedades desse modelo de ativo esteja vinculada).

  • ativo (obtenha todos os modelos de computação em que qualquer uma das propriedades desse ativo esteja vinculada)

  • propriedade do modelo de ativos (obtenha todos os modelos de computação em que essa propriedade está vinculada)

  • propriedade do ativo (obtenha todos os modelos de computação em que essa propriedade está vinculada). Isso pode ser para fins informativos ou obrigatório quando o usuário tenta vincular essa propriedade a outro modelo de computação (mas ela já está vinculada a outro lugar).

Use a ListComputationModelDataBindingUsagesAPI para buscar uma lista de ComputationModelId s que usam o ativo (propriedade) ou o modelo de ativo (propriedade) como vinculação de dados.

Prepare um request.json com as seguintes informações:

{ "dataBindingValueFilter": { "asset": { "assetId": "<string>" } // OR "assetModel": { "assetModelId": "<string>" } // OR "assetProperty": { "assetId": "<string>", "propertyId": "<string>" } // OR "assetModelProperty": { "assetModelId": "<string>", "propertyId": "<string>" } }, "nextToken": "<string>", "maxResults": "<number>" }

Use o list-computation-model-data-binding-usages comando para recuperar os modelos com ativos ou modelos de ativos como vinculações de dados.

aws iotsitewise list-computation-model-data-binding-usages \ --cli-input-json file://request.json