Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Розгортання Моделей за Допомогою FastAPI | Розділ
Основи MLOps

bookРозгортання Моделей за Допомогою FastAPI

Свайпніть щоб показати меню

Коли виникає потреба надати вашу модель машинного навчання для використання іншими застосунками або користувачами, розгортання її як веб-сервісу є поширеним і практичним рішенням. FastAPI — це сучасний веб-фреймворк Python, який дозволяє швидко створювати REST API, що робить його чудовим вибором для розгортання моделей машинного навчання. Використовуючи FastAPI, ви можете надати доступ до навченої моделі через HTTP-ендпоінти, щоб запити на прогнозування можна було надсилати з будь-якого місця, використовуючи будь-яку мову чи інструмент, здатний виконувати веб-запити.

Типовий робочий процес розгортання ML-моделі з FastAPI включає кілька етапів:

  • Навчання та серіалізація моделі за допомогою бібліотеки, такої як scikit-learn;
  • Створення FastAPI-додатку, який завантажує збережену модель під час запуску;
  • Визначення ендпоінту (наприклад, /predict), який приймає вхідні дані, виконує інференс і повертає прогноз;
  • Запуск FastAPI-додатку як веб-сервера для обробки HTTP-запитів.

Такий підхід має багато переваг:

  • Можливість відокремити модель від середовища навчання та зробити її доступною для інших систем;
  • FastAPI автоматично генерує інтерактивну документацію для вашого API, що спрощує тестування та поширення;
  • Фреймворк є асинхронним і високопродуктивним, що важливо для реального часу або продакшн-використання.

Перш ніж перейти до реалізації, уточнимо, що таке FastAPI.

Note
FastAPI

FastAPI — це сучасний, швидкий веб-фреймворк для створення API на Python.

Щоб побачити, як це працює на практиці, наведено простий застосунок FastAPI, який завантажує модель scikit-learn і надає ендпоінт /predict. У цьому прикладі передбачається, що ви вже навчили та зберегли модель за допомогою модуля joblib або pickle з scikit-learn. API прийматиме вхідні дані у форматі JSON для прогнозування та повертатиме результат моделі.

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

Які твердження щодо розгортання моделей машинного навчання з FastAPI є коректними?

Select all correct answers

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 7

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 1. Розділ 7
some-alt