← Projects

DSDG

Distributed synthetic data generation

Period
Mar 2026 – present
Affiliation
ZenteiQ AiTech Innovations · IndiaAI Mission
  • LLM post-training
  • Distributed systems
  • JAX/TPU

DSDG generates synthetic training data by orchestrating multi-turn AI conversations. A run pairs seed data with prompt templates, drives a user/assistant exchange through an inference endpoint, and materialises the result as a candidate record for downstream training.

What it has to do

  • Turn a seed and a prompt template into a complete multi-turn exchange, without a human in the loop.
  • Run many such exchanges at once, across machines, at a throughput that makes a training-scale corpus practical.
  • Survive an inference endpoint that is slow, flaky or briefly gone, without losing work already done.
  • Keep every run inspectable while it is still running, not only after it ends.
  • Produce candidates that a reviewer can accept or reject on evidence — the trajectory that produced a record is part of the record.

Shape of the system

A run moves through an explicit state machine: created, queued, picked up by an orchestrator, driven turn by turn, then either materialised as a candidate or recorded as a failure with its error history. Commands and status events travel over Kafka, so the API that accepts a run and the worker that executes it scale independently.

Storage is split by access pattern. Live conversation state — the turns as they happen — goes to a wide-column store with a short TTL, which is what makes a run watchable in flight. Durable records — runs, candidates, prompts, seed data, failures — go to SQL, where they can be queried and reviewed later.

A circuit breaker sits in front of the inference endpoint, and tool calls execute under a max-rounds guard so a confused model cannot spin forever.

My part

  • Pre-trained LLMs on TPU using MaxText (JAX).
  • Built the distributed generation framework over FastAPI, Kafka and YugabyteDB, with Prometheus and Grafana for observability.
  • Ran supervised (SFT) and reinforcement (RLFT) fine-tuning on the output, and served inference with vLLM.