Загрузка предобученной модели

Развёртывание ИИ в производственной среде с помощью FastAPI

Matt Eckerle

Software and Data Engineering Leader

Текущая структура

Блок-схема ML-предсказания с FastAPI

Развёртывание ИИ в производственной среде с помощью FastAPI

Проблема загрузки моделей

Диаграмма жизненного цикла запроса/ответа

Расстроенный мужчина ожидает ответа от API

Развёртывание ИИ в производственной среде с помощью FastAPI

Загрузка модели до обработки запроса

Блок-схема ML-предсказания с FastAPI

Развёртывание ИИ в производственной среде с помощью FastAPI

Загрузка модели

from fastapi import FastAPI
sentiment_model = None
def load_model():
    global sentiment_model
    sentiment_model = SentimentAnalyzer("trained_model.joblib")
    print("Model loaded successfully")
load_model()
Model loaded successfully
Развёртывание ИИ в производственной среде с помощью FastAPI

Событие жизненного цикла FastAPI

Диаграмма потока событий жизненного цикла FastAPI

Развёртывание ИИ в производственной среде с помощью FastAPI

Событие жизненного цикла FastAPI

from contextlib import asynccontextmanager
@asynccontextmanager
async def lifespan(app: FastAPI):
    # Startup: Load the ML model
    load_model()
    yield
app = FastAPI(lifespan=lifespan)
Развёртывание ИИ в производственной среде с помощью FastAPI

Проверка работоспособности

 

@app.get("/health")
def health_check():
    if sentiment_model is not None:
        return {"status": "healthy", 
                "model_loaded": True}
    return {"status": "unhealthy", 
            "model_loaded": False}

Команда curl:

curl -X GET \
  "http://localhost:8080/health" \
  -H "accept: application/json"

Вывод:

{
  "status": "healthy",
  "model_loaded": true
}
Развёртывание ИИ в производственной среде с помощью FastAPI

Давайте потренируемся!

Развёртывание ИИ в производственной среде с помощью FastAPI

Preparing Video For Download...