ML systems / Distributed generation
Scaling generation beyond a single inference loop
Decoupling generation, scoring, and evaluation so a large molecular search does not have to run as one synchronous loop.
Processed in six days using an asynchronous multi-GPU generation and evaluation pipeline.
The problem
Structured generation is more than repeatedly calling a model. Candidate sequences must also be scored and evaluated. Coupling all of those stages tightly makes it harder to scale the workflow and manage work across devices.
My contribution
I built an asynchronous pipeline that separates generation, token-level scoring, and evaluation. The workflow supports distributed candidate processing rather than forcing every stage to wait inside a single inference loop.
- Generate candidates
- Score token choices
- Evaluate candidate outputs
Scale, with context
The pipeline processed more than one billion molecular candidate samples in six days on eight V100 GPUs. This is a count of generated candidate samples, including repeated outputs.
Separating these stages made generation, scoring, and evaluation independently schedulable across the distributed workflow.
Related modeling work
I also work on structure-aware decoding: checking molecular structure during generation and using reinforcement learning to correct token choices. That method reduced distribution error by 4.8%, while preserving 99.5% valid outputs and 100% uniqueness over 10,000 samples.