01 Ключевые моменты
Вот некоторые ключевые моменты, которые Алекс обнаружил после организации ИИ-агентов в структуры, подобные компаниям Apple, Microsoft, Google и т.д.:
-
Компании с несколькими "конкурирующими" командами (т.е. соревнующимися за создание лучшего конечного продукта), такие как Microsoft и Apple, превзошли централизованные иерархические структуры.
-
Системы с единственными точками отказа (например, один лидер, принимающий важные решения), такие как Google, Amazon и Oracle, показали плохие результаты.
-
Организационные структуры крупных технологических компаний оказали умеренное, но заметное влияние на способности решения проблем.
02 ИИ-агенты и организации технологических гигантов
Предыдущие методы простого увеличения количества ИИ-агентов для улучшения производительности, как SWE-bench, не достигли значительных результатов.
Это говорит о том, что полагаться исключительно на увеличение числа не может решить проблему.
Так какие же другие методы могут сделать ИИ-агентов лучше в программной инженерии?
Три недели назад Алекс случайно увидел статью Джеймса Хакла о "Законе Конвея" - архитектура программного обеспечения и продукта обречена отражать организационную структуру, которая ее создала.
Джеймс показал иллюстрацию, раскрывающую драматизированные организационные структуры Amazon, Google, Facebook, Microsoft, Apple и Oracle, и предложил идею:
Как и люди в крупных технологических компаниях, структуры коммуникации мультиагентов могут формировать подходы к решению проблем.
Вдохновленный этим, Алекс решил проверить гипотезу Джеймса на примерах SWE-bench.
03 Экспериментальная установка
Автор организовал ИИ-агентов в различные структуры компаний и оценил шесть различных организационных структур на 13-примерном "мини" подмножестве SWE-bench-lite.
При построении этих шести организаций он разработал мультиагентные организационные структуры на основе некоторых ключевых наблюдений:
Amazon
Бинарное дерево с "менеджером" на вершине.
Для воспроизведения этой структуры Алекс использовал большое количество агентов, выполняющих поиск в репозитории кода, и одного агента, выполняющего окончательные обновления репозитория кода.
Древовидная структура, похожая на Amazon, но с большим количеством связей между средними слоями.
Алекс воспроизвел это, агрегируя все результаты агентов в пределах одного слоя и передавая их агентам в следующий слой.
Meta (Facebook)
Отсутствует иерархическая структура, но все еще является сетевой организацией со многими связями между агентами.
Алекс модифицировал оригинальный дизайн агента, увеличив возможность переходов между различными агентами.
Microsoft
Делает акцент на конкурирующих командах, каждая со своей иерархией.
По сути, Алекс перестроил структуру Amazon (уменьшив количество агентов) и использовал метод голосования по векторному сходству для выбора "лучшего" решения из трех отдельных запусков (каждый запуск слегка корректировал иерархическую структуру).
Apple
Много маленьких конкурирующих команд, каждая со своей минимальной структурой.
Алекс использовал тот же подход "лучшего решения", что и Microsoft, но с большим количеством запусков без иерархий агентов (каждый запуск имел разные переходы).
Oracle
Имеет две отдельные команды, большее "юридическое" бинарное дерево и меньшее инженерное дерево.
Алекс интерпретировал юридическую команду как агентов, ищущих в репозитории кода и извлекающих ключевой контекст, в то время как инженерная команда состояла из агентов, фактически пишущих код.
Структуры обеих команд похожи на Amazon, с одним агентом на вершине, координирующим передачу информации между "юридической" и "инженерной" командами.
04 Результаты оценки
Для оценки каждого набора патчей на SWE-bench автор использовал оценку SWE-bench.
Результаты следующие:
Анализ производительности организационной схемы
Вот некоторые наблюдения автора о том, как различные структуры компаний влияют на производительность:
- Конкурирующие команды увеличивают шансы на успех.
Два лучших исполнителя (Microsoft и Apple) оба имели несколько команд, конкурирующих за решение проблем, в то время как другие компании, казалось, имели только одну огромную команду, генерирующую единственный патч.