Латентность инференс-сервиса растёт под нагрузкой
Сервис скоринга отвечает за 400 мс при одном запросе и за несколько секунд под нагрузкой, память растёт.
app = FastAPI()
@app.post("/score")
def score(req: ScoreRequest):
model = joblib.load("model.pkl")
features = build_features(req.client_id)
df = pd.DataFrame([features])
proba = model.predict_proba(df)[:, 1][0]
return {"score": float(proba)}
Где здесь основная проблема?
- predict_proba нельзя вызывать на одной строке, нужен батч хотя бы из нескольких объектов
- Расчёт признаков идёт в pandas: замена DataFrame на массив numpy уберёт основную часть задержки
- Обработчик синхронный: если объявить его async, загрузка модели перестанет блокировать сервис
- Модель загружается внутри обработчика: её нужно поднять один раз при старте приложения и переиспользовать
