Artificial Intelligence
AutoGen: Zasilanie aplikacji wielkojęzykowych nowej generacji

Duże modele językowe (LLM) są obecnie jednym z najczęściej dyskutowanych tematów w głównym nurcie sztucznej inteligencji. Deweloperzy na całym świecie badają potencjalne zastosowania LLM. Modele te to algorytmy sztucznej inteligencji, które wykorzystują techniki głębokiego uczenia się i ogromne ilości danych szkoleniowych do zrozumienia, podsumowania, przewidywania i generowania szerokiego zakresu treści, w tym tekstu, dźwięku, obrazów, filmów i innych.
Duże modele językowe to skomplikowane algorytmy sztucznej inteligencji. Opracowanie takiego modelu jest wyczerpującym zadaniem, a skonstruowanie aplikacji wykorzystującej możliwości LLM jest równie trudne. Zaprojektowanie, wdrożenie i ostatecznie optymalizacja przepływu pracy umożliwiającego wykorzystanie pełnego potencjału dużego modelu językowego w celu uzyskania najlepszych wyników wymaga znacznej wiedzy specjalistycznej, wysiłku i zasobów. Biorąc pod uwagę dużą ilość czasu i zasobów wymaganych do ustalenia przepływów pracy dla aplikacji wykorzystujących możliwości LLM, automatyzacja tych procesów ma ogromną wartość. Jest to szczególnie prawdziwe, ponieważ przewiduje się, że w najbliższej przyszłości przepływy pracy staną się jeszcze bardziej złożone, a programiści będą tworzyć coraz bardziej wyrafinowane narzędzia Aplikacje oparte na LLM. Ponadto przestrzeń projektowa niezbędna dla tych przepływów pracy jest zarówno skomplikowana, jak i ekspansywna, co jeszcze bardziej podnosi wyzwania związane z opracowaniem optymalnego, solidnego przepływu pracy, który spełnia oczekiwania dotyczące wydajności.
Autogenowanie to framework opracowany przez zespół Microsoft, którego celem jest uproszczenie orkiestracji i optymalizacji przepływów pracy LLM poprzez wprowadzenie automatyzacji do potoku przepływu pracy. Struktura AutoGen oferuje konwersowalnych i konfigurowalnych agentów, którzy wykorzystują moc zaawansowanych LLM, takich jak GPT-3 i GPT-4, a jednocześnie eliminują ich obecne ograniczenia, integrując LLM z narzędziami i wkładem ludzkim, korzystając z automatycznych czatów do inicjowania rozmów pomiędzy wieloma agentami.
Korzystając ze środowiska AutoGen, wystarczą dwa kroki podczas opracowywania złożonego systemu konwersacji z wieloma agentami.
Krok 1: Zdefiniuj zestaw agentów, każdy z jego rolami i możliwościami.
Krok 2: Zdefiniuj zachowanie interakcji pomiędzy agentami, tzn. agent powinien wiedzieć, co odpowiedzieć, gdy otrzyma wiadomość od innego agenta.
Obydwa powyższe kroki mają charakter modułowy i intuicyjny, co sprawia, że agentów można komponować i używać wielokrotnie. Poniższy rysunek przedstawia przykładowy przepływ pracy, który dotyczy odpowiedzi na pytania oparte na kodzie w optymalizacji łańcucha dostaw. Jak widać, autor najpierw pisze kod i interpretację, Zabezpieczenie zapewnia prywatność i bezpieczeństwo kodu, a kod jest następnie wykonywany przez Dowódcę po uzyskaniu wymaganego zezwolenia. Jeżeli w czasie wykonywania system napotka jakikolwiek problem, proces jest powtarzany aż do jego całkowitego rozwiązania. Wdrożenie poniższej struktury powoduje zmniejszenie ilości ręcznej interakcji z 3x do 10x w przypadku wdrożenia w aplikacjach takich jak optymalizacja łańcucha dostaw. Co więcej, użycie AutoGen zmniejsza wysiłek związany z kodowaniem nawet czterokrotnie.
AutoGen może zmienić reguły gry, ponieważ ma na celu przekształcenie procesu tworzenia złożonych aplikacji z wykorzystaniem mocy LLM. Zastosowanie AutoGen może nie tylko zmniejszyć ilość ręcznych interakcji potrzebnych do osiągnięcia pożądanych rezultatów, ale może również zmniejszyć ilość wysiłku związanego z kodowaniem potrzebnym do tworzenia tak złożonych aplikacji. Wykorzystanie AutoGen do tworzenia Aplikacje oparte na LLM może nie tylko znacznie przyspieszyć proces, ale także pomóc w zmniejszeniu ilości czasu, wysiłku i zasobów potrzebnych do opracowania tych złożonych aplikacji.
W tym artykule głębiej zagłębimy się w framework AutoGen i zbadamy podstawowe komponenty i architekturę frameworku AutoGen, wraz z jego potencjalnymi zastosowaniami. Zacznijmy więc.
Wprowadzenie do AutoGen: Zasilanie aplikacji wielkojęzykowych nowej generacji
AutoGen to platforma typu open source opracowana przez zespół firmy Microsoft, która zapewnia programistom możliwość tworzenia aplikacji wykorzystujących możliwości LLM przy użyciu wielu agentów, którzy mogą rozmawiać ze sobą w celu pomyślnego wykonania żądanych zadań. Z agentami w AutoGen można rozmawiać, można je dostosowywać i mogą działać w różnych trybach, które wykorzystują kombinację narzędzi, wkładu ludzkiego i LLM. Programiści mogą również używać platformy AutoGen do definiowania zachowań interakcji agentów, a programiści mogą używać zarówno kodu komputerowego, jak i języka naturalnego, aby programować elastyczne wzorce konwersacji wdrażane w różnych aplikacjach. Będąc platformą typu open source, AutoGen można uznać za ogólną platformę, której programiści mogą używać do tworzenia aplikacji i struktur o różnej złożoności, które wykorzystują moc LLM.
Duże modele językowe odgrywają kluczową rolę w opracowywaniu agentów korzystających ze struktur LLM w celu dostosowywania się do nowych obserwacji, użycia narzędzi i rozumowania w wielu zastosowaniach w świecie rzeczywistym. Jednak opracowywanie takich aplikacji, które mogą wykorzystać pełny potencjał LLM, jest sprawą złożoną, a biorąc pod uwagę stale rosnące zapotrzebowanie i zastosowania LLM wraz ze wzrostem złożoności zadań, istotne jest zwiększenie mocy tych agentów przy użyciu wielu agentów które współpracują ze sobą w synchronizacji. Ale w jaki sposób można zastosować podejście wieloagentowe do opracowania aplikacji opartych na LLM, które można następnie zastosować w szerokiej gamie domen o różnym stopniu złożoności? Framework AutoGen próbuje odpowiedzieć na powyższe pytanie, wykorzystując rozmowy wieloagentowe.
AutoGen: Komponenty i Framework
Próbując zmniejszyć wysiłek, jaki programiści muszą włożyć w tworzenie złożonych aplikacji wykorzystujących możliwości LLM w szerokiej gamie domen, podstawową zasadą AutoGen jest konsolidacja i usprawnianie przepływów pracy wielu agentów poprzez wykorzystanie rozmów między agentami , maksymalizując w ten sposób możliwość ponownego użycia zaimplementowanych agentów. AutoGen wykorzystuje wielu agentów, którzy mogą ze sobą rozmawiać, aby pomyślnie wykonać żądane zadania, a platforma opiera się na dwóch podstawowych koncepcjach: Konwersacyjni agenci oraz Programowanie konwersacyjne.
Konwersacyjni agenci
Konwersowalny agent w AutoGen to jednostka ze wstępnie zdefiniowaną rolą, która może przekazywać wiadomości w celu wysyłania i odbierania informacji do i od innych konwersowalnych agentów. Agent konwersacyjny utrzymuje swój wewnętrzny kontekst na podstawie odebranych lub wysłanych wiadomości, a programiści mogą skonfigurować tych agentów tak, aby mieli unikalny zestaw możliwości, takich jak włączanie za pomocą narzędzi LLM lub korzystanie z danych wejściowych od człowieka.
Możliwości agenta obsługiwane przez ludzi, narzędzia i LLM
Możliwości agenta są bezpośrednio powiązane ze sposobem, w jaki przetwarza on wiadomości i odpowiada na nie, co jest głównym powodem, dla którego agenci w środowisku AutoGen umożliwiają programistom elastyczność w zapewnianiu agentom różnych możliwości. AutoGen obsługuje wiele typowych możliwości komponowania dla agentów, które obejmują
- LLM: Agenci wspierani przez LLM wykorzystują możliwości zaawansowanych struktur LLM, takie jak ukryta ingerencja stanu, odgrywanie ról, przekazywanie informacji zwrotnych, a nawet kodowanie. Programiści mogą używać nowatorskich technik podpowiedzi, aby połączyć te możliwości, próbując zwiększyć autonomię lub umiejętności agenta.
- Ludzie: Kilka aplikacji wymaga pewnego stopnia zaangażowania człowieka lub wymaga tego, a struktura AutoGen umożliwia aplikacjom opartym na LLM ułatwianie udziału człowieka w rozmowie z agentem przy użyciu agentów wspieranych przez człowieka, którzy mogą pozyskiwać wkład człowieka podczas pewnych rund rozmowy na podstawie konfiguracja agenta.
- Narzędzia: Agenci korzystający z narzędzi zazwyczaj mają możliwość wykorzystania wykonywania kodu lub wykonywania funkcji do wykonywania narzędzi.
Współpraca agentów i dostosowywanie
W oparciu o konkretne potrzeby i wymagania aplikacji programiści mogą skonfigurować poszczególnych agentów tak, aby posiadali kombinację podstawowych typów zaplecza w celu wyświetlania złożonego zachowania związanego z rozmowami między agentami. Framework AutoGen umożliwia programistom łatwe tworzenie agentów posiadających wyspecjalizowane role i możliwości poprzez rozszerzanie lub ponowne wykorzystywanie wbudowanych agentów. Poniższy rysunek przedstawia podstawową strukturę agentów wbudowanych w framework AutoGen. Klasa ConversableAgent może domyślnie korzystać z ludzi, narzędzi i LLM, ponieważ jest to abstrakcja agenta najwyższego poziomu. UserProxyAgent i AssistantAgent to wstępnie skonfigurowane klasy ConversableAgent, a każda z nich reprezentuje typowy tryb użycia, tj. każdy z tych dwóch agentów działa jako asystent AI (jeśli jest wspierany przez LLM) i prosi o wprowadzenie danych przez człowieka lub wykonuje wywołania funkcji lub kody (jeśli są wspierane przez narzędzia i/lub ludzi), działając jako ludzki serwer proxy.
Poniższy rysunek pokazuje, w jaki sposób programiści mogą wykorzystać platformę AutoGen do opracowania systemu z dwoma agentami, który ma niestandardową funkcję odpowiedzi, wraz z ilustracją powstałego automatycznego czatu agentów, który korzysta z systemu dwóch agentów podczas wykonywania programu.
Umożliwiając korzystanie z niestandardowych agentów, którzy mogą ze sobą rozmawiać, ci konwersowalni agenci służą jako podstawowy element konstrukcyjny platformy AutoGen. Jednak programiści muszą określić i ukształtować te rozmowy między wieloma agentami, aby tworzyć aplikacje, w których agenci będą w stanie poczynić znaczne postępy w realizacji określonych zadań.
Programowanie rozmów
Aby rozwiązać powyższy problem, framework AutoGen wykorzystuje programowanie konwersacyjne, paradygmat obliczeniowy zbudowany na dwóch podstawowych koncepcjach: obliczenie, działania podejmowane przez agentów w rozmowie między agentami w celu obliczenia ich odpowiedzi oraz kontrola przepływu, warunki lub kolejność, w jakich przeprowadzane są te obliczenia. Możliwość ich zaprogramowania pozwala programistom wdrożyć wiele elastycznych wzorców rozmów między agentami. Co więcej, w środowisku AutoGen obliczenia skupiają się na rozmowie. Działania podejmowane przez agenta są istotne dla rozmów, w które agent jest zaangażowany, a działania podejmowane przez agentów skutkują przekazywaniem komunikatów dla kolejnych rozmów aż do momentu, w którym spełniony zostanie warunek zakończenia. Co więcej, przepływ kontroli w środowisku AutoGen jest napędzany rozmowami, ponieważ to uczestniczący agenci decydują, którzy agenci będą wysyłać komunikaty do i z procedury obliczeniowej.
Powyższy rysunek przedstawia prostą ilustrację sposobu, w jaki poszczególni agenci wykonują swoje operacje specyficzne dla roli, oraz obliczenia skoncentrowane na rozmowie w celu wygenerowania pożądanych odpowiedzi, takich jak wykonanie kodu i wywołania zakłócające LLM. Zadanie postępuje dalej dzięki konwersacjom wyświetlanym w oknie dialogowym.
Aby ułatwić programowanie konwersacji, środowisko AutoGen zawiera następujące wzorce projektowe.
- Mechanizmy automatycznej odpowiedzi i ujednolicony interfejs dla automatycznych rozmów agentów
Struktura AutoGen ma ujednolicony interfejs do wykonywania odpowiednich obliczeń, które są z natury skoncentrowane na rozmowie, w tym: „funkcja odbierania lub wysyłania” do odbierania lub wysyłania wiadomości wraz z „wygeneruj_odpowiedź” funkcja, która na podstawie odebranej wiadomości generuje odpowiedź i podejmuje wymagane działania. Struktura AutoGen wprowadza również i wdraża automatyczna odpowiedź agenta domyślny mechanizm realizujący kontrolę opartą na rozmowie.
- Sterowanie poprzez połączenie języka naturalnego i programowania
Framework AutoGen ułatwia użycie języka naturalnego i programowania w różnych wzorcach zarządzania przepływem sterowania, które obejmują: Kontrole języka naturalnego przy użyciu LLM, Sterowanie językiem programowania, Kontroluj przejście między programowaniem a językiem naturalnym.
Idąc dalej, oprócz statycznych rozmów, którym zwykle towarzyszy predefiniowany przepływ, framework AutoGen obsługuje także dynamiczne przepływy konwersacji z wykorzystaniem wielu agentów, a framework zapewnia programistom dwie opcje osiągnięcia tego
- Korzystając z wywołań funkcji.
- Korzystając z dostosowanej funkcji generowania odpowiedzi.
Zastosowania AutoGen
Aby zilustrować potencjał frameworku AutoGen w tworzeniu złożonych aplikacji wieloagentowych, poniżej przedstawiono sześć potencjalnych zastosowań AutoGen, wybranych na podstawie ich przydatności w świecie rzeczywistym, możliwości rozwiązywania problemów wzmocnionych przez framework AutoGen, i ich innowacyjny potencjał.
Te sześć zastosowań platformy AutoGen to:
- Rozwiązywanie problemów matematycznych.
- Rozszerzone wyszukiwanie czatów.
- Rozmowy ALF.
- Kodowanie wieloagentowe.
- Dynamiczny czat grupowy.
- Szachy konwersacyjne.
Aplikacja 1: Rozwiązywanie problemów matematycznych
Matematyka jest jedną z podstawowych dyscyplin wykorzystujących modele LLM do pomocy w rozwiązywaniu złożonych problemów matematycznych, co otwiera zupełnie nowy świat potencjalnych zastosowań, w tym pomoc w badaniach nad sztuczną inteligencją i spersonalizowane nauczanie w zakresie sztucznej inteligencji.
Załączony powyżej rysunek przedstawia zastosowanie platformy AutoGen do osiągnięcia konkurencyjnej wydajności w rozwiązywaniu problemów matematycznych.
Aplikacja 2: Generowanie kodu rozszerzonego o odpowiadanie na pytania i wyszukiwanie
W ciągu ostatnich kilku miesięcy generowanie rozszerzonego kodu odzyskiwania okazało się skutecznym i praktycznym podejściem do przezwyciężania ograniczeń LLM we włączaniu dokumentów zewnętrznych. Poniższy rysunek przedstawia zastosowanie platformy AutoGen do skutecznego wspomagania wyszukiwania i zwiększania wydajności zadań pytań i odpowiedzi.
Aplikacja 3: Podejmowanie decyzji w środowiskach świata tekstowego
Framework AutoGen można wykorzystać do tworzenia aplikacji współpracujących z podejmowaniem decyzji online lub interaktywnie. Poniższy rysunek pokazuje, w jaki sposób programiści mogą wykorzystać framework AutoGen do zaprojektowania systemu konwersacyjnego składającego się z trzech agentów i agenta uziemiającego, aby znacznie zwiększyć wydajność.
Aplikacja 4: Kodowanie wieloagentowe
Programiści pracujący nad frameworkiem AutoGen mogą wykorzystać framework OptiGuide do zbudowania wieloagentowego systemu kodowania, który jest w stanie pisać kod w celu wdrażania zoptymalizowanych rozwiązań i odpowiadać na pytania użytkowników. Poniższy rysunek pokazuje, że użycie frameworku AutoGen do stworzenia projektu wieloagentowego pomaga znacznie zwiększyć ogólną wydajność, szczególnie podczas wykonywania zadań kodowania wymagających zabezpieczeń.

Aplikacja 5: Dynamiczny czat grupowy
Framework AutoGen zapewnia obsługę wzorca komunikacji opartego na dynamicznych czatach grupowych, w których wielu uczestniczących agentów dzieli się kontekstem i zamiast wykonywać zestaw wcześniej zdefiniowanych poleceń, rozmawiają ze sobą w sposób dynamiczny. Te dynamiczne czaty grupowe opierają się na ciągłych rozmowach, które kierują przepływem interakcji pomiędzy agentami.
Powyższy rysunek ilustruje, jak środowisko AutoGen obsługuje dynamiczne czaty grupowe pomiędzy agentami, wykorzystując „Menedżer czatu grupowego”, agent specjalny.
Zastosowanie 6: Szachy konwersacyjne
Twórcy frameworku AutoGen wykorzystali go do opracowania aplikacji Conversational Chess, która jest grą z naturalną ingerencją, zawierającą wbudowanych agentów dla graczy, którzy mogą być LLM lub ludźmi, a także istnieje agent zewnętrzny, który zapewnia odpowiednie informacji i weryfikuje ruchy na planszy w oparciu o zestaw predefiniowanych standardowych zasad. Poniższy rysunek przedstawia Conversational Chess, grę z naturalną ingerencją zbudowaną przy użyciu frameworku AutoGen, która pozwala graczom używać żartów, odgrywania postaci, a nawet odniesień do memów, aby twórczo wyrażać swoje ruchy, co czyni grę w szachy bardziej interesującą nie tylko dla graczy , ale także dla widzów i obserwatorów.
Podsumowanie
W tym artykule mówiliśmy o AutoGen, frameworku open source, który wykorzystuje koncepcje programowania konwersacyjnego i agentów konwersacyjnych, którego celem jest uproszczenie orkiestracji i optymalizacji przepływów pracy LLM poprzez wprowadzenie automatyzacji do potoku przepływu pracy. Struktura AutoGen oferuje konwersowalnych i konfigurowalnych agentów, którzy wykorzystują moc zaawansowanych LLM, takich jak GPT-3 i GPT-4, a jednocześnie eliminują ich obecne ograniczenia, integrując LLM z narzędziami i wkładem ludzkim, korzystając z automatycznych czatów do inicjowania rozmów pomiędzy wieloma agentami.
Chociaż platforma AutoGen jest wciąż na wczesnym etapie eksperymentów, toruje drogę przyszłym eksploracjom i możliwościom badawczym w tej dziedzinie, a AutoGen może być narzędziem pomagającym poprawić szybkość, funkcjonalność i łatwość tworzenia aplikacji wykorzystujących technologię możliwości LLM.