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

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

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
some-alt