프롬프트가 곧 물음은 아니다
모델에게 프롬프트를 줄 때 나는 과제를 건네는 것이 아니라, 내가 원하는 것에 관한 증거를 건넨다. 어째서 모델이 평균의 읽기를 돌려주는지, 어째서 남다를수록 그 빗나감이 더 커지는지, 그리고 그것을 메워 지으려 할 때 그 간극이 어디로 가는지에 관하여.
내가 잘 아는 분야가 지금 어떻게 돌아가는지 모델에게 물으면, 모델은 그 분야의 정설을, 신중한 개관이라면 으레 달았을 단서까지 붙여, 말끔하게 펼쳐 준다. 맞는 답이다. 그리고 바로 그래서 내가 더는 묻지 않게 된 답이기도 하다. 한 분야를 안다는 것의 값어치는 정설이 갖지 못한, 내가 쥐고 있는 그 나름의 읽기, 동료에게조차 온전히 적어 줄 수 없는 그 읽기에 있는데, 돌아오는 것은 그 물음에 관해 글을 쓴 모든 사람의 평균, 곧 내 것이 아닌 것이기 때문이다. 그 안에 틀린 것은 하나도 없고, 그 안의 무엇도 그것이 내가 뒤에 품고 있던 그 특정한 물음이 아니라 그 말이 가리키는 일반적인 물음에 답했다는 것을 일러 주지 않는다. 나는 모델에게 과제를 준 것이 아니었다. 나는 내가 원하는 것에 관한 증거를 주었고, 모델은 그 증거를 평균적인 사람이라면 읽었을 방식으로 읽었다.
프롬프트는 실은 무엇인가
기계를 목표로 겨냥하게 하는 법을 연구하는 분야에서 빌려올 만한 결과가 하나 있다. 어떤 시스템이 무엇을 하기를 바라는지 적어 내려갈 때, 나는 내가 원하는 것을 적은 것이 아니다. 나는 그것을 좇으면 내가 원하는 것이 나오리라고 바라는 무언가를 적은 것인데, 그것은 더 약하고 다른 것이다. 명세된 목표는 그것이 북돋우도록 지어진 행동이 그 작성자가 마음에 두었던 것과 대강 같다는 증거이지, 작성자가 마음에 둔 것을 그대로 진술한 것이 아니다. 그리고 그 명세를 목표 자체로 다루는 시스템은, 그것이 더는 목표를 좇지 못하게 되는 지점을 넘어서까지 완전한 확신을 품고 그것을 좇는다. 그 명세가 대역일 뿐이라고 일러 준 것이 아무것도 없기 때문이다.
프롬프트가 바로 그 대역이다. 그 뒤에 자리한 것은 내가 원하는 것, 곧 내가 실제로 얻으려는 그것인데, 그 가운데 프롬프트에 담긴 것은 거의 없다. 나는 말하기 값싼 부분만 집어넣는다. 나머지는 내게 그대로 남는다. 어떤 것은 굳이 말하기엔 너무 빤해서, 어떤 것은 나 자신에게조차 분명히 해 두지 않아서, 어떤 것은 애초에 말이 되는 종류의 것이 아니어서, 또 어떤 것은 아직 내가 그것을 형성하지 못했고 출력을 봐야 비로소 알게 될 것이어서. 그러니 받는 쪽에서 정작 해야 할 일은 프롬프트에 답하는 것이 아니다. 그것은 프롬프트에서 내가 원하는 것을 되찾는 것, 내가 거기 쓴 몇 마디에 손닿는 다른 모든 것을 더해 내가 좇던 그것을 다시 세우는 것이다.
빌려온 그 결과의 더 깊은 판본은 시스템이 이에 대해 무엇을 해야 하는지를 말하는데, 그것은 이런 시스템들이 실제로 하는 것과 정반대다. 프롬프트가 기계로서는 볼 수 없는 어떤 원함에 관한 증거라면, 옳은 수는 그 원함을 추측하고 달려 나가는 것이 아니다. 그것에 대해 불확실한 채로 머무르며, 물어서, 지켜봐서, 내가 바로잡게 두어서, 그것이 무엇인지 알아내려 움직이는 것이다. 그 연구가 가장 깔끔하게 표현한 바로는, 가장 좋은 설계는 목적을 기계 안에 아예 못 박아 두는 것이 아니라, 나아가면서 그 목적으로 수렴해 가는 기계를 짓는 것이다. 덜 명세된 프롬프트를 받아 든 모델은 바로 이것이 배제하는 그 한 가지를 한다. 첫 토큰에서 내가 원하는 것에 대한 단 하나의 최선의 추측에 못을 박고, 어떤 불확실성도 앞으로 실어 나르지 않으며, 그 추측이 내 것이었는지 알아내려는 어떤 움직임도 보이지 않는다.
모델은 평균을 건넨다
그 추측은 제멋대로가 아니다. 모델은 그 빈자리를, 평균적인 사람이라면 그 말로써 원했을 것으로 메우고, 그렇게 하는 까닭은 바로 그것이 그 훈련이 모델을 끌어당기는 방향이기 때문이다. 모델을 고분고분하게 만드는 바로 그 선호 조정이 모델이 할 말의 폭을 좁히고, 기반 모델 쪽으로 되당기는 힘을 통해 다수에 과도한 무게를 싣는다. 이것을 충분히 멀리 밀고 가면 이름이 붙는다. 소수의 원함이 사실상 무시되는 선호 붕괴다. 그리고 그것은, 정렬된 모델이 어떤 집단의 견해는 비추고 어떤 집단의 견해는 비추지 않는다는 발견과 나란히 놓인다. 모델은 중립적인 기본값을 쥔 채 내 것을 향해 손을 뻗는 것이 아니다. 모델은 평균적인 사람의 원함을 쥐고 그것을 나에게 적용한다.
그러니 빗나감의 크기는 내가 원하는 것과 평균적인 사람이 원하는 것 사이의 거리이고, 바로 거기가 이 이야기의 날카로운 끝이다. 내 원함이 평범할수록 모델은 나를 더 잘 읽는다. 내 원함이 독특할수록 모델은 더 큰 확신으로, 내가 청한 것을 더 평균에 가까운 사람의 판본으로 건넨다. 원함이 평균에서 가장 멀리 떨어진 사람들을 떠올려 보라. 남다른 각도가 그 일의 가치 전부인 분석가, 어떤 구조가 석 달 뒤의 부하 양상을 견디지 못하리라는 것을 감으로 느끼는 엔지니어. 이들이야말로 모델이 가장 잘 맞추지 못하는 사람들이고, 그것도 가장 보이지 않는 방식으로 그렇다. 모델이 이들에게 주는 평균의 답은 유능하고 말끔하고 흠잡을 데 없으면서, 이들의 것이 아니기 때문이다. 그 겉면에는 그것이 다른 누군가에게 좋은 답이었다고 말해 주는 것이 하나도 없다.
더 많은 추론은 어째서 사태를 악화시켰는가
추론 모델이라면 이 문제를 고쳐 주리라 기대할 만하다. 답하기 전에 먼저 생각하니 말이다. 그런데 대개는 고치지 못하고, 그 까닭은 직관과 거꾸로 간다. 추론에서의 강한 향상은 검증기가 있는 영역, 곧 최종 답을 옳고 그름으로 매길 수 있는 수학과 코드에서 나왔고, 그런 보상의 모양은 한 가지 작업은 또렷하게 가르치고 다른 한 가지는 가르치지 않는다. 그것은 정해진 틀 안에서 답을 좇는 일을 가르친다. 답에 앞서 그 틀을 되찾는 일은 가르치지 않는다. 문제는 모델이 너무 적게 추론한다는 것이 아니다. 문제는 그 추론이, 답에 앞선 틀의 되찾기가 아니라 전제된 틀 안에서의 답 좇기로 빚어져 있다는 것이고, 그 둘은 서로 다른 작업이다. 하나는 문제가 주어진 상태에서 해법을 향해 몰아가고, 다른 하나는 지금 눈앞에 놓인 문제가 진짜 문제인지를 묻는다.
그러니 더 길어진 사고의 사슬이란, 모델이 처음에 못 박은 그 읽기가 무엇이든 그것을 더 엄밀하게 다루는 일일 뿐이다. 생각을 더 한다는 것은 한 번도 다시 열어 본 적 없는 전제 위에 더 확신을 얹어 쌓는 일이고, 그래서 그 흔적은 길고 꼼꼼하면서도 정확히 틀린 채로, 내 물음 옆의 물음에 대단한 엄밀함으로 답할 수 있다. 더 들인 연산은 읽기를 넓히지 않는다. 이미 고른 하나를 더 깊이 팔 뿐이다.
빠진 부분이 되찾아지는 네 가지 길
내가 원하는 것 가운데 말해지지 않은 부분은 한 가지 종류가 아니고, 무엇이든 예측해 내는 유일한 가름은 무엇이 빠졌는가가 아니라 그 빠진 부분이 어떻게 되찾아질 수 있는가다. 길은 네 가지가 있고, 간극의 종류는 그 가운데 어느 길이 거기에 가닿을 수 있는가로 정해진다.
그것은 이미 내가 가져올 수 있는 어딘가에, 그 일의 내력에, 파일들에, 그 분야에 서 있는 규범 속에 적혀 있다. 되찾기는 검색이다. 이것이 가장 먼저 닫히는 종류이고, 모델에 기억과 맥락을 주는 것은 바로 이것을 위한 고침이지 다른 무엇을 위한 것이 아니다.
그것은 누가 물어 주기만 하면 내가 말할 수 있다. 되찾기는 물음이다. 이것이 다음으로 닫히고, 모델이 어떤 요청을 모호하다고 등록하고도 묻기보다 그냥 답해 버린다는 최근의 발견은, 바로 이 통로 위에 놓인 간극, 곧 열려 있으나 쓰이지 않는 길이다.
그것은 내가 말로 할 수는 없지만 내 선택들 전반에 걸쳐 관철한다. 되찾기는 내가 시간을 두고 무엇을 하는지 지켜보는 것이다. 이것이 취향이고, 가장 늦게, 그리고 다른 두 가지와는 다른 기계를 거쳐 닫힌다. 기억도 물음도 아닌, 개인화와 추천의 경로다. 검색하도록 또 묻도록 지어진 시스템이 아무리 좋아져도 끝내 이것을 닫지 못하는 까닭이 여기 있다.
그것은 아직 형성되지 않았다. 그 원함이 새것이어서, 나는 그것을 보고서야 알게 될 것이기 때문이다. 어떤 통로도 거기에 가닿지 못한다. 이것이 잔여다.
검색, 그다음 물음, 그다음 지켜봄, 그다음 없음이라는 그 순서는 하나의 예측이고, 흔한 베팅이 엉뚱한 자리를 겨냥하고 있다고 말한다. 기억과 명확히 하는 질문은 앞의 두 통로를 위한 고침이다. 사람이 모델이 자기를 못 알아본다고 말할 때 그 말의 대부분은 뒤의 두 가지, 곧 시간을 두고 드러나야 하는 취향과 아직 형성되지 않은 원함에 살고, 앞의 두 가지를 아무리 쏟아부어도 거기에는 가닿지 못한다.
고침은 모델이 아니라 루프다
그 바로잡기는 더 나은 파라미터가 아니다. 그것은 단 한 번의 순방향 연산이 하지 않는 세 가지를 하는, 모델을 둘러싼 루프이고, 루프가 그것들의 옳은 집인 까닭은 빌려온 그 결과가 이미 옳은 행동은 한 번의 디코딩이 아니라 시간을 두고 가는 과정이라고 말하기 때문이다. 내가 원하는 것에 대한 읽기를, 최선의 추측에 못 박는 대신 하나 이상 열어 둔다. 그것들을 좁히려 움직이고, 찾을 수 있는 것은 가져오고, 말할 수 있는 것은 물어보고, 드러나야만 하는 것은 지켜본다. 늦게 확정하고, 돌아온 것이 읽기 안에서 답만 다듬게 하지 말고 읽기 자체를 다시 쓰게 둔다. 이것이 바로 그 문제의 협력적 판본이 최적이라 말하는, 불확실성을 지키며 능동적으로 묻는 행동이고, 모델 바깥에 지어진다. 모델은 혼자 두면 단 하나의 추측으로 무너지기 때문이다.
루프는 그것이 내가 원하는 것을 맞혔는지가 아니라 결과로 채점된다. 내가 원하는 것에는 정답표가 없기 때문이다. 작업이 버텨 냈는가, 다음 차례들이 매끄럽게 흘렀는가, 내가 되받아쳐야 했는가. 그 신호는 실재하고 실제 서비스 시스템에서 이미 쓰이고 있다. 그리고 그것은, 이 일의 정직한 크기를 보여 주는 세 개의 벽과 함께 온다. 신호는 루프가 길어질수록 옅어진다. 멀리 떨어진 결과를 그것을 벌어 낸 걸음에 돌리는 일이 긴 시간에 걸친 학습의 핵심 미해결 문제이기 때문이다. 그것을 최적화하면 농간을 부르고, 루프는 그 농간을 더 날카롭게 만든다. 제가 돌아가는 맥락 안에서 그 잣대를 기어오를 수 있어서, 표류를 막으라고 하면 표류하지 않았다는 더 그럴듯한 이야기를 짓는 법을 배우기 때문이다. 그리고 공을 돌리는 값싼 방식, 곧 모델이 돌아보며 제 걸음들 가운데 어느 것이 그 결과를 벌어 냈는지 말하게 두는 것은, 바로 이런 모델이 가장 못 미더운 그 사후 이야기 짓기이고, 그것은 본래의 간극을 고침 안에 도로 집어넣는다. 루프가 파라미터 바깥에 있는 것 또한 지금뿐이다. 루프가 해내는 그 걸음은 점점 더 모델이 단 한 번의 실행 안에서 하도록 훈련받는 무엇이 되어 가고, 그 루프가 처음부터 끝까지 통째로 훈련되고 나면 루프는 파라미터가 된다. 그 아래 모든 레이어를 끌어들였던 바로 그 컴파일이며, 그것이 경계가 자꾸 옮겨 가는 까닭이다.
루프가 할 수 없는 것은, 되찾을 길이 없는 그 부분을 대는 일이다. 오늘 그 간극이 실제로 닫히는 곳에서, 그것을 닫는 방식은 모델도 아니고 누가 지은 루프도 아니다. 그것은 저편 끝의 한 사람이 손으로 교정을 대는 것, 그 거듭되는 아니, 그게 아니라는 말, 여러 차례에 걸쳐 모델이 혼자서는 하지 않을 불확실성 줄이기를 대신 해내는 것, 아직 형성되지 않은 원함을 쥔 자가 앉아야 한다고 그 구조가 말하는 그 자리에 앉는 것이다.
바닥이 없는 경계
같은 기제를 층층이 올려 가며 무엇이 살아남는지 지켜보라. 맨몸의 모델은 내가 원하는 것의 평균적 읽기로 가라앉는다. 그것을 찾고 묻는 루프로 감싸면 찾을 수 있는 것과 말할 수 있는 것은 흡수되지만, 오직 드러날 뿐이거나 아직 형성되지 않은 자리에서는 그 원함이 여전히 놓친 채로 남는다. 그 위에 루프가 나를 제대로 맞혔는지 판정할 시스템을 얹으면, 그 판정자는 채점의 기준으로 삼을, 내가 원하던 것에 대한 감각을 필요로 하는데, 한 번도 드러나지 않은 그 부분에 대해서는 평균의 것밖에 갖지 못하고, 한 층 위에서 똑같은 대치를 다시 저지른다. 층마다 그 아래 층의 되찾을 수 있는 부분을 흡수하고, 나머지는 위로 넘긴다.
스택을 따라 올라가도 변하지 않는 것은 어떤 통로도 가닿지 못한 그 부분, 곧 아직 형성되지 않은 원함이다. 나는 이런 시스템이 해낼 수 있는 일의 최전선이 평가 신호가 바닥나는 바로 그 자리라고 전에 쓴 적이 있는데, 그때는 그것을 스택 위의 한 줄로 여겼다. 그것은 한 줄이 아니다. 그것은 위로 올라서는 층마다 거듭 마주치는 똑같은 경계다. 새로운 층 하나하나가 내가 원하는 것을 되찾으려는 또 한 번의 시도이고, 저마다 제가 성공했는지에 대한 제 나름의 신호를 필요로 하며, 그 신호가 바로 무너지는 부분이기 때문이다. 그 경계는 한 층 위에서 다음 층의 옷을 입고 다시 나타난다. 어떤 영역의 유일하게 충분한 검증자가 그 영역 자신뿐일 때 그 영역이 끝내 컴파일되지 않는 것과 같은 까닭이다. 그것은 투영 간극이 반대편에서 이름 붙이는 바로 그 잔여, 곧 나가는 길에 끝내 말로 옮겨 넣지 못했던 내가 원하는 것의 그 부분이, 이제 들어오는 길에서도 되찾아지지 않는 것이다. 두 간극 아래 놓인 한 가지, 원함을 바깥에 내놓는 일의 대가다.
끝맺기에 편안한 자리는 무엇이 우리 몫으로 남는가, 곧 뜻한 바를 알아채는 인간의 감각 위다. 그것은 잘못된 자리이고, 그 까닭은 재귀에 있다. 사람은 이것 아래를 받치는 바닥이 아니다. 사람은 아직 끝나지 않은 스택의 지금 그 꼭대기, 곧 그 위에 아직 아무것도 지어지지 않았다는 그 이유만으로 내가 원하는 것이라는 물음이 내려앉아 쉬는 자리이며, 그 꼭대기가 쥔 것은 그 원함을 말끔히 진술한 것이 아니다. 사람은 흔히 제가 원하는 것을 말하지 못하고, 때로는 아직 그것을 형성하지조차 못했기 때문이다. 그것이 쥔 것은, 끝내 온전히 말로 할 수 없던 어떤 원함을 두고 아니, 그게 아니라고 말하는 그 앙상한 권한이다. 내 위에 한 층이 더해진다고 내가 스택을 떠나는 것은 아니다. 나는 여전히 거기서, 여전히 아니, 그게 아니라고 말하고 있고, 내 거부는 여전히 시스템에 가닿는다. 그러나 내 아래 놓이는 층마다 그 거부와 최적화되는 그 대상 사이에 거리를 더 벌려 놓아서, 스택이 높아질수록 신호는 더 희미하게 도착하고, 더 많은 손을 거쳐 매개되며, 마침내 내가 뜻한 것은 어림의 어림이 되고, 그것에 대한 내 권한은 실재하면서도 점점 더 멀어진다.
그러니 정직한 물음은 무엇이 인간으로 남는가가 아니다. 그것은 올라설수록 경계가 물러나는가, 아니면 그저 자리를 옮길 뿐인가다. 어쩌면 층마다 그 아래 층이 놓친 원함을 조금씩 더 되찾아, 극한에서 간극이 닫히고, 인간의 자리는 모든 자리가 그러하듯 그저 한때의 것일지 모른다. 어쩌면 층마다 앞의 간극을 닫는 동시에 제 나름의 새 간극을 하나 열 뿐이어서, 내가 원하던 것까지의 거리는 영영 영에 이르지도, 한자리에 멈추지도 않을지 모른다. 살짝 틀리게 돌아온 답에 아니라고 말하는 내가 선 그 자리에서는, 그 둘 가운데 어느 쪽이 벌어지고 있는지, 내 앞의 그것이 내가 원하던 것을 되찾아 준 것인지 아니면 더 평균에 가까운 사람의 판본을 큰 확신으로 건넨 것인지, 가려낼 수 없다. 그 둘은 정확히 똑같게 느껴진다.