BentoML is a machine-learning model serving framework and deployment platform. In production it lets developers define inference services via a decorator-based SDK (`@bentoml.service`, `@bentoml.api`), package those services into versioned "Bentos" with locked Python dependencies, and build OCI container images or deploy to Kubernetes, EC2, or BentoCloud. The serving layer supports both HTTP (Starlette/Uvicorn) and gRPC, with adaptive batching, model runners, Prometheus metrics, OpenTelemetry tracing, and pluggable monitoring. A comprehensive CLI (`bentoml serve/build/containerize/deploy`) is the primary operational surface, while the `_bentoml_sdk` and `_bentoml_impl` packages provide the user-facing and internal implementation layers respectively. Architecturally, the project separates concern into model registry, service definition, packaging, server workers, and cloud clients. Model artifacts are persisted in a versioned local store via framework adapters for PyTorch, TensorFlow, Transformers, ONNX, scikit-learn, MLflow, XGBoost, LightGBM, and others. Data flows from trained model artifacts into the registry, get referenced by service code, get bundled by `bentoml build` into self-contained Bento packages, and are served by Circus-managed worker processes. The core request path involves serialization, batching, resource allocation, and process supervision, all implemented in internal modules with generally clean abstractions. The repository is mid-migration from a legacy `bentoml.legacy.Service` API to a newer `_bentoml_sdk`, which creates visible duplication: two HTTP client stacks, multiple protobuf versions, and deprecation shims. This is a real maintenance cost but not a functional blocker; the modern SDK is actively developed, documented, and tested. The repo is clearly an application/framework rather than a data-research project; research-like artifacts are limited to test fixtures, training examples, and ML framework integration tests.
Seldon Core v2 is a production-grade, Kubernetes-native MLOps platform for deploying, scaling, and managing machine learning inference at scale. The system is architected as a set of microservices: a Kubernetes operator manages CRDs (Model, Pipeline, Server, Experiment), a centralized scheduler coordinates model placement and scaling across server replicas, an agent sidecar runs on each inference server to handle model loading/unloading, caching, and reverse proxying, and a Kafka Streams-based dataflow engine executes multi-step inference pipelines with joins, batching, and triggers. Inference requests enter via an Envoy proxy that routes to model servers or pipeline gateways, with Kafka as the underlying data plane for pipeline flows. The platform supports the V2 inference protocol, A/B experiments, explainability, drift detection, and OpenAI API translation. It integrates with MLServer, Triton Inference Server, and custom runtimes, and provides a CLI for lifecycle management.