Моделі та платформи ШІ
AutoGen: Надання потужності наступному поколінню великих мовних моделей

Великі мовні моделі (LLM) зараз одні з найбільш обговорюваних тем у сфері штучного інтелекту. Розробники у всьому світі досліджують потенційні застосування LLM. Ці моделі є алгоритмами штучного інтелекту, які використовують техніки глибокого навчання та великі об’єми тренувальних даних для розуміння, підсумовування, передбачення та генерації широкого спектру контенту, включаючи текст, аудіо, зображення, відео та інше.
Великі мовні моделі є складними алгоритмами штучного інтелекту. Розробка такої моделі є виснажливим завданням, і створення додатку, який використовує можливості LLM, є не менш складним. Це вимагає значної експертизи, зусиль та ресурсів для розробки, реалізації та оптимізації робочого процесу, який能够 використати повний потенціал великої мовної моделі для отримання найкращих результатів. Ураховуючи великий час і ресурси, необхідні для встановлення робочих процесів для додатків, які використовують можливості LLM, автоматизація цих процесів має велику цінність. Це особливо вірно, оскільки робочі процеси, як очікується, стануть ще більш складними в найближчому майбутньому, коли розробники створюють усе більш складні додатки на основі LLM. Крім того, простір дизайну, необхідний для цих робочих процесів, є як складним, так і розширеним, що ще більше підвищує складність створення оптимального та надійного робочого процесу, який відповідає очікуванням щодо продуктивності.
AutoGen є фреймворком, розробленим командою Microsoft (MSFT ), який має на меті спростити оркестрацію та оптимізацію робочих процесів LLM шляхом введення автоматизації в робочий процес. Фреймворк AutoGen пропонує розмовні та настраювані агенти, які використовують можливості передових LLM, таких як GPT-3 і GPT-4, і одночасно адресують їхні поточні обмеження шляхом інтеграції LLM з інструментами та людським вводом за допомогою автоматизованих розмов для ініціювання розмов між декількома агентами.
При використанні фреймворку AutoGen розробникам потрібно лише два кроки для розробки складної системи розмови між декількома агентами.
Крок 1: Визначте набір агентів, кожний з яких має свої ролі та можливості.
Крок 2: Визначте поведінку взаємодії між агентами, тобто агент повинен знати, як відповісти, коли він отримує повідомлення від іншого агента.
Обидва вище вказані кроки є модульними та інтуїтивними, що робить цих агентів складними та повторно використовуваними. На наступному зображенні демонструється приклад робочого процесу, який адресує питання кодування у сфері оптимізації ланцюга постачання. Як можна бачити, письменник спочатку пише код і інтерпретацію, а потім Safeguard забезпечує безпеку та конфіденційність коду, після чого код виконується Commander після отримання необхідного схвалення. Якщо система зустрічає будь-які проблеми під час виконання, процес повторюється до повного вирішення проблеми. Розгортання цього фреймворку призводить до зменшення кількості ручної взаємодії з 3 до 10 разів при розгортанні в додатках, таких як оптимізація ланцюга постачання. Крім того, використання AutoGen також зменшує кількість зусиль щодо кодування до чотирьох разів.

AutoGen може бути революційним у сфері розробки складних додатків, які використовують можливості LLM. Використання AutoGen не лише може зменшити кількість ручної взаємодії, необхідної для досягнення бажаних результатів, але також може зменшити кількість зусиль щодо кодування, необхідних для створення таких складних додатків. Використання AutoGen для створення додатків на основі LLM не лише може прискорити процес значно, але також допоможе зменшити кількість часу, зусиль та ресурсів, необхідних для розробки цих складних додатків.
У цій статті ми глибше розглянемо фреймворк AutoGen та дослідимо його основні компоненти та архітектуру, а також його потенційні застосування. Тож почнімо.
Введення в AutoGen: Надання потужності наступному поколінню великих мовних моделей
AutoGen є відкритим фреймворком, розробленим командою Microsoft, який надає розробникам можливість створювати додатки, які використовують можливості LLM, за допомогою декількох агентів, які можуть розмовляти один з одним для успішного виконання завдань. Агенти в AutoGen є розмовними, настраюваними та можуть працювати в різних режимах, які використовують комбінацію інструментів, людського вводу та LLM. Розробники також можуть використовувати фреймворк AutoGen для визначення поведінки взаємодії агентів та програмування гнучких розмовних моделей, які розгортуються в різних додатках. Будучи відкритим фреймворком, AutoGen можна вважати загальним фреймворком, який розробники можуть використовувати для створення додатків та фреймворків різної складності, які використовують можливості LLM.

Великі мовні моделі відіграють важливу роль у розробці агентів, які використовують фреймворки LLM для адаптації до нових спостережень, використання інструментів та висновків у численних реальних додатках. Однак розробка цих додатків, які можуть використати повний потенціал LLM, є складним завданням, і враховуючи постійно зростаючий попит та застосування LLM, а також зростаючу складність завдань, важливо масштабувати можливості цих агентів за допомогою декількох агентів, які працюють у синхронізації один з одним.Але як можна використовувати підхід багатокористувацької розмови для розробки додатків на основі LLM, які можна застосувати до широкого спектру доменів з різною складністю? Фреймворк AutoGen намагається відповісти на це питання, використовуючи багатокористувацьку розмову.
AutoGen: Компоненти та фреймворк
У спробі зменшити кількість зусиль, які розробники повинні витратити на створення складних додатків, які використовують можливості LLM у широкому спектрі доменів, основним принципом AutoGen є консолідація та оптимізація багатогранних робочих процесів за допомогою багатокористувацької розмови, а також максимізація повторного використання реалізованих агентів. AutoGen використовує декілька агентів, які можуть розмовляти один з одним для успішного виконання завдань, і фреймворк побудований на двох фундаментальних концепціях: Розмовні агенти та Розмовне програмування.
Розмовні агенти
Розмовний агент у AutoGen є сутністю з попередньо визначеною роллю, яка може передавати повідомлення для отримання та передачі інформації до та від інших розмовних агентів. Розмовний агент підтримує свій внутрішній контекст на основі отриманих або переданих повідомлень, і розробники можуть конфігурувати цих агентів для того, щоб вони мали унікальний набір можливостей, таких як активація за допомогою інструментів LLM або отримання людського вводу.
Можливості агентів, підтримувані людьми, інструментами та LLM
Можливості агента безпосередньо пов’язані з тим, як він обробляє та реагує на повідомлення, що є основною причиною, чому агенти у фреймворку AutoGen дозволяють розробникам наділяти агентів різними можливостями. AutoGen підтримує численні загальні складові можливості для агентів, які включають
- LLM: Агенти, підтримувані LLM, використовують можливості передових фреймворків LLM, таких як неявне інтерференція стану, рольова гра, надання зворотного зв’язку та навіть кодування. Розробники можуть використовувати нові техніки промптингу для поєднання цих можливостей у спробі збільшити автономність або навички агента.
- Люди: Деякі додатки бажають або вимагають певного рівня людського втручання, і фреймворк AutoGen дозволяє додаткам на основі LLM забезпечувати людське участь у розмові агентів за допомогою агентів, підтримуваних людьми, які можуть запитувати людський вхід під час певних раундів розмови на основі конфігурації агента.
- Інструменти: Агенти, підтримувані інструментами, зазвичай мають можливість використовувати виконання коду або виконання функцій для виконання інструментів.
Співробітництво та налаштування агентів
На основі конкретних потреб та вимог додатку розробники можуть конфігурувати окремих агентів для того, щоб вони мали комбінацію необхідних типів для відображення складної поведінки, пов’язаної з багатокористувацькою розмовою. Фреймворк AutoGen дозволяє розробникам легко створювати агентів з спеціалізованими ролями та можливостями шляхом розширення або повторного використання вбудованих агентів. На наступному зображенні демонструється базова структура вбудованих агентів у фреймворку AutoGen. Клас ConversableAgent може використовувати людей, інструменти та LLM за замовчуванням, оскільки це найвищий рівень абстракції агента. UserProxyAgent та AssistantAgent є попередньо конфігурованими класами ConversableAgent, і кожен з них представляє загальний режим використання, тобто кожен з цих двох агентів діє як AI-помічник (коли підтримується LLM), і запитує людський вхід або виконує функційні виклики або код (коли підтримується інструментами та/або людьми) шляхом дії як людського проксі.

На наступному зображенні демонструється, як розробники можуть використовувати фреймворк AutoGen для розробки двогранної системи, яка має спеціальну функцію відповіді, а також ілюстрація результату автоматизованої розмови агентів, яка використовує двогранну систему під час виконання програми.

Розмовні агенти служать фундаментальною будівельною одиницею у фреймворку AutoGen. Однак розробники повинні визначити та сформувати багатокористувацьку розмову для розробки додатків, у яких ці агенти можуть зробити суттєвий прогрес у виконанні завдань.
Розмовне програмування
Для вирішення вищезазначеної проблеми фреймворк AutoGen використовує розмовне програмування, парадигму обчислення, побудовану на двох фундаментальних концепціях: обчислення, дії, які виконуються агентами у багатокористувацькій розмові для обчислення їхньої відповіді, та контроль потоку, умови або послідовність, за якої відбуваються ці обчислення. Можливість програмування цих дозволяє розробникам реалізувати численні гнучкі моделі багатокористувацької розмови. Крім того, у фреймворку AutoGen обчислення розмовно-орієнтовані. Дії, які виконуються агентом, є пов’язані з розмовами, у яких бере участь агент, і дії агентів призводять до передачі повідомлень для подальших розмов до тих пір, поки не буде задоволена умова завершення. Крім того, контроль потоку у фреймворку AutoGen керується розмовами, оскільки це рішення агентів щодо того, які агенти будуть передавати повідомлення до та від обчислювального процесу.

На вищезазначеному зображенні демонструється проста ілюстрація того, як окремі агенти виконують операції, пов’язані з їхньою роллю, та розмовно-орієнтовані обчислення для генерації бажаних відповідей, таких як виконання коду та виклики інтерференції LLM. Завдання просунутися вперед за допомогою розмов, які відображаються у діалоговому вікні.
Для підтримки розмовного програмування фреймворк AutoGen має наступні шаблони проектування.
- Механізми автоматичної відповіді та уніфікований інтерфейс для автоматизованої розмови агентів
Фреймворк AutoGen має уніфікований інтерфейс для виконання відповідного обчислення, яке є розмовно-орієнтованим, включаючи “функцію отримання або відправки” для отримання або відправки повідомлень, а також “функцію генерації відповіді”, яка генерує відповідь на основі отриманого повідомлення та виконує необхідні дії. Фреймворк AutoGen також вводить та розгортає механізм автоматичної відповіді агента за замовчуванням для реалізації розмовно-керованого контролю.
- Контроль за допомогою поєднання природної мови та програмування
Фреймворк AutoGen дозволяє використовувати природну мову та програмування у різних шаблонах керування потоком, які включають: контроль природною мовою за допомогою LLM, контроль програмуванням та перехід контролю між програмуванням та природною мовою.
Далі, крім статичних розмов, які зазвичай супроводжуються попередньо визначеним потоком, фреймворк AutoGen також підтримує динамічні потоки розмов за допомогою декількох агентів, і фреймворк надає розробникам два варіанти для досягнення цього
- За допомогою викликів функцій.
- За допомогою спеціальної функції генерації відповіді.
Застосування AutoGen
Для ілюстрації потенціалу фреймворку AutoGen у розробці складних багатокористувацьких додатків нижче наведено шість потенційних застосувань AutoGen, які були обрані на основі їхньої актуальності у реальному світі, можливостей вирішення проблем, підвищених за допомогою фреймворку AutoGen, та їхнього інноваційного потенціалу.
Ці шість застосувань фреймворку AutoGen включають
- Розв’язання математичних проблем.
- Покращення розмов за допомогою пошуку.
- Розмови ALF.
- Кодування декількома агентами.
- Динамічна група розмов.
- Розмовний шах.

Застосування 1: Розв’язання математичних проблем
Математика є однією з основних дисциплін, які використовують моделі LLM для допомоги у розв’язанні складних математичних проблем, що відкриває новий світ потенційних застосувань, включаючи допомогу у дослідженнях штучного інтелекту та персоналізовану допомогу у навчанні.

На вищезазначеному зображенні демонструється застосування фреймворку AutoGen для досягнення конкурентоспроможної продуктивності у розв’язанні математичних проблем.
Застосування 2: Відповіді на питання та генерація коду з підтримкою пошуку
За останні місяці генерація коду з підтримкою пошуку виникла як ефективний та практичний підхід для подолання обмежень LLM при включенні зовнішніх документів. На наступному зображенні демонструється застосування фреймворку AutoGen для ефективної підтримки пошуку та підвищення продуктивності на завданнях відповідей на питання.

Застосування 3: Прийняття рішень у текстових середовищах
Фреймворк AutoGen можна використовувати для створення додатків, які працюють з онлайн- чи інтерактивним прийняттям рішень. На наступному зображенні демонструється, як розробники можуть використовувати фреймворк AutoGen для розробки тригранної розмовної системи з агентом для підтримки, яка значно підвищує продуктивність.

Застосування 4: Кодування декількома агентами
Розробники, які працюють з фреймворком AutoGen, можуть використовувати фреймворк OptiGuide для створення системи кодування декількома агентами, яка здатна писати код для реалізації оптимізованих рішень та відповіді на питання користувачів. На наступному зображенні демонструється, що використання фреймворку AutoGen для створення багатокористувацького дизайну допомагає підвищити загальну продуктивність, особливо при виконанні завдань кодування, які вимагають підтримки.

Застосування 5: Динамічна група розмов
Фреймворк AutoGen надає підтримку для комунікаційного шаблону, який пов’язаний з динамічною групою розмов, у якій декілька агентів діляться контекстом та розмовляють один з одним у динамічній манері, не слідуючи попередньо визначеному порядку. Ці динамічні групи розмов залежать від тривалих розмов для керування потоком взаємодії між агентами.

На вищезазначеному зображенні демонструється, як фреймворк AutoGen підтримує динамічні групи розмов між агентами за допомогою GroupChatManager, спеціального агента.
Застосування 6: Розмовний шах
Розробники фреймворку AutoGen використали його для розробки додатку Розмовний шах, який є природнім інтерферентним ігром, що включає вбудовані агенти для гравців, які можуть бути LLM або людиною, та третього агента, який надає відповідну інформацію та валідує ходи на дошці на основі попередньо визначених стандартних правил. На наступному зображенні демонструється Розмовний шах, природній інтерферентній ігрі, побудованій за допомогою фреймворку AutoGen, який дозволяє гравцям використовувати жаргон, гру ролей або навіть посилання на меми для вираження своїх ходів творчо, що робить гру шахів більш цікавою не лише для гравців, але й для аудиторії та спостерігачів.

Висновок
У цій статті ми говорили про AutoGen, відкритий фреймворк, який використовує концепції розмовного програмування та розмовних агентів, спрямованих на спрощення оркестрації та оптимізації робочих процесів LLM шляхом введення автоматизації у робочий процес. Фреймворк AutoGen пропонує розмовні та настраювані агенти, які використовують можливості передових LLM, таких як GPT-3 і GPT-4, і одночасно адресують їхні поточні обмеження шляхом інтеграції LLM з інструментами та людським вводом за допомогою автоматизованих розмов для ініціювання розмов між декількома агентами.
Хоча фреймворк AutoGen ще перебуває на ранніх експериментальних стадіях, він відкриває шлях для майбутніх досліджень та можливостей у цій галузі, і AutoGen може стати інструментом, який допоможе покращити швидкість, функціональність та легкість розробки додатків, які використовують можливості LLM.












