AWS IoT Greengrass Version 1 entrou na fase de vida útil prolongada em 30 de junho de 2023. Para obter mais informações, consulte política de manutenção do AWS IoT Greengrass V1. Após essa data, AWS IoT Greengrass V1 não lançaremos atualizações que forneçam recursos, aprimoramentos, correções de erros ou patches de segurança. Os dispositivos que funcionam AWS IoT Greengrass V1 não serão interrompidos e continuarão operando e se conectando à nuvem. É altamente recomendável que você migre para AWS IoT Greengrass Version 2, o que adiciona novos recursos significativos e suporte para plataformas adicionais.
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á.
Executar a inferência de machine learning
Esse recurso está disponível para AWS IoT Greengrass Core v1.6 ou posterior.
Com AWS IoT Greengrass, você pode realizar inferência de aprendizado de máquina (ML) na borda em dados gerados localmente usando modelos treinados na nuvem. Você se beneficia da baixa latência e da redução de custos na execução da inferência local, e ainda aproveita a capacidade de computação em nuvem para modelos de treinamento e processamento complexo.
Para começar a realizar a inferência local, consulte Como configurar a inferência de machine learning usando o AWS Management Console.
Como a inferência de AWS IoT Greengrass ML funciona
Você pode treinar seus modelos de inferência em qualquer lugar, implantá-los localmente como recursos de machine learning em um grupo do Greengrass e, em seguida, acessá-los a partir das funções do Lambda do Greengrass. Por exemplo, você pode criar e treinar modelos de aprendizado profundo em SageMaker IA
O diagrama a seguir mostra o fluxo de trabalho AWS IoT Greengrass de inferência de ML.

AWS IoT Greengrass A inferência de ML simplifica cada etapa do fluxo de trabalho de ML, incluindo:
-
Criação e implantação de protótipos de estrutura do ML.
-
Acesso aos modelos treinados em nuvem e implementação em dispositivos de núcleo do Greengrass.
-
Criação de aplicativos de inferência que podem acessar aceleradores de hardware (como GPUs e FPGAs) como recursos locais.
Recursos de machine learning
Os recursos de aprendizado de máquina representam modelos de inferência treinados na nuvem que são implantados em um núcleo. AWS IoT Greengrass Para implantar recursos de machine learning, primeiro adicione os recursos a um grupo do Greengrass e defina como as funções do Lambda no grupo poderão acessá-los. Durante a implantação em grupo, AWS IoT Greengrass recupera os pacotes do modelo de origem da nuvem e os extrai para diretórios dentro do namespace de tempo de execução do Lambda. Em seguida, as funções do Lambda do Greengrass usam os modelos implantados localmente para realizar a inferência.
Para atualizar um modelo implantado localmente, primeiro atualize o modelo de origem (na nuvem) que corresponde ao recurso de machine learning e, em seguida, implemente o grupo. Durante a implantação, o AWS IoT Greengrass verifica se há alterações na origem. Se forem detectadas alterações, AWS IoT Greengrass atualiza o modelo local.
Fontes de modelo compatíveis
AWS IoT Greengrass suporta fontes de modelos de SageMaker IA e Amazon S3 para recursos de aprendizado de máquina.
Os requisitos a seguir se aplicam a fontes de modelo:
-
Os buckets do S3 que armazenam suas fontes de modelos de SageMaker IA e Amazon S3 não devem ser criptografados usando SSE-C. Para buckets que usam criptografia do lado do servidor, a inferência de AWS IoT Greengrass ML atualmente oferece suporte somente às opções de criptografia SSE-S3 ou SSE-KMS. Para obter mais informações sobre as opções criptografia no lado do servidor, consulte Protegendo dados usando criptografia no lado do servidor no Guia do usuário do Amazon Simple Storage Service.
-
Os nomes dos buckets do S3 que armazenam suas fontes de modelos de SageMaker IA e Amazon S3 não devem incluir pontos ().
.
Para obter mais informações, consulte a regra sobre como usar buckets hospedados virtualmente com SSL em Regras para nomenclatura de buckets no Guia do usuário do Amazon Simple Storage Service. -
O Região da AWS suporte em nível de serviço deve estar disponível tanto para a IA AWS IoT Greengrassquanto SageMaker para a IA. Atualmente, AWS IoT Greengrass oferece suporte a modelos de SageMaker IA nas seguintes regiões:
-
Leste dos EUA (Ohio)
-
Leste dos EUA (N. da Virgínia)
-
Oeste dos EUA (Oregon)
-
Ásia-Pacífico (Mumbai)
-
Ásia-Pacífico (Seul)
-
Ásia-Pacífico (Singapura)
-
Ásia-Pacífico (Sydney)
-
Ásia-Pacífico (Tóquio)
-
Europa (Frankfurt)
-
Europa (Irlanda)
-
Europa (Londres)
-
-
AWS IoT Greengrass deve ter
read
permissão para acessar a fonte do modelo, conforme descrito nas seções a seguir.
- SageMaker AI
-
AWS IoT Greengrass oferece suporte a modelos que são salvos como trabalhos de treinamento de SageMaker IA. SageMaker A IA é um serviço de ML totalmente gerenciado que você pode usar para criar e treinar modelos usando algoritmos integrados ou personalizados. Para obter mais informações, consulte O que é SageMaker IA? no Guia do desenvolvedor de SageMaker IA.
Se você configurou seu ambiente de SageMaker IA criando um bucket cujo nome contém
sagemaker
, então AWS IoT Greengrass tem permissão suficiente para acessar seus trabalhos de treinamento de SageMaker IA. A política gerenciadaAWSGreengrassResourceAccessRolePolicy
permite o acesso a buckets cujo nome contém a stringsagemaker
. Esta política é anexada à função de serviço do Greengrass.Caso contrário, você deverá conceder AWS IoT Greengrass
read
permissão ao bucket em que seu trabalho de treinamento está armazenado. Para fazer isso, incorpore a seguinte política em linha no perfil de serviço. Você pode listar vários buckets ARNs.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket
" ] } ] } - Amazon S3
-
AWS IoT Greengrass suporta modelos que são armazenados no Amazon S3 como
tar.gz
arquivos..zip
Para permitir o acesso AWS IoT Greengrass aos modelos armazenados nos buckets do Amazon S3, você deve conceder AWS IoT Greengrass
read
permissão para acessar os buckets fazendo o seguinte:-
Armazene seu modelo em um recipiente cujo nome contém
greengrass
.A política gerenciada
AWSGreengrassResourceAccessRolePolicy
permite o acesso a buckets cujo nome contém a stringgreengrass
. Esta política é anexada à função de serviço do Greengrass. -
Incorpore uma política inline na função de serviço do Greengrass.
Se o nome do seu intervalo não contiver
greengrass
, adicione a seguinte política inline à função de serviço. Você pode listar vários buckets ARNs.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket
" ] } ] }Para mais informações, consulte Incorporando políticas inline no Guia do usuário do IAM.
-
Requisitos
Os requisitos a seguir se aplicam para criar e usar recursos de machine learning:
-
Você deve estar usando o AWS IoT Greengrass Core v1.6 ou posterior.
-
As funções do Lambda definidas pela usuário podem realizar operações
read
ouread and write
no recurso. Permissões para outras operações não estão disponíveis. O modo de conteinerização das funções afiliadas do Lambda determina as permissões de acesso são definidas. Para obter mais informações, consulte Acesse os recursos de machine learning das funções do Lambda. -
Você precisa fornecer o caminho completo do recurso no sistema operacional do dispositivo de núcleo.
-
Um nome de recurso ou ID tem um comprimento máximo de 128 caracteres e deve usar o padrão
[a-zA-Z0-9:_-]+
.
Tempos de execução e bibliotecas para inferência de ML
Você pode usar os seguintes tempos de execução e bibliotecas de ML com AWS IoT Greengrass.
-
Tempo de execução de aprendizado profundo do Amazon SageMaker Neo
-
Apache MXNet
-
TensorFlow
Esses tempos de execução e bibliotecas podem ser instalados nas plataformas NVIDIA Jetson TX2, Intel Atom e Raspberry Pi. Para baixar as informações, consulte Bibliotecas e tempos de execução de machine learning compatíveis. Você pode instalá-los diretamente no dispositivo principal.
Leia as seguintes informações sobre compatibilidade e limitações.
SageMaker Tempo de execução de aprendizado profundo AI Neo
Você pode usar o tempo de execução de aprendizado profundo SageMaker AI Neo para realizar inferências com modelos otimizados de aprendizado de máquina em seus AWS IoT Greengrass dispositivos. Esses modelos são otimizados usando o compilador de aprendizado profundo SageMaker AI Neo para melhorar as velocidades de previsão de inferência de aprendizado de máquina. Para obter mais informações sobre otimização de modelos em SageMaker IA, consulte a documentação do SageMaker AI Neo.
nota
No momento, é possível otimizar modelos de machine learning usando o compilador de aprendizado profundo do Neo somente em Regiões específicas da Amazon Web Services. No entanto, você pode usar o tempo de execução de aprendizado profundo Neo com modelos otimizados em cada um Região da AWS onde o AWS IoT Greengrass núcleo é suportado. Para obter informações, consulte Como configurar a inferência otimizada de Machine Learning.
MXNet versionamento
Atualmente, o Apache MXNet não garante compatibilidade futura, portanto, os modelos que você treina usando versões posteriores da estrutura podem não funcionar corretamente nas versões anteriores da estrutura. Para evitar conflitos entre os estágios de treinamento e fornecimento de modelos e fornecer uma end-to-end experiência consistente, use a mesma versão da MXNet estrutura em ambos os estágios.
MXNet no Raspberry Pi
As funções do Greengrass Lambda que acessam MXNet modelos locais devem definir a seguinte variável de ambiente:
MXNET_ENGINE_TYPE=NativeEngine
É possível definir a variável de ambiente no código da função ou adicioná-la à configuração específica do grupo da função. Para um exemplo que a adiciona como uma configuração, consulte esta etapa.
nota
Para uso geral da MXNet estrutura, como executar um exemplo de código de terceiros, a variável de ambiente deve ser configurada no Raspberry Pi.
TensorFlow limitações de fornecimento de modelos no Raspberry Pi
As recomendações a seguir para melhorar os resultados da inferência são baseadas em nossos testes com as bibliotecas Arm de TensorFlow 32 bits na plataforma Raspberry Pi. Estas recomendações são destinadas apenas para usuários avançados, sem garantias de qualquer tipo.
-
Modelos treinados usando o formato de ponto de verificação
deve ser "congelado" para o formato de buffer de protocolo antes do fornecimento. Para ver um exemplo, consulte a biblioteca TensorFlowde modelos de classificação de imagens -Slim . -
Não use as bibliotecas TF-Estimator e TF-Slim no código de treinamento nem no de inferência. Em vez disso, use o arquivo
.pb
padrão de carregamento do modelo mostrado no exemplo a seguir.graph = tf.Graph() graph_def = tf.GraphDef() graph_def.ParseFromString(pb_file.read()) with graph.as_default(): tf.import_graph_def(graph_def)
nota
Para obter mais informações sobre plataformas suportadas para TensorFlow, consulte Instalação TensorFlow