Parrot : Service efficace d'applications basées sur des modèles de langage avec variables sémantiques
Parrot: Efficient Serving of LLM-based Applications with Semantic Variable
May 30, 2024
Auteurs: Chaofan Lin, Zhenhua Han, Chengruidong Zhang, Yuqing Yang, Fan Yang, Chen Chen, Lili Qiu
cs.AI
Résumé
L'essor des grands modèles de langage (LLM) a permis l'émergence d'applications basées sur les LLM (également appelées agents IA ou co-pilotes), un nouveau paradigme logiciel qui combine la puissance des LLM et des logiciels conventionnels. Des applications LLM variées, provenant de différents acteurs, peuvent concevoir des workflows complexes en utilisant plusieurs requêtes LLM pour accomplir une tâche. Cependant, elles doivent utiliser l'API simplifiée au niveau des requêtes fournie par les services LLM publics actuels, perdant ainsi des informations essentielles au niveau de l'application. Les services LLM publics doivent optimiser aveuglément chaque requête LLM individuelle, ce qui entraîne des performances sous-optimales de bout en bout pour les applications LLM.
Cet article présente Parrot, un système de service LLM qui se concentre sur l'expérience de bout en bout des applications basées sur les LLM. Parrot propose la Variable Sémantique, une abstraction unifiée pour exposer les connaissances au niveau de l'application aux services LLM publics. Une Variable Sémantique annote une variable d'entrée/sortie dans l'invite d'une requête et crée le pipeline de données lors de la connexion de plusieurs requêtes LLM, offrant ainsi une manière naturelle de programmer des applications LLM. Exposer les Variables Sémantiques au service LLM public lui permet d'effectuer une analyse conventionnelle du flux de données pour révéler les corrélations entre plusieurs requêtes LLM. Cette corrélation ouvre un tout nouvel espace d'optimisation pour les performances de bout en bout des applications basées sur les LLM. Des évaluations approfondies démontrent que Parrot peut atteindre une amélioration allant jusqu'à un ordre de grandeur pour des cas d'utilisation populaires et pratiques des applications 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