Consilium: 여러 LLM 이 협력할 때
요약
Consilium은 여러 대규모 언어 모델(LLM)이 협력하여 토론을 통해 합의를 도출하는 플랫폼입니다. 이 시스템은 시각적인 Gradio 인터페이스와 MCP(Model Context Protocol) 서버로 작동하며, LLM들이 마치 회의실 테이블에 앉아 논의하는 것처럼 보이도록 커스텀 컴포넌트를 구현했습니다. 핵심 기능으로는 역할 기반 전문가 설정, 다양한 통신 구조(Ring, Star), 그리고 여러 라운드를 거치는 체계적인 토론 메커니즘이 포함되어 있어, 개별 LLM 분석보다 훨씬 뛰어난 협력적 추론 능력을 입증합니다. 특히 이 플랫폼은 AI 진단 오케스트레이터와 같은 최신 트렌드에 맞춰 설계되었으며, Gradio의 커스텀 컴포넌트 개발 경험을 통해 기술적인 완성도와 시각적 매력을 동시에 확보했습니다. 이는 여러 관점의 AI 협력이 개별 분석보다 우수하다는 점을 효과적으로 보여주는 사례입니다.
핵심 포인트
- 여러 LLM이 토론하고 합의를 도출하는 '협력적 추론(Collaborative Reasoning)' 플랫폼 구현.
- 시각적인 몰입도를 높이기 위해 Gradio 기반의 커스텀 원탁(Roundtable) 인터페이스 개발 및 통합.
- LLM 간의 논의 역학을 개선하기 위해 역할 정의(Role Definition) 시스템 도입 (예: 전문가, 옹호자).
- 다양한 통신 구조 모드(Ring, Star)와 라운드 기반 토론 메커니즘을 구현하여 상호작용 제어.
- 개별 LLM 성능보다 다수의 AI 관점이 협력할 때 진단 및 추론 능력이 월등히 높음을 입증.
이 플랫폼은 시각적 Gradio 인터페이스이자 Cline( Claude Desktop 은 타임아웃 조정 불가로 문제가 발생함) 같은 애플리케이션과 직접 통합되는 MCP(Model Context Protocol) 서버로도 작동합니다. 핵심 아이디어는 LLM 들이 토론을 통해 합의를 이루는 것이었습니다. 이것이 Consilium이라는 이름의 유래입니다. 이후 다수 투표와 순위 선택 등 다른 결정 방식을 추가하여 협력을 더욱 정교하게 만들었습니다.
이것은 저의 원래 해커톤 아이디어가 아니었습니다. 저는 처음에는 RevenueCat 의 프로젝트에 말하기 위한 간단한 MCP 서버를 구축하고 싶었습니다. 하지만 여러 LLM 플랫폼에서 이 모델들이 질문을 논의하고 잘 추론한 답변을 반환할 때 훨씬 더 매력적이라는 것을 깨달았을 때 다시 생각했습니다.
시기는 완벽하게 맞았습니다. 해커톤 직후 Microsoft 가 AI Diagnostic Orchestrator(MAI-DxO)를 발표했습니다. 이는 'Dr. Challenger Agent'와 같은 다양한 역할을 가진 AI 의사 패널로, 환자를 반복적으로 진단합니다. OpenAI o3 와의 설정에서 그들은 85.5% 의 의료 진단 벤치마크 사례를 올바르게 해결했으며, 실제 의사는 20% 의 정확도만 달성했습니다. 이는 Consilium 이 증명하는 것을 정확히 입증합니다: 여러 AI 관점이 협력할 때 개별 분석보다 크게 더 잘 수행할 수 있습니다.
개념을 정한 후, MCP 서버와 동시에 매력적인 Hugging Face 공간 데모로 작동하는 것이 필요했습니다. 처음에는 표준 Gradio Chat 컴포넌트를 사용하기로 생각했지만, 저의 제출이 돋보이기를 원했습니다. 아이디어는 LLM 들을 회의실 테이블 주변에 배치하고 대화 버블을 표시하는 것입니다. 이는 협력적 토론을 포착하면서도 시각적으로 매력적이어야 합니다. 저는 표준 테이블을 잘 스타일링하지 못했기 때문에 실제로 테이블로 인식되도록 하기 위해 포커스 스타일의 원탁을 선택했습니다. 이 접근법은 커스텀 Gradio 컴포넌트와 MCP 서버를 구축하여 두 해커톤 트랙에 제출할 수 있게 했습니다.
커스텀 Gradio 컴포넌트는 제출의 핵심이 되었습니다. 참가자들이 앉아 대화 버블을 표시하며 응답, 사고 상태, 연구 활동을 즉시 보여주는 포커스 스타일의 원탁은 공간을 방문하는 모든 사람의 눈을 사로잡았습니다. Gradio 의 훌륭한 개발자 경험을 덕분에 컴포넌트 개발은 놀라울 정도로 매끄러웠습니다. PyPI 출판에 대한 문서 간극을 발견하여 저의 첫 번째 Gradio 프로젝트 기여를 했습니다.
# 시각적 컴포넌트 통합
roundtable = consilium_roundtable(
label="AI Expert Roundtable",
...
시각적 디자인은 해커톤 전반에 걸쳐 견고했습니다. 초기 구현 후 사용자 정의 아바타와 중앙 테이블 텍스트와 같은 기능만 추가되었으며, 핵심 상호작용 모델은 변경되지 않았습니다.
자신이 커스텀 Gradio 컴포넌트를 만들고 싶다면 Custom Components in 5 minutes 을 확인해 보세요. 제목이 거짓말입니다. 기본 설정은 문자 그대로 5 분 만에 가능합니다.
시각적 원탁은 세션 기반 사전 시스템으로 상태를 유지하며 각 사용자는 user_sessions[session_id] 를 통해 격리된 상태 저장소를 얻습니다. 핵심 상태 객체는 participants, messages, currentSpeaker, thinking, 및 showBubbles 배열을 추적하며, 이는 update_visual_state() 를 통해 업데이트됩니다.
callbacks. 모델이 사고하거나, 말하거나, 연구가 실행될 때 엔지니어는 메시지 배열에 항목을 추가하고 speaker/thinking 상태를 토글함으로써 프론트엔드에 점진적인 상태 업데이트를 푸시하여 복잡한 상태 머신 없이 실시간 시각적 흐름을 생성합니다 - 백엔드 처리와 프론트엔드 렌더링 간 직접적인 JSON 상태 변형으로 동기화됩니다.
구현 중에는 LLM 간에 실제 논의가 일어나지 않는다는 것을 깨달았습니다. 그들은 명확한 역할을 갖지 않았기 때문입니다. 그들은 진행 중인 논의의 전체 컨텍스트를 받지만 의미 있는 방식으로 어떻게 참여할지 몰랐습니다. 저는 생산적인 논쟁 역학을 만들기 위해 구별된 역할을 도입했습니다. 몇 가지 수정을 거친 후 다음과 같이 되었습니다:
self.roles = {
'standard': "명확한 추론과 증거를 갖춘 전문가 분석 제공.",
'expert_advocate': "당신은 당신의 전문 분야에 대한 열정적인 전문가입니다. 설득력 있는 증거를 확신으로 제시하세요.",
...
이것은 논의 문제를 해결했지만 새로운 질문을 제기했습니다: 합의나 가장 강력한 논지를 어떻게 결정할까요? 저는 사용자가 최종 결과를 종합하고 합의를 달성되었는지 평가하는 LLM 을 선택할 수 있도록 리드 분석가 시스템을 구현했습니다.
또한 사용자들이 통신 구조를 제어하고 싶었습니다. 기본 컨텍스트 공유 방식 외에도 두 가지 대안 모드를 추가했습니다:
Ring: 각 LLM 은 이전 참여자의 응답만 받습니다
Star: 모든 메시지는 리드 분석가를 중앙 조정자로 통해 흐릅니다
마지막으로, 논의에는 엔드포인트가 필요합니다. 저는 1~5 회까지 설정할 수 있는 구성 가능한 라운드를 구현했습니다. 테스트 결과 더 많은 라운드는 합의를 달성할 확률을 높이지만 (높은 계산 비용) 이라는 것을 보였습니다.
현재 모델 선택에는 Mistral Large, DeepSeek-R1, Meta-Llama-3.3-70B, QwQ-32B 가 포함됩니다. Claude Sonnet 과 OpenAI 의 o3 와 같은 주목할 만한 모델이 부재하지만, 이는 기술적 한계보다는 해커스톤 크레딧 이용 가능성과 스폰서 상금 고려에 반영되었습니다.
self.models = {
'mistral': {
'name': 'Mistral Large',
...
함수 호출을 지원하는 모델에는 전용 연구 에이전트를 통합했습니다. 이는 다른 라운드테이블 참여자로 표시됩니다. 모델에 직접 웹 접근 권한을 부여하는 것이 아니라, 이 에이전트 방식은 외부 자원에 대한 시각적 명확성을 제공하고 모든 함수 호출 모델에서 일관된 접근을 보장합니다.
def handle_function_calls(self, completion, original_prompt: str, calling_model: str) -> str:
"""향상된 연구 기능을 갖춘 통합 함수 호출 핸들러"""
message = completion.choices[0].message
...
연구 에이전트는 5 개의 소스를 접근합니다: 웹 검색, 위키백과, arXiv, GitHub, SEC EDGAR. 저는 이 도구들을 확장 가능한 기본 클래스 아키텍처 위에 구축했으며, 미래 확장을 위해 자유롭게 임베드할 수 있는 자원에 집중했습니다.
class BaseTool(ABC):
"""모든 연구 도구를 위한 기본 클래스"""
def __init__(self, name: str, description: str):
...
연구 작업은 시간이 많이 걸릴 수 있으므로, 대화 버블에는 긴 연구 작업을 수행 중일 때 사용자 참여를 유지하기 위해 진행 표시기와 시간 추정을 표시합니다.
해커톤 (Hackathon) 이후 Deborah Dahl 는 Open Floor Protocol 을 소개했는데, 이는 라운드테이블 접근 방식과 완벽하게 일치합니다. 이 프로토콜은 크로스 플랫폼 에이전트 간 통신을 위한 표준화된 JSON 메시지 포맷을 제공합니다. 다른 에이전트 간 프로토콜과의 주요 차별점은 모든 에이전트가 동일한 테이블에 앉아 있는 것과 같이 대화의 인식을 항상 유지한다는 점입니다. 다른 프로토콜에서는 보이지 않은 또 다른 특징은 플로어 매니저 (floor manager) 가 에이전트를 동적으로 초대하고 제거할 수 있다는 것입니다.
프로토콜의 상호작용 패턴은 Consilium 의 아키텍처와 직접적으로 매핑됩니다:
Delegation: 에이전트 간 제어권 이전
Channeling: 수정 없이 메시지 전달
Mediation: 배경에서 조정
Orchestration: 여러 에이전트의 협력
현재는 사용자가 라운드테이블 토론에 OFP (Open Floor Protocol) 준수 에이전트를 추가할 수 있도록 Open Floor Protocol 지원을 통합하고 있습니다. 개발을 따라보실 수 있는 곳은: https://huggingface.co/spaces/azettl/consilium_ofp
해커톤은 이전에 접하지 못했던 다중 에이전트 논쟁 (multi-agent debate) 연구에 소개시켰습니다. Encouraging Divergent Thinking in Large Language Models through Multi-Agent Debate 와 같은 기초 연구도 포함되었습니다. 커뮤니티 경험은 놀라웠습니다; 모든 참가자가 디스코드 피드백과 협력을 통해 서로 적극적으로 지원했습니다. Consilium 프로젝트에서 라운드테이블 구성 요소를 다른 해커톤 프로젝트에 통합된 것을 보인 것은 저의 하이라이트 중 하나였습니다.
Consilium 에 계속 작업할 계획이며, 확장된 모델 선택, Open Floor Protocol 통합, 그리고 설정 가능한 에이전트 역할 (configurable agent roles) 을 통해 이 플랫폼은 상상하는 거의 모든 다중 에이전트 논쟁 시나리오를 지원할 수 있습니다.
Consilium 구축은 AI 의 미래가 단순히 더 강력한 개별 모델이 아니라 효과적인 AI 협력을 가능하게 하는 시스템에 있음을 확신하게 했습니다. 전문화된 작은 언어 모델 (SLM) 이 점점 더 효율적이고 자원 친화적으로 변해가는 동안, 저는 많은 사용 사례에서 전용 연구 에이전트와 함께 태스크 특화 SLM 의 라운드테이블이 일반 목적의 대형 언어 모델에 대한 유력한 대안일 것이라고 믿습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Hugging Face Blog의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기