모르는 것을 아는 합성, 생성 공간을 진화시키는 EvoSyn

학습자의 실패가 다음 합성 방향을 구체적으로 정해주지 않는 간극에서 출발해, 생성 가능한 상호작용 요인과 합성 노력 배분을 고쳐 쓰는 상태 중심으로 데이터를 진화시키는 EvoSyn의 구조와 실험 결과를 읽는다.

원문 논문 보기
'모르는 것을 아는 합성, 생성 공간을 진화시키는 EvoSyn' 기사 커버 이미지

Know What You Don't Know: Agentic Data Synthesis by Evolving Generation Space for Closed-Loop Learning는 arXiv에 공개된 논문으로 arXiv 번호 2610.12593으로 등록되어 있습니다. 원문 링크는 제목 아래에 걸어두었습니다.

이 논문이 내세우는 주장은 하나의 문장으로 정리됩니다. 상호작용하는 에이전트를 위한 데이터 합성은 학습자의 피드백을 받아 생성 공간 자체를 고쳐 쓰면서 진화해야 한다는 것입니다. 이 글에서는 그 문제의식에서 출발해 피드백과 결정 사이의 간극, 고쳐 쓸 수 있는 합성 상태, 디자이너와 플래너의 분업, 공간 안에서의 적응과 공간의 확장, 그리고 인터랙티브 벤치에서의 결과를 차례로 따라갑니다.

왜 데이터를 더 만들수록 같은 실패가 반복될까

안녕하세요, 패트릭입니다. 제가 이 논문을 처음 펼쳤을 때 멈칫한 지점은 제목에 있던 모른다는 말이었습니다. 보통 데이터 합성 논문은 무엇을 더 만들었는지를 말하는데, 여기서는 무엇을 모르는지를 먼저 묻고 있기 때문입니다. 데이터를 만드는 쪽이 학습자의 약점을 정확히 모른다는 고백에서 출발하는 셈이죠. 그렇다면 왜 이런 고백이 필요할까요.

에이전트 학습에서 흔한 장면을 떠올려보겠습니다. 금요일 오후에 누군가 새로운 상호작용 궤적을 수만 개 만들어 학습에 얹습니다. 실행도 되고 검증 절차도 통과합니다. 그런데 월요일 아침 평가를 열어보면 에이전트는 지난주에 틀리던 상황에서 또 틀립니다. 도구 호출 순서를 바꾸는 장면에서 머뭇거리고, 여러 단계에 걸친 확인이 필요한 장면에서 중간을 건너뜁니다. 데이터는 늘었는데 실패의 모양은 그대로인 것이죠. 이런 경험이 있다면 데이터의 양보다 방향을 먼저 의심하게 됩니다.

여기서는 조금 조심해서 읽을 필요가 있습니다. 궤적을 많이 만드는 일이 쓸모없다는 뜻이 아니기 때문입니다. 실행 가능한 궤적은 여전히 학습의 연료인데요. 문제는 연료를 더 붓는다고 해서 엔진의 약한 부분이 저절로 고쳐지지 않는다는 데 있습니다. 약한 부분이 어디인지 알아도, 그 정보를 다음 합성의 구체적인 선택으로 바꾸는 과정이 비어 있으면 학습은 제자리에서 맴돕니다. 저는 이 지점이 논문의 진짜 출발점이라고 봅니다. 합성량을 늘리는 기술이 아니라 실패의 관찰을 합성의 결정으로 바꾸는 기술을 묻고 있기 때문입니다.

고정된 파이프라인 합성과 학습 피드백으로 합성 상태를 고쳐 쓰는 폐쇄 루프 합성의 차이를 보여주는 그림
고정된 파이프라인 합성과 학습 피드백으로 합성 상태를 고쳐 쓰는 폐쇄 루프 합성의 차이를 보여주는 그림

실패를 보면 다음 합성이 저절로 보일까요

사람의 공부를 떠올리면 이 간극이 더 잘 보입니다. 학생이 시험에서 틀렸다는 사실만으로는 다음 공부 계획이 정해지지 않습니다. 어떤 유형에서 틀렸는지, 그 유형을 연습할 문제가 지금 문제집에 있는지, 없다면 문제집을 새로 만들어야 하는지까지 이어져야 계획이 되죠. 생각해보면 사람도 비슷하게 배웁니다. 오답 노트라는 것도 틀린 문제를 적는 행위 자체보다 다음에 무엇을 풀지를 정해주는 데 의미가 있으니까요.

논문이 말하는 피드백에서 결정으로의 간극도 같은 구조입니다. 학습자의 약점을 관찰했다는 말과 다음 합성을 어떻게 바꿀지가 정해졌다는 말은 다른데요. 약점은 보통 점수나 실패 사례의 형태로 옵니다. 그런데 합성 쪽이 알아야 하는 것은 훨씬 구체적입니다. 어떤 상호작용 요인을 얼마나, 어떤 배분으로 만들어야 하는지죠. 관찰의 언어와 결정의 언어가 달라서 사이를 잇는 장치가 없으면 피드백은 보고서로 끝나고 맙니다.

그렇다면 이 사이를 무엇으로 이을 수 있을까요. 흔한 대답은 약한 부분을 더 많이 만들자는 것입니다. 그런데 이 대답은 금방 막힙니다. 지금의 합성 공간에서 그 약한 부분을 애초에 만들 수 있는지, 만들 수 있다면 어디에 숨어 있는지를 모르기 때문입니다. 약점이 현재의 생성 조절 장치로 표현되지 않는다면 많이 만들자는 다짐은 공허해집니다. 저는 이 대목에서 논문의 질문이 날카로워졌다고 느꼈습니다. 무엇을 더 만들지가 아니라 무엇을 만들 수 있는지를 먼저 묻고 있기 때문입니다.

만들 수 있는 것을 상태로 적어두면 무엇이 달라질까

논문이 꺼낸 장치는 고쳐 쓸 수 있는 합성 상태라는 발상입니다. 합성을 그때그때의 생성 지시로 보지 않고, 어떤 상호작용 요인을 의도적으로 생성할 수 있는지와 합성 노력을 어디에 배분할지를 적어둔 상태로 관리하자는 것이죠. 상태라고 하면 거창하게 들리지만 실제로는 작업 일지에 가깝습니다. 지금 우리가 다룰 수 있는 변수가 무엇이고, 그 변수에 힘을 얼마나 싣고 있는지를 한 장에 적어두는 일인데요. 이렇게 적어두면 피드백이 왔을 때 고칠 대상이 분명해집니다.

이 발상이 마음에 드는 이유는 합성의 선택을 말로 남기기 때문입니다. 많은 합성 파이프라인은 선택을 코드와 프롬프트 속에 흩어둡니다. 그래서 실패가 와도 무엇을 바꿔야 할지 손에 잡히지 않죠. 반면 상태를 두면 실패는 상태에 대한 수정 제안이 됩니다. 어떤 요인의 비중을 올릴지, 어떤 요인을 새로 정의할지를 논의할 수 있게 되기 때문입니다. 저희가 새로운 AI 아키텍처를 볼 때도 benchmark 숫자만 보지는 않습니다. 실제로 무엇이 바뀌었고, 그 변화가 시스템에서 어떤 비용 구조를 만드는지를 함께 봅니다. 합성도 마찬가지인데요. 무엇을 바꿨는지가 적혀 있지 않으면 숫자가 올라도 배울 것이 남지 않습니다.

물론 상태라는 말이 만능은 아닙니다. 상태에 적히지 않은 것은 여전히 보이지 않기 때문입니다. 그래서 다음 질문이 바로 생깁니다. 상태에 적힌 것 안에서 움직이는 것만으로 충분할까요, 아니면 상태 자체를 고쳐야 할까요. 논문은 이 질문을 둘로 나누어 답하는데요. 그 나눔이 바로 뒤에 나오는 두 갈래 적응입니다.

상호작용 요인과 합성 노력 배분을 조절판 형태로 형상화한 생성 공간 개념도
상호작용 요인과 합성 노력 배분을 조절판 형태로 형상화한 생성 공간 개념도

방향을 정하는 일과 실행으로 옮기는 일을 왜 나눴을까

논문이 제안한 EvoSyn은 역할을 나눈 다중 에이전트 구조로 이 상태를 고쳐 씁니다. 방향을 나누는 디자이너와 그 방향을 실행 가능한 경험으로 다듬는 플래너가 나뉘어 있는데요. 처음 들으면 인원을 늘린 것처럼 들리지만, 실제로는 책임을 나눈 것에 가깝습니다. 어디를 만들지를 정하는 판단과 그것을 돌릴 수 있는 궤적으로 만드는 작업을 분리한 것이죠.

이 분리가 설득되는 지점은 실패의 원인이 섞이기 쉽다는 데 있습니다. 합성이 잘못되면 방향이 나빴는지 실행이 부실했는지 알기 어렵습니다. 방향이 맞았는데 궤적이 실행되지 않았다면 실행을 고쳐야 하고, 궤적은 잘 도는데 학습에 도움이 안 된다면 방향을 고쳐야 하죠. 한 몸으로 처리하면 둘을 구분하기 어렵습니다. 역할을 나누면 책임의 경계가 생기는데요. 디자이너는 합성 방향의 배분을 맡고, 플래너는 그 배분을 실제 상호작용 경험으로 접지시키는 일을 맡습니다.

여기서 재미있는 질문이 생깁니다. 디자이너가 정한 방향은 어떻게 구체적인 장면이 될까요. 예를 들어 확인 절차가 약하다고 해보겠습니다. 방향의 말로는 확인 관련 요인의 비중을 올리라는 지시가 됩니다. 그런데 이 지시만으로는 궤적이 나오지 않죠. 어떤 도구 상태를 주고, 어떤 순서로 확인을 요구하고, 어디에서 실패하도록 둘지를 정해야 실행 가능한 경험이 됩니다. 플래너가 하는 일이 바로 이 접지 작업인데요. 추상적인 배분 결정을 돌릴 수 있는 형태로 바꾸는 것이죠. 저는 이 나눔을 보고 합성도 설계와 시공의 분업이 필요하다는 생각을 했습니다. 설계만 있고 시공이 부실하면 그림으로 끝나고, 시공만 있고 설계가 없으면 벽돌만 쌓이기 때문입니다.

있는 공간 안에서 약한 곳을 메우는 일은 어떻게 돌아갈까

두 갈래 적응 가운데 첫 번째는 공간 안에서의 적응입니다. 이미 상태에 적혀 있는 생성 요인의 범위 안에서 합성 노력을 약하거나 덜 다뤄진 영역으로 옮기는 방식인데요. 표현을 빌리면 약한 곳을 메우는 일입니다. 새로운 변수를 발명하지 않고도 할 수 있어서 비교적 빠르게 돌릴 수 있습니다.

구체적인 월요일 아침 장면을 떠올려보겠습니다. 평가 리포트를 열어보니 에이전트가 예약 변경처럼 상태를 되돌려야 하는 상호작용에서 유난히 약합니다. 다행히 생성 공간에는 상태 되돌리기라는 요인이 이미 조절 장치로 들어 있습니다. 다만 그동안 비중이 낮게 잡혀 있었던 것이죠. 그러면 디자이너는 그 요인의 배분을 올리라는 결정을 내리고, 플래너는 되돌리기 장면이 더 자주, 더 다양한 조건에서 나오도록 궤적을 만듭니다. 실패의 위치가 이미 지도 안에 있을 때는 지도를 고칠 필요 없이 발걸음을 옮기면 됩니다.

그런데 이 방식만으로는 풀리지 않는 실패가 있습니다. 실패의 모양이 기존의 조절 장치로는 잘 표현되지 않을 때인데요. 예를 들어 실패가 특정 요인의 부족 때문이 아니라 두 요인이 엮이는 방식 때문이라면 비중 조절만으로 닿기 어렵습니다. 비중을 올려도 같은 형태의 장면이 더 나올 뿐, 진짜 약한 결이 드러나지 않기 때문입니다. 그렇다면 다음에는 무엇을 해야 할까요. 지도를 그대로 두고 걸음을 옮기는 단계를 넘어 지도 자체에 새로운 길을 그어야 합니다.

합성 방향을 나누는 디자이너와 실행 가능한 경험으로 다듬는 플래너의 역할 분담도
합성 방향을 나누는 디자이너와 실행 가능한 경험으로 다듬는 플래너의 역할 분담도

공간 자체를 넓히는 일은 무엇이 다를까

두 번째 갈래는 합성 공간의 확장입니다. 학습 피드백을 보다가 새로 드러난 요인을 명시적인 생성 조절 장치로 승격시키는 일인데요. 처음에는 이름도 없었던 실패의 결이 나중에는 다이얼처럼 다룰 수 있는 변수가 되는 과정입니다. 모른다는 것을 알았으니 이제는 다룰 수 있게 만들자는 것이죠.

이 과정이 어려운 이유는 발견과 고정이 함께 가야 하기 때문입니다. 실패 사례를 보다 보면 우연한 실패와 반복되는 결을 구분해야 합니다. 우연을 변수로 승격시키면 공간만 복잡해지고 합성은 산만해지죠. 반면 반복되는 결을 놓치면 같은 실패가 계속됩니다. 그래서 확장은 관찰을 점검하는 일을 포함합니다. 새로 본 실패가 정말로 조절 가능한 요인인지, 그 요인을 어떻게 정의해야 다양한 장면으로 만들 수 있는지를 따져야 합니다.

개인적으로 인상 깊었던 점은, 이런 확장이 없으면 피드백을 받아도 천장이 생긴다는 것입니다. 아무리 성실히 약한 곳을 메워도 지도 바깥의 실패에는 손이 닿지 않기 때문입니다. (참고로 논문이 말하는 발견은 사람이 우연히 찾아낸 요령이 아니라 학습 피드백을 거치며 드러난 조절 가능한 요인에 가깝습니다. 없이도 돌아가던 합성에 피드백이 더해지자 비로소 보인 것들이죠.) 저는 그래서 확장을 논문의 또 다른 축으로 읽었습니다. 적응이 발걸음을 옮기는 일이라면 확장은 지도를 다시 그리는 일인데요. 발걸음만 옮기면 익숙한 곳에서만 잘하게 되고, 지도를 다시 그려야 낯선 실패까지 다룰 수 있게 됩니다.

기존 공간 안에서 약한 영역으로 합성 노력을 옮기는 적응 과정을 담은 그림
기존 공간 안에서 약한 영역으로 합성 노력을 옮기는 적응 과정을 담은 그림

실행되고 검증되면 충분하다고 말할 수 있을까

합성 데이터를 말할 때 흔히 나오는 조건이 실행 가능성과 검증 가능성입니다. 궤적이 실제로 돌아가고 결과가 확인할 수 있어야 한다는 것이죠. 이 조건은 분명히 중요한데요. 돌지도 않는 궤적은 학습 자료가 아니라 소설에 가깝기 때문입니다. 그런데 논문은 여기서 한 걸음을 더 내딛습니다. 돌리고 확인할 수 있는 것만으로는 부족하고 학습에 도움이 되는 상호작용이어야 한다는 것입니다.

이 구분은 생각보다 중요합니다. 실행된다는 말은 문법이 맞다는 뜻이고, 도움이 된다는 말은 약점을 찌른다는 뜻이기 때문입니다. 문법만 맞는 궤적은 쉽게 대량으로 만들 수 있습니다. 정해진 도구를 순서대로 부르면 되니까요. 그런데 그런 궤적은 학습자가 이미 잘하는 장면만 반복하기 쉽습니다. 반면 도움이 되는 궤적은 학습자가 머뭇거리는 지점을 일부러 건드립니다. 어디에서 갈림길이 생기고, 어디에서 확인이 필요하고, 어디에서 실수하면 되돌려야 하는지를 담고 있죠.

그렇다면 도움이 된다는 것을 어떻게 알 수 있을까요. 논문의 답은 학습 피드백으로 돌아오는 것입니다. 합성 전에 미리 정해두는 기준이 아니라 학습 뒤에 돌아온 반응으로 판단하자는 것이죠. 저는 이 태도가 운영의 감각과 가깝다고 봤습니다. 교육 과정을 미리 완벽히 짜기보다 학생의 반응을 보고 다음 교재를 고르는 방식인데요. 합성을 한 번의 생산으로 보지 않고 학습과 맞물려 도는 순환으로 본 것입니다. 그래서 제목에 폐쇄 루프라는 말이 들어간 것이겠죠. 합성이 학습에 영향을 주고, 학습의 결과가 다시 합성을 고치는 고리가 닫히는 것입니다.

두 개의 인터랙티브 벤치에서 무엇을 보았을까

실험은 상호작용 에이전트 과제를 위한 두 개의 벤치에서 진행되었습니다. 이름으로 적힌 것은 타우 투 벤치와 CAR 벤치인데요. 두 벤치 모두 질문에 답하는 시험이 아니라 도구를 다루며 여러 단계를 거쳐 일을 끝내야 하는 형태에 가깝습니다. 합성이 궤적의 양만 늘렸는지, 아니면 실제 수행을 바꿨는지를 보기에 어울리는 무대죠.

결과로 제시된 숫자는 하나인데 꽤 큽니다. 가장 강한 합성 기준선과 견주어 평균 과제 성공률이 13.3점 올랐습니다. 일반 파일에만 남겼을 때는 17%에 그쳤지만 SOUL이라는 파일에 옮겨 적었을 때는 55%까지 올라갔다는 식의 대조가 아니라, 합성 방식 자체를 바꾼 결과로 평균 성공률이 두 자릿수 차이로 벌어졌다는 보고인데요. 숫자는 prose 안에 둘 때 더 잘 읽힙니다. 기존 방식이 60점 언저리에서 머물던 일을 EvoSyn으로 만든 경험으로 학습하자 70점 언저리로 올라섰다는 식으로 말이죠. 점수 차이 자체보다 그 차이가 평균에서 났다는 점이 눈에 띕니다. 특정 과제에서만 튄 것이 아니라 여러 과제에서 함께 올라갔다는 뜻이기 때문입니다.

여기서는 조금 조심해서 읽을 필요가 있습니다. 평균이 올랐다는 말이 모든 과제에서 똑같이 올랐다는 뜻은 아니기 때문입니다. 평균은 분포를 가리는 법이죠. 어떤 과제에서는 크게 오르고 어떤 과제에서는 그대로일 수 있습니다. 그럼에도 평균에서의 두 자릿수 차이는 가볍지 않습니다. 합성의 방향을 피드백으로 고치는 순환이 단순한 증량과는 다른 영향을 냈다는 신호이기 때문입니다. 저는 이 숫자보다 그 뒤의 구조가 더 중요하다고 봅니다. 숫자는 결과이고, 결과를 만든 것은 상태를 고쳐 쓰는 순환이기 때문입니다.

새로 발견한 요인을 명시적 생성 조절 장치로 승격시키는 공간 확장의 전후 비교도
새로 발견한 요인을 명시적 생성 조절 장치로 승격시키는 공간 확장의 전후 비교도

13.3점 앞에서 잠시 멈추어야 하는 이유

좋은 숫자 앞에서는 해석을 한 번 더 점검하는 편이 좋습니다. 13.3점이라는 차이는 가장 강한 합성 기준선과의 비교인데요. 이 표현은 그 시점에 알려진 합성 방식 가운데 가장 잘하던 것과 견주었다는 뜻입니다. 그래서 단순한 과거 방식과의 비교보다 진술이 셉니다. 그런데 비교가 셌다는 이유로 그 바깥의 조건까지 자동으로 일반화해서는 안 됩니다.

실제 시스템 관점에서 보면 다음 질문이 바로 생깁니다. 벤치가 바뀌면 이 차이도 그대로 유지될까요. 타우 투 벤치와 CAR 벤치는 상호작용 과제라는 공통점이 있지만 모든 상호작용을 대표하지는 않기 때문입니다. 도구의 종류가 달라지거나 단계의 길이가 달라지거나 실패의 비용이 달라지면 합성의 효과도 달라질 수 있죠. 또한 합성으로 학습한 뒤의 성공률이 실제 운영에서의 복구 능력과 같은 뜻인지도 따져봐야 합니다. 벤치에서의 성공은 정해진 판정 안에서 정해지는데, 운영에서는 판정이 없는 실패가 더 자주 오기 때문입니다.

그럼에도 이 결과에서 가져갈 것은 분명합니다. 학습 피드백 없이 만든 합성과 피드백을 받아 진화한 합성은 질과 구조의 폭에서 갈렸다는 보고인데요. 피드백이 없을 때는 놓치던 조절 가능한 요인들이 피드백을 거치자 드러났다는 것입니다. 저는 이 대목을 보고 합성의 평가 기준을 다시 생각했습니다. 궤적이 몇 개인지, 실행되는 비율이 얼마인지를 넘어 어떤 요인을 얼마나 넓게 다루는지를 함께 봐야 한다는 것이죠. 양과 실행 가능성만 보면 진화된 경험과 그렇지 않은 경험이 비슷해 보일 수 있는데, 구조의 폭을 보면 차이가 드러나기 때문입니다.

모른다는 것을 아는 합성이 남기는 질문

질문도 바뀌었습니다. 무엇을 더 만들 것인가에서 무엇을 만들 수 있는지를 어떻게 넓힐 것인가로 말이죠. 합성을 생산량으로 보던 시선에서 합성을 학습과 함께 움직이는 상태로 보는 시선으로 넘어온 것입니다. 저는 앞으로 보고 싶은 것이 바로 이 순환이 어디까지 이어지는지입니다. 상태가 몇 번 고쳐진 뒤에는 안정되는지, 아니면 학습자가 나아질수록 새로운 모름이 계속 나타나는지 궁금하기 때문입니다.

운영의 아침을 떠올려보겠습니다. 밤사이 도구의 응답 형식이 바뀌고 아침에 새로운 실패가 도착합니다. 고정된 합성 파이프라인이라면 이 실패를 다음 분기에나 반영할 수 있죠. 그런데 상태를 고쳐 쓰는 순환이 있다면 이야기가 달라집니다. 아침의 실패가 낮에는 합성 방향의 수정이 되고, 저녁에는 새로운 궤적이 되어 돌아올 수 있기 때문입니다. 물론 이 순환이 공짜는 아닙니다. 피드백을 읽고 상태를 고치는 데에도 비용이 들고, 잘못된 확장은 공간만 복잡하게 만들 수 있죠. 그래서 순환을 얼마나 자주, 얼마나 크게 돌릴지는 여전히 설계의 문제로 남습니다.

그렇다면 사람의 역할은 무엇일까요. 합성이 스스로 진화할수록 무엇을 만들지의 결정은 기계에 넘어가지만, 무엇을 모른다고 인정할지의 기준은 여전히 사람의 몫으로 보입니다. 어떤 실패를 우연으로 둘지, 어떤 실패를 새로운 변수로 승격할지를 정하는 일에는 현장의 감각이 필요하기 때문입니다. 저는 이 논문을 합성 기술의 소개 이상으로 읽었습니다. 모른다는 것을 다루는 방식을 상태와 순환과 분업으로 풀어낸 기록이기 때문입니다. 다음에 합성 파이프라인을 짤 때는 궤적의 개수보다 먼저 물을 것 같습니다. 지금의 생성 공간이 무엇을 다룰 수 있고, 무엇을 아직 모르는지를 말이죠.

진화된 합성 경험으로 상호작용 과제 수행이 바뀌는 흐름을 담은 개념 그림
진화된 합성 경험으로 상호작용 과제 수행이 바뀌는 흐름을 담은 개념 그림

참고 자료

  1. Know What You Don't Know: Agentic Data Synthesis by Evolving Generation Space for Closed-Loop Learning · arxiv.org

    리뷰 원문