Building a Hybrid Cloud AI Infrastructure for Large-Scale ML Inference

roblox · Media & Entertainment · 2024 · source Agentic: no · promotional bias: low · source-backed · extracted with prompt 0.5.4 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Large-scale ML and LLM inference infrastructure

Roblox needed unified AI infrastructure that could scale from fragmented team-specific ML pipelines to hundreds of production inference pipelines across personalization, search, safety, translation, assistant features, and generative creation.

Constraints:

Architecture

Roblox evolved through a three-phase infrastructure build. First it adopted Kubeflow, notebooks, a model registry, KServe/Triton serving, and roblox-ml to standardize training and deployment. Second it added Ray for scalable batch inference, moved CPU inference into data centers, and built a custom Feast/Flink-backed feature store. Third it added an ML gateway for centralized large-model access and a vLLM-based LLMOps platform for high-throughput LLM serving across hybrid cloud and on-prem infrastructure.

Diagram confidence: explicit (topology described by the source).

flowchart LR
  jupyter-notebooks[Jupyter notebooks] --> roblox-ml-library[roblox-ml library]
  roblox-ml-library --> kubeflow-pipelines[Kubeflow pipelines]
  kubeflow-pipelines --> model-registry[Model registry]
  model-registry --> kserve-triton-serving[KServe Triton serving]
  ray-batch-inference[Ray batch inference] --> custom-feature-store[Custom feature store]
  custom-feature-store --> kserve-triton-serving
  ground-truth-team[Ground truth team] --> kubeflow-pipelines
  custom-feature-store --> ml-gateway[ML gateway]
  ml-gateway --> vllm-platform[vLLM platform]
  ml-gateway --> ai-applications[AI applications]
  vllm-platform --> ai-applications
  kserve-triton-serving --> ai-applications
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Jupyter notebooks Development environment for model iteration with data access and GPU resources. roblox-ml library, Kubeflow pipelines
roblox-ml library Python library that packages notebook code into Kubeflow pipelines and model artifacts. Jupyter notebooks, Kubeflow pipelines, Model registry
Kubeflow pipelines Training and recurring pipeline execution layer. roblox-ml library, Model registry
Model registry Versioned model storage for traceability, rollbacks, and A/B tests. Kubeflow pipelines, KServe Triton serving
KServe Triton serving Online inference serving platform across ML frameworks, CPUs, and GPUs. Model registry, Custom feature store
Ray batch inference Distributed task pipeline for scalable batch inference workloads. Custom feature store
Custom feature store Feast/Flink-backed feature store for batch and streaming features with high throughput and low latency. Ray batch inference, KServe Triton serving, ML gateway
Ground truth team Human-evaluator data production and validation support for model teams. Kubeflow pipelines, Custom feature store
ML gateway Central API for large-model access, throttling, load balancing, key management, usage tracking, and observability. Custom feature store, vLLM platform, AI applications
vLLM platform Primary LLM inference engine for high-throughput AI applications. ML gateway, AI applications
AI applications Roblox Assistant, recommendations, search, safety, translation, matchmaking, and generative creation features. ML gateway, vLLM platform, KServe Triton serving

Data flow

Engineers develop and package models with notebooks, roblox-ml, Kubeflow pipelines, and a registry. Batch workloads run through Ray, online models use KServe/Triton and feature-store data, and CPU inference can run in Roblox data centers. Large-model calls route through the ML gateway, which centralizes API management, token throttling, latency-aware regional load balancing, usage tracking, and observability. vLLM serves LLM workloads with improved latency and throughput.

3 supporting quotes
“we developed roblox-ml, a Python library that further reduced the complexities of getting a model deployed to production.”article, stated
“By building out a Ray-based distributed task pipeline for batch inference, we were able to optimize resource utilization”article, stated
“We built our unified ML gateway to centralize access to all large models, both open source and internally developed”article, stated

Why this architecture

Roblox centralized infrastructure because team-specific mini-platforms created duplicated feature engineering and scaling work. Hybrid placement gives control over privacy, latency, and cost; Ray handles batch scale; the feature store serves both streaming and batch features; the ML gateway turns many large models into a governed shared service; and vLLM improves LLM serving efficiency.

3 supporting quotes
“Rather than leveraging a centralized feature store, teams were piecing together ad hoc solutions. Furthermore, each team was burdened with developing its own optimizations and tackling inference scaling challenges independently, without the support of a core platform.”article, stated
“Moving this workload to our own data centers has helped us maintain our efficiency without compromising user experience.”article, stated
“The gateway improved the resilience of our inference services by providing centralized throttling by token count for generative AI workloads”article, stated

Models used: vLLM-served LLMs · Roblox Assistant models · voice safety model · translation models · recommendation and search models

Scale

Alternatives considered (roads not taken)

Team-specific mini-platforms

Rejected because: They duplicated feature engineering, optimizations, and inference-scaling work.

“the lack of a unified Roblox AI platform led engineering teams to construct their own mini platforms and select disparate frameworks.”article, stated

Third-party feature store

Rejected because: Existing solutions did not meet throughput, latency, cost, and rapid-iteration needs.

“Existing third-party solutions did not meet these requirements, so we developed our own custom feature store, built on top of the open-source project Feast.”article, stated

Cache personalization requests to reduce cost

Rejected because: Caching would produce stale homepage recommendations for users who visit multiple times per day.

“To save inference costs, many systems cache requests—this would have led to outdated recommendations since many users visit the Roblox homepage multiple times a day.”article, stated

Patterns

batch-offline-processing (infrastructure)

Ray powers distributed batch inference with multistage processing, task parallelism, and fault tolerance.

“Ray-based distributed task pipeline for batch inference”article, stated

model-routing (infrastructure)

The ML gateway centralizes large-model access across cloud, on-prem, CPU, GPU, open-source, and internal models.

“centralize access to all large models, both open source and internally developed, across a variety of environments”article, stated

observability-tracing (operations)

The gateway integrates monitoring tools and usage tracking while models are monitored for latency and accuracy after release.

“integrates with monitoring tools for improved observability.”article, stated

eval-driven-development (evaluation)

Roblox uses offline experiments, shadow testing, A/B tests, monitoring, and human review before and after model release.

“models at Roblox go through extensive testing before release. This includes offline experiments, shadow testing, and A/B testing.”article, stated

latency-optimization (operations)

vLLM, load balancing, feature-store latency targets, and on-prem CPU inference improve latency and throughput.

“almost 2x improvement in both latency and throughput”article, stated

cost-aware-routing (operations)

Roblox routes workloads across data centers, cloud, CPUs, GPUs, and vLLM while avoiding stale caching for personalization.

“enabling us to better optimize where inference is run and to distribute workloads to reduce the compute resources required.”article, stated

Tradeoffs

Adopt Kubeflow and roblox-ml

Chose standardized pipelines and packaging over each team owning its own deployment path.

Rationale: A common platform made model deployment accessible and reduced duplicated infrastructure work.

“To make ML more accessible for engineers at Roblox, we developed roblox-ml”article, stated

Build a custom feature store

Chose Feast plus Roblox-specific DSL and Flink streaming over continuing with third-party feature-store tooling.

Rationale: Roblox needed domain-specific transformations, high throughput, low latency, and freshness.

“Our feature store provided a custom domain-specific language for defining transformations for both batch and streaming features.”article, stated

Centralize large-model access through an ML gateway

Chose common API, throttling, load balancing, key management, usage tracking, and observability over per-application large-model integrations.

Rationale: Generative workloads needed shared governance and resilience across many teams and environments.

“the gateway provides a common API interface, user-friendly configuration options, and efficient resource sharing between all the models we have deployed.”article, stated

Gotchas (what bit them)

Fragmented ML platforms cause duplicated scaling and feature work.

Root cause: Each team built custom feature engineering, frameworks, and inference optimizations.

Resolution: Centralize around Kubeflow, roblox-ml, model registry, feature store, serving, gateway, and vLLM.

“each team was burdened with developing its own optimizations and tackling inference scaling challenges independently”article, stated

Feature freshness and throughput requirements exceeded off-the-shelf tools.

Root cause: Roblox needed very high throughput, low latency, cost efficiency, and rapid iteration across batch and streaming features.

Resolution: Build a custom Feast/Flink-backed feature store.

“support high throughput, low latency, and cost-efficiency, while also enabling rapid iterations for various services.”article, stated

Caching personalization would reduce cost but harm freshness.

Root cause: Users visit the homepage multiple times a day and need current recommendations.

Resolution: Move CPU inference to Roblox data centers and optimize workload placement instead of relying on stale caches.

“this would have led to outdated recommendations since many users visit the Roblox homepage multiple times a day.”article, stated

Evaluation

Roblox evaluates models and infrastructure with offline experiments, shadow testing, A/B testing, operational monitoring, accuracy monitoring, human moderator review, throughput, latency, and token-volume metrics.

Metrics: approximately 20 A/B tests in parallel for personalization · P99 50ms feature-store serving latency · 1 billion personalization requests daily · 4 billion tokens per week through vLLM · almost 2x latency and throughput improvement

“we are often running approximately 20 A/B tests in parallel.”article, stated
“After being released, models are continually monitored to ensure that they are performing as expected both operationally (e.g., inference latency) and in terms of accuracy.”article, stated

Outcomes

Roblox reports 79.5 million daily active users, 1 billion personalization requests daily, 30B feature records ingested and 70B served per day, and 4B LLM tokens per week.

“With ML gateway and vLLM, we can efficiently support the hundreds of ML pipelines in use across Roblox”article, stated
“we currently serve approximately 4 billion tokens per week.”article, stated