Esta postagem foi escrita em colaboração com Brad Duncan, Rachel Johnson e Richard Alcock da MathWorks.
MATLAB é uma ferramenta de programação popular para uma ampla gama de aplicações, como processamento de dados, computação paralela, automação, simulação, aprendizado de máquina e inteligência artificial. É muito utilizado em muitos setores, como automotivo, aeroespacial, comunicação e manufatura. Nos últimos anos, a MathWorks trouxe muitas ofertas de produtos para a nuvem, especialmente em Amazon Web Services (AWS). Para obter mais detalhes sobre os produtos em nuvem MathWorks, consulte MATLAB e Simulink na nuvem or e-mail Mathworks.
Nesta postagem, trazemos os recursos de aprendizado de máquina do MATLAB para Amazon Sage Maker, que tem vários benefícios significativos:
- Recursos de computação: O uso do ambiente de computação de alto desempenho oferecido pelo SageMaker pode acelerar o treinamento de aprendizado de máquina.
- Colaboração: MATLAB e SageMaker juntos fornecem uma plataforma robusta que as equipes podem usar para colaborar de forma eficaz na construção, teste e implantação de modelos de aprendizado de máquina.
- Implantação e acessibilidade: os modelos podem ser implantados como endpoints em tempo real do SageMaker, tornando-os prontamente acessíveis para outros aplicativos processarem dados de streaming ao vivo.
Mostramos como treinar um modelo de aprendizado de máquina MATLAB como um trabalho de treinamento do SageMaker e, em seguida, implantar o modelo como um endpoint em tempo real do SageMaker para que ele possa processar dados de streaming ao vivo.
Para fazer isso, usaremos um exemplo de manutenção preditiva onde classificamos falhas em uma bomba operacional que transmite dados de sensores ao vivo. Temos acesso a um grande repositório de dados rotulados gerados a partir de um simulink simulação que possui três tipos de falha possíveis em várias combinações possíveis (por exemplo, um estado íntegro e sete estados defeituosos). Como temos um modelo do sistema e as falhas são raras em operação, podemos aproveitar os dados simulados para treinar nosso algoritmo. O modelo pode ser ajustado para corresponder aos dados operacionais de nossa bomba real usando técnicas de estimativa de parâmetros em MATLAB e Simulink.
Nosso objetivo é demonstrar o poder combinado do MATLAB e do Amazon SageMaker usando este exemplo de classificação de falhas.
Começamos treinando um modelo de classificador em nosso desktop com MATLAB. Primeiro, extraímos recursos de um subconjunto do conjunto de dados completo usando o Designer de recursos de diagnóstico app e, em seguida, execute o treinamento do modelo localmente com um modelo de árvore de decisão MATLAB. Quando estivermos satisfeitos com as configurações dos parâmetros, podemos gerar uma função MATLAB e enviar o trabalho junto com o conjunto de dados para o SageMaker. Isso nos permite ampliar o processo de treinamento para acomodar conjuntos de dados muito maiores. Depois de treinar nosso modelo, nós o implantamos como um endpoint ativo que pode ser integrado a um aplicativo ou painel downstream, como um aplicativo da Web MATLAB.
Este exemplo resumirá cada etapa, fornecendo uma compreensão prática de como aproveitar o MATLAB e o Amazon SageMaker para tarefas de machine learning. O código completo e a descrição do exemplo estão disponíveis neste repositório.
Pré-requisitos
- Ambiente de trabalho do MATLAB 2023a ou posterior com MATLAB Compiler e Statistics and Machine Learning Toolbox no Linux. Aqui está um guia rápido sobre como executar o MATLAB na AWS.
- Docker configurado em um Amazon Elastic Compute Cloud (Amazon EC2) instância onde o MATLAB está sendo executado. Qualquer Ubuntu or Linux.
- Instalação de Interface de linha de comando da AWS (AWS CLI), Configuração da AWS e Python3.
- AWS CLI, já deve estar instalado se você seguiu o guia de instalação de step 1.
- Configurar o AWS Configure para interagir com os recursos da AWS.
- Verifique a instalação do python3 executando
python -V
orpython --version
comando em seu terminal. Instale o Python, se necessário.
- Copie este repositório para uma pasta em sua máquina Linux executando:
- Verifique a permissão na pasta repo. Se não tiver permissão de gravação, execute o seguinte comando shell:
- Construa o contêiner de treinamento MATLAB e envie-o para o Amazon Elastic Container Registry (Amazon ECR).
- Navegue até a pasta
docker
- Crie um repositório do Amazon ECR usando a AWS CLI (substitua REGION pela região AWS de sua preferência)
- Execute o seguinte comando do docker:
- Navegue até a pasta
- Abra o MATLAB e abra o script ao vivo chamado
PumpFaultClassificationMATLABSageMaker.mlx
na pastaexamples/PumpFaultClassification
. Torne esta pasta sua pasta de trabalho atual no MATLAB.
Parte 1: Preparação de dados e extração de recursos
A primeira etapa em qualquer projeto de aprendizado de máquina é preparar seus dados. MATLAB fornece uma ampla gama de ferramentas para importar, limpar e extrair recursos de seus dados.:
A SensorData.mat
o conjunto de dados contém 240 registros. Cada registro possui dois horários: flow
e pressure
. A coluna de destino é faultcode
, que é uma representação binária de três possíveis combinações de falhas na bomba. Para essas tabelas de série temporal, cada tabela tem 1,201 linhas que imitam 1.2 segundos de medição de vazão e pressão da bomba com incremento de 0.001 segundos.
Em seguida, o aplicativo Diagnostic Feature Designer permite extrair, visualizar e classificar uma variedade de recursos dos dados. Aqui você usa Recursos automotivos, que extrai rapidamente um amplo conjunto de recursos no domínio do tempo e da frequência do conjunto de dados e classifica os principais candidatos para treinamento de modelo. Você pode então exportar uma função MATLAB que recalculará os 15 recursos mais bem classificados a partir de novos dados de entrada. Vamos chamar essa função extractFeaturesTraining
. Esta função pode ser configurada para receber todos os dados em um lote ou como dados de streaming.
Esta função produz uma tabela de recursos com códigos de falha associados, conforme mostrado na figura a seguir:
Parte 2: Organizar dados para SageMaker
Em seguida, você precisa organizar os dados de uma forma que o SageMaker possa usar para treinamento de aprendizado de máquina. Normalmente, isso envolve a divisão dos dados em conjuntos de treinamento e validação e a divisão dos dados do preditor da resposta alvo.
Nesta fase, podem ser necessárias outras operações mais complexas de limpeza e filtragem de dados. Neste exemplo, os dados já estão limpos. Potencialmente, se o processamento de dados for muito complexo e demorado, os trabalhos de processamento do SageMaker poderão ser usados para executá-los separadamente do treinamento do SageMaker, para que possam ser separados em duas etapas.
trainPredictors = trainingData(:,2:end);
trainResponse = trainingData(:,1);
Parte 3: Treine e teste um modelo de aprendizado de máquina no MATLAB
Antes de migrar para o SageMaker, é uma boa ideia construir e testar o modelo de aprendizado de máquina localmente no MATLAB. Isso permite iterar e depurar rapidamente o modelo. Você pode configurar e treinar localmente um classificador de árvore de decisão simples.
classifierModel = fitctree(...
trainPredictors,...
trainResponse,...
OptimizeHyperparameters='auto');
O trabalho de treinamento aqui deve levar menos de um minuto para ser concluído e gera alguns gráficos para indicar o progresso do treinamento. Após o término do treinamento, um modelo de aprendizado de máquina MATLAB é produzido. O Aluno de classificação app pode ser usado para testar vários tipos de modelos de classificação e ajustá-los para melhor desempenho e, em seguida, produzir o código necessário para substituir o código de treinamento do modelo acima.
Depois de verificar as métricas de precisão do modelo treinado localmente, podemos migrar o treinamento para o Amazon SageMaker.
Parte 4: treinar o modelo no Amazon SageMaker
Quando estiver satisfeito com o modelo, você poderá treiná-lo em escala usando o SageMaker. Para começar a chamar SDKs do SageMaker, você precisa iniciar uma sessão do SageMaker.
session = sagemaker.Session();
Especifique uma execução do SageMaker Papel do IAM que os trabalhos de treinamento e a hospedagem de endpoint usarão.
role = "arn:aws:iam::ACCOUNT:role/service-role/AmazonSageMaker-ExecutionRole-XXXXXXXXXXXXXXX";
No MATLAB, salve os dados de treinamento como um arquivo .csv em um Serviço de armazenamento simples da Amazon (Amazon S3) balde.
writetable(trainingData,'pump_training_data.csv');
trainingDataLocation = "s3:// "+session.DefaultBucket+ +"/cooling_system/input/pump_training";
copyfile("pump_training_data.csv", trainingDataLocation);
Crie um estimador SageMaker
Em seguida, você precisa criar um estimador SageMaker e passar todos os parâmetros necessários para ele, como imagem docker de treinamento, função de treinamento, variáveis de ambiente, tamanho da instância de treinamento e assim por diante. O URI da imagem de treinamento deve ser o URI do Amazon ECR que você criou na etapa de pré-requisito com o formato ACCOUNT.dkr.ecr.us-east-1.amazonaws.com/sagemaker-matlab-training-r2023a:latest
. A função de treinamento deve ser fornecida na parte inferior do script ao vivo do MATLAB.
Enviar trabalho de treinamento do SageMaker
Chamar o método fit do estimador envia o trabalho de treinamento para o SageMaker.
est.fit(training=struct(Location=trainingDataLocation, ContentType="text/csv"))
Você também pode verificar o status do trabalho de treinamento no console do SageMaker:
Após a conclusão dos trabalhos de treinamento, selecionar o link do trabalho leva você à página de descrição do trabalho, onde você pode ver o modelo MATLAB salvo no bucket S3 dedicado:
Parte 5: Implantar o modelo como um endpoint SageMaker em tempo real
Após o treinamento, você pode implantar o modelo como um endpoint SageMaker em tempo real, que pode ser usado para fazer previsões em tempo real. Para fazer isso, chame o método deploy do estimador. É aqui que você pode configurar o tamanho de instância desejado para hospedagem, dependendo da carga de trabalho.
Nos bastidores, esta etapa cria uma imagem docker de inferência e a envia para o repositório do Amazon ECR; nada é exigido do usuário para criar o contêiner de inferência. A imagem contém todas as informações necessárias para atender à solicitação de inferência, como localização do modelo, informações de autenticação MATLAB e algoritmos. Depois disso, o Amazon SageMaker cria uma configuração de endpoint do SageMaker e finalmente implanta o endpoint em tempo real. O endpoint pode ser monitorado no console do SageMaker e pode ser encerrado a qualquer momento se não for mais usado.
Parte 6: Teste o endpoint
Agora que o endpoint está instalado e funcionando, você pode testá-lo fornecendo alguns registros para prever. Use o código a seguir para selecionar 10 registros dos dados de treinamento e enviá-los ao endpoint para previsão. O resultado da previsão é enviado de volta do endpoint e mostrado na imagem a seguir.
Parte 7: Integração do painel
O endpoint SageMaker pode ser chamado por muitos serviços nativos da AWS. Também pode ser usado como uma API REST padrão se implantado junto com um AWS Lambda função e gateway API, que pode ser integrado com qualquer aplicação web. Para esse caso de uso específico, você pode usar a ingestão de streaming com o Amazon SageMaker Feature Store e o Amazon Managed Streaming for Apache Kafka, MSK, para tomar decisões baseadas em machine learning quase em tempo real. Outra integração possível é usar uma combinação de Amazon Kinesis, SageMaker e Apache Flink para criar um aplicativo gerenciado, confiável, escalável e altamente disponível, capaz de fazer inferência em tempo real em um fluxo de dados.
Depois que os algoritmos são implantados em um endpoint do SageMaker, você pode visualizá-los usando um painel que exibe previsões de streaming em tempo real. No aplicativo da web MATLAB personalizado a seguir, você pode ver dados de pressão e vazão por bomba e previsões de falhas em tempo real do modelo implantado.
Este painel inclui um modelo de vida útil restante (RUL) para prever o tempo até a falha de cada bomba em questão. Para aprender como treinar algoritmos RUL, consulte Caixa de ferramentas de manutenção preditiva.
Clean Up
Depois de executar esta solução, limpe todos os recursos desnecessários da AWS para evitar custos inesperados. Você pode limpar esses recursos usando o SDK Python do SageMaker ou o AWS Management Console para os serviços específicos usados aqui (SageMaker, Amazon ECR e Amazon S3). Ao excluir esses recursos, você evita cobranças adicionais por recursos que não usa mais.
Conclusão
Demonstramos como você pode trazer o MATLAB para o SageMaker para um caso de uso de manutenção preditiva de bombas com todo o ciclo de vida do aprendizado de máquina. O SageMaker fornece um ambiente totalmente gerenciado para executar cargas de trabalho de aprendizado de máquina e implantar modelos com uma grande seleção de instâncias de computação que atendem a diversas necessidades.
Aviso Legal: O código usado nesta postagem pertence e é mantido pela MathWorks. Consulte os termos de licença no repositório GitHub. Para quaisquer problemas com o código ou solicitações de recursos, abra um problema do GitHub no repositório
Referências
Sobre os autores
Brad Duncan é o gerente de produto para recursos de aprendizado de máquina na caixa de ferramentas de estatística e aprendizado de máquina da MathWorks. Ele trabalha com clientes para aplicar IA em novas áreas de engenharia, como incorporação de sensores virtuais em sistemas projetados, construção de modelos explicáveis de aprendizado de máquina e padronização de fluxos de trabalho de IA usando MATLAB e Simulink. Antes de ingressar na MathWorks, ele liderou equipes de simulação 3D e otimização da aerodinâmica de veículos, experiência do usuário para simulação 3D e gerenciamento de produtos para software de simulação. Brad também é professor convidado na Tufts University na área de aerodinâmica veicular.
Richard Alcock é gerente sênior de desenvolvimento para integrações de plataforma em nuvem na MathWorks. Nessa função, ele é fundamental na integração perfeita dos produtos MathWorks em plataformas de nuvem e contêineres. Ele cria soluções que permitem que engenheiros e cientistas aproveitem todo o potencial do MATLAB e do Simulink em ambientes baseados em nuvem. Anteriormente, ele foi engenheiro de software na MathWorks, desenvolvendo soluções para suportar fluxos de trabalho de computação paralela e distribuída.
Raquel Johnson é gerente de produto para manutenção preditiva na MathWorks e é responsável pela estratégia geral de produto e marketing. Anteriormente, ela foi engenheira de aplicação, apoiando diretamente a indústria aeroespacial em projetos de manutenção preditiva. Antes da MathWorks, Rachel foi engenheira de simulação de aerodinâmica e propulsão na Marinha dos EUA. Ela também passou vários anos ensinando matemática, física e engenharia.
Shun Mao é arquiteto sênior de soluções parceiras de IA/ML na equipe de tecnologias emergentes da Amazon Web Services. Ele adora trabalhar com clientes empresariais e parceiros para projetar, implantar e dimensionar aplicativos de IA/ML para derivar seus valores de negócios. Fora do trabalho, gosta de pescar, viajar e jogar pingue-pongue.
Ramesh Jatiya é arquiteto de soluções na equipe de fornecedores independentes de software (ISV) da Amazon Web Services. Ele adora trabalhar com clientes ISV para projetar, implantar e dimensionar seus aplicativos na nuvem para obter seus valores de negócios. Ele também está cursando MBA em Machine Learning e Business Analytics pelo Babson College, Boston. Fora do trabalho, gosta de correr, jogar tênis e cozinhar.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- PlatoData.Network Gerativa Vertical Ai. Capacite-se. Acesse aqui.
- PlatoAiStream. Inteligência Web3. Conhecimento Amplificado. Acesse aqui.
- PlatãoESG. Carbono Tecnologia Limpa, Energia, Ambiente, Solar, Gestão de resíduos. Acesse aqui.
- PlatoHealth. Inteligência em Biotecnologia e Ensaios Clínicos. Acesse aqui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/machine-learning-with-matlab-and-amazon-sagemaker/
- :tem
- :é
- :não
- :onde
- $UP
- 001
- 1
- 10
- 100
- 15%
- 152
- 19
- 20
- 3d
- 7
- 8
- a
- Sobre
- acima
- Acesso
- acessível
- acomodar
- Conta
- precisão
- Vantagem
- Indústria aeroespacial
- Depois de
- AI
- AI / ML
- algoritmo
- algoritmos
- Todos os Produtos
- permite
- juntamente
- já
- tb
- Amazon
- Amazon EC2
- Amazon Sage Maker
- Amazon Web Services
- an
- analítica
- e
- Outro
- qualquer
- apache
- à parte
- api
- app
- aplicativo permite
- Aplicação
- aplicações
- Aplicar
- SOMOS
- ÁREA
- áreas
- artificial
- inteligência artificial
- AS
- associado
- At
- Autenticação
- auto
- Automação
- automotivo
- disponível
- evitar
- AWS
- Console de gerenciamento da AWS
- Babson
- em caminho duplo
- BE
- Porque
- antes
- começar
- Benefícios
- MELHOR
- Boston
- Inferior
- prego
- trazer
- amplo
- Trazido
- construir
- Prédio
- Constrói
- negócio
- by
- chamada
- chamado
- chamada
- CAN
- candidatos
- capacidades
- capaz
- casas
- acusações
- verificar
- a verificação
- classificação
- classificar
- limpar
- Limpeza
- Na nuvem
- Plataforma em nuvem
- código
- códigos
- colaborar
- colaboração
- Faculdade
- Coluna
- COM
- combinação
- combinações
- combinado
- vinda
- Comunicação
- integrações
- Computar
- computação
- Configuração
- configurado
- cônsul
- consumindo
- Recipiente
- contém
- custos
- crio
- criado
- cria
- Atual
- personalizadas
- Clientes
- painel de instrumentos
- dados,
- Preparação de dados
- informática
- conjuntos de dados
- decisão
- decisões
- dedicado
- demonstrar
- demonstraram
- Dependendo
- implantar
- implantado
- Implantação
- implanta
- derivar
- descrição
- Design
- Designer
- desejado
- área de trabalho
- detalhes
- em desenvolvimento
- Desenvolvimento
- diagnóstico
- diretamente
- monitores
- distribuído
- computação distribuída
- do
- Estivador
- parece
- domínio
- Duncan
- cada
- efetivamente
- ou
- emergente
- tecnologias emergentes
- permitir
- final
- Ponto final
- engenheiro
- engenharia
- Engenharia
- Engenheiros
- Empreendimento
- Todo
- Meio Ambiente
- ambientes
- especialmente
- exemplo
- execução
- vasta experiência
- exportar
- extrato
- Extractos
- Falha
- falhas
- defeituoso
- Característica
- Funcionalidades
- poucos
- Figura
- Envie o
- filtragem
- Finalmente
- acabamento
- Primeiro nome
- Pescaria
- caber
- fluxo
- seguido
- seguinte
- segue
- Escolha
- formato
- Frequência
- da
- cheio
- totalmente
- função
- mais distante
- porta de entrada
- gerar
- gerado
- gera
- GitHub
- Dando
- Bom estado, com sinais de uso
- gráficos
- ótimo
- Locatário
- guia
- arreios
- Ter
- he
- Saúde
- saudável
- fortemente
- SUA PARTICIPAÇÃO FAZ A DIFERENÇA
- alta performance
- altamente
- hospedagem
- Como funciona o dobrador de carta de canal
- Como Negociar
- HTML
- HTTPS
- idéia
- if
- imagem
- importador
- in
- inclui
- incorporando
- incremento
- de treinadores em Entrevista Motivacional
- indicam
- indústrias
- indústria
- INFORMAÇÕES
- iniciar
- entrada
- instalar
- instalação
- instalado
- instância
- instrumental
- integrado
- Integração
- integração
- integrações
- Inteligência
- interagir
- Interface
- para dentro
- emitem
- questões
- Isv
- IT
- Trabalho
- Empregos
- Johnson
- jpg
- grande
- Maior
- mais tarde
- mais recente
- APRENDER
- aprendizagem
- levou
- menos
- Alavancagem
- Licença
- vida
- wifecycwe
- LINK
- linux
- viver
- localmente
- localização
- entrar
- mais
- máquina
- aprendizado de máquina
- manutenção
- fazer
- Fazendo
- gerenciados
- de grupos
- Gerente
- fabrica
- muitos
- Marketing
- Match
- matemática
- medição
- método
- Métrica
- poder
- minuto
- ML
- modelo
- modelos
- Monitore
- monitorados
- mais
- mover
- em movimento
- muito
- Nomeado
- nativo
- Perto
- necessário
- você merece...
- necessário
- Cria
- Novo
- não
- nada
- objetivo
- of
- oferecido
- Ofertas
- on
- uma vez
- ONE
- aberto
- operação
- operacional
- Operações
- otimização
- or
- Outros
- A Nossa
- saída
- lado de fora
- global
- propriedade
- página
- Paralelo
- parâmetro
- parâmetros
- particular
- parceiro
- Parceiros
- passar
- apaixonado
- atuação
- permissão
- Física
- plataforma
- Plataformas
- platão
- Inteligência de Dados Platão
- PlatãoData
- jogar
- por favor
- Popular
- possível
- Publique
- potencial
- potencialmente
- poder
- Prática
- predizer
- predição
- Previsões
- Predictor
- preferido
- preparação
- Preparar
- pressão
- evitar
- anteriormente
- Prévio
- processo
- em processamento
- produzir
- Produzido
- produz
- Produto
- gestão de produtos
- gerente de produto
- Produtos
- Programação
- Progresso
- projeto
- projetos
- propulsão
- fornecer
- fornecido
- fornece
- fornecendo
- bomba
- Empurrar
- empurra
- Python
- questão
- rapidamente
- alcance
- classificar
- classificado
- fileiras
- RARO
- prontamente
- reais
- em tempo real
- recentemente
- registro
- registros
- referir
- região
- registro
- confiável
- remanescente
- substituir
- repositório
- representação
- solicitar
- pedidos
- requeridos
- Recursos
- resposta
- responsável
- DESCANSO
- resultar
- Richard
- uma conta de despesas robusta
- Tipo
- Execute
- corrida
- sábio
- satisfeito
- satisfeito com
- Salvar
- salvo
- escalável
- Escala
- Cenas
- cientistas
- escrita
- SDK
- sem problemas
- segundo
- Vejo
- selecionando
- doadores,
- enviar
- senior
- sensor
- enviei
- Série
- servir
- serviço
- Serviços
- de servir
- Sessão
- conjunto
- Conjuntos
- Configurações
- Sete
- vários
- ela
- concha
- rede de apoio social
- mostrar
- mostrando
- periodo
- simples
- simulação
- Tamanho
- So
- Software
- Engenharia de software
- solução
- Soluções
- alguns
- específico
- velocidade
- gasto
- Etapa
- padrão
- padronização
- começo
- Unidos
- estatística
- Status
- Passo
- Passos
- armazenamento
- loja
- Estratégia
- transmitir canais
- de streaming
- tal
- resumir
- ajuda
- Apoiar
- certo
- .
- sistemas
- mesa
- TAG
- Tire
- toma
- Target
- tarefas
- Ensino
- Profissionais
- equipes
- técnicas
- Tecnologias
- terminal
- condições
- teste
- ensaio
- do que
- que
- A
- A área
- deles
- Eles
- então
- Este
- deles
- isto
- aqueles
- três
- tempo
- Séries temporais
- para
- juntos
- ferramenta
- Caixa de ferramentas
- ferramentas
- topo
- Trem
- Training
- Viagens
- árvore
- tentar
- afinação
- afinado
- dois
- tipos
- tipicamente
- compreensão
- Inesperado
- universidade
- us
- usar
- caso de uso
- usava
- Utilizador
- Experiência do Usuário
- utilização
- validação
- Valores
- variedade
- vário
- veículo
- fornecedor
- muito
- Virtual
- visualizar
- queremos
- foi
- Caminho..
- we
- web
- Aplicativos da web
- serviços web
- qual
- Largo
- Ampla variedade
- precisarão
- de
- Atividades:
- fluxos de trabalho
- trabalhar
- trabalho
- escrever
- escrito
- anos
- Vocês
- investimentos
- zefirnet