Servindo Modelos com FastAPI
Quando é necessário disponibilizar seu modelo de machine learning para uso por outras aplicações ou usuários, servi-lo como um serviço web é uma solução comum e prática. FastAPI é um framework web moderno em Python que permite construir APIs REST rapidamente, tornando-se uma excelente escolha para servir modelos de machine learning. Utilizando o FastAPI, é possível expor um modelo treinado por meio de endpoints HTTP, permitindo que previsões sejam solicitadas de qualquer lugar, utilizando qualquer linguagem ou ferramenta capaz de realizar requisições web.
O fluxo típico para servir um modelo de ML com FastAPI inclui várias etapas:
- Treinar e serializar seu modelo utilizando uma biblioteca como scikit-learn;
- Criar um aplicativo FastAPI que carrega o modelo salvo na inicialização;
- Definir um endpoint (como
/predict) que aceita dados de entrada, executa a inferência e retorna a previsão; - Executar o aplicativo FastAPI como um servidor web, para que possa responder a requisições HTTP.
Essa abordagem traz diversos benefícios:
- Permite desacoplar o modelo do ambiente de treinamento e torná-lo acessível para outros sistemas;
- O FastAPI gera automaticamente documentação interativa para sua API, facilitando testes e compartilhamento;
- O framework é assíncrono e altamente performático, o que é importante para uso em tempo real ou em produção.
Antes de ver como implementar isso, vamos esclarecer o que é o FastAPI.
FastAPI é um framework web moderno e rápido para construção de APIs com Python.
Para ver como isso funciona na prática, segue um exemplo simples de aplicação FastAPI que carrega um modelo scikit-learn e expõe um endpoint /predict. Este exemplo assume que você já treinou e salvou um modelo utilizando o módulo joblib ou pickle do scikit-learn. A API aceitará entrada em JSON para previsão e retornará a saída do modelo.
from fastapi import FastAPI
from pydantic import BaseModel
import joblib
import numpy as np
# Define the request body schema
class InputData(BaseModel):
feature1: float
feature2: float
# Load the trained model (assumes model.pkl exists)
model = joblib.load("model.pkl")
app = FastAPI()
@app.post("/predict")
def predict(input_data: InputData):
# Prepare input for the model
data = np.array([[input_data.feature1, input_data.feature2]])
# Make prediction
prediction = model.predict(data)
# Return the result as JSON
return {"prediction": prediction[0]}
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Incrível!
Completion taxa melhorada para 6.67
Servindo Modelos com FastAPI
Deslize para mostrar o menu
Quando é necessário disponibilizar seu modelo de machine learning para uso por outras aplicações ou usuários, servi-lo como um serviço web é uma solução comum e prática. FastAPI é um framework web moderno em Python que permite construir APIs REST rapidamente, tornando-se uma excelente escolha para servir modelos de machine learning. Utilizando o FastAPI, é possível expor um modelo treinado por meio de endpoints HTTP, permitindo que previsões sejam solicitadas de qualquer lugar, utilizando qualquer linguagem ou ferramenta capaz de realizar requisições web.
O fluxo típico para servir um modelo de ML com FastAPI inclui várias etapas:
- Treinar e serializar seu modelo utilizando uma biblioteca como scikit-learn;
- Criar um aplicativo FastAPI que carrega o modelo salvo na inicialização;
- Definir um endpoint (como
/predict) que aceita dados de entrada, executa a inferência e retorna a previsão; - Executar o aplicativo FastAPI como um servidor web, para que possa responder a requisições HTTP.
Essa abordagem traz diversos benefícios:
- Permite desacoplar o modelo do ambiente de treinamento e torná-lo acessível para outros sistemas;
- O FastAPI gera automaticamente documentação interativa para sua API, facilitando testes e compartilhamento;
- O framework é assíncrono e altamente performático, o que é importante para uso em tempo real ou em produção.
Antes de ver como implementar isso, vamos esclarecer o que é o FastAPI.
FastAPI é um framework web moderno e rápido para construção de APIs com Python.
Para ver como isso funciona na prática, segue um exemplo simples de aplicação FastAPI que carrega um modelo scikit-learn e expõe um endpoint /predict. Este exemplo assume que você já treinou e salvou um modelo utilizando o módulo joblib ou pickle do scikit-learn. A API aceitará entrada em JSON para previsão e retornará a saída do modelo.
from fastapi import FastAPI
from pydantic import BaseModel
import joblib
import numpy as np
# Define the request body schema
class InputData(BaseModel):
feature1: float
feature2: float
# Load the trained model (assumes model.pkl exists)
model = joblib.load("model.pkl")
app = FastAPI()
@app.post("/predict")
def predict(input_data: InputData):
# Prepare input for the model
data = np.array([[input_data.feature1, input_data.feature2]])
# Make prediction
prediction = model.predict(data)
# Return the result as JSON
return {"prediction": prediction[0]}
Obrigado pelo seu feedback!