Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Tillhandahålla Modeller med FastAPI | Sektion
Mlops-Grunder

bookTillhandahålla Modeller med FastAPI

När du behöver göra din maskininlärningsmodell tillgänglig för andra applikationer eller användare är det vanligt och praktiskt att exponera den som en webbtjänst. FastAPI är ett modernt Python-webbramverk som låter dig snabbt bygga REST API:er, vilket gör det till ett utmärkt val för att tillhandahålla maskininlärningsmodeller. Med FastAPI kan du exponera en tränad modell via HTTP-endpoints, så att förfrågningar om prediktioner kan göras varifrån som helst, med vilket språk eller verktyg som helst som kan göra webbförfrågningar.

Det typiska arbetsflödet för att tillhandahålla en ML-modell med FastAPI omfattar flera steg:

  • Träna och serialisera din modell med ett bibliotek som scikit-learn;
  • Skapa en FastAPI-app som laddar den sparade modellen vid uppstart;
  • Definiera en endpoint (till exempel /predict) som tar emot indata, kör inferens och returnerar prediktionen;
  • Kör FastAPI-appen som en webbserver så att den kan svara på HTTP-förfrågningar.

Detta tillvägagångssätt ger många fördelar:

  • Du kan separera din modell från träningsmiljön och göra den tillgänglig för andra system;
  • FastAPI genererar automatiskt interaktiv dokumentation för ditt API, vilket gör det enkelt att testa och dela;
  • Ramverket är asynkront och mycket prestandaeffektivt, vilket är viktigt för realtids- eller produktionsanvändning.

Innan vi ser hur detta implementeras, låt oss förtydliga vad FastAPI är.

Note
FastAPI

FastAPI är ett modernt, snabbt webbramverk för att bygga API:er med Python.

För att se hur detta fungerar i praktiken följer här en enkel FastAPI-applikation som laddar en scikit-learn-modell och exponerar en /predict-endpoint. Detta exempel förutsätter att du redan har tränat och sparat en modell med scikit-learns joblib eller pickle-modul. API:et accepterar JSON-indata för prediktion och returnerar modellens utdata.

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

Vilka påståenden om att tillhandahålla maskininlärningsmodeller med FastAPI är korrekta?

Select all correct answers

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 7

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

bookTillhandahålla Modeller med FastAPI

Svep för att visa menyn

När du behöver göra din maskininlärningsmodell tillgänglig för andra applikationer eller användare är det vanligt och praktiskt att exponera den som en webbtjänst. FastAPI är ett modernt Python-webbramverk som låter dig snabbt bygga REST API:er, vilket gör det till ett utmärkt val för att tillhandahålla maskininlärningsmodeller. Med FastAPI kan du exponera en tränad modell via HTTP-endpoints, så att förfrågningar om prediktioner kan göras varifrån som helst, med vilket språk eller verktyg som helst som kan göra webbförfrågningar.

Det typiska arbetsflödet för att tillhandahålla en ML-modell med FastAPI omfattar flera steg:

  • Träna och serialisera din modell med ett bibliotek som scikit-learn;
  • Skapa en FastAPI-app som laddar den sparade modellen vid uppstart;
  • Definiera en endpoint (till exempel /predict) som tar emot indata, kör inferens och returnerar prediktionen;
  • Kör FastAPI-appen som en webbserver så att den kan svara på HTTP-förfrågningar.

Detta tillvägagångssätt ger många fördelar:

  • Du kan separera din modell från träningsmiljön och göra den tillgänglig för andra system;
  • FastAPI genererar automatiskt interaktiv dokumentation för ditt API, vilket gör det enkelt att testa och dela;
  • Ramverket är asynkront och mycket prestandaeffektivt, vilket är viktigt för realtids- eller produktionsanvändning.

Innan vi ser hur detta implementeras, låt oss förtydliga vad FastAPI är.

Note
FastAPI

FastAPI är ett modernt, snabbt webbramverk för att bygga API:er med Python.

För att se hur detta fungerar i praktiken följer här en enkel FastAPI-applikation som laddar en scikit-learn-modell och exponerar en /predict-endpoint. Detta exempel förutsätter att du redan har tränat och sparat en modell med scikit-learns joblib eller pickle-modul. API:et accepterar JSON-indata för prediktion och returnerar modellens utdata.

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

Vilka påståenden om att tillhandahålla maskininlärningsmodeller med FastAPI är korrekta?

Select all correct answers

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 7
some-alt