BentoML

BentoML является современным фреймворком с открытым исходным кодом для создания, доставки и масштабирования AI-приложений. Он устраняет разрыв между экспериментами в области машинного обучения и развёртыванием в продакшн, позволяя упаковать любую модель из любого фреймворка в готовый к производству API-сервис за считанные минуты. Запускайте BentoML в GPU-облаке Clore.ai для экономичного хостинга AI-приложений.


Что такое BentoML?

BentoML упрощает превращение обученной модели в масштабируемый API-сервис:

  • Независимость от фреймворка: PyTorch, TensorFlow, JAX, scikit-learn, HuggingFace, XGBoost, LightGBM и другие

  • Bento: Самодостаточный воспроизводимый артефакт (модель + код + зависимости)

  • Runner: Масштабируемая единица инференса модели с автоматическим батчингом

  • Service: Определение сервиса HTTP/gRPC, похожее на FastAPI

  • BentoCloud: Необязательная управляемая платформа развертывания

  • Ориентированность на Docker: Каждый Bento можно контейнеризовать одной командой

Ключевые особенности:

  • Адаптивный микробатчинг для оптимизации пропускной способности

  • Встроенная валидация входных/выходных данных с Pydantic

  • Автогенерация спецификации OpenAPI

  • Встроенные метрики Prometheus

  • Поддержка потоковых ответов (LLM)


Требования

Требование
Минимум
Рекомендуется

VRAM GPU

8 ГБ

16–24 ГБ

GPU

Любая NVIDIA

RTX 4090 / A100

ОЗУ

8 ГБ

16 ГБ

Хранилище

20 ГБ

40 ГБ

Python

3.9+

3.11+


Шаг 1 — Арендуйте GPU на Clore.ai

  1. Войдите в clore.aiarrow-up-right.

  2. Нажмите Маркетплейс и выберите GPU-инстанс с ≥ 16 ГБ VRAM.

  3. Установите Docker-образ: мы будем использовать пользовательскую сборку (см. Шаг 2).

  4. Установите открытые порты: 22 (SSH) и 3000 (сервис BentoML).

  5. Нажмите Арендовать.


Шаг 2 — Dockerfile

У BentoML нет официального GPU Docker-образа, поэтому мы собираем его сами:

Сборка и отправка

Соберите образ и отправьте его в ваш аккаунт Docker Hub (замените YOUR_DOCKERHUB_USERNAME на ваш фактический логин):

circle-info

BentoML не предоставляет официальный GPU Docker-образ на Docker Hub. Образы bentoml/bento-server на Docker Hub предназначены для раздачи предупакованных Bento и не включают поддержку CUDA. Соберите образ из приведённого выше Dockerfile для развертываний с поддержкой GPU на Clore.ai.


Шаг 3 — Подключение по SSH

Проверьте BentoML:


Шаг 4 — Ваш первый сервис BentoML

Простой текстовый классификатор

Создайте файл сервиса:

Запуск сервиса

circle-info

Параметр --reload флаг включает горячую перезагрузку во время разработки. Уберите его в продакшне для стабильности.


Шаг 5 — Доступ к сервису

Откройте автоматически сгенерированный Swagger UI:

Или протестируйте с помощью curl:

Ожидаемый ответ:


Шаг 6 — Сервис классификации изображений

Сервис для моделей компьютерного зрения

Проверка с изображением:


Шаг 7 — Потоковый сервис LLM

Для языковых моделей с потоковыми ответами:


Шаг 8 — Сохранение и сборка Bento

Файл Bento это упакованный воспроизводимый артефакт:

bentofile.yaml


Мониторинг и метрики

BentoML предоставляет метрики Prometheus по адресу /metrics:

Ключевые метрики:


Конфигурация адаптивного батчинга


Устранение неполадок

Сервис не запускается

Решения:

  • Проверьте доступность CUDA: python -c "import torch; print(torch.cuda.is_available())"

  • Проверьте объём видеопамяти GPU (VRAM): nvidia-smi

  • Проверьте, что загрузка модели завершена (ищите прогресс загрузки в логах)

Порт 3000 недоступен

Высокая задержка при первом запросе

Это нормально — первый запрос триггерит загрузку модели (прогрев). Все последующие запросы будут быстрыми. Добавьте вызов прогрева после старта:

Ошибки импорта

Решение:


Рекомендации Clore.ai по GPU

BentoML — это фреймворк для сервинга — требования к GPU зависят полностью от модели, которую вы разворачиваете. Вот чего ожидать для распространённых нагрузок:

GPU
VRAM
Цена Clore.ai
Пропускная способность LLM (7B Q4)
Диффузионные модели (SDXL)
Компьютерное зрение (ResNet50)

RTX 3090

24 ГБ

~$0.12/ч

~80 ток/с

~4 изображ./мин

~400 запросов/с

RTX 4090

24 ГБ

~$0.70/ч

~140 ток/с

~8 изображ./мин

~700 запросов/с

A100 40GB

40 ГБ

~$1.20/ч

~110 ток/с

~6 изображ./мин

~1200 запросов/с

A100 80GB

80 ГБ

~$2.00/ч

~130 ток/с

~7 изображ./мин

~1400 запросов/с

Рекомендации по выбору оборудования:

  • Сервинг LLM API (7B–13B): RTX 3090 (~$0.12/час) — оптимальное соотношение цена/производительность

  • API для генерации изображений: RTX 3090 или RTX 4090 в зависимости от требований по пропускной способности

  • Крупные модели (34B–70B Q4): A100 40GB (~$1.20/час) — комфортно помещается

  • Производственный сервинг нескольких моделей: A100 80GB для запасов памяти

circle-info

Адаптивный микробатчинг особенно эффективен на A100 — аппаратный планировщик эффективно обрабатывает батчи, обеспечивая большую пропускную способность на доллар по сравнению с наивным обслуживанием одиночных запросов. Для высоконагруженных API A100 40GB часто даёт лучшую окупаемость, чем две RTX 4090.


Полезные ресурсы

Последнее обновление

Это было полезно?