7 Benefícios de Desenvolver Machine Learning com o Amazon SageMaker

Miller Horvath
BRLink
Published in
7 min readMay 13, 2020

A Inteligência Artificial, sobretudo as técnicas de Aprendizado de Máquina (ou Machine Learning), está a cada dia deixando de ser um assunto exclusivo de pesquisas científicas e passando a ter um papel crucial nas empresas, automatizando tarefas tediosas e repetitivas, guiando decisões de negócio, otimizando recursos e transformando a experiência dos clientes. Entretanto, a implementação deste tipo de solução pode esbarrar em diversos desafios, tais como:

  • Escassez de recursos humanos capacitados para criar e aplicar modelos Machine Learning no negócio;
  • Limitação de capacidade e custo relacionado a recursos computacionais para processar as cargas de trabalho em tempo hábil;
  • Lentidão no desenvolvimento de projetos;
  • Dificuldade de replicação e evolução de tecnologias.

Visando popularizar e acelerar o desenvolvimento de soluções de Machine Learning, a AWS (Amazon Web Services) oferece um serviço chamado Amazon SageMaker, que adota a seguinte frase como lema: “Machine Learning para todos os desenvolvedores e cientistas de dados”.

Sendo assim, vamos apresentar 7 benefícios que podem ser obtidos ao adotar o SageMaker como plataforma de desenvolvimento de projetos de Machine Learning.

1. Machine Learning de Ponta-a-Ponta

Basicamente, o fluxo de criação de um modelo de Machine Learning é dividido nas seguintes etapas: pré-processamento de dados, treinamento do modelo, avaliação do modelo e geração de inferências para novos dados. Além da complexidade de carga de trabalho e processamento de cada uma destas etapas individualmente, avançar de uma etapa para a outra e aplicá-las em ambientes produtivos pode ser uma tarefa desafiadora, até mesmo para profissionais mais experientes.

O Amazon SageMaker não só oferece ferramentas para desenvolver e otimizar cada uma destas etapas, como também permite uma migração muita rápida de uma etapa à outra. Por exemplo, após realizar o treinamento de um modelo, com poucos cliques, ou 1 chamada de API, é possível gerar inferências para novos dados.

Outro fator interessante é que o usuário pode optar por migrar apenas uma parte da sua carga de trabalho para o SageMaker. Por exemplo, o usuário já possuí uma metodologia de pré-processamento e treinamento de modelos funcionando, mas está tendo dificuldades em disponibilizar o seu modelo para gerar inferências em tempo real. É possível migrar apenas a etapa de disponibilização do modelo para o SageMaker e manter o restante do fluxo fora.

2. Você Foca na Solução, a AWS Cuida da Sustentação

Além de toda a complexidade do desenvolvimento dos modelos, outro fator importante é a criação e gerenciamento da infraestrutura para sustentar os projetos de Machine Learning. O SageMaker dispensa esta necessidade, pois toda a infraestrutura é 100% gerenciada pela AWS, fazendo com que o usuário possa concentrar seus esforços exclusivamente no desenvolvimento dos modelos.

Com as instâncias notebook, o SageMaker disponibiliza uma interface Jupyter que permite que o usuário explore os seus dados, construa modelos, teste-os localmente e dispare as cargas de pré-processamento dados, treinamento de modelos, avaliação e inferências. Estas cargas de processamento frequentemente exigem alto poder de processamento, sendo que o SageMaker fica responsável por alocar os recursos computacionais, executar a carga de processamento, armazenar os resultados em um Bucket S3 (Simple Storage Service, que é um serviço de armazenamento de arquivos da AWS) e derruba os recursos ao fim da tarefa.

Pode-se também utilizar um modelo para produzir inferências em tempo real, por requisições através de um endpoint. Além de alocar os recursos de infraestrutura, criar uma API e disponibilizar um endpoint, o SageMaker ainda pode escalar os recursos que sustentam esta API conforme o volume de solicitações, obedecendo regras definidas pelo usuário, atingindo alta performance e disponibilidade com custos sob demanda.

3. Desenvolvimento Tecnológico Como Serviço

A AWS adota uma estratégia bastante interessante para construir a sua carta de serviços, onde as soluções criadas para solucionar problemas internos da empresa são estruturadas e oferecidas como serviço para terceiros. Muitos serviços da AWS surgiram através de soluções de demandas da Amazon.com, e isso não seria diferente com as técnicas de Machine Learning.

No SageMaker, muitos algoritmos desenvolvidos pela Amazon são disponibilizados para serem utilizados sem nenhum acréscimo de custo. Ou seja, é possível que qualquer empresa utilize os modelos criados e otimizados pelos engenheiros da AWS para atender as suas próprias demandas de negócio. Além disso, é possível utilizar algoritmos e modelos pré-treinados, que são disponibilizados por diversas empresas no AWS Marketplace, mas estes sim têm um custo para serem utilizados.

4. ML Para Todos os Gostos e Habilidades

Criar modelos de Machine Learning pode ser bastante complexo, muitas vezes demandando uma gama de conhecimentos sobre cálculo, estatística e programação. O SageMaker ajuda a popularizar o desenvolvimento destes modelos através de ferramentas que demandam diferentes níveis de conhecimento.

Primeiramente, os algoritmos desenvolvidos pela AWS possuem interfaces prontas para serem aplicadas dentro do SageMaker, bastando-se uma chamada de método de uma classe para executá-los. Além disso, também são incluídas interfaces de integração de frameworks populares de Machine Learning, como SparkML, Scikit-Learn, PyTorch e TensorFlow, para simplificar a sua utilização dentro do SageMaker.

Para usuários mais avançados, com maiores conhecimentos em programação e Machine Learning, o SageMaker permite o desenvolvimento de modelos completamente customizados. O ecossistema de ferramentas do SageMaker é baseado em containers Docker, bastando que o usuário crie uma imagem com seu algoritmo de treinamento e inferência, seguindo alguns padrões de integração, para rodar a sua carga de trabalho com o SageMaker.

Por fim, a AWS ainda disponibiliza dezenas de tutoriais de exemplos prontos que o usuário pode carregar em uma instância notebook, testar e usar como base para atendar as suas próprias demandas. O catálogo de exemplos engloba todas as possibilidades listadas aqui e muito mais!

5. Elasticidade e Escalabilidade

É muito comum que o volume de requisições de aplicações apresente variações em horários específicos ou que mude ao longo do tempo. Além do mais, quem nunca recebeu aquela tarefa a ser entregue para ontem?

O SageMaker se aproveita das vantagens de elasticidade e escalabilidade inerentes de soluções de computação na nuvem, e não tinha como ser diferente. O usuário pode aumentar ou diminuir o poder computacional alocado para a instância notebook, pré-processamento, treinamento e inferência dos modelos, para se ajustar aos seus requisitos de custo, disponibilidade e velocidade de entrega a todo o momento, de forma simples e rápida.

6. Automatização em Larga Escala

Empresas que seguem uma filosofia orientada a dados e apresentam uma maior maturidade em relação à aplicação de Machine Learning tendem a ter uma grande quantidade de modelos em produção, que podem necessitar de melhorias contínuas e atualizações de treinamento com novos dados constantemente.

Agora, imagine como seria incrível treinar, otimizar, avaliar e disponibilizar modelos atualizados e novos modelos em ambientes produtivos com apenas 1 clique, ou menos. Bom, com o Amazon SageMaker, é possível deixar de imaginar e colocar este cenário em prática!

Aplicando conceitos de MLOps (ou “Machine Learning Operations”), é possível criar uma esteira automatizada de produção e atualização de modelos, podendo ser iniciada através de 1 comando, ou até mesmo automaticamente de forma periódica, conforme o crescimento no volume de dados de treinamento, ou respeitando outras regras de negócio.

Estes modelos podem ser avaliados de forma automática e serem implantados em produção seguindo práticas de CI/CD (“Continuous Integration / Continuous Deployment”), garantindo um ambiente estável e robusto a falhas. Além do mais, o SageMaker oferece o serviço de otimização automática de hiperparametros, que são basicamente regulagens dos modelos que podem ser feitas para otimizar o seu desempenho no cenário que está sendo aplicado.

7. Força-Tarefa Para Rotulação de Dados

A qualidade dos insights gerados pelos modelos de Machine Learning está diretamente relacionada com a qualidade dos dados que estão sendo processados. Uma classe muito popular de modelos de Machine Learning apresenta o comportamento característico de serem treinados com base no rótulo dos dados, através do método chamado aprendizado supervisionado. Por exemplo, para criar um modelo que visa identificar se há ou não um cachorro em uma foto, é necessário treinar este modelo dando vários exemplos de fotos com cachorros e sem cachorros.

Um cenário bastante comum encarado pelas empresas é: possuir uma grande quantidade de dados, que não estão rotulados, mas necessitarem de uma solução com aprendizado supervisionado para atender as suas necessidades de negócio.

Para estes cenários, o SageMaker oferece a ferramenta Ground Thruth, onde os usuários podem disponibilizar o seu conjunto de dados para serem rotulados de forma remota através do Amazon Mechanical Turk (MTurk). As tarefas de rotulagem podem ser direcionadas para um grupo privado de pessoas, ou aberta para mais de 500 mil rotuladores presentes no MTurk, podendo-se estabelecer regras de confidencialidade, exigências de habilidades específicas dos rotuladores ou mesmo contratar empresas de rotulagem especializadas através do AWS Marketplace.

Conclusão

O Amazon SageMaker é um framework muito poderoso, capaz de acelerar o desenvolvimento de projetos de forma bastante flexível em relação a custos e desempenho de processamento. Por ser um serviço gerenciado, ele permite que os usuários foquem seus esforços nos dados e nos modelos, enquanto a AWS cuida de todas as questões de alocação e segurança de arquitetura computacional.

Juntando tudo isso com a sua acessibilidade a usuários principiantes e avançados, suas diversas ferramentas de automatização e enriquecimento de dados, o SageMaker se mostra um dos serviços mais completos e robustos voltados para Machine Learning no mercado.

Como se não fosse o bastante, a AWS ainda oferece diversos serviços de alto nível para atender demandas clássicas de Machine Learning, como detecção de objetos em imagens, conversão de áudio para texto, análise de séries temporais, entre muitos outros. Caso queira conhecer um pouco mais sobre estes serviços, não deixe de visitar o nosso artigo que trata sobre todos estes serviços clicando aqui (https://www.brlink.com.br/blog/aws/servicos-ia-e-ml-na-aws/)!

--

--

Miller Horvath
BRLink
Editor for

Data Science Chapter Lead at BRLink; M.S. in Computer Science at Centro Universitário FEI; AWS builder; and researcher in ML.