Como treinar, usar e implantar modelo com FastAPI
Aprenda a criar uma API com Scikit-learn e FastAPI do zero
Desenvolvedores que trabalham com aprendizado de máquina muitas vezes enfrentam desafios ao transformar modelos treinados em APIs prontas para produção. Nesse guia, você vai aprender a treinar um modelo de classificação com Scikit-learn, servir suas previsões por meio do FastAPI e implantar tudo na nuvem com FastAPI Cloud. A abordagem é ideal para quem busca criar soluções escaláveis e de fácil manutenção. Vamos começar estruturando nosso projeto antes de mergulhar no treinamento e na construção da API. Ao final, você terá uma aplicação funcional que pode ser integrada a outros sistemas ou acessada por clientes externos.
O FastAPI se tornou uma das ferramentas mais populares para servir modelos de machine learning devido à sua leveza, velocidade e simplicidade. Ele permite transformar modelos treinados em APIs rápidas e fáceis de usar, que podem ser testadas, compartilhadas e colocadas em produção sem complicações. Nessa jornada, vamos desde a montagem do ambiente até a implantação na nuvem. Primeiro, criamos uma pasta dedicada ao projeto e organizamos nossos arquivos de forma lógica, separando o treinamento, a aplicação e os artefatos gerados. Essa organização evita bagunça e facilita a manutenção do código.
Para começar, abra o terminal e execute os comandos abaixo para criar a estrutura inicial do projeto. Isso vai gerar uma pasta chamada app e um arquivo train.py que usaremos mais tarde. A pasta artifacts será onde armazenaremos os modelos treinados e outros dados importantes. Com essa base pronta, podemos avançar para a instalação das dependências necessárias. Criamos um arquivo requirements.txt com todas as bibliotecas que vamos usar: FastAPI para a API, Uvicorn como servidor ASGI, Scikit-learn para o treinamento, Joblib para salvar o modelo e Pandas para manipulação de dados. Instalamos tudo com um simples pip install -r requirements.txt no terminal.
Com o ambiente configurado, é hora de treinar nosso primeiro modelo de classificação. Vamos usar o conjunto de dados de câncer de mama, que já vem embarcado no Scikit-learn, ideal para testes rápidos. No arquivo train.py, carregamos os dados, dividimos em conjuntos de treinamento e teste, treinamos um RandomForestClassifier e avaliamos sua acurácia. Depois, salvamos o modelo treinado e os dados necessários para inferência em um arquivo .joblib dentro da pasta artifacts. Rodamos o script com python train.py e, se tudo der certo, vemos uma mensagem de sucesso com a acurácia do modelo.
Terminado o treinamento, avançamos para a criação da API que vai servir nossas previsões. No arquivo app/main.py, construímos um servidor FastAPI que carrega o modelo salvo no início, oferece um endpoint de saúde para verificar se o sistema está no ar e expõe uma rota /predict que recebe os valores das features e devolve a classe prevista junto com as probabilidades. Essa estrutura permite que outros sistemas ou serviços consumam nossa previsão de forma simples e padronizada. O FastAPI é perfeito para essa tarefa por sua documentação automática e desempenho elevado.
Antes de colocar tudo na nuvem, testamos localmente para garantir que tudo funcione como esperado. Iniciamos o servidor com uvicorn app.main:app --reload e acessamos a documentação interativa em http://localhost:8000/docs. Nessa página, podemos testar o endpoint /predict diretamente no navegador, inserindo valores de entrada e verificando as saídas. Também é possível usar o curl no terminal para enviar requisições e conferir as respostas em formato JSON, que incluem a classe prevista, o rótulo correspondente e as probabilidades de cada classe. Esse teste local é essencial para detectar erros antes da implantação.
Com o modelo treinado e a API funcionando localmente, chegou o momento de implantar na nuvem usando o FastAPI Cloud. O processo é simples: primeiro, fazemos login com o comando fastapi login no terminal. Depois, executamos fastapi deploy para enviar nosso código para os servidores da FastAPI Cloud. Na primeira implantação, o assistente pode pedir para selecionar ou criar uma equipe e escolher se queremos criar um novo aplicativo ou vincular a um existente. A plataforma então empacota nosso código, instala as dependências na nuvem e coloca tudo no ar automaticamente. Ao final, recebemos uma mensagem de sucesso e uma URL onde nossa API estará disponível.
Após a implantação, acessamos novamente a documentação interativa da API, agora hospedada na nuvem, e testamos os endpoints para confirmar que tudo está funcionando perfeitamente. O FastAPI Cloud facilita muito o processo de implantação contínua, permitindo atualizações rápidas sempre que necessário. Com esse pipeline completo — treinamento, servidor local e implantação na nuvem —, você tem uma solução pronta para ser integrada a aplicações reais ou compartilhada com outras equipes. Essa abordagem não só acelera o desenvolvimento como também garante que seu modelo esteja sempre disponível e atualizado.