Parrot: Servicio Eficiente de Aplicaciones Basadas en LLM con Variables Semánticas
Parrot: Efficient Serving of LLM-based Applications with Semantic Variable
May 30, 2024
Autores: Chaofan Lin, Zhenhua Han, Chengruidong Zhang, Yuqing Yang, Fan Yang, Chen Chen, Lili Qiu
cs.AI
Resumen
El auge de los modelos de lenguaje grandes (LLMs, por sus siglas en inglés) ha permitido el desarrollo de aplicaciones basadas en LLMs (también conocidas como agentes de IA o co-pilotos), un nuevo paradigma de software que combina las fortalezas de los LLMs con el software convencional. Diversas aplicaciones de LLMs de diferentes usuarios pueden diseñar flujos de trabajo complejos utilizando múltiples solicitudes de LLM para completar una tarea. Sin embargo, deben utilizar la API simplificada a nivel de solicitud proporcionada por los servicios públicos de LLM actuales, perdiendo información esencial a nivel de aplicación. Los servicios públicos de LLM tienen que optimizar ciegamente las solicitudes individuales de LLM, lo que resulta en un rendimiento subóptimo de extremo a extremo para las aplicaciones basadas en LLM.
Este artículo presenta Parrot, un sistema de servicio de LLM que se centra en la experiencia de extremo a extremo de las aplicaciones basadas en LLM. Parrot propone la Variable Semántica, una abstracción unificada para exponer el conocimiento a nivel de aplicación a los servicios públicos de LLM. Una Variable Semántica anota una variable de entrada/salida en el prompt de una solicitud y crea la tubería de datos al conectar múltiples solicitudes de LLM, proporcionando una forma natural de programar aplicaciones de LLM. Exponer las Variables Semánticas al servicio público de LLM permite realizar análisis convencional de flujo de datos para descubrir la correlación entre múltiples solicitudes de LLM. Esta correlación abre un espacio de optimización completamente nuevo para el rendimiento de extremo a extremo de las aplicaciones basadas en LLM. Evaluaciones extensas demuestran que Parrot puede lograr mejoras de hasta un orden de magnitud para casos de uso populares y prácticos de aplicaciones de LLM.
English
The rise of large language models (LLMs) has enabled LLM-based applications
(a.k.a. AI agents or co-pilots), a new software paradigm that combines the
strength of LLM and conventional software. Diverse LLM applications from
different tenants could design complex workflows using multiple LLM requests to
accomplish one task. However, they have to use the over-simplified
request-level API provided by today's public LLM services, losing essential
application-level information. Public LLM services have to blindly optimize
individual LLM requests, leading to sub-optimal end-to-end performance of LLM
applications.
This paper introduces Parrot, an LLM service system that focuses on the
end-to-end experience of LLM-based applications. Parrot proposes Semantic
Variable, a unified abstraction to expose application-level knowledge to public
LLM services. A Semantic Variable annotates an input/output variable in the
prompt of a request, and creates the data pipeline when connecting multiple LLM
requests, providing a natural way to program LLM applications. Exposing
Semantic Variables to the public LLM service allows it to perform conventional
data flow analysis to uncover the correlation across multiple LLM requests.
This correlation opens a brand-new optimization space for the end-to-end
performance of LLM-based applications. Extensive evaluations demonstrate that
Parrot can achieve up to an order-of-magnitude improvement for popular and
practical use cases of LLM applications.Summary
AI-Generated Summary