Artigo original: How to Deploy a Machine Learning Model for Free – 7 ML Model Deployment Cloud Platforms
Eu me lembro da primeira vez que criei um modelo simples de Machine Learning (em português, aprendizagem de máquina). Era um modelo que podia prever seu salário de acordo com seus anos de experiência e, depois de fazê-lo, eu estava curioso sobre como eu poderia implantá-lo em produção.
Se você tem aprendido Machine Learning, pode ter visto esse desafio em tutoriais on-line ou livros. Você pode encontrar o código-fonte aqui, se estiver interessado.
Foi realmente difícil para mim descobrir onde eu poderia implantar meu modelo. Tentei implantá-lo em uma plataforma de hospedagem da web, mas foi difícil configurar e executar a aplicação em Flask que servia meu modelo.

Então, decidi explorar diferentes plataformas que foram especificamente criadas para implantação de modelos de Machine Learning (ou que tinham um bom ambiente para suportar minha stack de modelagem).
Somente quando um modelo está totalmente integrado aos sistemas de negócio, podemos extrair valor real de suas previsões. – Christopher Samiullah
Neste artigo, você aprenderá sobre diferentes plataformas que podem ajudar você a implantar seus modelos de Machine Learning em produção (gratuitamente) e torná-los úteis.
Eu também incluí alguns ótimos recursos para ajudar você a começar a implantar seu modelo em uma plataforma específica.
Observação: as plataformas mencionadas neste artigo oferecem planos de nível gratuito que permitem usar seus produtos ou serviços até o limite de uso gratuito especificado. Se você quiser obter serviços ilimitados, será cobrado de acordo com o preço do serviço.
Para quem é este artigo?
Este artigo é para aqueles que criaram um modelo de Machine Learning em uma máquina local e querem explorar plataformas potenciais para implantar esse modelo.
Também é para aqueles que estão procurando uma plataforma alternativa para implantar seus modelos de Machine Learning.
Vamos começar! 🚀
Opção de implantação de modelo de Machine Learning nº 1: Algorithmia
Algorithmia é uma ferramenta de MLOps (operações de Machine Learning), fundada por Diego Oppenheimer e Kenny Daniel, que fornece uma maneira simples e rápida de implantar seu modelo de Machine Learning em produção.

A Algorithmia se especializa em "algoritmos como serviço". Ela permite aos usuários criar trechos de código que executam o modelo de ML e, em seguida, hospedá-los na Algorithmia. Depois, você pode chamar seu código como uma API.
Seu modelo pode ser usado para diferentes aplicações de sua escolha, como aplicações para a web, aplicações móveis ou e-commerce, por uma simples chamada de API, a partir da Algorithmia.
A boa notícia sobre a Algorithmia é o fato de separar as responsabilidades de Machine Learning do resto da aplicação. Neste caso, você precisa chamar seu modelo e fazer previsões como uma chamada de API. Sua aplicação ficará livre das responsabilidades de um ambiente de Machine Learning.
Aqui está um bom recurso para você aprender mais sobre o Algorithmia:
Opção de implantação de modelo de Machine Learning nº 2: PythonAnywhere
PythonAnywhere é outra plataforma como serviço bem conhecida e em crescimento baseada na linguagem de programação Python. Ela facilita a execução de programas em Python na nuvem e fornece uma maneira simples de hospedar suas aplicações com base em Python na web.
Você pode usar qualquer framework da web em Python, como o Flask, para implantar seu modelo de Machine Learning e executá-lo na plataforma PythonAnywhere em apenas alguns minutos.
Tenha em mente que o PythonAnywhere não suporta GPUs (placas gráficas). Se você tem um modelo de Deep Learning (em português, aprendizagem profunda) que depende de CUDA e de GPUs, você precisa encontrar um bom servidor para acomodar os requisitos do seu modelo (verifique as plataformas a seguir).
Aqui estão recursos para você aprender a executar seu modelo de Machine Learning no PythonAnywhere (em inglês):
Opção de implantação de modelo de Machine Learning nº 3: Heroku
O Heroku é uma plataforma da nuvem como serviço que ajuda desenvolvedores a implantar, gerenciar e escalar aplicações modernas rapidamente, sem dores de cabeça com infraestrutura.

Se você quer implantar seu modelo pela primeira vez, recomendo que experimente o Heroku, porque ele é flexível e fácil de usar.
Ele oferece uma ampla gama de serviços e ferramentas para acelerar seu desenvolvimento e ajuda você a evitar começar tudo do zero. Ele também suporta várias linguagens de programação amplamente usadas, como Python, Java, PHP, Node, Go, Ruby, Scala e Clojure.
Na parte de implantação, você pode fazer o upload do seu modelo de Machine Learning treinado e do código-fonte no Heroku vinculando seu repositório do Github à sua conta do Heroku.
Aqui estão alguns recursos para você aprender a implantar seu modelo na plataforma Heroku (em inglês):
- How to Develop an End-to-End Machine Learning Project and Deploy it to Heroku with Flask
- Create and Deploy your First Flask App using Python and Heroku
"Como é relatado no VentureBeat, cerca de 90% dos modelos de Machine Learning nunca entram em produção. Em outras palavras, apenas um em cada dez dias de trabalho de um cientista de dados realmente acaba produzindo algo útil para a empresa." – Rhea Moutafis
Nota da tradução: no momento em que este artigo foi traduzido, o Heroku encerrou seu tier gratuito.
Opção de implantação de modelo de Machine Learning nº 4: Google Cloud Platform
A Google Cloud Platform (GCP) é uma plataforma oferecida pelo Google que fornece uma série de serviços de computação em nuvem, como computação, armazenamento e bancos de dados, Inteligência Artificial (IA)/Machine Learning (ML), rede, big data, identidade e segurança.

A Google Cloud Platform fornece infraestrutura como serviço, plataforma como serviço e ambientes de computação sem servidor.
A Google Cloud oferece um crédito de $300 gratuitamente por 12 meses, mas você terá que adicionar os detalhes do seu cartão de crédito para garantir que você não é um robô. A plataforma não cobrará até que você decida fazer o upgrade para uma conta paga.
A Google Cloud Platform oferece três maneiras de implantar seu modelo de Machine Learning.
Google AI Platform
A Google AI Platform fornece serviços abrangentes de Machine Learning. Cientistas de dados e engenheiros de Machine Learning podem usar essa plataforma para trabalhar em projetos de Machine Learning, desde a criação até a implantação, de maneira mais eficaz.

Com a Google AI Platform, você terá acesso a todos os seus recursos sob um mesmo teto. Isso inclui preparação de dados, treinamento de modelo, ajuste de parâmetros, implantação de modelo e compartilhamento de modelos de Machine Learning com outros desenvolvedores.
Para saber mais sobre a Google AI Platform, você pode consultar o site da plataforma aqui.
Google App Engine
A Google App Engine é uma plataforma como serviço (PaaS) fornecida pelo Google, que suporta o desenvolvimento e hospedagem de diferentes aplicações para a web escaláveis.

A Google App Engine oferece uma função de auto-escalonamento, que aloca recursos automaticamente para que sua aplicação para a web possa lidar com mais solicitações.
Ela suporta linguagens de programação populares, incluindo Python, PHP, Node.js, Java, Ruby, C# e Go.
Portanto, você pode implantar seu modelo na Google App Engine usando o framework Flask ou qualquer outro framework que você conheça.
Para saber mais sobre isso, você pode visitar a plataforma aqui.
Google Cloud Functions
A Google Cloud Functions é uma plataforma de computação sem servidor que oferece funções como serviço (FaaS) para executar seu código sem precisar gerir os servidores.
Tudo o que você precisa fazer é escrever um pequeno bloco de código (função) em qualquer linguagem de programação suportada e depois hospedá-la na Google Cloud Functions. Nesse caso, você não precisa enfrentar as dificuldades de manter seu próprio servidor.

Todas as funções criadas e hospedadas na Google Cloud Functions serão executadas na nuvem quando necessário. Você pode chamar funções de nuvem para sua aplicação usando diferentes triggers (em português, acionadores ou gatilhos). A maneira mais comum é usando chamadas HTTP.
Portanto, você pode implantar seu modelo de Machine Learning com um bloco de código suportado para execução na Google Cloud Functions e chamar a requisição de HTTP para predição a partir de sua aplicação da web ou de qualquer outro sistema.
Aqui estão alguns recursos para você aprender a implantar seu modelo na plataforma Google Cloud (em inglês):
- How to Go from Zero to Hero with Google Cloud Platform
- How to Deploy Fast.ai models to Google Cloud Functions for Predictions
Opção de implantação de modelo de Machine Learning nº 6: Microsoft Azure Functions
A Azure Functions é um serviço de nuvem sem servidor fornecido pela Microsoft Azure como uma Função como Serviço (FaaS). A Azure Functions ajuda desenvolvedores a descarregar tarefas de gerenciamento de infraestrutura e focar na execução de seus aplicativos.

"Você foca nas partes do código que mais importam para você. As Azure Functions cuidam do resto." – página da documentação das Azure Functions (em inglês).
Com a computação sem servidor, você pode escrever um trecho de código que executa seu modelo e depois implantar o código e o modelo de Machine Learning na Azure Functions e chamá-lo para predição como uma API. A Azure Functions é semelhante às funções do Google Cloud.
A Azure Functions suporta diferentes funções desenvolvidas em C#, F#, Node.js, Python, PHP, JavaScript, Java 8, Powershell Core e TypeScript.
Se você tem um grande modelo de Machine Learning, a Azure Functions é a escolha certa para você. Ela suporta a implantação de grandes pacotes de ML, como frameworks de deep learning (Tensorflow e Pytorch).
- Azure Functions for ML (em inglês)
- Efficient Serverless deployment of PyTorch models on Azure (em inglês)
Opção de implantação de modelos de Machine Learning nº 7: AWS Lambda
O AWS Lambda é um serviço de computação sem servidor fornecido pela Amazon como parte do Amazon Web Services. O AWS Lambda ajuda você a executar seu código sem gerenciar a infraestrutura subjacente.

Com o Lambda, você pode enviar seu código em uma imagem de contêiner ou arquivo zip. O Lambda aloca automaticamente o poder computacional para executar seu código com base nas solicitações ou eventos recebidos, sem a necessidade de configurar nada.
O AWS Lambda permite que seu código seja associado a outros recursos da AWS, como uma tabela do Amazon DynamoDB, um bucket do Amazon S3, uma notificação do Amazon SNS e um stream do Amazon Kinesis.
Portanto, você pode facilmente implantar seu modelo de Machine Learning no AWS Lambda e acessá-lo através de uma API usando o Amazon API Gateway.
Você pode escrever funções Lambda nas seguintes linguagens de programação suportadas: Python, Java, Go, PowerShell, Node.js, Ruby e C#.

O AWS Lambda é muito barato, pois você só paga quando invoca a função lambda (ou seja, quando faz solicitações de previsão). Isso pode economizar muito dinheiro em comparação com o custo de executar contêineres ou máquinas virtuais.
Se você quiser monitorar as funções lambda que criou, o AWS Lambda fará isso por você.
O AWS Lambda monitora métricas em tempo real, incluindo taxas de erro, solicitações totais, uso de concorrência em nível de função, latência e solicitações limitadas através do Amazon CloudWatch.
Então, você pode visualizar as estatísticas de cada função lambda usando o Console do AWS Lambda ou o Console do Amazon CloudWatch.
Aqui estão alguns recursos para você aprender como implantar seu modelo no Azure Functions (em inglês).
- Lessons from deploying machine learning models on AWS Lambda
- Deploying machine learning models as serverless APIs
- How to Deploy Deep Learning Models with AWS Lambda and TensorFlow
Opção extra de implantação de modelo de Machine Learning: a biblioteca mc2gen
Tenho uma opção extra para você, caso as plataformas mencionadas acima não atendam às suas necessidades. Você sabia que é possível transformar seu modelo de Machine Learning treinado na linguagem de programação de sua escolha?
Sim, você pode converter seu modelo usando a biblioteca m2cgen do Python, desenvolvida pelos Bayes' Witnesses. m2cgen (Model 2 Code Generator) é uma biblioteca simples do Python que converte um modelo de Machine Learning treinado em diferentes linguagens de programação.
Atualmente, ela suporta 14 linguagens de programação diferentes, incluindo Go, C#, Python, PHP e JavaScript. A biblioteca m2cgen suporta modelos de regressão e classificação do scikit-learn e frameworks do Gradient Boost, como XGBoost e LightGBM (Light Gradient Boosting Machine).
Para saber mais sobre essa biblioteca, recomendo que você leia meu guia sobre o mc2gen aqui (em inglês). Lá, eu explico como usar a biblioteca e converter um modelo de Machine Learning treinado em três linguagens de programação diferentes e, depois, fazer uma previsão.
Essa biblioteca do Python ajudará você a implantar seu modelo em ambientes onde você não pode instalar sua stack do Python para dar suporte à previsão do seu modelo.
Conclusão
A implantação de Machine Learning é uma das habilidades importantes que você deve ter se for trabalhar em projetos de Machine Learning. As plataformas mencionadas acima podem ajudar você a implantar seu modelo e a torná-lo útil, em vez de mantê-lo em sua máquina local.
Parabéns 👏👏! Você chegou ao final deste artigo! Espero que tenha aprendido algo novo que o ajudará em sua carreira.
Se aprendeu algo novo ou se gostou de ler este artigo, por favor, compartilhe-o para que outros possam vê-lo. Nos vemos no próximo artigo! Você pode encontrar o autor deste artigo no Twitter.