Fala galera, beleza? Vamos falar agora de um pouquinho sobre Machine Learning, tá galera? A gente vai falar um pouquinho sobre o SageMaker. O SageMaker é um serviço ali também gerenciado pela AWS, tá bom? E ele permite com que cientistas de dados, eles consigam treinar e implementar modelos de Machine Learning de forma mais rápida e mais eficiente. Ele vai oferecer um ambiente integrado para você ter mais facilidade para todo o fluxo de trabalho de Machine Learning. Para quem conhece esse fluxo, sabe que ele tem vários passos a passo, tem bastante coisa para ser feita, não é só simplesmente sair usando dados, etc. Você tem muitas coisas que são feitas antes da implementação do modelo. Então o SageMaker ajuda muito nessa estratégia. É um mundo à parte de quem está no desenvolvimento básico, o desenvolvimento do dia a dia, onde a gente está falando de Machine Learning, é um mundo à parte, um mundo gigantesco. A gente vai dar uma passada aqui, um pouquinho no SageMaker, para vocês entenderem como ele funciona, e saberem que tem essa ferramenta que vocês podem acabar utilizando aí no dia a dia de vocês, beleza? Então, vamos lá. a primeira coisa é o conceito de notebooks, para quem já está acostumado com Machine Learning, conhece mais como que funciona os notebooks, mas para quem não está acostumado, vamos dar uma passada rapidinho, tá bom? Os notebooks, eles são ali baseados em Jupyter, como a maior parte de quem usa notebooks acaba se baseando em Júpiter, porque é o mais famoso ali nos ambientes para a gente fazer ciência de dados, tá bom? Então ele é um dos mais interativos, mais populares ali entre os cientistas de dados, para compartilhar documento e visualização, explicação de narrativa e assim por diante. No SageMaker, esses notebooks são totalmente gerenciados, o que significa que a AWS vai fazer todo o controle dele. Tanto de subida de máquina para que ele funcione, então a gente está falando de infraestrutura para funcionamento dele, quanto de infraestrutura para guarda de informação e busca de informação, e assim por diante, vai ser tudo gerenciado pela própria AWS. O SageMaker tem aqui algumas ferramentas que são integradas para a rotulação, para a transformação de dados e assim por diante. E elas vão ajudar você a preparar os dados para depois treinamento da sua máquina de Machine Learning, para você conseguir garantir que seus dados estão limpos, estão bem rotulados e estão de forma correta para você fazer um bom treino de máquina depois. fazer um bom treino de máquina depois. Ele tem uma funcionalidade, que é o SageMaker GoTo, que ele vai ajudar você na criação de conjuntos de dados rotulados. Com isso, esse carinha aqui, ele tem Machine Learning integrado nele, que vai ajudar você a fazer a rotulação dos dados e fazer com mais eficiência e com mais precisão também essa rotulação de dados. É um cara bem legal para te ajudar nesse sentido. Ele tem uma rotulação automatizada e manual, então ele permite que você faça uma rotulação automática de dados usando o Machine Learning também para rotular primeiro os dados e depois dos dados rotulados você pode colocar um passo de revisão por humanos para garantir a alta precisão desses dados. Você também tem ali um fluxo de trabalho de rotulação. Você pode criar fluxo de trabalho personalizado para o modelo de rotulação que você quer colocar, colocando quais são as tarefas que você quer, tanto para anotadores humanos, quanto automatizados na parte do processo. Você também pode usar serviços de anotação, ou seja, se você quiser usar de algum fornecedor privado ou se você quiser usar algum outro tipo de serviço de anotação, você consegue. Ele vai se integrar a serviço de anotação humana. Você consegue ter ou anotadores internos ali ou contratar algum anotador externo. Você tem o Amazon Mechanical Turk que pode te ajudar ou os fornecedores privados que também você pode buscar para tentar fazer essa rotulação da melhor forma. Ele também fornece algumas ferramentas para fazer transformação de dados, então quando você precisa fazer um processamento antes do treinamento do modelo, para você transformar os dados e deixá-los mais coerentes, ele vai te possibilitar algumas ferramentas. Uma delas é a normalização, o processo de normalização ou padronização ali, para garantir que os recursos estejam na mesma escala, para você não estar analisando dados em escalas diferentes e com esse teu melhor desempenho ali do seu modelo não tem nenhum tipo de de gap tem a extração de características em totalmente que ela consegue extrair características de dado bruto tanto quando você tem atributos que são importantes ou de texto ou de imagem você consegue extrair com esse carinha que vai ser essencial e também para o seu machine learning você consegue fazer limpeza de dados e tem você tem métodos para lidar com falta de dados, para remover outlier, para corrigir alguma inconsistência que você tiver. Então quando a gente está falando de dados, você consegue fazer uma primeira limpeza para ter um conjunto de dados que seja mais fiel para o que você precisa fazer. E você tem um pipeline de transformação ali, você consegue criar um pipeline de transformação que automatiza também várias etapas de pré-processamento, garantindo que as transformações foram feitas para depois você entrar em um estado de treino de máquina. O SageMaker permite que você também treine os modelos de Machine Learning em grande escala. Como a gente tem um ambiente ali AWS, eles aproveitaram disso para a gente gerar os mesmos benefícios que a gente tem em aplicações distribuídas, por exemplo, para a gente falar sobre Machine Learning também. Então ele tem ali um processo que ele vai ser gerenciado e simplificado para a gente conseguir fazer os trabalhos de treinamento, por exemplo, de Machine Learning. Quando a gente está falando desses trabalhos, a gente pode ter primeiro aqui um treinamento distribuído, por exemplo. Aqui a descrição e como funciona, a gente está falando do seguinte. São os mesmos modelos de quando a gente está falando de computação distribuída. Então a gente consegue fazer um treinamento que você divida o seu treinamento grande ali em várias instâncias menores, e daí você vai quebrar e processar de forma paralela, acelerando significativamente o tempo que você precisa para treinar modelos complexos. Para quem sabe, quando a gente está trabalhando com modelos complexos, grandes conjuntos de dados, a gente está falando de um treino pesado, é muito processamento, precisa de muita máquina e muito tempo para conseguir fazer alguns tipos de treinamento. Então, quando a gente fala de usar as mesmas estratégias que a gente tem ali de aplicações modernas, aplicações escaláveis e de distribuição de carga, para um treino de modelo de Machine Learning é bem legal, é bem crucial, dá para usar para bastante coisa aqui e para melhorar muito a velocidade de entrega, tá bom? Então, você pode configurar ali um trabalho de treinamento para usar várias instâncias de computação, e acabar trabalhando em paralelo, e em paralelo eles vão ser muito mais rápidos para fazer esse tipo de coisa. Então o SageMaker acaba usando dessa estratégia também. Você pode usar também uma outra coisa para diminuir o seu custo, são as instâncias Spot. Então o SageMaker consegue te ajudar nisso também usando as instâncias spots ali de EC2 por um preço reduzido e com isso eles vão conseguir te dar um valor bem mais baixo para a execução do que você precisa então ao usar essas instâncias EC2 você pode reduzir o custo e o SageMaker vai gerenciar automaticamente quando tiver algum tipo de interrupção porque as instânciaserenciar automaticamente quando tiver algum tipo de interrupção, porque as instâncias Spot você sabe que elas podem ter algum tipo de interrupção, o SageMaker vai lidar com isso, mas vai te dar em contrapartida um custo bem mais baixo. Então o benefício aqui é a redução de custo de até 90% quando a gente está falando das instâncias sob demanda, tá? Então a gente consegue ser muito mais econômico usando esse tipo de estratégia. O SageMaker também é muito bom na hora do nosso processo de implementação, ou seja, a gente já falou do modelo criado, treinado, e agora vamos falar do processo de implementação dele, tá? Quando a gente está falando do processo de implementação, o SageMaker vai permitir que você faça algumas estratégias para colocar isso em produção com facilidade. Então você vai conseguir pensar em diferentes necessidades de negócio para você conseguir fazer a inferência tanto em tempo real ou em lote, dependendo do que você precisar fazer. Vamos falar um pouco sobre inferência em tempo real, onde os modelos podem responder as solicitações de predição instantaneamente. Então, aqui quando a gente está precisando de uma coisa mais transacional, diga-se de passagem, ou seja, quando eu preciso fazer uma análise durante a execução, durante a coisa acontecendo, esse cara é muito bom. Então, eu consigo fazer uma resposta muito rápida. Então, por exemplo, se eu precisar responder uma análise de fraude, ah, poxa, será que esse cliente está usando o cartão dele mesmo, ou será que ele roubou, ou assim por diante, por exemplo, esse tipo de estratégia é bem legal. Ele tem uma escalabilidade aqui, então os endpoints podem ser escalados de forma horizontal, adicionando mais instâncias conforme a gente tiver mais demanda ou seja você consegue colocar instância instância de forma horizontal assim como a gente falou ali das nossas aplicações quando a gente tá falando de dados por trás a gente vai tá executando máquinas também e você consegue fazer isso com fazendo com que as solicitações aliás consigam ser atendidas sem nenhuma interrupção e garantindo a velocidade também. O benefício é que ela é ideal para aplicações que precisam de resposta rápida. Então como eu falei, se a gente tiver um aplicativo web, sistema de recomendação, então poxa, o cliente entrou, preciso recomendar para ele a melhor coisa e assim por diante, até detecção de fraude, como eu falei, são aplicações que tem a tendência a usar esse tipo de endpoint em tempo real do SageMaker a gente também tem o batch transform esse cara aqui, ele já foi feito pra processar coisas em lote ideal pra coisas quando a gente está falando de grandes volumes e que a gente precisa processar de uma vez só então ele consegue processar dados em lote ele aplica ali um modelo de predição e armazena ali em um S3, por exemplo, em um bucket S3, nesse processamento. Isso é ótimo aqui para a tarefa que a gente tem de predição periódica, por exemplo, análise de log, processamento histórico, conjunto de dados histórico, ou quando a gente precisa de uma coisa onde a latência, o tempo de resposta não precisa ser tão rápido, não é uma criticidade para o negócio, tá bom? Tem uma outra coisa também que tem o teste AB, que também é bem interessante, a gente consegue fazer uma divisão de tráfego, e a gente consegue entender melhor como é que as versões de modelo implementado nesses endpoints, elas conseguem responder ao que foi colocado então você consegue colocar 50% das equições do modelo A, 50% do modelo B e ver como é que eles se saem por exemplo, você consegue coletar métricas desse teste, para ver como é que está sendo precisão, latência taxa de erros e assim por diante para ver cada versão desse modelo e você consegue fazer anál análise, a decisão com base nas métricas coletadas para decidir qual é a versão que você está colocando que tem o melhor desempenho e qual o modelo que você quer deixar para uso completo no seu ambiente produtivo. Então aqui também você acaba conseguindo interagir de uma forma mais assertiva com o seu cliente, com a sua gestão aqui de Machine Learning.