Перейти к основному содержимому

ADR-001: Микросервисная архитектура и изоляция окружений

Контекст

VLMHyperBench должен поддерживать оценку множества различных моделей (HuggingFace, vLLM, SGLang) и метрик. Разные модели могут требовать конфликтующих версий библиотек (CUDA, PyTorch, Transformers). Запуск всего в одном окружении приведет к "dependency hell".

Решение

Принято решение использовать строгую изоляцию этапов (Inference, Eval, Report) через контейнеризацию.

  • Каждый этап запускается в собственном изолированном окружении (Docker Container, Singularity, Pod).
  • Управление жизненным циклом окружений делегируется абстракции EnvManager.

Последствия

  • Плюсы: Полная изоляция зависимостей. Возможность параллельного запуска разных моделей на одной машине. Легкая масштабируемость на кластер.
  • Минусы: Оверхед на запуск контейнеров. Необходимость управления передачей данных между этапами (через Shared FS или S3).