Society of Mind와 멀티 에이전트 토론(Society of Mind and Multi-Agent Debate)
민스키(Minsky)가 1986년에 제시한 전제, 즉 지능은 전문가들의 사회(society of specialists)라는 생각은 10년마다 다시 발견됩니다. 2023년 두(Du) 등은 이 아이디어를 구체적인 알고리즘(algorithm)으로 옮겼습니다. 여러 개의 대규모 언어 모델(LLM) 인스턴스(instance)가 각자 답을 제안하고, 서로의 답을 읽고, 비판하고, 자기 답을 갱신(update)합니다. N개의 라운드(round)를 거치면 이들은 합의(consensus)에 수렴하며, 그 결과는 영샷 사고 사슬(zero-shot Chain-of-Thought; CoT)과 자기 반성(self-reflection) 기법을 추론(reasoning)·사실성(factuality) 6개 과제에서 일관되게 이깁니다. 중요한 발견은 두 가지입니다. 여러 에이전트(multiple agents) 와 여러 라운드(multiple rounds) 가 각각 독립적으로 기여한다는 점입니다. 사회(society)는 단일 에이전트의 독백을 이기고, 여러 라운드에 걸친 의견 교환은 한 번에 다수결로 답을 정하는 방식을 이깁니다.
유형: Learn + Build
언어: Python (stdlib)
선수 지식: Phase 16 · 04 (멀티 에이전트 기본 모델)
예상 시간: 약 60분
문제
자기 일관성(self-consistency), 즉 하나의 모델을 여러 번 샘플링(sampling)하고 다수결로 답을 선택하는 방식은 추론 성능을 가장 저렴하게 끌어올릴 수 있는 기법입니다. 동작은 하지만 빠르게 포화(saturation)됩니다. 샘플 수를 두 배로 늘려도 의미 있는 추가 향상이 보이지 않는 지점이 금방 옵니다.
토론(debate)은 이 포화를 깨뜨립니다. 하나의 모델에서 뽑은 N개의 독립 샘플 대신, N개의 에이전트가 서로의 추론 과정을 읽고 자기 답을 수정(revise)합니다. 샘플들 사이의 상관관계(correlation)가 낮아지고, 더 이상 독립 동일 분포(i.i.d.)가 아니게 됩니다. 그 결과 자기 일관성 방식이 자신 있게 틀리던 지점에서 토론의 수렴점(convergence point)은 정답에 도달하는 경우가 많습니다.
개념
두(Du) 등 2023년 알고리즘
arXiv:2305.14325 (ICML 2024) 논문의 알고리즘은 다음과 같습니다.
- N개의 에이전트가 질문에 대해 각자 초기 답(initial answer)을 만듭니다.
- 라운드 r = 2..R에 대해, 각 에이전트는 다른 에이전트들이 r-1 라운드에 낸 답을 보고 "이를 고려해 갱신된 답을 제시하라"는 요청을 받습니다.
- R개 라운드가 끝나면 최종 답들에 대해 다수결 투표(majority vote)를 수행합니다.
논문은 MMLU, GSM8K, biographies, MATH, 그리고 사실성 벤치마크(factuality benchmark)에서 이 알고리즘을 검증합니다. 토론은 사고 사슬(CoT)과 자기 반성(Self-Reflection)을 일관되게 이깁니다.
독립적으로 작동하는 두 개의 손잡이
같은 논문의 절제 실험(ablation) 결과는 다음과 같습니다.
- 에이전트 수만 늘리기(agent count alone): 1 라운드에서 N개 에이전트의 다수결만 해도 대부분의 과제에서 단일 에이전트를 이기지만, 곧 평탄 구간(plateau)에 도달합니다.
- 라운드 수만 늘리기(round count alone): 한 에이전트가 자기 이전 추론만 다시 보는 방식은 거의 도움이 되지 않습니다. 자기 반성(reflection)의 알려진 약점입니다.
- 둘을 함께 늘리기(both together): 큰 도약은 둘을 함께 늘릴 때 나옵니다. 여러 에이전트 사이의 다중 라운드 교환이 성능 향상을 만듭니다.
왜 작동하는가
두 가지 메커니즘(mechanism)이 있습니다.
- 불일치에 대한 노출(exposure to disagreement): 어떤 에이전트가 다른 결론을 가진 다른 에이전트의 추론 사슬(reasoning chain)을 보면, 자기 결론을 정당화하거나 갱신해야 합니다. 어느 쪽이든 다음 라운드(r+1)의 맥락(context)은 이전 라운드(r)보다 풍부해집니다.
- 상관된 오류 줄이기(correlated error reduction): 자기 일관성에서는 모든 샘플이 같은 모델에서 나오므로 오류가 서로 상관(correlate)됩니다. 그 결과 자신 있게 틀린 답으로 평균이 수렴할 수 있습니다. 서로 다른 모델이나 서로 다른 시드(seed)는 오류 사이의 상관을 줄여 줍니다(decorrelate). 토론을 거쳐 형성된 서로 다른 관점은 이 상관을 한층 더 떨어뜨립니다.
이질적 토론(Heterogeneous debate)
A-HMAD와 그 후속 연구들은 에이전트마다 서로 다른 기반 모델(base model) 을 사용합니다. 라마(Llama)·클로드(Claude)·지피티(GPT)가 함께 토론하면 단일 문화 붕괴(monoculture collapse, 26강)가 줄어듭니다. 한 모델 패밀리(model family)에서 발생하는 상관된 오류가 다른 패밀리에는 공유되지 않기 때문입니다.
단점도 있습니다. 능력이 떨어지는 모델이 토론에 참여하면 합의를 자기의 틀린 답 쪽으로 끌고 갈 수 있습니다("Should we be going MAD?", arXiv:2311.17371 참고).
자연어 기반 마음의 사회(Natural Language-Based Society of Mind; NLSOM) — 129-에이전트 확장
쥬게(Zhuge) 등의 논문 "Mindstorms in Natural Language-Based Societies of Mind" (arXiv:2305.17066)는 이 아이디어를 129명짜리 사회로 확장(scale)했습니다. 결과는 다음과 같습니다. 규모가 커지면 전문화(specialization)와 자기 조직화(self-organization)가 창발(emergence)하며, 시각 질문 응답(visual question answering) 같은 과제에서 단일 에이전트를 이깁니다.
실패 모드
- 아첨 캐스케이드(sycophancy cascade): 모든 에이전트가 가장 자신 있어 보이는 에이전트에게 동조(defer)합니다. 토론은 가장 큰 목소리 쪽으로 무너집니다. "에이전트 한 명은 반드시 반대 입장을 주장한다" 같은 적대적 역할(adversarial role) 프롬프팅이 도움이 됩니다.
- 주제 이탈(topic drift): 여러 라운드에 걸친 토론은 원래 질문에서 벗어나기 쉽습니다. 완화책은 매 라운드마다 원 질문을 다시 주입하는 것입니다.
- 연산량 폭증(compute blowup): N개 에이전트 × R개 라운드 = N·R번의 LLM 호출(call)이며, 호출마다 맥락이 점점 커집니다. 5-에이전트 5-라운드 토론은 맥락이 점점 커지는 25번의 호출입니다. 질문 하나당 비용이 단일 CoT 호출의 10배를 넘을 수 있습니다.
만들어보기
code/main.py는 수학 질문 하나에 대해 3개 에이전트 × 3개 라운드짜리 토론을 실행합니다. 각 에이전트는 서로 다른, 때로는 틀린 답으로 시작합니다. 에이전트는 LLM 기반이 아니라 스크립트(scripted)로 동작합니다. 각 에이전트는 스크립트로 정한 신뢰도(confidence)로 가중한 이웃 에이전트들의 평균 쪽으로 답을 "갱신"합니다. 라운드별 로그(log)를 통해 수렴 과정을 확인할 수 있습니다.
데모는 두 가지 핵심 효과를 보여줍니다.
- 단 1라운드의 의견 교환만으로도 에이전트들이 정답에 가까워집니다.
- 2라운드 이후 추가 라운드는 수익 체감(diminishing returns)을 보입니다. 두(Du) 등이 보고한 평탄 구간과 일치합니다.
실행:
python3 code/main.py
사용해보기
outputs/skill-debate-configurator.md는 새로운 과제에 맞는 토론 구성을 설계합니다. 에이전트 수, 라운드 수, 이질성(heterogeneity; 같은 모델 vs 혼합), 역할 배정(대칭(symmetric) vs 적대자 1명) 등을 정하고, 실행 전에 토큰(token) 비용까지 추정합니다.
산출물 만들기
토론 시스템을 배포한다면 다음을 지킵니다.
- 라운드는 3으로 제한: 두(Du) 등은 3 라운드가 대부분의 성능 향상을 흡수한다고 보고합니다. 그 이상은 품질이 아니라 비용입니다.
- 에이전트는 5로 제한: 5개를 넘으면 맥락 팽창(context bloat)과 비용이 지배합니다.
- 기본은 이질적 구성(heterogeneous): 풀(pool)에 최소 두 종류 이상의 기반 모델을 둡니다.
- 적대자 슬롯(adversarial slot) 유지: 에이전트 하나는 무조건 반대하도록 프롬프트(prompt)합니다. 아첨 캐스케이드를 끊습니다.
- 모든 라운드를 로깅(logging): 중간 라운드를 숨기는 토론 시스템은 디버그(debug)나 감사(audit)가 불가능합니다.
연습문제
- (쉬움)
code/main.py를 실행한 뒤 라운드 수를 5로 설정하고 수익 체감을 관찰해 보세요. 어느 라운드에서 추가 수렴이 멈춥니까?
- (중간) 항상 현재 다수 의견에 반대하는 적대적 역할을 가진 네 번째 에이전트를 추가해 보세요. 이 에이전트는 수렴을 깨뜨립니까, 개선합니까?
- (중간) 라운드별 합의 점수(agreement score), 즉 다수 답에 속하는 에이전트의 비율을 출력해 보세요. 언제 1.0에 도달하며, 그것이 "정답"과 같은 의미입니까?
- (어려움) 두(Du) 등의 4절 절제 실험(Section 4 ablations)을 읽으세요. 이 코드로 "에이전트만 늘리기" vs "라운드만 늘리기" vs "둘 다 늘리기" 결과를 재현해 보세요.
- (어려움) "Should we be going MAD?" (arXiv:2311.17371)를 읽고 라운드 로빈(round-robin) 외의 토론 변형(variant) 두 가지를 나열해 보세요. 예: 심판 주도(judge-led), 토론의 사슬(chain-of-debate), 적대적(adversarial).
핵심 용어
| 용어 | 흔한 설명 | 실제 의미 |
|---|
| 마음의 사회(Society of Mind) | "민스키(Minsky)의 아이디어" | 상호작용하는 전문가들로서의 지능. 1986년에 제시된 틀이 이제 LLM 토론으로 구체화됨. |
| 멀티 에이전트 토론(Multi-agent debate) | "에이전트들이 논쟁한다" | N명의 에이전트가 답을 제안하고, 서로 비판하고, R개 라운드 동안 갱신한 뒤 다수결 투표로 결정. |
| 합의(Consensus) | "서로 동의한다" | 인식론적 진리가 아니라 다수 답에 속한 비율일 뿐. 자신 있게 틀릴 수 있다. |
| 라운드(Rounds) | "교환 단계" | 한 라운드는 각 에이전트가 다른 에이전트의 답을 한 번 읽고 한 번 갱신하는 단위. |
| 이질적 토론(Heterogeneous debate) | "모델 패밀리를 섞는다" | 오류 간 상관을 줄이기 위해 서로 다른 기반 모델을 사용하는 토론. |
| 아첨 캐스케이드(Sycophancy cascade) | "다들 큰 목소리에 동의한다" | 정답 여부와 상관없이 가장 자신 있는 에이전트에게 다른 에이전트들이 동조하는 토론 실패 양상. |
| 자연어 기반 마음의 사회(NLSOM) | "129-에이전트 사회" | Natural-language society of mind. 쥬게(Zhuge) 등이 규모를 키운 버전. |
| 상관된 오류(Correlated error) | "같은 모델, 같은 버그" | 자기 일관성이 포화하는 이유. 서로 다른 관점의 토론은 이 상관을 줄인다. |
더 읽을거리