Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Servindo Modelos com FastAPI | Seção
Practice
Projects
Quizzes & Challenges
Questionários
Challenges
/
Fundamentos de MLOps

bookServindo 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.

Note
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]}

question mark

Quais afirmações sobre servir modelos de aprendizado de máquina com FastAPI são corretas?

Select all correct answers

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 7

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

bookServindo 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.

Note
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]}

question mark

Quais afirmações sobre servir modelos de aprendizado de máquina com FastAPI são corretas?

Select all correct answers

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 7
some-alt