Serving af Modeller med FastAPI
Når du skal gøre din maskinlæringsmodel tilgængelig for andre applikationer eller brugere, er det en almindelig og praktisk løsning at udstille den som en webservice. FastAPI er et moderne Python-webframework, der gør det muligt hurtigt at opbygge REST API'er, hvilket gør det til et fremragende valg til at udstille maskinlæringsmodeller. Ved at bruge FastAPI kan du eksponere en trænet model via HTTP-endpoints, så forudsigelser kan anmodes fra hvor som helst, med ethvert sprog eller værktøj, der kan sende webanmodninger.
Den typiske arbejdsgang for at udstille en ML-model med FastAPI omfatter flere trin:
- Træn og serialiser din model ved hjælp af et bibliotek som scikit-learn;
- Opret en FastAPI-app, der indlæser den gemte model ved opstart;
- Definér et endpoint (såsom
/predict), der accepterer inputdata, udfører inferens og returnerer forudsigelsen; - Kør FastAPI-appen som en webserver, så den kan besvare HTTP-anmodninger.
Denne tilgang giver mange fordele:
- Du kan adskille din model fra træningsmiljøet og gøre den tilgængelig for andre systemer;
- FastAPI genererer automatisk interaktiv dokumentation for dit API, hvilket gør det nemt at teste og dele;
- Frameworket er asynkront og meget ydeevnedytigt, hvilket er vigtigt til realtids- eller produktionsbrug.
Før vi ser, hvordan dette implementeres, skal vi præcisere, hvad FastAPI er.
FastAPI er et moderne, hurtigt webframework til opbygning af API'er med Python.
For at se, hvordan dette fungerer i praksis, er her en simpel FastAPI-applikation, der indlæser en scikit-learn-model og udstiller et /predict endpoint. Dette eksempel forudsætter, at du allerede har trænet og gemt en model ved hjælp af scikit-learns joblib eller pickle modul. API'et accepterer JSON-input til forudsigelse og returnerer modellens output.
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]}
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Fantastisk!
Completion rate forbedret til 6.67
Serving af Modeller med FastAPI
Stryg for at vise menuen
Når du skal gøre din maskinlæringsmodel tilgængelig for andre applikationer eller brugere, er det en almindelig og praktisk løsning at udstille den som en webservice. FastAPI er et moderne Python-webframework, der gør det muligt hurtigt at opbygge REST API'er, hvilket gør det til et fremragende valg til at udstille maskinlæringsmodeller. Ved at bruge FastAPI kan du eksponere en trænet model via HTTP-endpoints, så forudsigelser kan anmodes fra hvor som helst, med ethvert sprog eller værktøj, der kan sende webanmodninger.
Den typiske arbejdsgang for at udstille en ML-model med FastAPI omfatter flere trin:
- Træn og serialiser din model ved hjælp af et bibliotek som scikit-learn;
- Opret en FastAPI-app, der indlæser den gemte model ved opstart;
- Definér et endpoint (såsom
/predict), der accepterer inputdata, udfører inferens og returnerer forudsigelsen; - Kør FastAPI-appen som en webserver, så den kan besvare HTTP-anmodninger.
Denne tilgang giver mange fordele:
- Du kan adskille din model fra træningsmiljøet og gøre den tilgængelig for andre systemer;
- FastAPI genererer automatisk interaktiv dokumentation for dit API, hvilket gør det nemt at teste og dele;
- Frameworket er asynkront og meget ydeevnedytigt, hvilket er vigtigt til realtids- eller produktionsbrug.
Før vi ser, hvordan dette implementeres, skal vi præcisere, hvad FastAPI er.
FastAPI er et moderne, hurtigt webframework til opbygning af API'er med Python.
For at se, hvordan dette fungerer i praksis, er her en simpel FastAPI-applikation, der indlæser en scikit-learn-model og udstiller et /predict endpoint. Dette eksempel forudsætter, at du allerede har trænet og gemt en model ved hjælp af scikit-learns joblib eller pickle modul. API'et accepterer JSON-input til forudsigelse og returnerer modellens output.
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]}
Tak for dine kommentarer!