Mallien Tarjoaminen FastAPI:lla
Kun haluat tehdä koneoppimismallisi muiden sovellusten tai käyttäjien saataville, sen tarjoaminen verkkopalveluna on yleinen ja käytännöllinen ratkaisu. FastAPI on moderni Python-verkkokehys, jonka avulla voit rakentaa REST-rajapintoja nopeasti, mikä tekee siitä erinomaisen vaihtoehdon koneoppimismallien tarjoamiseen. FastAPI:n avulla voit julkaista koulutetun mallin HTTP-päätepisteiden kautta, jolloin ennusteita voidaan pyytää mistä tahansa, millä tahansa kielellä tai työkalulla, joka osaa tehdä verkkopyyntöjä.
Tyypillinen työnkulku koneoppimismallin tarjoamiseksi FastAPI:lla sisältää useita vaiheita:
- Kouluta ja tallenna mallisi esimerkiksi scikit-learn -kirjastolla;
- Luo FastAPI-sovellus, joka lataa tallennetun mallin käynnistyksen yhteydessä;
- Määrittele päätepiste (esimerkiksi
/predict), joka vastaanottaa syötteen, suorittaa ennusteen ja palauttaa tuloksen; - Käynnistä FastAPI-sovellus verkkopalvelimena, jotta se voi vastata HTTP-pyyntöihin.
Tämä lähestymistapa tarjoaa monia etuja:
- Voit irrottaa mallisi koulutusympäristöstä ja tehdä sen muiden järjestelmien käytettäväksi;
- FastAPI luo automaattisesti interaktiivisen dokumentaation rajapinnallesi, mikä helpottaa testaamista ja jakamista;
- Kehys on asynkroninen ja erittäin suorituskykyinen, mikä on tärkeää reaaliaikaisessa tai tuotantokäytössä.
Ennen kuin tarkastelemme toteutusta, selvennetään, mitä FastAPI on.
FastAPI on moderni ja nopea verkkokehys API-rajapintojen rakentamiseen Pythonilla.
Käytännön esimerkkinä tässä on yksinkertainen FastAPI-sovellus, joka lataa scikit-learn -mallin ja tarjoaa /predict-päätepisteen. Esimerkissä oletetaan, että olet jo kouluttanut ja tallentanut mallin scikit-learnin joblib- tai pickle-moduulilla. Rajapinta vastaanottaa JSON-muotoisen syötteen ennustamista varten ja palauttaa mallin tuottaman tuloksen.
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]}
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Mahtavaa!
Completion arvosana parantunut arvoon 6.67
Mallien Tarjoaminen FastAPI:lla
Pyyhkäise näyttääksesi valikon
Kun haluat tehdä koneoppimismallisi muiden sovellusten tai käyttäjien saataville, sen tarjoaminen verkkopalveluna on yleinen ja käytännöllinen ratkaisu. FastAPI on moderni Python-verkkokehys, jonka avulla voit rakentaa REST-rajapintoja nopeasti, mikä tekee siitä erinomaisen vaihtoehdon koneoppimismallien tarjoamiseen. FastAPI:n avulla voit julkaista koulutetun mallin HTTP-päätepisteiden kautta, jolloin ennusteita voidaan pyytää mistä tahansa, millä tahansa kielellä tai työkalulla, joka osaa tehdä verkkopyyntöjä.
Tyypillinen työnkulku koneoppimismallin tarjoamiseksi FastAPI:lla sisältää useita vaiheita:
- Kouluta ja tallenna mallisi esimerkiksi scikit-learn -kirjastolla;
- Luo FastAPI-sovellus, joka lataa tallennetun mallin käynnistyksen yhteydessä;
- Määrittele päätepiste (esimerkiksi
/predict), joka vastaanottaa syötteen, suorittaa ennusteen ja palauttaa tuloksen; - Käynnistä FastAPI-sovellus verkkopalvelimena, jotta se voi vastata HTTP-pyyntöihin.
Tämä lähestymistapa tarjoaa monia etuja:
- Voit irrottaa mallisi koulutusympäristöstä ja tehdä sen muiden järjestelmien käytettäväksi;
- FastAPI luo automaattisesti interaktiivisen dokumentaation rajapinnallesi, mikä helpottaa testaamista ja jakamista;
- Kehys on asynkroninen ja erittäin suorituskykyinen, mikä on tärkeää reaaliaikaisessa tai tuotantokäytössä.
Ennen kuin tarkastelemme toteutusta, selvennetään, mitä FastAPI on.
FastAPI on moderni ja nopea verkkokehys API-rajapintojen rakentamiseen Pythonilla.
Käytännön esimerkkinä tässä on yksinkertainen FastAPI-sovellus, joka lataa scikit-learn -mallin ja tarjoaa /predict-päätepisteen. Esimerkissä oletetaan, että olet jo kouluttanut ja tallentanut mallin scikit-learnin joblib- tai pickle-moduulilla. Rajapinta vastaanottaa JSON-muotoisen syötteen ennustamista varten ja palauttaa mallin tuottaman tuloksen.
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]}
Kiitos palautteestasi!