Modele i platformy AI

AutoGen: Napędzanie następnej generacji aplikacji dużych modeli językowych

mm
Dodaj Unite.AI do preferowanych źródeł w Google
The AutoGen Framework

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 eksplorują potencjalne zastosowania LLM. Te modele są algorytmami sztucznej inteligencji, które wykorzystują techniki głębokiego uczenia się i ogromne ilości danych szkoleniowych, aby zrozumieć, podsumować, przewidzieć i wygenerować szeroki zakres treści, w tym tekst, audio, obrazy, filmy i wiele więcej.

Duże modele językowe są skomplikowanymi algorytmami sztucznej inteligencji. Rozwój takiego modelu jest wyczerpującym zadaniem, a konstruowanie aplikacji, która wykorzystuje możliwości LLM, jest równie wymagające. Wymaga to znacznych umiejętności, wysiłku i zasobów, aby zaprojektować, wdrożyć i ostatecznie zoptymalizować przepływ pracy, który może wykorzystać pełny potencjał dużego modelu językowego, aby osiągnąć najlepsze wyniki. Biorąc pod uwagę ogromny czas i zasoby wymagane do ustanowienia przepływów pracy dla aplikacji, które wykorzystują moc LLM, automatyzacja tych procesów ma ogromną wartość. Jest to szczególnie prawdziwe, ponieważ przepływy pracy mają być jeszcze bardziej złożone w najbliższej przyszłości, a deweloperzy tworzą coraz bardziej zaawansowane aplikacje oparte na LLM. Dodatkowo, przestrzeń projektowa niezbędna dla tych przepływów pracy jest zarówno skomplikowana, jak i rozległa, co dodatkowo zwiększa wyzwania związane z tworzeniem optymalnego, wytrzymałego przepływu pracy, który spełnia oczekiwania dotyczące wydajności.

AutoGen to framework opracowany przez zespół Microsoftu, który ma na celu uprościć orchestrację i optymalizację przepływów pracy LLM, wprowadzając automatyzację do potoku przepływu pracy. Framework AutoGen oferuje konwersowalne i dostosowalne agenty, które wykorzystują moc zaawansowanych LLM, takich jak GPT-3 i GPT-4, oraz jednocześnie adresują ich bieżące ograniczenia, integrując LLM z narzędziami i wprowadzając dane wejściowe ludzkie, używając automatycznych rozmów do inicjowania konwersacji między wieloma agentami.

Podczas korzystania z frameworku AutoGen, wystarczą dwa kroki, aby opracować złożony system konwersacji wieloagentowej.

Krok 1: Zdefiniuj zestaw agentów, każdy z własnymi rolami i możliwościami.

Krok 2: Zdefiniuj zachowanie interakcji między agentami, tj. agent powinien wiedzieć, co odpowiedzieć, gdy otrzyma wiadomość od innego agenta.

Oba powyższe kroki są modułowe i intuicyjne, co sprawia, że agenci są komponowalni i wielokrotnie używalni. Poniższy rysunek ilustruje przykładowy przepływ pracy, który rozwiązuje kodowe pytania w optymalizacji łańcucha dostaw. Jak widać, pisarz najpierw pisze kod i interpretację, Safeguard zapewnia prywatność i bezpieczeństwo kodu, a kod jest następnie wykonywany przez Commander po otrzymaniu wymaganych uprawnień. Jeśli system napotka problemy podczas wykonywania, proces jest powtarzany, aż do całkowitego rozwiązania. Wdrożenie poniższego frameworku prowadzi do zmniejszenia ilości interakcji ręcznych z 3 do 10, gdy jest wdrożony w aplikacjach takich jak optymalizacja łańcucha dostaw. Ponadto, użycie AutoGen zmniejsza również ilość wysiłku programistycznego o cztery razy.

AutoGen może być grą zmieniającą, ponieważ ma na celu przekształcić proces rozwoju złożonych aplikacji, wykorzystujących możliwości LLM. Użycie AutoGen nie tylko zmniejsza ilość interakcji ręcznych niezbędnych do osiągnięcia pożądanych wyników, ale także zmniejsza ilość wysiłku programistycznego niezbędnego do tworzenia takich złożonych aplikacji. Użycie AutoGen do tworzenia aplikacji opartych na LLM może nie tylko znacznie przyspieszyć proces, ale także pomoże w zmniejszeniu ilości czasu, wysiłku i zasobów potrzebnych do rozwoju tych złożonych aplikacji.

W tym artykule, będziemy się głębiej zajmować frameworkiem AutoGen i będziemy eksplorować podstawowe składniki i architekturę frameworku AutoGen, wraz z jego potencjalnymi zastosowaniami. Zatem, zaczynajmy.

Wprowadzenie do AutoGen: Napędzanie następnej generacji aplikacji dużych modeli językowych

AutoGen to framework open-source opracowany przez zespół Microsoftu, który wyposaża deweloperów w możliwość tworzenia aplikacji, wykorzystujących możliwości LLM, używając wielu agentów, które mogą prowadzić konwersacje ze sobą, aby pomyślnie wykonać określone zadania. Agenci w AutoGen są konwersowalni, dostosowalni i mogą działać w różnych trybach, wykorzystujących kombinację narzędzi, danych wejściowych ludzkich i LLM. Deweloperzy mogą również używać frameworku AutoGen, aby zdefiniować zachowanie interakcji agentów i mogą używać zarówno kodu komputerowego, jak i języka naturalnego, aby programować elastyczne wzorce konwersacji wdrożone w różnych aplikacjach. Jako framework open-source, AutoGen może być uważany za framework ogólny, który deweloperzy mogą używać do budowania aplikacji i frameworków o różnej złożoności, wykorzystujących możliwości LLM.

Duże modele językowe odgrywają kluczową rolę w tworzeniu agentów, które wykorzystują ramy LLM do adaptacji do nowych obserwacji, użycia narzędzi i wnioskowania w wielu aplikacjach świata rzeczywistego. Jednak tworzenie tych aplikacji, które mogą wykorzystać pełny potencjał LLM, jest skomplikowaną sprawą, a biorąc pod uwagę rosnący popyt i aplikacje LLM, wraz ze wzrostem złożoności zadań, jest niezwykle ważne, aby zwiększyć moc tych agentów, używając wielu agentów, które współpracują ze sobą. Jak można użyć podejścia wieloagentowego do tworzenia aplikacji opartych na LLM, które mogą być następnie zastosowane w szerokim zakresie dziedzin o różnej złożoności? Framework AutoGen próbuje odpowiedzieć na powyższe pytanie, wykorzystując konwersacje wieloagentowe.

AutoGen: Składniki i framework

W celu zmniejszenia ilości wysiłku, jaki deweloperzy muszą włożyć w tworzenie złożonych aplikacji, wykorzystujących możliwości LLM, podstawową zasadą AutoGen jest konsolidacja i uproszczenie przepływów pracy wieloagentowych, wykorzystując konwersacje wieloagentowe, co również maksymalizuje możliwość wielokrotnego użycia wdrożonych agentów. AutoGen wykorzystuje wielu agentów, które mogą prowadzić konwersacje ze sobą, aby pomyślnie wykonać określone zadania, a framework jest oparty na dwóch podstawowych pojęciach: Agenci konwersowalni i Programowanie konwersacji.

Agenci konwersowalni

Agent konwersowalny w AutoGen to jednostka z przeddefiniowaną rolą, która może przekazywać wiadomości, aby wysyłać i otrzymywać informacje do i od innych agentów konwersowalnych. Agent konwersowalny utrzymuje swój wewnętrzny kontekst na podstawie otrzymanych lub wysłanych wiadomości, a deweloperzy mogą konfigurować te agenty, aby miały unikalny zestaw możliwości, takich jak włączenie narzędzi LLM lub przyjmowanie danych wejściowych ludzkich.

Możliwości agentów napędzane przez ludzi, narzędzia i LLM

Możliwości agenta są bezpośrednio związane z tym, jak przetwarza i odpowiada na wiadomości, co jest głównym powodem, dla którego agenci w frameworku AutoGen pozwalają deweloperom na nadanie różnych możliwości swoim agentom. AutoGen obsługuje wiele wspólnych, komponowalnych możliwości dla agentów, w tym

  1. LLM: Agenci wspierani przez LLM wykorzystują możliwości zaawansowanych ram LLM, takich jak niejawna inferencja stanu, role-playing, udzielanie informacji zwrotnej i nawet kodowanie. Deweloperzy mogą używać nowych technik promptowania, aby połączyć te możliwości i zwiększyć autonomię lub umiejętności agenta.
  2. Ludzie: Wiele aplikacji wymaga lub potrzebuje pewnego stopnia udziału ludzi, a framework AutoGen pozwala aplikacjom opartym na LLM na ułatwienie udziału ludzi w konwersacjach agentów, używając agentów wspieranych przez ludzi, którzy mogą żądać danych wejściowych ludzkich podczas pewnych rund konwersacji, w zależności od konfiguracji agenta.
  3. Narzędzia: Agenci wspierani przez narzędzia zwykle mają możliwość używania wykonywania kodu lub wykonywania funkcji, aby wykonywać narzędzia.

Współpraca i dostosowanie agentów

Na podstawie konkretnych potrzeb i wymagań aplikacji, deweloperzy mogą konfigurować poszczególne agenty, aby miały kombinację podstawowych typów zaplecza, aby wyświetlić złożone zachowanie zaangażowane w konwersacjach wieloagentowych. Framework AutoGen pozwala deweloperom łatwo tworzyć agenty o specjalistycznych rolach i możliwościach, rozszerzając lub ponownie używając wdrożonych agentów. Poniższy rysunek ilustruje podstawową strukturę wdrożonych agentów w frameworku AutoGen. Klasa ConversableAgent może używać ludzi, narzędzi i LLM jako domyślnie, ponieważ jest to najwyższa abstrakcja agenta. UserProxyAgent i AssistantAgent to prekonfigurowane klasy ConversableAgent, a każdy z nich reprezentuje typowy tryb użycia, tj. każdy z tych agentów działa jako asystent AI (gdy wspierany przez LLM), i żąda danych wejściowych ludzkich lub wykonywać wywołania funkcji lub kod (gdy wspierany przez narzędzia i/lub ludzi), działając jako proxy użytkownika.

Poniższy rysunek ilustruje, jak deweloperzy mogą używać frameworku AutoGen, aby opracować system dwuagentowy z funkcją odpowiedzi niestandardowej, wraz z ilustracją wynikowej automatycznej konwersacji agenta, która używa systemu dwuagentowego podczas wykonywania programu.

Poprzez umożliwienie użycia niestandardowych agentów, które mogą prowadzić konwersacje ze sobą, agenci konwersowalni służą jako podstawowy element budulcowy w frameworku AutoGen. Jednak deweloperzy muszą określić i ukształtować te konwersacje wieloagentowe, aby opracować aplikacje, w których agenci mogą osiągnąć znaczny postęp w określonych zadaniach.

Programowanie konwersacji

Aby rozwiązać powyższy problem, framework AutoGen wykorzystuje programowanie konwersacji, paradygmat obliczeniowy oparty na dwóch podstawowych pojęciach: obliczenia, działania podejmowane przez agenty w konwersacji wieloagentowej, aby obliczyć swoją odpowiedź, oraz kontrola przepływu, warunki lub sekwencja, w której te obliczenia mają miejsce. Możliwość programowania tych elementów pozwala deweloperom na wdrożenie licznych elastycznych wzorców konwersacji wieloagentowych. Ponadto, w frameworku AutoGen, obliczenia są skoncentrowane na konwersacji. Działania podejmowane przez agenta są istotne dla konwersacji, w której agent uczestniczy, a działania podejmowane przez agenty prowadzą do przekazywania wiadomości do kolejnych konwersacji, aż do momentu, gdy zostanie spełniony warunek zakończenia. Ponadto, kontrola przepływu w frameworku AutoGen jest napędzana przez konwersacje, ponieważ jest to decyzja uczestniczących agentów, które agenty będą wysyłać wiadomości do i od procedury obliczeniowej.

Powyższy rysunek ilustruje prostą ilustrację, jak poszczególne agenty wykonują swoje role-specyficzne operacje i obliczenia skoncentrowane na konwersacji, aby wygenerować pożądane odpowiedzi, takie jak wykonywanie kodu i wywołania interferencji LLM. Zadanie postępuje dzięki konwersacjom wyświetlanym w oknie dialogowym.

Aby ułatwić programowanie konwersacji, framework AutoGen oferuje następujące wzorce projektowe.

  • Mechanizmy auto-odpowiedzi i ujednolicone interfejsy dla automatycznych konwersacji agentów

Framework AutoGen ma ujednolicony interfejs do wykonywania odpowiednich obliczeń, które są skoncentrowane na konwersacji, w tym „funkcję odbioru lub wysyłania” do odbioru lub wysyłania wiadomości, oraz „funkcję generowania odpowiedzi”, która generuje odpowiedź na podstawie otrzymanej wiadomości i podejmuje wymagane działania. Framework AutoGen wprowadza również i wdraża mechanizm auto-odpowiedzi agenta, aby zrealizować kontrolę napędzaną konwersacją.

  • Kontrola przez połączenie języka naturalnego i programowania

Framework AutoGen ułatwia użycie języka naturalnego i programowania w różnych wzorcach zarządzania kontrolą przepływu, w tym kontrolę języka naturalnego przy użyciu LLM, kontrolę języka programowania i przejście kontroli między językiem programowania a językiem naturalnym.

Przechodząc dalej, oprócz statycznych konwersacji, które są zwykle acompañowane przez predefiniowany przepływ, framework AutoGen obsługuje również dynamiczne przepływy konwersacji, używając wielu agentów, a framework zapewnia deweloperom dwie opcje, aby to osiągnąć

  1. Poprzez wywołania funkcji.
  2. Poprzez funkcję generowania odpowiedzi niestandardowej.

Zastosowania AutoGen

Aby zilustrować potencjał frameworku AutoGen w rozwoju złożonych aplikacji wieloagentowych, poniżej przedstawiono sześć potencjalnych zastosowań AutoGen, wybranych na podstawie ich istotności w świecie rzeczywistym, możliwości rozwiązywania problemów, ulepszonych przez framework AutoGen, oraz ich innowacyjnego potencjału.

Te sześć zastosowań frameworku AutoGen to

  1. Rozwiązywanie problemów matematycznych.
  2. Wzmocniona konwersacja.
  3. Rozmowy ALF.
  4. Kodowanie wieloagentowe.
  5. Dynamiczna konwersacja grupowa.
  6. Szachy konwersacyjne.

Zastosowania frameworku AutoGen

Zastosowanie 1: Rozwiązywanie problemów matematycznych

Matematyka jest jedną z podstawowych dyscyplin, które wykorzystują modele LLM do pomocy w rozwiązywaniu złożonych problemów matematycznych, co otwiera nowy świat potencjalnych zastosowań, w tym asystentów badawczych AI i indywidualnych tutorów AI.

Powyższy rysunek ilustruje zastosowanie frameworku AutoGen, aby osiągnąć konkurencyjne wyniki w rozwiązywaniu problemów matematycznych.

Zastosowanie 2: Odpowiadanie na pytania i generowanie kodu z użyciem pamięci

W ostatnich miesiącach, generowanie kodu z użyciem pamięci stało się skutecznym i praktycznym podejściem do pokonywania ograniczeń LLM w zakresie korzystania z zewnętrznych dokumentów. Poniższy rysunek ilustruje zastosowanie frameworku AutoGen do skutecznej augmentacji pamięci i poprawy wyników w zadaniach Q&A.

Zastosowanie 3: Podejmowanie decyzji w środowiskach tekstowych

Framework AutoGen może być użyty do tworzenia aplikacji, które działają w środowiskach tekstowych lub interaktywnych. Poniższy rysunek ilustruje, jak deweloperzy mogą używać frameworku AutoGen, aby zaprojektować system konwersacyjny trzech agentów z agentem ugruntowującym, aby znacznie poprawić wyniki.

Zastosowanie 4: Kodowanie wieloagentowe

Deweloperzy pracujący nad frameworkiem AutoGen mogą używać frameworku OptiGuide, aby zbudować system kodowania wieloagentowego, który jest w stanie pisać kod, aby wdrożyć zoptymalizowane rozwiązania i odpowiadać na pytania użytkowników. Poniższy rysunek ilustruje, że użycie frameworku AutoGen do tworzenia systemu wieloagentowego pomaga w poprawie ogólnych wyników, szczególnie w wykonywaniu zadań kodowania, które wymagają zabezpieczenia.

Zastosowanie 5: Dynamiczna konwersacja grupowa

Framework AutoGen zapewnia wsparcie dla wzorca komunikacji opartego na dynamicznej konwersacji grupowej, w której uczestniczące agenty wieloagentowe dzielą kontekst i zamiast podążać za zestawem predefiniowanych poleceń, prowadzą konwersację ze sobą w dynamiczny sposób. Te dynamiczne konwersacje grupowe opierają się na trwających konwersacjach, aby kierować przepływem interakcji wewnątrz agentów.

Powyższy rysunek ilustruje, jak framework AutoGen obsługuje dynamiczne konwersacje grupowe między agentami, używając Menadżera konwersacji grupowej, specjalnego agenta.

Zastosowanie 6: Szachy konwersacyjne

Deweloperzy frameworku AutoGen użyli go do stworzenia aplikacji Szachy konwersacyjne, która jest naturalną grą interferencyjną, zawierającą wbudowane agenty dla graczy, które mogą być LLM lub ludźmi, oraz trzeciego agenta, który zapewnia istotne informacje i waliduje ruchy na planszy na podstawie zestawu predefiniowanych standardowych zasad. Poniższy rysunek ilustruje Szachy konwersacyjne, naturalną grę interferencyjną zbudowaną przy użyciu frameworku AutoGen, która pozwala graczom używać żartów, role-playing, lub nawet odniesień do memów, aby wyrazić swoje ruchy w kreatywny sposób, co sprawia, że gra w szachy staje się bardziej interesująca nie tylko dla graczy, ale także dla publiczności i obserwatorów.

Podsumowanie

W tym artykule omówiliśmy AutoGen, framework open-source, który wykorzystuje pojęcia programowania konwersacji i agentów konwersowalnych, aby uprościć orchestrację i optymalizację przepływów pracy LLM, wprowadzając automatyzację do potoku przepływu pracy. Framework AutoGen oferuje agenty konwersowalne i dostosowalne, które wykorzystują moc zaawansowanych LLM, takich jak GPT-3 i GPT-4, oraz jednocześnie adresują ich bieżące ograniczenia, integrując LLM z narzędziami i danymi wejściowymi ludzkimi, używając automatycznych konwersacji, aby zainicjować konwersacje między wieloma agentami.

Chociaż framework AutoGen jest jeszcze w wczesnych, eksperymentalnych etapach, otwiera on drogę do przyszłych eksploracji i możliwości badawczych w tej dziedzinie, a AutoGen może być narzędziem, które pomoże poprawić szybkość, funkcjonalność i łatwość rozwoju aplikacji, wykorzystujących możliwości LLM.

"Inżynier z zawodu, pisarz z serca". Kunal jest technicznym pisarzem z głęboką miłością i zrozumieniem AI i ML, poświęconym uproszczeniu złożonych pojęć w tych dziedzinach poprzez swoje angażujące i informacyjne dokumentacje.