Real-Time Multilingual Chat Translation at Scale

roblox · Media & Entertainment · 2024 · source Agentic: no · promotional bias: med · source-backed · extracted with prompt 0.5.6 (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: Real-time multilingual chat translation at platform scale

Roblox needed real-time chat translation across all combinations of 16 supported languages for a global platform, while meeting conversational latency, domain-specific language quality, and trust-and-safety requirements.

Constraints:

Architecture

Roblox built a unified transformer-based multilingual translation LLM with mixture-of-experts behavior for all supported language pairs. The production system checks a request cache, uses dynamic batching on model servers, adds an embedding cache between encoders and decoders, and sends both original and translated messages to devices. Training combines open-source data, Roblox in-experience data, human-labeled chats, slang translations, quality-estimation labels, iterative back translation, distillation, quantization, model compilation, and trust-and-safety integration.

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

flowchart LR
  A["In-experience text chat"] --> B["Translation API"]
  B --> C["RCC request cache"]
  C --> D["Model server"]
  D --> E["Unified multilingual translation model"]
  D --> F["Embedding cache"]
  B --> G["Trust and safety systems"]
  H["Training data pipeline"] --> E
  H --> I["Translation quality estimation model"]
  I --> E
  J["User feedback tool"] --> H
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
In-experience text chat Roblox chat surface that sends and displays original and translated messages. Translation API
Translation API Backend integration for chat translation logic and device responses. In-experience text chat, RCC request cache, Trust and safety systems
RCC request cache Checks whether a translation for the request already exists before backend inference. Translation API, Model server
Model server Serves translation requests with dynamic batching. RCC request cache, Unified multilingual translation model, Embedding cache
Unified multilingual translation model Single transformer-based model handling all supported language pairs. Model server, Translation quality estimation model
Embedding cache Caches encoder/decoder intermediate work for multi-target translation efficiency. Model server
Trust and safety systems Detects and blocks translated policy-violating text. Translation API
Training data pipeline Combines open-source, proprietary, human-labeled, slang, and back-translation data. Unified multilingual translation model, Translation quality estimation model
Translation quality estimation model Reference-free model estimating accuracy, fluency, incorrect references, and error severity. Training data pipeline, Unified multilingual translation model
User feedback tool Planned mechanism for users to report mistranslations and suggest better translations. Training data pipeline

Data flow

A chat message, source language, and target language pass through RCC. If a translation is cached, the backend is skipped. Otherwise the request goes to backend model servers with dynamic batching. The unified model translates across the requested language pair, embedding cache improves multi-target efficiency, and the API sends original plus translated text to the recipient device. The backend applies additional translation logic and trust/safety screening.

3 supporting quotes
“Source messages, along with the source language and target languages are passed through RCC.”article, stated
“Before hitting the back end, we first check cache to see if we already have translations for this request.”article, stated
“If not, the request is passed to the back end and to the model server with dynamic batching.”article, stated

Why this architecture

A unified model avoids operating hundreds of language-pair models and lets related languages share training signal. Serving optimizations, caching, distillation, and quantization make that model fast enough for live chat while trust-and-safety integration keeps translated text within platform policy.

3 supporting quotes
“that would have required 16x16, or 256 different models. Instead, we built a unified, transformer-based translation LLM”article, stated
“This architecture allows for better utilization of resources, since each expert has a different specialty”article, stated
“translated text gets the same level of scrutiny as other text”article, stated

Models used: Unified transformer-based translation LLM · Translation quality estimation model · Multilingual language model

Scale

Alternatives considered (roads not taken)

Build one model per language pair

Rejected because: Sixteen languages would require 256 models and would be harder to train, serve, and maintain.

“we could have built out a unique model for each language pair”article, stated
“but that would have required 16x16, or 256 different models.”article, stated

Serve the roughly 1B-parameter model directly

Rejected because: The large model was too resource-intensive and slow for real-time chat at platform scale.

“Running a translation through a model this large is prohibitively resource-intensive to serve at scale and would take much too long”article, stated

Use only off-the-shelf translation quality metrics

Rejected because: Roblox wanted reference-free quality assessment across accuracy, fluency, and incorrect references.

“Most off-the-shelf translation quality metrics compare the AI translation result to some ground truth or reference translation”article, stated
“We wanted to assess the quality of the translation — without a ground truth translation.”article, stated

Patterns

fine-tuning-adaptation (model-adaptation)

Roblox trained and optimized a domain-specific multilingual translation model using open data, in-experience translations, human labels, slang, and back translation.

“we began by pretraining on available open source data, as well as our own in-experience translation data, human-labeled chat translation results”article, stated

cost-aware-routing (operations)

The serving path uses request caching, dynamic batching, embedding caching, distillation, quantization, compilation, and a smaller model for latency/resource efficiency.

“Before hitting the back end, we first check cache to see if we already have translations for this request. If not, the request is passed to the back end and to the model server with dynamic batching.”article, stated
“We applied distillation, quantization, model compilation, and other serving optimizations to reduce the size of the model to fewer than 650 million parameters and improve the serving efficiency.”article, stated

eval-driven-development (quality)

Roblox built a custom reference-free translation quality estimation model to classify error types and improve the translation model.

“In order to assess quality, we built an ML model and trained it on human labeled error types and scores. We then fine-tuned a multilingual language model to predict word-level errors and types and calculate a score using our multidimensional criteria.”article, stated
“Using the results of this quality measure, we can further improve the quality of our translation model.”article, stated

human-in-the-loop-gate (quality)

Human evaluators translate trending/slang terms, and Roblox plans user feedback to flag mistranslations and suggest better translations.

“To help the model understand modern slang, we asked human evaluators to translate popular and trending terms for each language, and included those translations in our training data. We will continue to repeat this process regularly to keep the system up to date on the latest slang.”article, stated
“allow people on the platform to provide feedback on their translations and help the system improve even faster.”article, stated

safety-policy-enforcement (safety)

The translation backend integrates with Roblox trust and safety so translated text is screened for policy-violating content.

“This back end is where we apply additional chat translation logic and integrate the system with our usual trust and safety systems. This ensures translated text gets the same level of scrutiny as other text, in order to detect and block words or phrases that violate our policies.”article, stated
“This ensures translated text gets the same level of scrutiny as other text, in order to detect and block words or phrases that violate our policies. Safety and civility is at the forefront of everything we do at Roblox, so this was a very important piece of the puzzle.”article, stated

Tradeoffs

Build a custom unified translation model.

Chose Single multilingual model with expert specialization over Commercial APIs or separate pairwise models.

Rationale: A custom model could optimize for Roblox-specific language, all language pairs, latency, and maintainability.

“Based on our own metric, our model outperforms commercial translation APIs on Roblox content, indicating that we’ve successfully optimized for how people communicate on Roblox.”article, stated
“This architecture makes it far more efficient to train and maintain our model for a few reasons.”article, stated

Send both translated and original messages to devices.

Chose Recipient sees native-language translation with original available over Translated-only chat display.

Rationale: The UI defaults to seamless translation while preserving user access to the sender's original message.

“In addition, we modified the API behind in-experience text chat to send both the original and the translated messages to the person’s device. This enables the recipient to see the message in their native language or quickly switch to see the sender’s original, non-translated message.”article, stated
“This enables the recipient to see the message in their native language or quickly switch to see the sender’s original, non-translated message.”article, stated

Use reference-free custom quality estimation.

Chose Human-labeled error model over ground-truth comparison only over Off-the-shelf metrics requiring reference translations.

Rationale: Reference translations are impractical at Roblox scale, so the quality model evaluates source and machine translation directly.

“In this way we can estimate translation quality and detect errors by using source text and machine translations, without requiring a ground truth translation. Using the results of this quality measure, we can further improve the quality of our translation model.”article, stated
“This model estimates the quality from different aspects and categorizes errors into critical, major, and minor errors.”article, stated

Gotchas (what bit them)

A naive per-language-pair model strategy would explode operational complexity.

Root cause: Sixteen supported languages create 256 possible directed language-pair models.

Resolution: Roblox built one unified transformer model with expert specialization for language groups.

“Instead, we built a unified, transformer-based translation LLM to handle all language pairs in a single model.”article, stated
“Given a source sentence and target language, we can activate the relevant “expert” to generate the translations.”article, stated

Real-time serving makes large high-quality translation models operationally impractical without compression.

Root cause: The roughly 1B-parameter model was too resource-intensive and slow for chat latency and throughput targets.

Resolution: Roblox used student-teacher distillation, quantization, compilation, and serving optimizations to shrink the model below 650M parameters.

“Running a translation through a model this large is prohibitively resource-intensive to serve at scale and would take much too long for a real-time conversation, where low latency is critical to support more than 5,000 chats per second.”article, stated
“student-teacher approach to build a smaller, lighter weight model.”article, stated

Generic translation data misses Roblox-specific slang and platform terms.

Root cause: Terms like obby, afk, and lol are domain-specific and change over time.

Resolution: Human evaluators translated popular/trending terms, and Roblox plans regular updates with in-experience examples and slang.

“We need a context-aware model that recognizes Roblox-specific language, including slang and abbreviations (think obby, afk, or lol).”article, stated
“To help the model understand modern slang, we asked human evaluators to translate popular and trending terms for each language, and included those translations in our training data. We will continue to repeat this process regularly to keep the system up to date on the latest slang.”article, stated

Evaluation

Roblox uses a custom translation quality estimation model trained on human-labeled error types/scores, internal metrics comparing Roblox content performance, human slang translation, and planned user feedback loops.

Metrics: Translation quality without reference translation · Accuracy: additions, omissions, mistranslations · Fluency: punctuation, spelling, grammar · Incorrect references · Critical/major/minor error severity · Latency around 100 milliseconds · Throughput above 5,000 chats per second

3 supporting quotes
“We look at this from multiple aspects, including accuracy (whether there are any additions, omissions, or mistranslations), fluency”article, stated
“We classify these errors into severity levels: Is it a critical, major, or minor error? In order to assess quality, we built an ML model and trained it on human labeled error types and scores.”article, stated
“Based on our own metric, our model outperforms commercial translation APIs on Roblox content, indicating that we’ve successfully optimized for how people communicate on Roblox.”article, stated

Outcomes

Roblox cites 16 supported languages, 256 pairwise combinations avoided, more than 70 million daily active users, more than 15 million active experiences, approximately 100ms latency, more than 5,000 chats per second, roughly 1B-parameter teacher model, and fewer than 650M parameters after optimization.

3 supporting quotes
“automatically translate interactions — and we wanted to do that for all 16 languages we support on the platform.”article, stated
“These translations are available today for all 16 languages we support — but we are far from done.”article, stated
“we’re exploring ways to automatically translate everything in multiple dimensions: text on images, textures, 3D models, etc.”article, stated