모두가 맞다고 할 때 누구의 불안을 믿을까, CUSP가 푼 집단 불확실성
여러 VLM이 내놓은 답을 의미 공간에 모아 전체 흩어짐과 모델 간 다툼으로 나누는 CUSP의 설계와 실험 결과를 따라가며 멀티 에이전트 추론의 신뢰 측정을 다시 생각합니다.
원문 논문 보기
CUSP: Decomposable Collective Uncertainty for Multi-Agent Multimodal Reasoning라는 논문이 arXiv 2609.05708 번호로 공개됐습니다. 원문 링크는 제목 아래에 걸어 두었습니다. 이 연구는 여러 비전 언어 모델의 답을 하나의 의미 공간에 모아 시스템 수준의 불확실성을 재는 방법을 제안하는데, 전체 흩어짐과 모델 사이의 다툼을 분리해서 읽는다는 진단을 출발점으로 삼습니다. 이번 글에서는 그 분리가 왜 필요했는지부터 실제 숫자까지 차례로 따라가 보려 합니다.
여러 답을 모아놓고도 왜 여전히 불안할까
안녕하세요, 패트릭입니다.
저는 평소에 여러 모델에게 같은 질문을 던지고 답을 비교하는 습관이 있습니다. 하나가 틀릴 때 다른 하나가 잡아주길 기대하면서요. 그런데 막상 답이 세 개씩 쌓이면 다른 고민이 생깁니다. 둘이 맞고 하나가 틀린 것인지, 아니면 셋이 각자 다르게 틀린 것인지 헷갈리기 때문입니다. 그렇다면 개수를 늘리는 것만으로 신뢰가 생길까요?
제가 이 논문에 손이 간 부분도 바로 그 지점이었습니다. 서로 다른 비전 언어 모델을 합치면 멀티모달 추론이 나아질 수 있다는 이야기는 이미 많이 들었습니다. 하지만 합친 뒤의 답이 얼마나 믿을 만한지는 여전히 각 모델의 자신감을 들여다보는 방식으로밖에 재지 못했는데요. 개별 모델이 확신에 차 있다고 해서 모인 답이 맞는 것은 아니고, 모인 답이 그럴듯해 보인다고 해서 과정이 단단했던 것도 아닙니다. 이 간극을 숫자로 메우려는 시도가 CUSP입니다. 이름 그대로 집단의 불확실성을 의미 의견 풀링(semantic opinion pooling)이라는 방식으로 재는 틀인데, 학습을 새로 하거나 별도 보정 데이터를 요구하지 않는다는 점이 먼저 눈에 들어왔습니다.
사람 일에 비유하면 이해가 빠릅니다. 회의실에서 네 사람이 각자 다른 근거로 같은 결론에 이르렀다면 그 결론은 꽤 단단해 보이죠. 반면 네 사람이 서로 다른 결론을 내놨는데 투표로 하나를 골랐다면, 겉보기 결론은 하나여도 회의 전체의 불안은 그대로 남습니다. CUSP는 바로 그 회의 전체의 불안을 재려는 제안입니다. 누가 더 큰 소리로 말했는지가 아니라, 의견들이 의미적으로 얼마나 흩어져 있는지, 그리고 그 흩어짐이 각자의 망설임 때문인지 서로의 충돌 때문인지를 나누어 봅니다.
답의 말투가 아니라 뜻을 모아야 하는 이유
그렇다면 의견을 모은다는 것은 정확히 무슨 뜻일까요? 여기서 많은 분이 투표를 떠올리실 것 같습니다. 세 모델이 사과라고 하고 두 모델이 배라고 하면 사과로 정하는 방식이죠. 그런데 표면적으로 보면 단순합니다. 실제로는 그렇지 않습니다.
같은 사과라는 답도 근거와 표현이 다를 수 있기 때문입니다. 한 모델은 빨간색 둥근 과육을 보고 사과라고 하고, 다른 모델은 나뭇잎 모양과 줄기를 보고 사과라고 합니다. 글자만 보면 같은 답이지만, 모델이 본 장면과 해석은 조금씩 다릅니다. 반대로 표현은 달라도 뜻이 같은 경우도 있습니다. 빨간 사과와 잘 익은 사과는 문장이 다르지만 같은 결론을 가리키죠. 그래서 CUSP는 글자 그대로의 응답을 세지 않고, 여러 응답을 공유된 의미 응답 공간(shared semantic response space)에 올려놓습니다. 비슷한 뜻은 가깝게, 다른 뜻은 멀게 배치하는 지도 같은 것인데요. 이 지도 위에 각 모델의 의견을 올린 뒤 그것들을 합쳐서 합쳐진 의미 의견(pooled semantic opinion)을 만듭니다. 시스템 전체의 답과 불안은 바로 이 합쳐진 의견에서 나옵니다.
저는 이 대목에서 무릎을 탁 쳤습니다. 개별 모델의 토큰 확률을 들여다보는 대신, 샘플로 나온 답들을 뜻 단위로 묶어 분포로 바라본다는 발상이었기 때문입니다. 생각해보면 사람도 비슷하게 판단합니다. 회의록에 적힌 문장을 한 글자씩 따지기보다, 누가 어떤 취지로 말했는지를 묶어서 읽으니까요. 물론 여기서는 조금 조심해서 읽을 필요가 있습니다. 의미가 가깝다는 것을 누가 어떻게 재느냐에 따라 지도의 모양이 달라질 수 있기 때문입니다. 그럼에도 방향은 분명합니다. 말투의 차이가 아니라 뜻의 흩어짐을 보겠다는 것이죠.
실제 시스템 관점에서 보면 다음 질문이 바로 생깁니다. 이렇게 뜻을 묶는 과정이 매번 비싸게 먹으면 현장에서 쓰기 어렵지 않을까 하는 점입니다. 논문이 토큰 로짓이나 보정 라벨 없이 동작한다고 강조하는 이유도 여기에 맞닿아 있습니다. 무거운 내부를 열지 않고도 바깥에서 나온 답만으로 굴러가게 만들었다는 것인데, 이 선택이 뒤에 나오는 상용 모델 실험과 직접 연결됩니다.
흩어짐 하나를 둘로 가르면 무엇이 달라질까
이제 이 글에서 제가 가장 흥미롭게 본 부분으로 들어갑니다. CUSP는 불확실성 신호를 두 갈래로 내놓습니다. 하나는 합쳐진 의견이 얼마나 퍼져 있는지를 재는 집단 불확실성(collective uncertainty)이고, 다른 하나는 모델별 의견이 서로 얼마나 어긋나는지를 재는 젠센 섀넌 분기(Jensen-Shannon divergence, JSD)입니다.
문제는 그다음입니다. 두 숫자가 따로 노는 것처럼 보이면 현장에서는 어느 것을 믿어야 할지 다시 막막해지니까요. 그래서 논문은 정규화하지 않은 집단 엔트로피가 정확히 두 조각으로 나뉜다는 관계를 보여줍니다. 하나는 각 모델의 개별 의미 엔트로피들의 평균이고, 다른 하나는 모델 사이의 JSD입니다. 식으로 쓰면 전체 흩어짐은 각자의 망설임 평균에 서로의 다툼을 더한 것과 같아집니다. 저는 이 숫자보다 그 뒤의 구조가 더 중요하다고 봅니다. 전체 불안이 크다는 사실 하나보다, 그 불안이 각자도 헷갈려서 큰 것인지 아니면 각자는 확신하는데 서로 달라서 큰 것인지가 다음 행동을 바꾸기 때문입니다.
예를 들어 밤늦게 장애 대응 채널에 세 명이 모였다고 해보죠. 세 사람 모두 확신이 없어서 우왕좌왕한다면, 리더는 추가 정보를 모으는 쪽으로 움직일 것입니다. 반면 세 사람 모두 확신에 차 있는데 주장이 정반대라면, 리더는 정보를 모으기 전에 누구의 전제가 틀렸는지를 먼저 따져야 합니다. 두 경우 모두 회의실의 불안은 크지만, 처방은 완전히 다릅니다. CUSP의 분해가 하려는 일도 이와 비슷합니다. 합쳐진 분포의 퍼짐을 보고 멈출지 말지를 정하고, JSD를 보고 어디가 갈라졌는지를 들여다보는 것이죠.
여기서 재미있는 질문이 생깁니다. 그렇다면 두 신호 가운데 어느 쪽이 더 쓸모 있을까요? 논문의 답은 상황에 따라 다르다는 쪽에 가깝습니다. 작은 모델들의 정적인 모음에서는 집단 불확실성이 앞섰고, 뒤에서 다루겠지만 상용 모델 영역에서는 다툼 신호인 JSD가 앞섰기 때문입니다. 하나의 만능 숫자를 찾기보다, 국면에 맞는 계기판을 고르라는 제안에 가깝습니다.
토큰 속을 열지 않아도 되는 설계가 반가운 이유
저희가 새로운 AI 아키텍처를 볼 때도 숫자만 보지는 않습니다. 실제로 무엇이 바뀌었고, 그 변화가 시스템에서 어떤 비용 구조를 만드는지를 함께 봅니다. 그런 눈으로 보면 CUSP의 무학습(training-free) 성격과 토큰 로짓 불필요 조건은 그냥 붙은 수식어가 아닙니다.
많은 불확실성 추정법은 모델 내부를 들여다보길 요구합니다. 토큰별 확률 분포를 꺼내거나, 별도 보정 데이터로 온도를 맞추거나, 특정 구조에 맞춘 헤드를 덧붙이는 식이죠. 연구실에서는 깔끔하지만, 막상 여러 회사의 닫힌 모델을 섞어 쓰는 현장에서는 문턱이 됩니다. 로짓을 주지 않는 상용 모델 앞에서는 아예 손을 쓸 수 없으니까요. CUSP는 이 지점을 비껴갑니다. 각 모델에서 답 샘플을 뽑아 의미 공간에 올리고 합치는 바깥쪽 계산만으로 돌아가기 때문입니다. 열리는 모델이든 닫힌 모델이든, 답을 내는 모델이라면 같은 틀에 올릴 수 있습니다.
좋은데, 이걸 실제로 어떻게 서빙할까요? 샘플을 여러 개 뽑는 일 자체가 비용이 되기 때문입니다. 한 번의 호출로 끝내던 것을 모델마다 여러 번 부르면 지연과 요금이 함께 늘어납니다. 그래서 이 설계는 모든 질문에 매번 돌리는 상시 계기보다는, 틀리면 아픈 질문 앞에서 잠깐 켜는 비상등에 가깝다고 저는 해석했습니다. 실제로 논문이 미는 쓰임새도 예측 오류 감지와 기권(abstention) 순서 매기기에 맞춰져 있습니다. 맞출 수 있는 질문은 통과시키고, 위험한 질문은 사람에게 넘기거나 추가 검증을 붙이는 흐름이죠. 이런 배치라면 샘플링 비용을 감당할 여지가 생깁니다.
또 하나 짚고 싶은 것은 보정 라벨이 없다는 점의 양면성입니다. 한편으로는 도입이 가볍습니다. 새로운 도메인이 와도 라벨을 모아 다시 맞출 필요가 없으니까요. 반면 다른 한편으로는 도메인이 바뀌었을 때 숫자의 눈금이 함께 흔들릴 여지가 있습니다. 0.7이라는 값이 의료 영상에서도, 길거리 간판 읽기에서도 같은 위험을 뜻한다고 장담하기 어렵기 때문입니다. 논문이 AUROC와 AUARC 같은 순서 지표로 성능을 말하는 이유도 여기에 있습니다. 절대값의 정확함보다, 위험한 것을 위험한 순서대로 줄 세우는 능력을 먼저 본다는 것이죠.
작은 모델끼리 모였을 때 숫자가 말해준 것
이제 실험으로 들어가 보겠습니다. 먼저 소형 모델들의 정적인 모음(static ensemble) 결과입니다. 여기서 집단 불확실성은 예측 오류 감지에서 0.764 AUROC를, 기권 순서 매기기에서 0.889 AUARC를 기록했습니다. 다수결이나 단순 선택 같은 기본 방식보다 4.7에서 15.8 포인트까지 앞섰다는 것이 논문의 설명입니다. 숫자를 풀어 쓰면 이런 뜻입니다. 틀린 답일수록 불확실성 점수가 높게 나오는 순서가 꽤 잘 맞았고, 불확실한 순서대로 사람에게 넘기면 남는 답들의 정확도가 더 가파르게 올라갔다는 것이죠.
같은 모델에 같은 질문을 던져도 결과가 크게 달라질 수 있다는 것을 경험으로 알고 있죠. 작은 모델들은 특히 그렇습니다. 하나만 보면 그날 컨디션에 따라 답이 흔들리는데, 여러 개를 모아 뜻 단위로 합치면 흔들림의 중심이 잡히는 셈입니다. 더구나 합쳐진 예측 자체의 정확도가 단일 모델 평균보다 5.6에서 13.0 포인트까지 좋아졌다는 대목도 있습니다. 모으는 것만으로 답이 나아지고, 그 답이 언제 위험한지도 함께 알 수 있게 됐다는 이야기인데요. 이 두 가지가 같이 간다는 점이 운영 입장에서는 큽니다. 정확도와 신뢰 측정이 따로 놀면 파이프라인이 복잡해지기 때문입니다.
그렇다면 이 개선을 곧이곧대로 받아들여도 될까요? 저는 여기서 잠깐 멈칫했습니다. 작은 모델 모음에서는 모델 사이의 실력 차가 크고, 그 차이가 오히려 다양성으로 작용했을 수 있기 때문입니다. 다양성이 크면 합친 답이 좋아 보이고, 흩어짐 신호도 더 또렷해집니다. 그래서 이 구간의 좋은 숫자는 설계의 승리이면서 동시에 조건의 덕일 수 있습니다. 조건이 바뀌면 신호의 우열도 바뀔 수 있다는 것인데, 실제로 다음 구간에서는 주인공이 바뀝니다.
상용 모델 앞에서는 다툼을 보는 눈이 더 밝아졌다
다음은 평가된 상용 모델 영역 결과입니다. 여기서는 집단 불확실성이 아니라 모델 간 다툼을 재는 JSD가 가장 강한 신호였습니다. 예측 오류 감지에서 0.819 AUROC, 기권 순서에서 0.910 AUARC를 기록했고, 답하기 어려운 질문에서 모델 충돌을 줄 세우는 능력은 AUROC 기준으로 최대 0.982까지 올라갔다는 것이 논문의 설명입니다.
이 차이는 생각보다 중요합니다. 작은 모델들 사이에서는 각자의 망설임까지 포함한 전체 흩어짐이 더 잘 먹혔는데, 상용 모델들 사이에서는 각자는 매끈하게 말하는데 서로 다른 지적이 더 결정적이었던 셈입니다. 왜 그럴까요? 저는 상용 모델들이 대체로 유창하고 자신감 있게 말하는 경향과 연결 지어 읽었습니다. 개별 모델의 겉보기 확신은 번지르르하지만, 어려운 질문 앞에서는 모델마다 다른 쪽으로 미끄러집니다. 그럴 때 각자의 망설임 평균은 조용하고, 서로의 어긋남만 크게 울립니다. JSD가 바로 그 울림을 잡는 계기라는 것이죠.
구체적인 장면을 떠올려 보겠습니다. 길거리 사진 속 작은 간판을 읽는 문제에서 모델 A는 식당 이름이라고 하고, 모델 B는 옆 가게 전화번호를 읽어 답이라고 합니다. 둘 다 말투는 자신만만합니다. 이때 각자의 내부 확신만 보면 둘 다 통과될 수 있습니다. 하지만 뜻 지도 위에 올리면 두 의견은 멀리 떨어져 있고, JSD는 크게 뜁니다. 운영자는 그 큰 값을 보고 이 질문은 사람 검수나 추가 크롭 같은 다음 단계로 보내면 됩니다. 숫자의 쓰임이 이렇게 분명해질 때 불확실성 지표는 비로소 현장의 언어가 됩니다.
다만 이 대목에서는 과잉 해석을 경계하고 싶습니다. 상용 영역에서 JSD가 가장 셌다는 말은, 그 평가 묶음과 그 질문 분포 안에서의 우열이라는 뜻에 가깝기 때문입니다. 질문이 쉬워지면 모델들이 대체로 같은 답에 모이고, 그때는 다툼 신호가 할 일이 줄어듭니다. 반대로 질문이 모두 어렵고 모델들이 각자 다르게 틀리면 전체 흩어짐과 다툼이 함께 커지면서 둘의 변별력이 다시 엇갈릴 수 있습니다. 그래서 저는 이 결과를 만능의 우열로 읽기보다, 유창한 모델일수록 겉보기 확신보다 서로의 어긋남을 보라는 실무 조언으로 받아들였습니다.
모아진 답이 혼자보다 나아지는 순간
정확도 이야기로 잠깐 돌아오겠습니다. 합쳐진 예측이 단일 모델 평균보다 5.6에서 13.0 포인트 좋아졌다는 결과는 얼핏 당연해 보이기도 합니다. 여럿이 모이면 좋아지는 것이 투표의 상식이니까요. 그런데 막상 현장에서는 여럿을 모으는 일이 늘 정답을 보장하지는 않습니다. 비슷한 실수를 하는 모델끼리 모이면 틀린 답이 더 단단해질 뿐이니까요.
CUSP의 합침이 다르게 느껴지는 부분은 뜻 단위로 묶는다는 점입니다. 글자 투표가 아니라 의미 풀링이기 때문입니다. 표현이 조금씩 달라도 같은 뜻이면 같은 쪽으로 힘이 모이고, 그 과정에서 사소한 말투 차이가 상쇄됩니다. 반대로 뜻이 갈리면 억지로 하나를 고르기보다 그 갈라짐이 숫자로 남습니다. 답을 고르는 일과 불안을 재는 일이 같은 지도 위에서 일어나는 셈이죠. 저는 그래서 이 구조를 오답 노트처럼 봅니다. 맞은 답만 고르는 것이 아니라, 어디에서 헤맸는지의 흔적까지 남기기 때문입니다.
여기서 한 가지 실무적인 질문이 생깁니다. 그렇다면 모델을 몇 개나 모아야 할까요? 논문이 준 구체적인 개수의 가이드를 이 글에서 단정해 말하기는 어렵습니다. 다만 방향은 분명합니다. 너무 적으면 흩어짐의 모양이 불안정하고, 너무 많으면 비용이 늘어납니다. 특히 상용 모델을 섞을 때는 호출료와 지연이 바로 돈이 되기 때문에, 중요한 구간에만 풀링을 켜거나 가벼운 모델로 먼저 거르고 어려운 것만 무거운 모음으로 넘기는 식의 층위가 필요해 보입니다. 정확도 개선 폭이 크다는 사실보다, 그 개선을 어떤 비용으로 샀는지가 도입의 성패를 가를 것 같습니다.
여러 단계를 오가는 긴 궤적에서는 뭐가 달라질까
지금까지는 한 질문에 여러 모델이 답하는 정적인 장면이었습니다. 그런데 논문은 한 걸음 더 나아가 다단계 다중 에이전트 시스템의 전체 궤적(trajectory)에서도 신호를 시험합니다. 하위 에이전트(subagent)들의 집단 불확실성이 시스템 실패를 줄 세우는 순서에서 0.619 AUROC를, 기권 순서에서 0.699 AUARC를 기록하며 그 구간에서는 가장 나은 순서를 보여줬다는 것이 논문의 설명입니다.
숫자만 보면 앞선 0.8대보다 낮아 보입니다. 그래서 실망하실 수도 있겠습니다. 하지만 저는 이 대목을 오히려 정직하게 읽었습니다. 한 번의 답을 고르는 일과, 여러 단계가 얽힌 긴 실행이 망가지는 것을 미리 알아채는 일은 난도가 다르기 때문입니다. 앞 단계의 작은 오해가 뒤 단계에서 증폭되기도 하고, 중간에 운 좋게 바로잡히기도 합니다. 그런 궤적 전체를 부분 궤적의 흩어짐만으로 줄 세우려면 숫자가 낮게 나올 수밖에 없습니다. 그럼에도 그 구간에서 가장 나은 순서를 줬다는 점은, 긴 일에서도 뜻의 흩어짐이 실패의 냄새를 맡는다는 뜻에 가깝습니다.
생각해보면 사람 조직도 비슷합니다. 최종 보고서 하나만 보면 멀쩡해 보여도, 중간 회의록을 펼치면 팀이 어디에서 헤맸는지가 드러납니다. 하위 에이전트들의 의견이 단계마다 크게 갈렸다면, 최종 답이 매끈해도 어딘가에서 무리한 봉합이 있었을 가능성이 큽니다. 반대로 단계마다 의견이 고르게 모였다면, 최종 답에 대한 신뢰는 조금 더 두텁게 가져갈 수 있습니다. 논문이 궤적 전체에 대한 신호를 본 것도 같은 문제의식이라고 봅니다. 답 하나가 아니라 일의 과정 전체를 보겠다는 것이죠.
물론 여기서도 조건을 봐야 합니다. 0.619라는 순서는 실패를 절반보다 낫게 가리지만, 그 신호만 믿고 자동 중단이나 자동 배포를 걸기에는 아직 엷습니다. 저는 그래서 이 신호를 단독 차단기보다는 사람 검토의 우선순위를 정하는 용도로 두는 편이 맞다고 봅니다. 궤적의 불안이 큰 건부터 사람이 먼저 열어보는 것이죠. 전부 다 보는 대신 위험한 순서대로 보는 것만으로도 운영의 밤은 훨씬 덜 바빠집니다.
무엇을 남기고 무엇을 조심해야 할까
마지막으로 시선을 넓혀 보겠습니다. 그렇다면 이 연구가 남긴 것은 무엇일까요. 저는 세 가지로 정리하고 싶습니다. 하나는 개별 확신과 모인 답의 그럴듯함을 넘어, 모임 자체의 불안을 직접 쟀다는 점입니다. 다른 하나는 그 불안을 각자의 망설임과 서로의 다툼으로 나눠 읽을 수 있게 했다는 점입니다. 그리고 나머지 하나는 그 일을 토큰 내부나 보정 데이터 없이 바깥 답만으로 해냈다는 점입니다. 이 세 가지가 합쳐지면 현장의 선택지가 넓어집니다. 열리는 모델과 닫힌 모델을 섞어 쓰면서도, 같은 눈금으로 위험한 질문을 고를 수 있기 때문입니다.
그렇다고 이 눈금을 절대값으로 믿으면 안 됩니다. 순서 지표가 좋다는 것은 위험한 것을 앞에 세우는 능력이 좋다는 뜻이지, 0.62라는 값이 어느 도메인에서나 같은 위험을 뜻한다는 보장은 아니기 때문입니다. 또 의미 공간의 품질에 따라 지도의 눈금이 달라질 수 있다는 점도 남습니다. 뜻을 묶는 잣대가 바뀌면 흩어짐의 크기도 함께 바뀌니까요. 저는 이 부분을 논문의 약점이라기보다 다음 연구가 파고들 지점으로 봅니다. 어떤 잣대로 묶을 때 실패를 더 잘 가려내는지, 도메인이 바뀌어도 눈금이 흔들리지 않으려면 무엇을 고정해야 하는지가 바로 다음 질문이기 때문입니다.
제가 앞으로 보고 싶은 것은 두 가지입니다. 하나는 이 신호가 실제 사람 검토와 어떻게 맞물릴 때 가장 아픈 실패를 막아내는지에 대한 기록입니다. AUROC 한 줄보다, 어떤 임계에서 얼마나 넘기고 얼마나 살렸는지에 대한 운영 일지가 더 궁금합니다. 다른 하나는 긴 궤적에서의 신호를 더 잘게 쪼갠 분석입니다. 어느 단계에서의 갈라짐이 최종 실패로 이어졌는지까지 추적된다면, 기권뿐 아니라 중간 개입의 근거까지 생기기 때문입니다. 회의 전체의 불안을 재는 일에서, 이제는 회의의 어느 대목에서 삐걱댔는지까지 짚는 일로 나아갈 차례가 아닌가 싶습니다.
다단계 시스템에서는 한 에이전트의 확신이 그 에이전트에서 끝나지 않습니다. 다음 단계의 전제가 되고, 그 전제가 다시 최종 답의 뼈대가 되기 때문입니다. 그래서 전체의 불안을 각자의 망설임과 서로의 다툼으로 나눠 읽는 일은, 단순한 점수 만들기를 넘어 일을 대하는 태도에 가깝습니다. 어디가 흔들렸는지를 아는 팀이 결국 더 멀리 간다는 점에서는, 모델들의 회의도 사람의 회의와 크게 다르지 않은 것 같습니다.