Intelligence artificielle
AIOS : Système d’exploitation pour les agents LLM
Pendant les six dernières décennies, les systèmes d’exploitation ont évolué de manière progressive, passant de systèmes basiques à des systèmes d’exploitation complexes et interactifs qui alimentent les appareils d’aujourd’hui. Initialement, les systèmes d’exploitation servaient de pont entre la fonctionnalité binaire du matériel informatique, telle que la manipulation de portes, et les tâches de niveau utilisateur. Au fil des ans, cependant, ils se sont développés à partir de systèmes de traitement de lots simples à des techniques de gestion de processus plus sophistiquées, notamment la multitâche et le partage du temps. Ces progrès ont permis aux systèmes d’exploitation modernes de gérer une large gamme de tâches complexes. L’introduction d’interfaces utilisateur graphiques (GUI) comme Windows et MacOS a rendu les systèmes d’exploitation modernes plus conviviaux et interactifs, tout en élargissant l’écosystème du système d’exploitation avec des bibliothèques d’exécution et une suite complète d’outils de développement.
Les innovations récentes incluent l’intégration et le déploiement de modèles de langage à grande échelle (LLM), qui ont révolutionné diverses industries en débloquant de nouvelles possibilités. Plus récemment, les agents intelligents basés sur les LLM ont montré des capacités remarquables, atteignant des performances similaires à celles des humains sur une large gamme de tâches. Cependant, ces agents sont encore dans les premiers stades de développement, et les techniques actuelles sont confrontées à plusieurs défis qui affectent leur efficacité et leur efficience. Les problèmes courants incluent la planification sous-optimale des demandes d’agents sur le modèle de langage à grande échelle, les complexités liées à l’intégration d’agents avec différentes spécialisations, et le maintien du contexte lors des interactions entre le LLM et l’agent. Le développement rapide et la complexité croissante des agents basés sur les LLM entraînent souvent des goulets d’étranglement et une utilisation sous-optimale des ressources.
Pour répondre à ces défis, cet article discutera d’AIOS, un système d’exploitation d’agent LLM conçu pour intégrer des modèles de langage à grande échelle en tant que « cerveau » du système d’exploitation, lui donnant effectivement une « âme ». Plus précisément, le cadre AIOS vise à faciliter la commutation de contexte entre les agents, à optimiser l’allocation de ressources, à fournir des services d’outils pour les agents, à maintenir le contrôle d’accès et à permettre l’exécution concurrente des agents. Nous allons examiner en profondeur le cadre AIOS, en explorant ses mécanismes, sa méthodologie et son architecture, et en le comparant avec les cadres d’état de l’art. Commençons.
Après avoir obtenu un succès remarquable dans les modèles de langage à grande échelle, l’objectif suivant de l’industrie de l’IA et du ML est de développer des agents autonomes qui puissent fonctionner de manière indépendante, prendre des décisions par eux-mêmes et effectuer des tâches avec un minimum d’interventions humaines. Ces agents intelligents basés sur l’IA sont conçus pour comprendre les instructions humaines, traiter les informations, prendre des décisions et effectuer les actions appropriées pour atteindre un état autonome, l’avènement et le développement des modèles de langage à grande échelle ouvrant de nouvelles possibilités pour le développement de ces agents autonomes. Les cadres LLM actuels, notamment DALL-E, GPT et plus, ont montré des capacités remarquables pour comprendre les instructions humaines, la raisonnement et la résolution de problèmes, et interagir avec les utilisateurs humains ainsi qu’avec les environnements externes. Construits sur ces puissants et capables modèles de langage à grande échelle, les agents basés sur les LLM ont de fortes capacités d’accomplissement de tâches dans des environnements divers, allant des assistants virtuels aux systèmes plus complexes et sophistiqués impliquant la création, la résolution de problèmes, la planification et l’exécution.

La figure ci-dessus donne un exemple convaincant de la manière dont un agent autonome basé sur les LLM peut résoudre des tâches du monde réel. L’utilisateur demande au système des informations sur un voyage, après quoi l’agent de voyage divise la tâche en étapes exécutables. Ensuite, l’agent effectue les étapes de manière séquentielle, en réservant des vols, en réservant des hôtels, en traitant les paiements, etc. Lors de l’exécution des étapes, ce qui distingue ces agents des applications logicielles traditionnelles est leur capacité à montrer des capacités de prise de décision et à intégrer la raison dans l’exécution des étapes. Parallèlement à une croissance exponentielle de la qualité de ces agents autonomes, la charge sur les fonctionnalités des modèles de langage à grande échelle et des systèmes d’exploitation a augmenté, et un exemple de cela est que la priorisation et la planification des demandes d’agents sur les modèles de langage à grande échelle limités posent un défi important. De plus, puisque le processus de génération des modèles de langage à grande échelle devient une tâche chronophage lorsqu’il s’agit de contextes longs, il est possible que le planificateur suspende la génération résultante, ce qui soulève un problème de conception d’un mécanisme pour capturer le résultat de génération actuel du modèle de langage. En conséquence, le comportement de pause/reprise est activé lorsque le modèle de langage à grande échelle n’a pas finalisé la génération de réponse pour la demande actuelle.
Pour répondre aux défis mentionnés ci-dessus, AIOS, un système d’exploitation de modèle de langage à grande échelle, fournit des regroupements et une isolation de module des fonctionnalités LLM et du système d’exploitation. Le cadre AIOS propose une conception de noyau spécifique aux LLM dans le but d’éviter les conflits potentiels qui pourraient survenir entre les tâches associées et non associées au modèle de langage à grande échelle. Le noyau proposé sépare les devoirs du système d’exploitation, en particulier ceux qui supervisent les agents LLM, les kits de développement et leurs ressources correspondantes. En conséquence de cette séparation, le noyau LLM tente d’améliorer la coordination et la gestion des activités liées aux LLM.
AIOS : Méthodologie et Architecture

Comme vous pouvez le constater, il existe six mécanismes majeurs impliqués dans le fonctionnement du cadre AIOS.
- Planificateur d’agents : La tâche assignée au planificateur d’agents est de planifier et de prioriser les demandes d’agents afin d’optimiser l’utilisation du modèle de langage à grande échelle.
- Gestionnaire de contexte : La tâche assignée au gestionnaire de contexte est de prendre en charge les instantanés ainsi que la restauration de l’état de génération intermédiaire dans le modèle de langage à grande échelle, et la gestion de la fenêtre de contexte du modèle de langage à grande échelle.
- Gestionnaire de mémoire : La responsabilité principale du gestionnaire de mémoire est de fournir une mémoire à court terme pour le journal d’interaction de chaque agent.
- Gestionnaire de stockage : Le gestionnaire de stockage est responsable de conserver les journaux d’interaction des agents dans un stockage à long terme pour une récupération future.
- Gestionnaire d’outils : Le mécanisme de gestionnaire d’outils gère l’appel des agents aux outils API externes.
- Gestionnaire d’accès : Le gestionnaire d’accès impose des politiques de contrôle d’accès et de confidentialité entre les agents.
En plus des mécanismes mentionnés ci-dessus, le cadre AIOS présente une architecture en couches, et est divisé en trois couches distinctes : la couche d’application, la couche de noyau et la couche de matériel. L’architecture en couches mise en œuvre par le cadre AIOS garantit que les responsabilités sont réparties de manière égale dans le système, et que les couches supérieures abstraient les complexités des couches inférieures, permettant des interactions à l’aide de modules ou d’interfaces spécifiques, améliorant ainsi la modularité et simplifiant les interactions système entre les couches.
En commençant par la couche d’application, cette couche est utilisée pour développer et déployer des agents d’application tels que des agents mathématiques ou des agents de voyage. Dans la couche d’application, le cadre AIOS fournit le kit de développement logiciel AIOS (AIOS SDK) avec une abstraction plus élevée des appels de système qui simplifie le processus de développement pour les développeurs d’agents. Le kit de développement logiciel proposé par AIOS offre un riche ensemble d’outils pour faciliter le développement d’applications d’agents en abstrayant les complexités des fonctions de système de niveau inférieur, permettant ainsi aux développeurs de se concentrer sur les fonctionnalités et la logique essentielle de leurs agents, aboutissant à un processus de développement plus efficace.
Ensuite, la couche de noyau est divisée en deux composants : le noyau LLM et le noyau du système d’exploitation. Les deux noyaux, le noyau du système d’exploitation et le noyau LLM, servent les besoins uniques des opérations LLM et non LLM, avec la distinction permettant au noyau LLM de se concentrer sur les tâches spécifiques au modèle de langage à grande échelle, notamment la planification d’agents et la gestion de contexte, activités essentielles pour la gestion des activités liées aux modèles de langage à grande échelle. Le cadre AIOS se concentre principalement sur l’amélioration du noyau du modèle de langage à grande échelle sans modifier significativement la structure du noyau du système d’exploitation existant. Le noyau LLM est équipé de plusieurs modules clés, notamment le planificateur d’agents, le gestionnaire de mémoire, le gestionnaire de contexte, le gestionnaire de stockage, le gestionnaire d’accès, le gestionnaire d’outils et l’interface de système d’appel LLM. Les composants de la couche de noyau sont conçus pour répondre aux besoins d’exécution divers des applications d’agents, garantissant ainsi une exécution et une gestion efficaces au sein du cadre AIOS.
Enfin, nous avons la couche de matériel qui comprend les composants physiques du système, notamment la carte graphique, le processeur, les périphériques, le disque et la mémoire. Il est essentiel de comprendre que le système du noyau LLM ne peut interagir directement avec le matériel, et que ces appels d’interface avec les appels de système du système d’exploitation qui gèrent les ressources matérielles. Cette interaction indirecte entre le système du noyau LLM et les ressources matérielles crée une couche de sécurité et d’abstraction, permettant au noyau LLM d’exploiter les capacités des ressources matérielles sans nécessiter la gestion directe du matériel, facilitant ainsi la maintenance de l’intégrité et de l’efficacité du système.
Mise en œuvre
Comme mentionné ci-dessus, il existe six mécanismes majeurs impliqués dans le fonctionnement du cadre AIOS. Le planificateur d’agents est conçu pour gérer les demandes d’agents de manière efficace, et comporte plusieurs étapes d’exécution, contrairement à un paradigme d’exécution séquentiel traditionnel dans lequel l’agent traite les tâches de manière linéaire, avec les étapes de l’agent étant traitées en premier avant de passer à l’agent suivant, ce qui entraîne des temps d’attente plus longs pour les tâches qui apparaissent plus tard dans la séquence d’exécution. Le planificateur d’agents utilise des stratégies telles que Round Robin, First In First Out et d’autres algorithmes de planification pour optimiser le processus.

Le gestionnaire de contexte a été conçu pour gérer le contexte fourni au modèle de langage à grande échelle, et le processus de génération étant donné le contexte. Le gestionnaire de contexte implique deux composants essentiels : la capture et la restauration de contexte, et la gestion de la fenêtre de contexte. Le mécanisme de capture et de restauration de contexte proposé par le cadre AIOS aide à atténuer les situations où le planificateur suspend les demandes d’agents, comme le montre la figure suivante.

Comme le montre la figure suivante, il est de la responsabilité du gestionnaire de mémoire de gérer la mémoire à court terme dans le cycle de vie d’un agent, et de garantir que les données sont stockées et accessibles uniquement lorsque l’agent est actif, soit pendant l’exécution, soit lorsque l’agent attend son exécution.

D’un autre côté, le gestionnaire de stockage est responsable de conserver les données à long terme, et supervise le stockage d’informations qui doivent être conservées pour une période indéfinie, au-delà de la durée de vie d’un agent individuel. Le cadre AIOS atteint un stockage permanent en utilisant divers supports durables, notamment des solutions basées sur le cloud, des bases de données et des fichiers locaux, garantissant ainsi la disponibilité et l’intégrité des données. De plus, dans le cadre AIOS, c’est le gestionnaire d’outils qui gère un large éventail d’outils API qui améliorent les fonctionnalités des modèles de langage à grande échelle, et le tableau suivant résume comment le gestionnaire d’outils intègre des outils couramment utilisés provenant de diverses sources et les classe dans différentes catégories.

Le gestionnaire d’accès organise les opérations de contrôle d’accès au sein des agents distincts en administrant un groupe de privilèges dédié pour chaque agent, et refuse à un agent l’accès à ses ressources si elles sont exclues du groupe de privilèges de l’agent. De plus, le gestionnaire d’accès est également responsable de compiler et de maintenir des journaux d’audit qui améliorent la transparence du système.
AIOS : Expériences et Résultats
L’évaluation du cadre AIOS est guidée par deux questions de recherche : premièrement, comment se comporte la planification AIOS pour améliorer l’équilibre entre les temps d’attente et les temps de réponse, et deuxièmement, si la réponse du LLM aux demandes d’agents est cohérente après la suspension de l’agent ?
Pour répondre aux questions de cohérence, les développeurs exécutent chaque agent individuellement, puis exécutent ces agents en parallèle, et tentent de capturer leurs sorties à chaque étape. Comme le montre le tableau suivant, les scores BERT et BLEU atteignent la valeur de 1,0, indiquant une correspondance parfaite entre les sorties générées dans les configurations à agent unique et à plusieurs agents.

Pour répondre aux questions d’efficacité, les développeurs effectuent une analyse comparative entre le cadre AIOS utilisant la planification FIFO ou First In First Out et une approche non planifiée, dans laquelle les agents s’exécutent de manière concurrente. Dans l’approche non planifiée, les agents sont exécutés dans un ordre séquentiel prédéfini : agent mathématique, agent de narration et agent de recommandation. Pour évaluer l’efficacité temporelle, le cadre AIOS utilise deux métriques : le temps d’attente et le temps de réponse, et puisque les agents envoient plusieurs demandes au modèle de langage à grande échelle, le temps d’attente et le temps de réponse pour chaque agent sont calculés comme la moyenne du temps d’attente et du temps de réponse pour toutes les demandes. Comme le montre le tableau suivant, l’approche non planifiée affiche des performances satisfaisantes pour les agents plus tôt dans la séquence, mais souffre de temps d’attente et de réponse prolongés pour les agents plus tard dans la séquence. D’un autre côté, l’approche de planification mise en œuvre par le cadre AIOS régule à la fois les temps d’attente et de réponse de manière efficace.

Pensées finales
Dans cet article, nous avons discuté d’AIOS, un système d’exploitation d’agent LLM conçu pour intégrer des modèles de langage à grande échelle dans le système d’exploitation en tant que « cerveau » du système d’exploitation, lui donnant ainsi une « âme ». Plus précisément, le cadre AIOS est conçu pour faciliter la commutation de contexte entre les agents, optimiser l’allocation de ressources, fournir des services d’outils pour les agents, maintenir le contrôle d’accès pour les agents, et permettre l’exécution concurrente des agents. L’architecture AIOS démontre le potentiel pour faciliter le développement et le déploiement d’agents autonomes basés sur les modèles de langage à grande échelle, aboutissant à un écosystème AIOS-Agent plus efficace, plus cohérent et plus efficace.












