Alto: Orchestrating Distributed Compound AI Systems with Nested Ancestry

Compound AI applications chain together subcomponents such as generative language models, document retrievers, and embedding models. Applying traditional systems optimizations such as parallelism and pipelining in compound AI systems is difficult because each component has different constraints in terms of the granularity and type of data that it ingests. New data is often generated during intermediate computations, and text streams may be split into smaller, independent fragments (such as documents to sentences) which may then be re-aggregated at later parts of the computation. Due to this complexity, existing systems to serve compound AI queries do not fully take advantage of parallelism and pipelining opportunities.We present Alto, a framework that automatically optimizes execution of compound AI queries through streaming and parallelism. Bento introduces a new abstraction called nested ancestry, a metadata hierarchy that allows the system to correctly track partial outputs and aggregate data across the heterogeneous constraints of the components of compound AI applications. This metadata is automatically inferred from the programming model, allowing developers to express complex dataflow patterns without needing to reason manually about the details of routing and aggregation. Implementations of four applications in Alto outperform or match implementations in LangGraph, a popular existing AI programming framework. Alto implementations match or improve latency by between 10-30%.
View on arXiv@article{raghavan2025_2403.04311, title={ Alto: Orchestrating Distributed Compound AI Systems with Nested Ancestry }, author={ Deepti Raghavan and Keshav Santhanam and Muhammad Shahir Rahman and Nayani Modugula and Luis Gaspar Schroeder and Maximilien Cura and Houjun Liu and Pratiksha Thaker and Philip Levis and Matei Zaharia }, journal={arXiv preprint arXiv:2403.04311}, year={ 2025 } }