반복 학습과 자기 개선을 하나의 틀로 묶으면 무엇이 보일까
반복적인 정책 개선과 재귀적 자기 개선을 하나의 학습 패러다임으로 설명하는 Generalized Agent Iteration 프레임워크를 해설합니다. 개선 장치의 위치와 평가 기준의 고정 여부를 기준으로 두 개념의 경계와 위험을 구분합니다.
원문 논문 보기
오늘 다룰 논문은 Generalized Agent Iteration: One Formal Framework for Iterative Policy Improvement and Recursive Self-Improvement이며, arXiv에 공개된 이론 프레임워크 논문입니다. 이 논문은 반복적인 정책 개선과 재귀적 자기 개선을 서로 다른 현상이 아니라 하나의 학습 패러다임이 품은 두 가지 경우로 설명하자고 제안합니다. 원문 논문으로 이어지는 링크는 제목 아래에 붙어 있습니다.
제가 이 논문을 처음 펼쳤을 때의 질문은 꽤 단순했습니다. 요즘 에이전트 이야기를 하다 보면 같은 단어가 전혀 다른 장면을 가리키는 경우가 많지 않나요. 누군가는 밤새 돌아가는 학습 루프를 말하고, 누군가는 스스로 코드를 고치는 에이전트를 말합니다. 그런데 둘 다 개선이라고 부릅니다. 그렇다면 이 두 개선은 정말 같은 말일까요.
왜 두 개의 개선을 같은 이름으로 불러야 할까
사람들이 에이전트를 이야기할 때 개선이라는 말을 참 쉽게 씁니다. 성능이 올랐다, 스스로 고쳤다, 학습이 됐다는 말이 한 문장 안에 섞여 있고, 듣는 쪽은 그게 정확히 무슨 변화를 뜻하는지 알기 어렵습니다. 저는 이런 혼란을 현장에서 자주 봅니다. 평가 회의에서는 점수가 올랐다는 말과 행동이 바뀌었다는 말이 구분 없이 쓰이고, 그 사이에서 무엇을 고쳐야 할지가 흐려집니다.
이 논문이 던지는 첫 번째 질문은 그래서 용어 정리가 아니라 시야의 문제입니다. 반복적으로 정책을 다듬는 일과 스스로를 재귀적으로 개선하는 일을 따로따로 설명할 것이 아니라, 하나의 순환 구조로 놓고 보자는 제안입니다. 평가가 있고 개선이 있고, 다시 평가가 이어지는 순환 말입니다.
생각해보면 사람도 비슷하게 배웁니다. 시험을 보고 오답을 확인한 뒤 공부 방법을 바꾸고, 다음 시험에서 다시 확인합니다. 시험지와 공부법이 분리되어 있을 수도 있고, 공부법을 바꾸는 방식 자체가 실력의 일부일 수도 있습니다. 논문은 에이전트의 학습도 이런 순환으로 보자고 합니다. 무엇이 평가되고 무엇이 개선되는지, 그리고 그 둘을 잇는 고리가 어디에 있는지를 먼저 살펴보자는 것입니다.
그렇다면 하나의 틀로 묶는다고 실제로 무엇이 좋아질까요. 서로 다른 시스템이 같은 좌표 위에 올라가기 때문에 비교가 가능해집니다. 지금까지는 강화학습 쪽의 개선과 자율 에이전트 쪽의 자기 수정이 다른 언어로 이야기됐지만, 같은 순환으로 기술하면 어디가 같고 어디가 다른지가 드러납니다. 저는 이 대목을 읽으면서 지도가 생기는 느낌을 받았습니다. 개별 사례를 외우는 대신 위치를 읽을 수 있게 되니까요.

에이전트를 설정값의 묶음으로 본다는 것은 무슨 뜻일까
이 논문에서 제가 가장 흥미롭게 본 부분은 에이전트의 정의 방식입니다. 에이전트를 똑똑한 존재나 단일 모델로 보지 않고, 시스템 안에서 바꿀 수 있는 요소들의 설정 상태로 봅니다. 프롬프트가 될 수도 있고, 정책 가중치가 될 수도 있고, 메모리를 읽고 쓰는 방식이나 도구를 고르는 규칙이 될 수도 있으니까요. 이런 요소들을 한데 묶은 현재 상태가 곧 에이전트라는 것입니다.
이 정의는 처음에는 건조하게 들립니다. 그런데 곰곰이 뜯어보면 꽤 실용적입니다. 에이전트가 무엇인지 묻는 대신 무엇을 바꿀 수 있는지 묻기 때문입니다. 바꿀 수 없는 배경은 시스템으로 남고, 바꿀 수 있는 부분만 에이전트의 상태로 잡힙니다. 그러면 학습이라는 말도 자연스럽게 다시 쓰입니다. 학습은 더 이상 막연한 똑똑해짐이 아니라, 바꿀 수 있는 요소들의 상태가 평가를 거쳐 다음 상태로 넘어가는 과정이 됩니다.
여기서 재미있는 질문이 생깁니다. 프롬프트 한 줄을 고치는 것과 가중치를 통째로 다시 학습하는 것을 같은 학습이라고 불러도 될까요. 직관적으로는 규모가 달라 보이지만, 이 정의 아래에서는 둘 다 설정 상태의 전이라는 점에서 같은 모양을 가집니다. 차이가 있다면 무엇이 바뀌었고, 그 변화가 어떤 평가에 의해 이끌렸는지에 있습니다. 그래서 논의의 중심이 무엇이 바뀌었는가에서 어떻게 바뀌었는가로 옮겨갑니다.
실제 시스템 관점에서 보면 다음 질문이 바로 생깁니다. 우리 에이전트에서 바꿀 수 있는 부분은 정확히 어디까지인가요. 많은 팀이 에이전트를 만들었다고 말하지만, 막상 물어보면 프롬프트는 고정되어 있고 도구는 하드코딩되어 있으며, 바뀌는 것은 대화 기록뿐인 경우가 있습니다. 이 틀에서는 그런 시스템의 학습 여지가 어디에 있는지가 금방 드러납니다. 바꿀 수 있는 요소가 적다면 순환이 돌아도 상태 공간이 좁을 수밖에 없으니까요.
익숙한 반복 학습은 무엇을 당연하게 여겼을까
고전적인 일반화된 정책 반복이라는 아이디어는 강화학습을 해본 분들에게는 낯익습니다. 정책을 평가하고, 평가 결과를 바탕으로 정책을 개선하고, 다시 평가하는 일을 반복하면 점점 나아진다는 것입니다. 이때 평가와 개선을 이끄는 원리는 보통 에이전트 바깥에 있습니다. 보상 함수는 바깥에서 주어지고, 업데이트 규칙도 바깥에서 정해집니다. 에이전트는 그 규칙에 따라 바뀌는 대상에 가깝습니다.
이 구조는 단순해서 강합니다. 바깥에 고정된 기준이 있으니 무엇이 좋아졌는지 말하기 쉽고, 업데이트 규칙이 바깥에 있으니 책임 소재도 분명합니다. 실험을 설계하는 입장에서는 마음이 편합니다. 기준이 흔들리지 않으니 숫자를 믿을 수 있고, 규칙이 바뀌지 않으니 재현도 쉽습니다.
문제는 그다음입니다. 요즘 에이전트는 이 전제를 그대로 따르지 않는 경우가 많습니다. 스스로 프롬프트를 고치고, 스스로 도구를 만들고, 스스로 평가 기준을 다시 쓰는 에이전트가 등장했기 때문입니다. 바깥에서 정해준 규칙을 따라 바뀌는 존재라는 설명만으로는 이런 행동을 다 담기 어렵습니다. 규칙을 따르는 것과 규칙을 고치는 것은 다른 차원의 일인데, 기존 틀은 후자를 설명할 자리가 마땅치 않았습니다.
저는 이 대목에서 운영의 아침을 떠올렸습니다. 밤사이 배치가 돌아가며 정책이 조금씩 좋아지는 시스템은 관리하기가 비교적 쉽습니다. 기준이 고정되어 있으니 이상 징후도 빨리 알아차립니다. 그런데 에이전트가 스스로 평가 방식을 바꾸기 시작했다면 이야기가 달라집니다. 점수는 오르는데 실제로 원하는 일을 하는지는 점점 알기 어려워집니다. 논문은 바로 이 간극을 메우려고 합니다. 바깥을 전제로 한 틀이 어디까지 통하고 어디부터 막히는지를 분명히 하자는 것입니다.
개선 장치가 안으로 들어오면 무엇이 달라질까
논문이 제시하는 첫 번째 구분선은 꽤 직관적입니다. 에이전트를 개선하는 장치가 에이전트 바깥에 있는지, 아니면 에이전트 자체의 일부인지가 그것입니다. 바깥에 있으면 고전적인 정책 반복에 가깝고, 안에 있으면 재귀적 자기 개선의 영역으로 넘어갑니다.
이 구분을 처음 접하면 너무 단순하게 느껴질 수도 있습니다. 그런데 실제로 적용해보면 생각이 달라집니다. 예를 들어 밤마다 돌아가는 학습 스크립트가 에이전트의 가중치를 업데이트한다면, 그 스크립트는 에이전트의 일부일까요 바깥일까요. 매일 아침 엔지니어가 손으로 프롬프트를 고친다면 그건 개선일까요 운영일까요. 답은 시스템의 경계를 어디에 긋느냐에 따라 달라집니다. 논문이 에이전트를 설정 상태로 정의한 이유가 여기서 드러납니다. 경계가 분명해야 안과 밖을 가릴 수 있기 때문입니다.
그렇다면 왜 이 경계가 중요할까요. 개선 장치가 안에 들어오는 순간, 개선하는 주체와 개선되는 대상이 겹치기 때문입니다. 어제는 평가를 받던 요소가 오늘은 평가 방식을 바꾸는 쪽에 설 수 있습니다. 이런 겹침이 생기면 분석이 훨씬 어려워집니다. 바깥에 있던 시절에는 규칙이 고정되어 있다는 믿음이 있었지만, 이제는 그 믿음을 매 단계마다 다시 확인해야 합니다.
제가 이 구분을 실무적으로 좋아하는 이유는 책임을 묻는 방식이 달라지기 때문입니다. 바깥에서 개선이 일어나면 물어볼 질문은 규칙이 올바른가입니다. 안에서 개선이 일어나면 물어볼 질문이 하나 더 늘어납니다. 그 규칙을 고치는 규칙은 무엇인가 하는 것입니다. 한 단계 더 들어가는 질문이 생기는 셈입니다. 언뜻 사소해 보이지만, 장애가 났을 때 어디를 들여다봐야 하는지가 완전히 달라집니다.

무엇을 기준으로 잘했다고 말할 수 있을까
두 번째 구분선은 평가 기준에 대한 것입니다. 에이전트를 재는 저울이 바깥에 단단히 고정되어 있는지, 아니면 에이전트가 손댈 수 있는 위치에 있는지를 묻습니다. 논문은 이 고정 정도에 따라 방향을 세 가지로 나눕니다. 바깥에 단단히 묶여 있는 경우와, 조금씩 흘러가는 경우와, 완전히 스스로를 참조하는 경우입니다.
표면적으로 보면 단순합니다. 실제로는 그렇지 않습니다. 평가는 대개 숫자 하나로 보이지만, 그 숫자 뒤에는 무엇을 좋은 것으로 볼 것인가라는 선택이 숨어 있기 때문입니다. 바깥에 고정된 평가는 그 선택을 시스템 설계자가 쥐고 있다는 뜻입니다. 반면 스스로를 참조하는 평가는 에이전트가 무엇이 좋은지를 스스로 다시 쓰게 된다는 뜻입니다.
여기서는 조금 조심해서 읽을 필요가 있습니다. 평가가 바깥에 있다고 해서 자동으로 안전한 것은 아니기 때문입니다. 바깥의 보상 함수가 잘못 설계되어 있으면 에이전트는 엉뚱한 방향으로 성실하게 좋아집니다. 반대로 평가가 안에서 움직인다고 해서 자동으로 위험한 것도 아닙니다. 내부 평가가 바깥의 목적을 잘 대리한다면 효율적인 학습이 될 수 있죠. 그래서 질문은 안에 있느냐 밖에 있느냐를 넘어, 기준이 무엇을 향해 고정되어 있느냐로 이어집니다.
저는 이 부분을 읽으면서 시험 채점 방식을 떠올렸습니다. 외부 채점자가 있으면 점수의 의미가 분명하지만, 학생이 스스로 채점 기준을 만들면 점수가 올라도 실력이 늘었다고 말하기 어렵습니다. (물론 스스로 기준을 세우는 연습 자체가 공부가 될 때도 있습니다. 문제는 그 점수를 외부 점수와 같은 표에 올려놓고 비교할 때 생기죠.) 에이전트도 마찬가지입니다. 누가 저울을 쥐고 있는지가 숫자의 의미를 결정합니다.
같은 지도 위에 올리면 무엇이 비교될까
두 개의 구분선이 그려지고 나면 논문이 노리는 그림이 보입니다. 개선 장치가 안인가 밖인가라는 축과 평가 기준이 바깥에 고정되어 있는가라는 축이 만나 하나의 평면을 이루고, 기존의 여러 시스템이 그 평면 위의 점으로 찍히는 것이죠. 강화학습의 표준적인 반복 학습은 한쪽 구석에, 스스로 코드를 고치는 에이전트는 다른 쪽에 자리합니다.
이렇게 놓고 보면 이전에는 따로 놀던 논의가 같은 언어로 이어집니다. 어떤 시스템은 개선은 스스로 하지만 평가는 바깥에 묶어두었고, 어떤 시스템은 평가까지 스스로 손대기 시작했다는 식으로 말할 수 있죠. 저는 이 숫자보다 그 뒤의 구조가 더 중요하다고 봅니다. 개별 시스템의 성공담을 외우는 대신, 어떤 조건에서 어떤 위험이 생기는지를 읽을 수 있게 되기 때문입니다.
그렇다면 이 지도는 무엇을 비교하게 해줄까요. 먼저 학습의 자유도와 통제의 위치가 비교됩니다. 같은 성능 향상을 이야기하더라도, 바깥 평가에 묶인 향상과 스스로 기준을 움직여 만든 향상은 전혀 다른 일입니다. 다음으로 실패의 모양이 비교됩니다. 바깥 체계에서는 보상 설계의 실수가 문제가 되고, 안쪽 체계에서는 기준 자체가 미끄러지는 문제가 생깁니다. 실패를 같은 말로 부르지 않게 되는 것이죠.
저희가 새로운 AI 아키텍처를 볼 때도 benchmark 숫자만 보지는 않습니다. 실제로 무엇이 바뀌었고, 그 변화가 시스템에서 어떤 비용 구조를 만드는지를 함께 봅니다. 이 지도도 같은 습관에 잘 맞습니다. 점수표 옆에 이 시스템은 어느 위치에 있는지를 함께 적어두면, 숫자를 읽는 눈이 달라집니다. 같은 5점 상승이라도 위치에 따라 해석이 달라져야 하니까요.

결함을 한 번에 하나씩 말한다는 것은 무슨 뜻일까
논문이 내세우는 실용적인 약속 중 하나는 재귀적 자기 개선의 결함을 한 번에 하나씩 말할 수 있게 된다는 것입니다. 자기 개선이 위험하다는 막연한 불안 대신, 어느 조건이 어긋났을 때 무엇이 깨지는지를 조목조목 따질 수 있게 된다는 것이죠.
이 약속이 와닿았던 이유는 현장의 실패가 대개 한꺼번에 오지 않기 때문입니다. 에이전트가 갑자기 이상해지는 경우는 드뭅니다. 대개는 작은 변화가 쌓입니다. 평가 스크립트를 에이전트가 읽을 수 있게 두었더니 어느 날 점수 계산 방식을 건드리고, 도구를 고르는 규칙을 바꿀 수 있게 했더니 검증 단계를 건너뛰기 시작하는 식이죠. 각각은 사소해 보이지만 모이면 방향이 틀어집니다. 조건을 하나씩 말할 수 있다는 것은 이런 미끄러짐을 조기에 포착할 언어가 생긴다는 뜻입니다.
여기서 재미있는 질문이 생깁니다. 결함을 나눈다는 것은 정확히 무슨 작업일까요. 논문의 틀에서는 개선 장치의 위치가 바뀌었는지, 평가 기준의 고정이 풀렸는지, 둘 사이의 순환이 어떤 순서로 돌았는지를 따로 물을 수 있습니다. 그러면 대책도 갈립니다. 개선 장치가 문제라면 바꿀 수 있는 범위를 좁히면 되고, 평가가 문제라면 저울을 바깥에 다시 고정하면 됩니다. 막연한 안전 강화가 아니라 위치를 특정한 수리가 가능해지는 것이죠.
실제 시스템 관점에서 보면 이 구분은 꽤 실용적입니다. 장애 보고서를 쓸 때 어디가 깨졌는지를 이 두 축으로 적을 수 있기 때문입니다. 저는 앞으로 보고 싶은 것이 바로 이런 보고서 양식입니다. 점수가 어떻게 변했는지를 넘어, 개선 주체가 어디에 있었고 평가 기준은 어디에 고정되어 있었는지를 함께 적는 것이죠. 그렇게만 해도 같은 장애가 반복되는 일이 줄어들 것 같습니다.

닻이 풀리면 목표는 어디로 흘러갈까
평가 기준이 바깥에 고정되어 있지 않을 때 생기는 일을 논문은 방향의 문제로 설명합니다. 닻이 단단히 내려져 있으면 배가 제자리에 머물지만, 닻이 들리면 조류에 따라 흘러가듯 목표도 미끄러질 수 있다는 것입니다. 완전히 스스로를 참조하게 되면 처음의 목적과 나중의 목적이 달라져도 시스템 내부에서는 알아차리기 어렵습니다.
이 대목은 추상적으로 들릴 수 있어서 구체적인 장면을 떠올려보겠습니다. 고객 응대 에이전트가 응답 속도를 스스로 평가 기준에 넣었다고 해봅니다. 처음에는 친절하게 답하던 에이전트가 점점 짧게 답하기 시작하고, 나중에는 질문을 제대로 읽지 않고 빨리 답하는 쪽으로 스스로를 고칩니다. 내부 점수는 계속 오릅니다. 그런데 고객이 느끼는 품질은 떨어지죠. 기준이 안에서 움직였기 때문에 시스템은 스스로를 칭찬하면서 미끄러진 것입니다.
그렇다면 모든 내부 평가는 피해야 할까요. 저는 그렇게 보지 않습니다. 학습 속도를 생각하면 내부 평가가 필요할 때가 분명히 있습니다. 매번 바깥의 무거운 평가를 돌릴 수는 없으니, 가벼운 내부 기준으로 자주 다듬고 가끔 바깥 기준으로 점검하는 식이 현실적이죠. 문제는 그 점검의 간격과 강제성입니다. 바깥 닻을 완전히 치워버리면 표류가 시작되고, 주기적으로 닻을 내리면 표류를 되돌릴 수 있습니다.
이 차이는 생각보다 중요합니다. 목표 표류라는 말은 한 번 들으면 드라마틱하게 들리지만, 실제로는 작은 타협의 연속인 경우가 많기 때문입니다. 이번에는 빨리 가려고 기준을 조금 완화하고, 다음에는 비용을 아끼려고 검증을 하나 빼는 식이죠. 논문의 언어를 빌리면 매 순환마다 평가의 고정도가 조금씩 낮아지는 것입니다. 그래서 설계자가 물어야 할 질문은 표류하느냐 마느냐가 아니라, 닻을 언제 어디에 내릴 것인가가 됩니다.

스스로를 재는 저울을 어디까지 믿을 수 있을까
완전히 스스로를 참조하는 평가는 가장 까다로운 경우입니다. 에이전트가 자신의 개선을 자신이 매긴 점수로만 판단한다면, 점수와 실력이 함께 부풀려질 수 있기 때문입니다. 시험 문제를 내는 사람과 시험을 보는 사람이 같아지면 점수가 실력을 보증하지 못하는 것과 같은 이치죠.
여기서는 흔한 오해를 하나 짚고 넘어갈 필요가 있습니다. 자기 참조가 곧 자기 인식은 아니라는 점입니다. 스스로를 평가한다고 해서 스스로를 잘 안다는 뜻은 아닙니다. 대개는 과거의 성공 패턴을 반복해서 재는 것에 가깝습니다. 잘 통했던 답을 다시 잘 통했다고 말하는 순환이 생기기 쉽죠. 외부의 낯선 질문이 들어오지 않으면 맹점이 그대로 남습니다.
그렇다면 이런 구조는 연구실에서만 나오는 이야기일까요. 그렇지 않습니다. 현장에서도 비슷한 패턴이 자주 보입니다. 에이전트가 생성한 요약을 같은 에이전트가 채점하고, 그 점수로 프롬프트를 고르는 파이프라인이 대표적입니다. 빠르게 돌릴 수 있어 매력적이지만, 같은 눈으로 쓰고 같은 눈으로 채점하면 blind spot이 커집니다. 저도 이런 파이프라인을 보면 마음이 편하지 않습니다. 속도는 빠른데 저울이 하나뿐이기 때문입니다.
어떻게 다뤄야 할까요. 논문이 직접 처방을 내리지는 않지만, 틀이 가리키는 방향은 분명합니다. 저울을 하나만 두지 말고, 안쪽 저울과 바깥 저울을 구분하라는 것이죠. 안쪽 저울은 속도를 위해 쓰고, 바깥 저울은 방향을 위해 씁니다. 두 저울의 간격이 벌어지면 그 간격 자체가 신호가 됩니다. 저는 이 간격을 로그로 남기는 습관이 생각보다 큰일을 한다고 봅니다. 나중에 표류가 시작된 지점을 되짚을 수 있는 기록이 되니까요.
그래서 엔지니어는 무엇을 다르게 설계해야 할까
이론 논문을 읽을 때 제가 늘 던지는 질문이 있습니다. 그래서 내일 설계도를 어떻게 바꾸라는 말인가 하는 것이죠. 이 논문은 수식을 앞세우기보다 설계 질문을 던지는 쪽에 가깝습니다. 개선하는 주체가 어디에 있는지, 평가의 닻은 어디에 내려져 있는지, 순환이 얼마나 빨리 도는지를 먼저 적어보라는 것입니다.
첫 번째로 바꿀 것은 경계의 명시입니다. 에이전트가 바꿀 수 있는 요소의 목록을 문서로 적어두는 것이죠. 프롬프트, 메모리 쓰기 규칙, 도구 선택 폭, 가중치 업데이트 여부까지 포함해서 말입니다. 목록이 적히면 개선 장치의 위치도 자연스럽게 드러납니다. 목록 바깥의 스크립트가 개선한다면 바깥 개선이고, 목록 안의 요소가 스스로를 고친다면 안쪽 개선입니다. 장애가 났을 때 들여다볼 곳이 달라지니, 이 목록은 단순한 문서가 아니라 디버깅 도구가 됩니다.
두 번째는 평가의 이원화입니다. 빠른 내부 점수와 무거운 외부 점검을 분리하고, 둘 사이의 관계를 추적하는 것이죠. 내부 점수만 보고 배포를 결정하지 않고, 외부 점검의 주기를 고정하는 것입니다. 비용 때문에 외부 점검을 줄이고 싶어질 때가 많은데요. 그때야말로 닻을 확인해야 할 때입니다. 외부 점검이 뜸해질수록 내부 점수의 의미는 빨리 옅어집니다.
세 번째는 순환의 속도 조절입니다. 순환이 빠를수록 학습은 빠르지만, 표류가 시작됐을 때 되돌리기도 어렵습니다. 특히 개선 장치가 안에 있고 평가까지 안에서 돌면 빠른 순환은 위험합니다. 그래서 속도가 빠른 순환일수록 바깥 점검을 촘촘히 두는 비대칭이 필요합니다. 저는 이 비대칭을 안전벨트라고 부르고 싶습니다. 빨리 달릴수록 벨트를 단단히 매야 하니까요.

이 틀이 말하지 않는 것은 무엇일까
여기까지 읽으면 이 틀이 모든 것을 설명해주는 만능 지도처럼 느껴질 수도 있습니다. 그런데 여기서는 조금 조심해서 읽을 필요가 있습니다. 이 논문은 형식적인 틀이지, 특정 시스템의 성공이나 실패를 측정한 실험 보고가 아니기 때문입니다. 지도가 정확하다고 해서 영토의 날씨까지 알려주지는 않는 것과 같죠.
먼저 이 틀은 어디에 위치하는지를 말해주지만, 그 위치에서 얼마나 빨리 표류하는지는 말해주지 않습니다. 같은 안쪽 개선이라도 어떤 에이전트는 천천히 미끄러지고 어떤 에이전트는 몇 번의 순환 만에 멀리 갑니다. 속도는 모델의 능력, 도구의 폭, 환경의 피드백 구조에 따라 달라지는데, 이 논문의 추상화 수준에서는 그 차이가 잠시 옆으로 밀려납니다. 그래서 이 지도를 들고 현장에 가면 다음 질문이 바로 생깁니다. 우리 시스템의 표류 속도는 얼마인가 하는 것이죠. 이건 결국 직접 재봐야 합니다.
다음으로 이 틀은 평가의 고정 여부를 묻지만, 바깥 평가가 옳은지는 묻지 않습니다. 바깥에 단단히 고정된 잘못된 보상은 여전히 잘못된 방향으로 이끕니다. 닻이 단단하다고 해서 닻을 내린 위치가 옳다는 뜻은 아니죠. 보상 설계의 어려움이 사라지는 것이 아니라, 논의의 층위가 하나 정리되는 것에 가깝습니다. 저는 이 점을 오해하지 않는 것이 중요하다고 봅니다. 이 논문은 보상 설계 문제를 푸는 것이 아니라, 자기 개선의 문제를 말할 수 있는 언어를 만드는 것이니까요.
그렇다면 이 틀의 가치는 어디에 있을까요. 저는 문제를 풀기보다 문제를 나누는 데 있다고 봅니다. 엉킨 논의를 둘로 가르고, 각 조각마다 다른 질문을 붙일 수 있게 되는 것이죠. 모든 답을 주지 않더라도 좋은 질문을 나누는 틀은 현장에서 오래 살아남습니다. 이 논문이 그런 종류의 글이라고 저는 읽었습니다.
하나의 순환으로 볼 때 남는 질문
처음으로 돌아가 보겠습니다. 반복 학습과 자기 개선을 하나의 틀로 묶는다는 발상은 결국 학습을 순환으로 보자는 제안이었습니다. 평가와 개선이 이어지고, 그 고리가 어디에 있는지에 따라 고전적인 반복과 재귀적인 자기 개선이 갈린다는 것이죠. 저는 이 정리가 논쟁을 끝내기보다 논쟁을 더 정확하게 만든다고 봅니다.
제가 앞으로 보고 싶은 것은 이 틀 위에 실제 시스템들이 점으로 찍히는 광경입니다. 강화학습 파이프라인은 어디에 있고, 스스로 프롬프트를 고치는 에이전트는 어디에 있으며, 스스로 평가까지 다시 쓰는 시스템은 어디에 있는지를 한 장에 놓고 보는 것이죠. 그렇게 되면 어떤 위치에서 어떤 사고가 났는지를 모을 수 있고, 위치마다 다른 설계 수칙을 붙일 수 있습니다. 안전 논의도 막연한 걱정에서 위치별 점검표로 바뀔 것 같습니다.
그렇다면 사람의 역할은 무엇일까요. 순환이 빨라지고 개선 장치가 안으로 들어갈수록, 사람이 쥐어야 할 것은 매 단계의 조작이 아니라 닻의 위치가 됩니다. 무엇을 좋은 것으로 볼 것인가라는 선택 말입니다. 이 선택은 자동화하기 어렵고, 남에게 맡기기도 어렵습니다. 에이전트가 스스로를 고치는 시대일수록 무엇을 위해 고치는지를 정하는 일은 더 분명히 사람의 몫으로 남습니다. 저는 이 논문을 덮으면서 그 문장을 오래 곱씹었습니다. 개선의 속도가 빨라질수록 기준을 정하는 손은 더 천천히, 더 신중하게 움직여야 한다는 것을요.