Modele i platformy AI
AIOS: System Operacyjny dla Agentów LLM
Przez ostatnie sześć dekad systemy operacyjne ewoluowały stopniowo, rozwijając się od prostych systemów do złożonych i interaktywnych systemów operacyjnych, które napędzają urządzenia dzisiaj. Początkowo systemy operacyjne służyły jako mostek między funkcjonalnością binarną sprzętu komputerowego, takiego jak manipulacja bramkami, a zadaniami na poziomie użytkownika. Jednak z biegiem lat rozwinęły się one z prostych systemów przetwarzania partii do bardziej zaawansowanych technik zarządzania procesami, w tym wielozadaniowości i udostępniania czasu. Te postępy umożliwiły nowoczesnym systemom operacyjnym zarządzanie szerokim zakresem złożonych zadań. Wprowadzenie interfejsów graficznych użytkownika (GUI), takich jak Windows i MacOS, uczyniło nowoczesne systemy operacyjne bardziej przyjaznymi dla użytkownika i interaktywnymi, a także rozszerzyło ekosystem systemu operacyjnego o biblioteki czasu wykonywania i kompletny zestaw narzędzi dla programistów.
Niedawne innowacje obejmują integrację i wdrożenie Modeli Dużych Języków (LLM), które rewolucjonizowały różne branże, odblokowując nowe możliwości. Ostatnio agenci inteligentni oparci na LLM wykazali zdumiewające możliwości, osiągając wyniki porównywalne do ludzkich w szerokim zakresie zadań. Jednak ci agenci nadal znajdują się we wczesnej fazie rozwoju, a obecne techniki stają w obliczu kilku wyzwań, które wpływają na ich wydajność i skuteczność. Powszechne problemy obejmują nieoptymalne planowanie żądań agentów nad dużym modelem języka, złożoności w integrowaniu agentów z różnymi specjalizacjami oraz utrzymanie kontekstu podczas interakcji między LLM a agentem. Szybki rozwój i rosnąca złożoność agentów opartych na LLM często prowadzą do wąskich gardeł i nieoptymalnego wykorzystania zasobów.
Aby rozwiązać te wyzwania, ten artykuł omówi AIOS, system operacyjny dla agentów LLM, zaprojektowany w celu zintegrowania dużych modeli języka jako “mózgu” systemu operacyjnego, nadając mu w ten sposób “duszę”. Konkretnie, ramy AIOS mają na celu ułatwienie przełączania kontekstu między agentami, optymalizację alokacji zasobów, świadczenie usług narzędziowych dla agentów, utrzymanie kontroli dostępu oraz umożliwienie współbieżnej realizacji agentów. Będziemy się zagłębiać w ramy AIOS, eksplorując jego mechanizmy, metody i architekturę, oraz porównywać go z ramami stanu sztuki. Zanurzmy się.
Po osiągnięciu znaczącego sukcesu w dużych modelach języka, następnym celem branży AI i ML jest rozwój autonomicznych agentów AI, które mogą działać niezależnie, podejmować decyzje samodzielnie i wykonywać zadania z minimalnymi lub żadnymi interwencjami ludzkimi. Agenci inteligentni oparci na AI są zaprojektowani w celu zrozumienia instrukcji ludzkich, przetwarzania informacji, podejmowania decyzji i podejmowania odpowiednich działań w celu osiągnięcia stanu autonomicznego, a pojawienie się i rozwój dużych modeli języka przyniosły nowe możliwości w rozwoju tych autonomicznych agentów. Bieżące ramy LLM, w tym DALL-E, GPT i inne, wykazały zdumiewające zdolności do zrozumienia instrukcji ludzkich, rozumowania i rozwiązywania problemów, a także interakcji z użytkownikami ludzkimi i środowiskami zewnętrznymi. Zbudowane na podstawie tych potężnych i zdolnych dużych modeli języka, agenci oparci na LLM mają silne zdolności do wypełniania zadań w różnorodnych środowiskach, od asystentów wirtualnych po bardziej złożone i zaawansowane systemy, obejmujące tworzenie, rozwiązywanie problemów, planowanie i wykonanie.

Powyższy rysunek daje przekonywujący przykład, jak agent autonomiczny oparty na LLM może rozwiązać zadania rzeczywistego świata. Użytkownik żąda od systemu informacji o podróży, po czym agent podróżny rozkłada zadanie na wykonalne kroki. Następnie agent wykonuje kroki sekwencyjnie, rezerwując loty, hotel, przetwarzając płatności itd. Podczas wykonywania kroków to, co odróżnia tych agentów od tradycyjnych aplikacji, jest zdolność agentów do wykazywania zdolności decyzyjnych i włączania rozumu w wykonywanie kroków. Wraz z wykładniczym wzrostem jakości tych autonomicznych agentów, obciążenie funkcjonalności dużych modeli języka i systemów operacyjnych wzrosło, a przykładem tego jest to, że priorytetowe i planowanie żądań agentów w ograniczonych dużych modelach języka stanowi znaczące wyzwanie. Ponadto, ponieważ proces generowania dużych modeli języka staje się czasochłonnym zadaniem przy obsłudze długich kontekstów, możliwe jest, że planista zawiesi wynik generowania, co podnosi problem opracowania mechanizmu do przechwytywania bieżącego wyniku generowania modelu języka. W efekcie tego, zachowanie pauzy i wznowienia jest włączone, gdy duży model języka nie zakończył jeszcze generowania odpowiedzi na bieżące żądanie.
Aby rozwiązać wyzwania wymienione powyżej, AIOS, system operacyjny dla dużych modeli języka, zapewnia agregację i izolację modułową funkcjonalności LLM i systemu operacyjnego. Ramy AIOS proponują projekt jądra specyficznego dla LLM w celu uniknięcia potencjalnych konfliktów wynikających z zadań związanych i niezwiązanych z dużym modelem języka. Proponowane jądro segreguje zadania systemu operacyjnego, szczególnie te, które nadzorują agenty LLM, zestawy deweloperskie i ich odpowiednie zasoby. W efekcie tej segregacji, jądro LLM próbuje poprawić koordynację i zarządzanie działaniami związanymi z LLM.
AIOS: Metodologia i Architektura

Jak można zauważyć, istnieją sześć głównych mechanizmów zaangażowanych w działanie ram AIOS.
- Planista Agentów: Zadaniem planisty agentów jest planowanie i priorytetowe żądań agentów w celu optymalizacji wykorzystania dużego modelu języka.
- Menedżer Kontekstu: Zadaniem menedżera kontekstu jest obsługa migawek oraz przywracanie pośredniego stanu generowania w dużym modelu języka, a także zarządzanie oknem kontekstu dużego modelu języka.
- Menedżer Pamięci: Główną odpowiedzialnością menedżera pamięci jest zapewnienie krótkoterminowej pamięci dla rejestru interakcji dla każdego agenta.
- Menedżer Przechowywania: Menedżer przechowywania jest odpowiedzialny za przechowywanie rejestrów interakcji agentów w długoterminowym przechowywaniu do późniejszego odzyskania.
- Menedżer Narzędzi: Mechanizm menedżera narzędzi zarządza wywołaniem agentów do zewnętrznych narzędzi API.
- Menedżer Dostępu: Menedżer dostępu egzekwuje kontrole dostępu i zasady prywatności między agentami.
Ponadto ramy AIOS obejmują architekturę warstwową, podzieloną na trzy wyraźne warstwy: warstwę aplikacji, warstwę jądra i warstwę sprzętu. Architektura warstwowa wdrożona przez ramy AIOS zapewnia, że odpowiedzialności są rozdzielone równomiernie w systemie, a wyższe warstwy abstrahują złożoności warstw poniżej, umożliwiając interakcje przy użyciu określonych modułów lub interfejsów, co zwiększa modularyzację i upraszcza interakcje systemowe między warstwami.
Rozpoczynając od warstwy aplikacji, warstwa ta służy do tworzenia i wdrażania agentów aplikacji, takich jak agenci matematyczni lub agenci podróżni. W warstwie aplikacji ramy AIOS zapewniają zestaw deweloperski AIOS (AIOS SDK) z wyższą abstrakcją wywołań systemowych, co upraszcza proces tworzenia dla deweloperów agentów. Zestaw deweloperski oferowany przez AIOS oferuje bogaty zestaw narzędzi do ułatwienia tworzenia aplikacji agentów, abstrahując złożoności funkcji systemowych niższego poziomu, pozwalając deweloperom skupić się na funkcjonalnościach i istotnej logice ich agentów, co skutkuje bardziej wydajnym procesem tworzenia.
Przechodząc dalej, warstwa jądra jest dalej podzielona na dwa komponenty: jądro LLM i jądro systemu operacyjnego. Oba jądra systemu operacyjnego i jądro LLM służą unikalnym wymaganiom operacji specyficznych dla LLM i niezwiązanych z LLM, przy czym rozróżnienie pozwala jądru LLM na skupienie się na zadaniach specyficznych dla dużych modeli języka, w tym planowaniu agentów i zarządzaniu kontekstem, które są niezbędne do obsługi działań związanych z dużymi modelami języka. Ramy AIOS koncentrują się głównie na poprawie jądra dużego modelu języka bez znaczącej zmiany struktury istniejącego jądra systemu operacyjnego. Jądro LLM jest wyposażone w kilka kluczowych modułów, w tym planista agentów, menedżer pamięci, menedżer kontekstu, menedżer przechowywania, menedżer dostępu, menedżer narzędzi i interfejs wywołań systemowych LLM. Składniki w warstwie jądra są zaprojektowane w celu rozwiązania różnorodnych potrzeb wykonywania aplikacji agentów, zapewniając skuteczne wykonanie i zarządzanie w ramach AIOS.
W końcu mamy warstwę sprzętu, która składa się z fizycznych komponentów systemu, w tym GPU, CPU, urządzeń peryferyjnych, dysku i pamięci. Ważne jest, aby zrozumieć, że system jądra LLM nie może interakcować bezpośrednio z sprzętem, a te wywołania interfejsu z wywołaniami systemowymi systemu operacyjnego, które z kolei zarządzają zasobami sprzętu. To pośrednie interakcje między systemem jądra LLM a zasobami sprzętu tworzą warstwę bezpieczeństwa i abstrakcji, pozwalając jądru LLM na wykorzystanie możliwości zasobów sprzętu bez konieczności bezpośredniego zarządzania sprzętem, co ułatwia utrzymanie integralności i wydajności systemu.
Implementacja
Jak wspomniano powyżej, istnieją sześć głównych mechanizmów zaangażowanych w działanie ram AIOS. Planista agentów jest zaprojektowany w taki sposób, aby mógł efektywnie zarządzać żądaniami agentów, i ma kilka kroków wykonywania, w przeciwieństwie do tradycyjnego sekwencyjnego paradygmatu wykonywania, w którym agent przetwarza zadania w sposób liniowy, z krokami z tego samego agenta przetwarzanymi jako pierwsze, zanim przejdzie do następnego agenta, co skutkuje zwiększonymi czasami oczekiwania na zadania pojawiające się później w sekwencji wykonywania. Planista agentów wykorzystuje strategie takie jak Round Robin, First In First Out i inne algorytmy planowania, aby zoptymalizować proces.

Menedżer kontekstu został zaprojektowany w taki sposób, aby był odpowiedzialny za zarządzanie kontekstem dostarczonym do dużego modelu języka, oraz procesem generowania w określonym kontekście. Menedżer kontekstu obejmuje dwa kluczowe komponenty: migawkę kontekstu i przywracanie, oraz zarządzanie oknem kontekstu. Mechanizm migawki kontekstu i przywracania oferowany przez ramy AIOS pomaga w łagodzeniu sytuacji, w których planista zawiesza żądania agentów, jak pokazano na poniższym rysunku.

Jak pokazano na poniższym rysunku, menedżer pamięci jest odpowiedzialny za zarządzanie pamięcią krótkoterminową w cyklu życia agenta i zapewnia, że dane są przechowywane i dostępne tylko wtedy, gdy agent jest aktywny, podczas wykonywania lub gdy agent oczekuje na wykonanie.

Z drugiej strony, menedżer przechowywania jest odpowiedzialny za zachowanie danych na dłuższą metę i nadzoruje przechowywanie informacji, które muszą być zachowane przez nieokreślony czas, poza okresem działania poszczególnych agentów. Ramy AIOS osiągają trwałe przechowywanie przy użyciu różnych trwałych nośników, w tym rozwiązań opartych na chmurze, baz danych i plików lokalnych, zapewniając dostępność i integralność danych. Ponadto w ramach AIOS, menedżer narzędzi zarządza różnymi narzędziami API, które zwiększają funkcjonalność dużych modeli języka, a poniższa tabela podsumowuje, jak menedżer narzędzi integruje powszechnie używane narzędzia z różnych źródeł i klasyfikuje je w różne kategorie.

Menedżer dostępu organizuje operacje kontroli dostępu w ramach poszczególnych agentów przez administrowanie dedykowaną grupą uprawnień dla każdego agenta i odmawia agentowi dostępu do jego zasobów, jeśli są one wykluczone z grupy uprawnień agenta. Dodatkowo, menedżer dostępu jest również odpowiedzialny za składanie i utrzymanie dzienników audytowych, co zwiększa przejrzystość systemu.
AIOS: Eksperymenty i Wyniki
Ocena ram AIOS jest prowadzona przez dwa pytania badawcze: po pierwsze, jak wygląda wydajność planowania AIOS w poprawie czasu oczekiwania i czasu realizacji, a po drugie, czy odpowiedzi LLM na żądania agentów są spójne po zawieszeniu agenta?
Aby odpowiedzieć na pytania o spójność, deweloperzy uruchamiają każdego z trzech agentów indywidualnie, a następnie wykonują te agenty równolegle i próbują przechwycić ich dane wyjściowe podczas każdego etapu. Jak pokazano w poniższej tabeli, wyniki BERT i BLEU osiągają wartość 1,0, co wskazuje na idealne dopasowanie między danymi wyjściowymi generowanymi w konfiguracjach jednego agenta i wielu agentów.

Aby odpowiedzieć na pytania o wydajność, deweloperzy prowadzą analizę porównawczą między ramami AIOS z zastosowaniem planowania FIFO (First In First Out) a podejściem niezaplanowanym, w którym agenci są wykonywani równolegle. W podejściu niezaplanowanym agenci są wykonywani w określonej sekwencji: agent matematyczny, agent narracyjny i agent re. Aby ocenić wydajność czasową, ramy AIOS wykorzystują dwie miary: czas oczekiwania i czas realizacji, a ponieważ agenci wysyłają wiele żądań do dużego modelu języka, czas oczekiwania i czas realizacji dla poszczególnych agentów są obliczane jako średnia czasu oczekiwania i czasu realizacji dla wszystkich żądań. Jak pokazano w poniższej tabeli, podejście niezaplanowane wykazuje zadowalającą wydajność dla agentów wcześniejszych w sekwencji, ale cierpi na przedłużone czasy oczekiwania i realizacji dla agentów późniejszych w sekwencji. Z drugiej strony, podejście planistyczne wdrożone przez ramy AIOS reguluje zarówno czas oczekiwania, jak i czas realizacji w sposób skuteczny.

Podsumowanie
W tym artykule omówiliśmy AIOS, system operacyjny dla agentów LLM, zaprojektowany w celu zintegrowania dużych modeli języka jako “mózgu” systemu operacyjnego, nadając mu w ten sposób “duszę”. Konkretnie, ramy AIOS są zaprojektowane w celu ułatwienia przełączania kontekstu między agentami, optymalizacji alokacji zasobów, świadczenia usług narzędziowych dla agentów, utrzymania kontroli dostępu dla agentów oraz umożliwienia współbieżnej realizacji agentów. Architektura AIOS wykazuje potencjał do ułatwienia rozwoju i wdrożenia autonomicznych agentów opartych na dużych modelach języka, co skutkuje bardziej efektywnym, spójnym i wydajnym ekosystemem AIOS-Agent.












