보지 못하게 했더니 더 잘 배웠다

네 개 셀로 이루어진 60개 시스템으로 사전등록 확인까지 마친 증거 가림 실험이 합성 일반화를 어떻게 바꾸는지 해설합니다.

원문 논문 보기
'보지 못하게 했더니 더 잘 배웠다' 기사 커버 이미지

오늘 다룰 작업은 arXiv에 2609.17637 번호로 공개된 What You Can't See Is Still What You Learn: A Preregistered Sixty-Society Confirmation That Evidence Masking Drives Compositional Generalization입니다. 이 작업은 네 개의 셀이 얼어붙은 언어모델을 등뼈로 공유하면서 학습된 연속 패킷으로 대화하는 구조에서 증거 가림이 합성 일반화를 이끈다고 주장합니다. 원문은 제목 아래에 걸린 링크에서 바로 확인할 수 있습니다.

주장을 한 문장으로 정리하면 이렇습니다. 읽을 수 있는 증거를 일부러 가리면 시스템은 외워서 맞추는 대신 쪼개서 다시 조립하는 법을 배우게 되는데, 이번 확인 실험은 그 차이가 사전등록된 기준을 넉넉히 넘을 만큼 크다고 보고합니다.

안녕하세요, 패트릭입니다.

저는 이 논문을 처음 펼쳤을 때 제목에서 잠깐 멈칫했습니다. 못 보게 하는 것이 배우는 것을 돕는다는 말은 얼핏 들으면 수수께끼처럼 들리니까요. 그런데 multi-agent 시스템을 오래 보다 보면 이런 역설이 생각보다 자주 나타납니다. 정보를 많이 줄수록 모델은 편한 지름길을 먼저 찾고, 그 지름길이 나중에 발목을 잡기 때문입니다. 그렇다면 일부러 안 보여주는 쪽이 오히려 더 단단한 계산을 배우게 만들 수 있을까요?

안 보여줬더니 더 잘 풀더라는 말을 어떻게 받아들여야 할까

사람 팀으로 비유해보면 감이 빨리 옵니다. 신입 네 명이 한 조가 됐는데 옆 사람이 푼 풀이 과정이 전부 보인다고 해봅시다. 그러면 굳이 자기 머리로 식을 세울 이유가 없어지고, 답만 베껴도 당장 점수는 잘 나옵니다. 그런데 시험에서 숫자만 살짝 바뀌어 나오면 바로 무너집니다. 반면 풀이를 가리고 결과만 준 채 스스로 과정을 만들게 하면 처음에는 느리지만, 나중에는 변형 문제에도 흔들리지 않기 때문입니다.

이 논문이 말하는 evidence masking도 같은 구조입니다. 네 개의 셀이 서로에게 보내는 증거 중 일부를 가리면, 받는 쪽은 남의 답을 그대로 베낄 수 없습니다. 그래서 자기 몫의 계산을 스스로 해내야 하고, 그 과정에서 연산들을 쪼개고 다시 이어 붙이는 습관이 생깁니다. 저는 이 발상이 마음에 들었습니다. 모델에게 더 주는 것이 능사가 아니라 덜 주는 설계가 학습의 모양을 바꾼다는 발상이니까요.

물론 직관만으로는 부족합니다. 실제로 가렸을 때 점수가 얼마나 오르는지, 그 오름폭이 우연은 아닌지, 가림 말고 다른 요인이 섞인 것은 아닌지를 따져봐야 합니다. 그래서 이 작업은 사전등록이라는 단단한 틀을 가져옵니다. 무엇을 재고 어디서 성공이라 할지를 미리 적어두고 그대로 판정받는 방식인데, 이런 틀은 연구자의 유연한 해석을 막아주기 때문에 결과가 좋게 나왔을 때 더 신뢰가 갑니다.

얼어붙은 언어모델 기둥 둘레에 네 개의 셀이 패킷을 주고받는 장면을 그린 개념도
얼어붙은 언어모델 기둥 둘레에 네 개의 셀이 패킷을 주고받는 장면을 그린 개념도

네 개의 셀이 한 팀이 되면 왜 베끼기가 쉬워질까

이 실험에 등장하는 시스템은 세포 네 개가 한 몸처럼 움직이는 구조입니다. 등뼈는 얼어붙은 언어모델이고, 세포들은 그 위에서 학습된 연속 패킷이라는 작은 메시지 꾸러미를 주고받습니다. 패킷은 사람이 읽는 문장이 아니라 벡터로 된 신호인데, 그 역할은 분명합니다. 내가 본 증거와 내가 계산한 중간 결과를 동료에게 넘기는 통로죠.

여기서 재미있는 질문이 생깁니다. 동료의 증거가 훤히 보이면 왜 굳이 계산을 배워야 할까요? 받는 쪽 입장에서는 남이 정리해둔 답을 그대로 읽는 편이 훨씬 쉽습니다. 학습 초기에는 이런 지름길이 빠르게 보상을 주기 때문에 네트워크는 계산 회로를 키우기보다 읽기 회로에 의존하게 됩니다. 학습 곡선만 보면 잘 배우는 것처럼 보이지만, 사실은 합성하는 법이 아니라 베끼는 법을 배우는 셈입니다.

저는 이 지점을 실제 분산 시스템 관점에서 봤습니다. 저희가 새로운 AI 아키텍처를 볼 때도 benchmark 숫자만 보지는 않습니다. 실제로 무엇이 바뀌었고, 그 변화가 시스템에서 어떤 비용 구조를 만드는지를 함께 봅니다. 이 경우에도 가림이 없을 때 점수가 잘 나오는 구간이 있다면 그건 학습이 잘돼서가 아니라 통신이 베끼기를 도왔기 때문일 수 있습니다. 그래서 가림 조건을 따로 떼어 비교하는 설계가 설득력을 갖죠.

또 하나 짚을 점은 등뼈를 얼려뒀다는 사실입니다. 언어모델 본체를 고정하면 세포 사이의 통신과 작은 연산기만 배우게 되니까, 좋아진 점수를 언어모델의 일반 능력 탓으로 돌리기 어려워집니다. 개선이 있다면 패킷 사용법과 분업 구조에서 왔다고 읽는 편이 자연스럽습니다. 이런 통제는 작은 결정 같지만 해석을 훨씬 깔끔하게 만듭니다.

가린다는 말의 실제 모습은 생각보다 구체적이다

가림이라는 단어는 추상적으로 들리지만 실험 속 모습은 꽤 손에 잡힙니다. 다섯 가지 조건이 증거 가림, 소유권 표시, 그리고 남의 증거를 중립 filler로 바꾸는 처치를 서로 다르게 켜고 끄면서 비교합니다. 여기에 여섯 개의 초기화 군집과 두 가지 데이터 순서를 곱하고, 한 번도 본 적 없는 fresh task world에서 평가합니다. 숫자만 세어봐도 여든 가지에 가까운 조합 위에서 움직이는 셈인데, 이런 격자는 우연한 초기값이나 순서 효과를 평균내는 데 도움이 됩니다.

그렇다면 filler 조건은 무엇일까요? 남의 증거를 지워서 빈칸으로 두는 대신, 의미 없는 중립 내용으로 채우는 방식이라고 이해하면 됩니다. 비유하자면 시험지에 남의 답안을 오려내고 빈칸으로 두는 대신 연습용 더미 문장을 붙여두는 것입니다. 모델 입장에서는 빈칸과 더미가 다르게 느껴질 수 있습니다. 빈칸은 결측으로 처리되지만 더미는 읽을 게 있는 입력처럼 보이니까요. 그래서 filler 조건을 따로 둔 것은 해석을 까다롭게 만드는 동시에 더 정직하게 만드는 선택이죠.

소유권 표시도 비슷한 역할을 합니다. 이 증거는 몇 번 셀이 보낸 것이라는 꼬리표를 달아주는 것인데, 표시가 있으면 받는 쪽은 누가 보낸 정보인지 구분할 수 있고 없으면 출처를 섞어서 읽게 됩니다. 저는 이 표시 장치가 마음에 들었습니다. 분업이 일어나려면 누가 무엇을 맡았는지 아는 것이 유리할 것 같지만, 동시에 그 표시 자체가 또 다른 지름길이 될 수도 있으니까요. 표시가 있을 때와 없을 때를 둘 다 재는 이유가 바로 여기에 있습니다.

표시가 있어도 가린 쪽이 크게 이긴 이유

이제 숫자를 볼 차례입니다. 표시가 양쪽에 모두 주어진 상태에서 가림을 켠 쪽은 held-out된 두 연산 합성과 세 연산 합성에서 정확도가 크게 올랐습니다. 짝지은 차이를 median으로 봤을 때 각각 0.846과 0.859만큼 벌어졌는데요. 이 정도 차이는 오차 범위에서 아슬아슬하게 이긴 수준이 아니라 누가 봐도 방향이 분명한 차이죠.

같은 모델에 같은 질문을 던져도 결과가 크게 달라질 수 있다는 것을 경험으로 알고 있습니다. 그래서 저는 이 숫자보다 그 뒤의 구조가 더 중요하다고 봅니다. 가림이 없을 때는 세포가 서로의 증거를 훤히 읽으면서 답을 맞히지만, 가림이 있으면 각자가 자기 단계의 중간값을 만들어내야 합니다. 두 연산짜리 합성은 두 단계를 이어 붙여야 하고, 세 연산짜리는 한 단계를 더 엮어야 하는데, 단계를 건너뛰는 베끼기가 막히면 결국 단계별 계산기를 갖추는 쪽으로 수렴한다는 것이 이 실험이 그리는 그림입니다.

여기서 또 하나 짚고 싶은 대목은 held-out이라는 조건입니다. 학습 때 본 조합 그대로 내는 시험이 아니라 연산들의 새로운 조합을 내는 시험이라는 뜻이라서, 외운 답으로는 풀 수 없고 조립하는 법을 알아야 풀립니다. 가림 쪽이 이 시험에서 크게 앞섰다는 것은 암기 회로가 아니라 조립 회로가 생겼다는 신호로 읽기 좋습니다. 물론 숫자 하나로 모든 것을 단정할 수는 없습니다. 하지만 방향과 크기가 함께 말할 때는 귀를 기울일 필요가 있습니다.

가림이 있는 조건과 없는 조건에서 증거가 흐르는 경로를 비교한 도식
가림이 있는 조건과 없는 조건에서 증거가 흐르는 경로를 비교한 도식

열두 번의 비교를 전부 넘겼다는 말은 무엇을 보증할까

이 확인 실험은 열두 개의 짝지은 비교를 미리 걸어두고, 정해진 margin을 넘겨야 통과하도록 설계됐습니다. 결과는 열두 개 모두 margin을 넘겼고, 전체 사전등록 행동 기준도 통과했습니다. 표시를 뺀 반복 실험에서도 같은 방향의 통과가 나왔는데요. 이런 표현은 얼핏 건조하게 들리지만 실제로는 꽤 강한 약속이죠.

사전등록의 맛을 일상 언어로 풀어보면 이렇습니다. 시험 보기 전에 채점표와 합격선을 먼저 공개하고, 시험이 끝난 뒤에는 그 표대로만 채점하겠다는 선언입니다. 나중에 잘 나온 부분만 골라 자랑할 수 없게 만드는 장치라서, 열두 개 전부 통과했다는 말은 연구자가 고르기 쉬운 것만 골라냈다는 의심을 덜어줍니다. 여섯 개 초기화 군집과 두 가지 데이터 순서에 걸쳐 반복됐다는 점도 같은 이유로 든든합니다. 초기값 운이나 순서 운으로만 설명하기에는 판이 너무 넓으니까요.

그렇다면 이제 모든 것이 증명된 걸까요? 여기서는 조금 조심해서 읽을 필요가 있습니다. 통과했다는 말은 정해진 행동 기준을 넘었다는 뜻이지, 왜 그런 행동이 나왔는지까지 밝혔다는 뜻은 아니기 때문입니다. 행동 점수와 내부 메커니즘은 서로 다른 층위의 이야기입니다. 이 논문도 그 경계를 비교적 정직하게 지킵니다. 큰 효과는 확인했지만 그 안의 attribution은 아직 열려 있다고 말하니까요. 저는 이런 태도가 오히려 신뢰를 줍니다.

filler 일곱 개의 성공을 어떻게 읽어야 할까

filler 조건에서는 일곱 개의 full generalizer가 나왔습니다. 말 그대로 새로운 합성을 전부 풀어낸 시스템이 일곱 개 나왔다는 뜻인데, 처음 들으면 가림 이야기가 끝난 것처럼 느껴질 수도 있습니다. filler로 채워도 풀리면 가림이 꼭 필요한 게 아니지 않나 하는 의문이 생기기 때문입니다.

그런데 다음 문장이 바로 이어집니다. decomposition 기준은 inconclusive였다고요. 풀어냈다는 행동 점수와 쪼개서 계산했다는 내부 증거가 서로 따로 논다는 말입니다. 답을 맞히는 것과 과정을 갖춘 것은 다릅니다. 시험 점수가 만점이라도 풀이 과정이 비어 있으면 그 만점을 조립 능력의 증거로 쓰기 어렵습니다. 이 실험은 그 구분을 끝까지 놓지 않죠.

생각해보면 사람도 비슷하게 배웁니다. 답만 맞히는 요령이 생기면 과정을 묻는 질문에는 막히기 때문입니다. filler가 중립 내용으로 빈자리를 메우면 모델 입장에서는 그 더미를 무시하는 법을 배우는 것만으로도 점수가 오를 수 있습니다. 그 무시하기가 진짜 분해인지, 아니면 또 다른 요령인지는 따로 봐야 합니다. 그래서 일곱 개의 성공은 희망적인 신호이면서 동시에 숙제입니다. 행동은 나왔지만 분해의 증거는 아직 모자라다는 것이죠.

두 연산과 세 연산 합성에서 정확도 차이가 벌어지는 모습을 그린 개념 그래픽
두 연산과 세 연산 합성에서 정확도 차이가 벌어지는 모습을 그린 개념 그래픽

패킷을 건드려봤더니 예측대로 움직였다는 보고

메커니즘 이야기로 들어가 보겠습니다. 감사를 받은 가림 시스템 열여덟 개에서 패킷 개입이 예측된 중간값 변화를 따라갔다고 합니다. eligible한 경우들에 한해서지만 전부 그 방향으로 움직였다는 것인데, 예를 들어 중간 계산 결과가 바뀌어야 할 지점에서 패킷을 살짝 틀면 최종 답도 그에 맞춰 바뀌는 식입니다. 이런 패턴이 보이면 패킷이 정말로 중간값을 나르고 있다는 해석에 힘이 실립니다.

저는 이 대목을 읽으면서 기대와 경계를 동시에 느꼈습니다. 기대는 분명합니다. 가림이 있을 때 세포들이 각자 단계를 맡고 패킷으로 중간값을 넘긴다는 그림과 맞아떨어지니까요. 만약 패킷이 장식이었다면 개입에 반응하지 않았을 텐데, 반응했다는 것은 통로가 살아 있다는 뜻이죠.

하지만 경계도 필요합니다. 이 감사는 finite하고 success-conditioned되었다는 단서가 붙기 때문입니다. 수가 유한하고, 이미 잘 풀리는 시스템과 풀리는 경우만 골라 봤다는 뜻입니다. 잘되는 표본에서만 메커니즘이 보인다고 해서, 그 메커니즘이 전체 효과를 만들었다고 단정할 수는 없습니다. 상관과 인과를 가르는 오래된 문제인데, 논문도 여기서 선을 넘지 않습니다. mediation을 입증하지는 못한다고 분명히 말합니다. 저는 이 솔직함이 이 논문의 품격을 보여준다고 봅니다.

표시를 따라가지 못한 시스템들이 말해주는 것

또 하나의 정직한 대목은 marker-following 검사입니다. 전역적으로 보이는 시스템 중 이 검사를 통과한 경우가 없었다고 합니다. 소유권 표시를 읽고 역할을 나눠 따르는 행동이 관찰되지 않았다는 뜻인데, 그래서 usable한 역할 정보의 효과는 아직 풀리지 않은 문제로 남습니다.

이 결과는 얼핏 아쉽게 들리지만 해석의 지도를 넓혀줍니다. 가림의 큰 효과가 표시를 잘 써서 나온 것인지, 아니면 표시와 무관하게 베끼기 차단만으로 나온 것인지를 가릴 수 없게 됐기 때문입니다. 표시가 있어도 가린 쪽이 이겼다는 앞선 결과와 겹쳐보면, 표시는 적어도 이번 설정에서는 승부를 가르는 카드가 아니었던 셈입니다.

그렇다면 다음 질문은 자연스럽게 이어집니다. 표시를 읽는 능력이 없었다는 것이 구조의 한계일까요, 아니면 학습 신호의 문제일까요? 전역 가시성이 주어져도 마커를 행동으로 연결하는 회로가 생기지 않았다는 것은, 정보가 있다고 곧바로 쓰이는 것이 아니라는 점을 보여줍니다. 실제 시스템 관점에서 보면 다음 질문이 바로 생깁니다. 마커를 쓰고 싶다면 어떤 보조 손실이나 curriculum이 필요할까요? 이 빈칸은 실패가 아니라 다음 설계의 출발점입니다.

다섯 가지 조건과 여섯 개 초기화 군집을 배치한 실험 설계도
다섯 가지 조건과 여섯 개 초기화 군집을 배치한 실험 설계도

사전등록과 공개가 주는 신뢰는 어디까지일까

이 작업이 주는 또 하나의 메시지는 결과 숫자가 아니라 연구 방식에 있습니다. protocol과 결과와 checkpoint가 공개됐다고 하니까요. 남이 같은 판을 다시 차려볼 수 있다는 말입니다. 재현이 가능한 판은 비판도 가능하고, 비판이 가능한 판은 신뢰를 쌓기 쉽죠.

사전등록은 특히 multi-agent나 compositionality처럼 해석이 갈리는 영역에서 빛납니다. 좋은 이야기가 너무 많아서 자칫하면 잘 나온 그림만 골라 보여주기 쉬운데, 미리 적어둔 기준은 그런 유혹을 막아줍니다. 이번에는 열두 개 비교와 전체 행동 기준이라는 못을 미리 박아두고 그대로 맞췄다는 점에서 점수를 줄 만합니다.

다만 공개가 모든 의심을 없애주지는 않습니다. 판이 공개됐다고 해서 그 판이 현실의 넓은 분포를 대표한다는 뜻은 아니기 때문입니다. 이 확인은 하나의 fresh task world 위에서 이뤄졌고, 여섯 개 군집과 두 가지 순서라는 울타리 안에서 이뤄졌습니다. 울타리 안에서는 단단하지만, 울타리 밖에서도 같은 일이 일어날지는 여전히 질문입니다. 그래서 저는 이 논문을 확정 판결이 아니라 잘 지어진 중간 기둥으로 읽습니다.

제가 이 숫자보다 그 뒤의 구조를 더 본 이유

제가 이 논문에서 가장 흥미롭게 본 부분은 0.846과 0.859라는 차이 자체보다 그 차이가 가리키는 학습의 모양입니다. 베끼기가 막히면 네트워크는 어쩔 수 없이 계산을 배운다는 단순한 문장이, 꽤 큰 격차로 눈앞에 나타났으니까요. 이런 장면은 설계자에게 직접적인 힌트를 줍니다. 통신 대역폭을 늘리기 전에 먼저 무엇을 못 보게 할지를 고민하라는 힌트죠.

저희 팀 관점에서도 공감되는 대목이 있습니다. 분업을 시키고 싶으면 정보를 더 주는 대신 인터페이스를 좁히는 편이 종종 낫습니다. 좁은 인터페이스는 각 모듈이 자기 책임을 떠넘기지 못하게 막으니까요. 물론 좁히면 학습이 느려지고 초반 곡선은 밋밋해집니다. 하지만 합성 시험처럼 진짜 조립을 묻는 시험에서는 그 느림이 나중에 복리로 돌아옵니다. 이 논문은 그 복리를 숫자로 보여준 셈입니다.

여기서 오해하지 말아야 할 점도 있습니다. 가림이 만능이라는 뜻은 아닙니다. filler 실험에서 보듯 빈자리를 메우는 방식에 따라 해석이 달라지고, 마커 실험에서 보듯 준 정보가 곧바로 쓰이지도 않습니다. 가림은 방향을 잡아주는 핸들 정도지, 엔진을 대신해주지는 않기 때문입니다. 그래도 핸들의 방향이 이렇게 분명하게 나온 것은 다음 설계를 가볍게 만듭니다.

패킷에 개입했을 때 중간값이 예측대로 바뀌는 장면을 그린 도식
패킷에 개입했을 때 중간값이 예측대로 바뀌는 장면을 그린 도식

다음 판에서는 무엇을 바꿔보고 싶을까

제가 앞으로 보고 싶은 것은 경계의 바깥쪽입니다. 하나의 task world를 넘어서도 같은 가림 효과가 유지될까요? 연산의 종류가 바뀌거나 연산 길이가 네 개, 다섯 개로 늘어나도 median 차이가 같은 방향으로 남을까요? 세포 수를 네 개에서 여섯 개, 여덟 개로 늘리면 분업의 모양은 어떻게 달라질까요? 이런 질문들은 단순한 호기심이 아니라 배포 조건과 직결됩니다. 실제 작업은 한 세계에 머물지 않으니까요.

또 하나 보고 싶은 것은 마커를 살리는 방법입니다. 지금은 usable한 역할 정보의 효과가 풀리지 않은 채 남았는데요. 마커를 행동과 연결하는 보조 과제나, 마커를 읽지 않으면 손해를 보는 curriculum을 얹으면 그림이 바뀔 수 있습니다. 표시가 있는 가림과 표시가 없는 가림의 차이가 지금보다 더 벌어질지, 아니면 여전히 가림 자체가 대부분을 설명할지가 궁금합니다. 이 답이 나오면 설계 우선순위가 분명해집니다. 표시 체계를 먼저 손볼지, 가림 스케줄을 먼저 손볼지가 갈리니까요.

마지막으로 메커니즘 감사의 다음 단계도 궁금합니다. 지금은 성공한 경우 위주로 유한하게 봤는데, 실패한 경우와 중간 성적의 경우까지 넓히면 패킷의 역할이 더 입체적으로 보일 겁니다. 개입의 크기를 단계별로 바꿔가며 반응 곡선을 그려보는 것도 좋겠습니다. 예측대로 움직이는 구간과 어긋나는 구간이 어디서 갈라지는지가 보이면, 그 경계가 바로 다음 아키텍처 아이디어가 될 테니까요.

못 보게 하는 설계가 남기는 한 문장

돌아보면 이야기는 단순합니다. 훤히 보이게 두면 베끼기를 배우고, 적당히 가리면 계산을 배운다는 것인데, 그 단순한 문장을 믿을 만하게 만드는 일은 전혀 단순하지 않았습니다. 사전등록된 열두 개 비교, 여섯 개 군집과 두 가지 순서, held-out 합성 시험, filler와 마커라는 대조 조건, 열여덟 개 시스템에 대한 패킷 감사까지 겹쳐야 겨우 한 문장이 설득력을 갖습니다.

그렇다면 우리 설계자에게 남는 질문은 무엇일까요. 다음 시스템을 그릴 때 통신창을 넓히기 전에 무엇을 가릴지 먼저 정했는가 하는 질문입니다. 저는 이 논문을 읽고 나서 그 순서를 바꾸고 싶어졌습니다. 줄 수 있는 정보를 다 주는 쪽이 아니라, 맡기고 싶은 계산이 생기도록 못 보게 하는 쪽부터 고민하는 것이죠. 못 보게 하는 것은 빼앗는 일이 아니라 배우게 하는 일이라는 역설이, 이번에는 숫자와 함께 남았습니다.

소유권 표시를 따라가지 못한 시스템이 남긴 빈칸을 그린 개념도
소유권 표시를 따라가지 못한 시스템이 남긴 빈칸을 그린 개념도

참고 자료

  1. What You Can't See Is Still What You Learn: A Preregistered Sixty-Society Confirmation That Evidence Masking Drives Compositional Generalization · arxiv.org

    리뷰 원문