카테고리 없음

EVOAGENT: Towards Automatic Multi-AgentGeneration via Evolutionary Algorithms 논문 리뷰 2024/6/2

jinuklee 2024. 7. 10. 20:11

https://arxiv.org/pdf/2406.14228

진화 알고리즘(e.g., 돌연변이, 교차, 선택) + AI agent = ?

단일 agent와 인간이 설계한 agent의 능력보다 일관된 성능향상을 보임,특히  logic grid puzzle 에서 100% 정확도

진화 알고리즘을 통한 적응성 -> 예상치 못한 task에서의 성능 향상

자연의 종처럼 스스로 성장하고 다양화하는 AI 시스템을 만들 수 있을까에 대한 질문

각 AI 에이전트를 손수 설계하는 대신, 각각의 전문화된 에이전트 AI 협력자들끼리 번성하는 생태계를 자동으로 생성하는 일종의 진화 과정을 시작할 수 있게 한다면?

현재 LLM 기반 멀티 에이전트 시스템의 여러 문제점을 지적한다. 여기에는 agent를 수작업설정 해야하는것(heavily), AI 엔지니어 인력 부족으로 인한 제한된 확장성(scalability), 그리고 예상치 못한 문제에 대한 적응력 능력 미달(adaptability)이 포함된다. 이러한 한계로 인해 멀티 에이전트 시스템이 점점 더 복잡해지는 현실 세계의 문제를 해결할 잠재력이 제한되어 있다.

 

강력한 대형 언어 모델(LLM)의 등장으로 인해 멀티에이전트 시스템에서 복잡한 작업을 해결하기 위한 LLM 기반 자율 에이전트를 구축하는 새로운 시도들이 생겨났다.

그러나 눈에 띄는 발전에도 불구하고 기존 작업들은 인간이 설계한 프레임워크에 크게 의존하고 있어 에이전트 시스템의 기능 범위와 확장성이 크게 제한되고 있다.

특화된 에이전트를 다중 에이전트 시스템으로 자동 확장하여 작업 해결 능력을 향상시키는 것은 여전히 중요한 과제로 남아 있다.

이 논문에서는 진화 알고리즘을 통해 전문가 에이전트를 다중 에이전트 시스템으로 자동 확장하는 일반적인 방법인 EVOAGENT를 소개한다.

 

이를 통해 LLM 기반 에이전트의 작업 해결 효율성을 향상시킨다. 구체적으로, 기존 에이전트 프레임워크를 초기 개체로 간주한 후 일련의 진화 과정(예: 돌연변이, 교차, 선택 등)을 적용하여 다양한 에이전트 설정을 가진 여러 에이전트를 생성한다.

 

EVOAGENT는 모든 LLM 기반 에이전트 프레임워크에 일반화될 수 있으며 추가적인 인간 설계 없이 기존 에이전트 프레임워크를 다중 에이전트 시스템으로 자동 확장할 수 있다. 다양한 작업에 대한 실험 결과, EVOAGENT가 여러 전문가 에이전트를 자동으로 생성하고 LLM 기반 에이전트의 작업 해결 능력을 크게 향상시킬 수 있음을 보여주었다.

 

EVOAGENT이 이 분야의 기존 연구와의 차별화되는것은 그 유연성과 일반성으로 MetaGPT, AutoGen, 또는 AgentVerse와 같은 프레임워크들이 특정 아키텍처나 인간이 설계한 개입에 의존하는 것과 달리, EVOAGENT는 모든 LLM 기반 에이전트 프레임워크에 적용될 수 있다. 이러한 다재다능함 덕분에 미리 정의된 구조에 제한받지 않고 광범위한 작업과 도메인을 다룰 수 있다.

 

여기에는 logic grid puzzle, trivia creative 글쓰기, codename collaborate, MMMU 벤치마크와 같은 NLP 및 다중 모달 작업 벤치마크를 사용해 evaluation을 진행했다

evoagent with zero-shot 을 CoT 프롬프팅, Self-Refine, Solo Performance 프롬프팅과 비교한 것

각각의 agent를 개인이라 생각하고 가지고 있는 스킬을 진화하는 객체로 본다.
대부분의 agent 프레임워크에서 이 스킬은 언어의 형태이기 떄문에 LLM을 진화과정을 수행하는(시스템 업데이트 및 새로운 agent의 생성) 시뮬레이터로써 사용(employ)한다

1. Initialization
진화를 수행하기 위해 초기 agent(parent)를 확인한다.
이 agent는 Metagpt 또는 Autogen 과 같은 프레임 워크가 제공한다

2. Crossover & Mutation

crossover와 mutation 를 수행하는 LLM을 각각 사용


crossover
먼저 user 프롬프트에 기반해 답변을 초기 agent가 생성하는데 이 답변을 토대로 LLM에게 어느 스킬이 향상되야하고 업데이트되야 하는가를 묻는다
-> 이를 통해 child agent를 생성

mutation
child agent와 parent agent를 비교해 수행능력을 떨어뜨리지 않으면서도 둘이 분명하게 다르게하도록 child agent를 수정한다(modify)



3. Selection
지금까지의 과정을 통해 생성한 child agent가 고유한 특성을 갖고 있는 지 또는 다른 agent와 다른지를 확인하고 진화된 개체로써 n개의 child agent를 선택한다(한번의 iteration마다)

4. Results Update
위의 단계들을 바탕으로, parent agent로부터 진화한 다양한 특징(diversity)을 가진 많은 새로운 에이전트들을 얻게 된다

이를 토대로 과제 해결 능력을 향상시키기 위해, 각 child agetn에게 후보 결과(candidate)를 생성하도록 요청한 다음 LLM을 사용하여 이러한 후보들을 이전 iteration에서 얻은 결과와 통합하여 새로운 결과를 만든다.

이는 진화의 자연선택 단계와 유사하다

이때 사용하는 것이 quality-check module이다

 

 

https://github.com/siyuyuan/evoagent/blob/bcc55fabe793711733cea29a5894b65f07e2b8c8/scienceworld/eval_utils.py#L918
깃허브

참고자료
autogen
https://arxiv.org/abs/2308.08155
self-refine
https://arxiv.org/abs/2303.17651
metagpt
https://arxiv.org/abs/2308.00352
SPP
https://arxiv.org/abs/2307.05300