요즘 언어모델에 들어오는 요청은 "글을 써달라"보다 "결정을 내려달라"가 더 많다. 이 메시지가 스팸인가, 이 사건이 정책에 맞는가, 네 개의 보기 중 문서가 가리키는 건 무엇인가. 이런 일에 쓰라고 나온 게 타입드 결정 모델이다. 부르는 쪽이 선택지를 정해 주면(스팸/정상 같은), 모델은 글을 쓰지 않고 각 선택지의 확률만 돌려준다. 답을 글에서 따로 추려낼 필요가 없어 빠르고 깔끔하다. 그리고 그 확률은 점점 자동 수락, 라우팅, 사람 판단으로 올릴지 말지를 가르는 근거로 쓰인다.
문제는 이 계산이 결정 하나에 늘 같은 양의 "생각"만 준다는 데 있다. 스팸을 가리는 데는 넉넉하지만, 여러 단계가 맞물린 판단에는 모자란다. 논문이 든 예가 손에 잡힌다. "오마르는 정직하다. 버트는 오마르가 진실을 말한다고 한다. 벤은 버트가 거짓말한다고 한다." 벤이 진실을 말하는지는 문장을 하나씩 따라가야만 풀린다. 이런 사슬에서 상용 결정 API의 정확도는 1단계 100%에서 3단계 62.5%로 내려앉고, 6단계부터는 동전 던지기(50%)와 다를 바 없어진다.
한 번으로 모자랄 때 쓰던 길은 둘이었다. 더 큰 모델을 쓰거나(그만큼 파라미터—모델이 지닌 값의 개수—와 메모리가 늘어난다), 생각을 글로 풀어내게 하거나(토큰과 시간이 늘고, "확률만 돌려준다"는 약속이 깨진다). SanSi는 세 번째 길을 택한다. 같은 신경망 층을 자기 출력에 다시 집어넣기를 반복하는 것이다. 토큰은 한 글자도 만들지 않고, 파라미터도 늘리지 않고, 내부 상태만 고쳐 쓴다. 단번에 답하는 직관(System 1)과 생각을 글로 풀어내는 추론(System 2) 사이, 글 없이 머릿속에서만 "생각을 고쳐 쓰는" 제3의 방식 — 이것이 System 1.5다. 이 글은 그 "한 번 더 생각하기"가 어디까지 득이고 어디서부터 함정인지를 따라간다.
핵심부터 말하면, 구조를 맞춘 비루프 비교군과 맞붙였을 때 루프를 돈 SanSi가 13.5%p 앞선다(72.0% 대 58.4%, 1만 27개 결정 기준). 구조는 단순하다. 뼈대가 되는 24개 층을 한 뭉치로 묶어 두고, 그 뭉치의 출력을 다시 입력으로 넣기를 최대 여덟 번 반복한다. 초안을 쓴 뒤 같은 펜으로 그 초안을 몇 번이고 고쳐 쓰는 것과 같다. 이때 원래 문제를 다시 보여주지는 않는다. 직전에 정리해 둔 생각만 받아서 다듬는다. 층을 여덟 번 통과하니 계산은 여덟 배로 늘지만, 외워 둔 값은 한 개도 더 늘지 않는다.
이 13.5%p가 "루프 덕분"인지 가르려면 비교 상대를 잘 골라야 한다. SanSi의 기반은 루프하도록 사전학습된 언어모델이고, 비루프 비교군으로는 층 수와 은닉 차원, 미세조정 조건을 맞춘 SmolLM2-1.7B를 세웠다. 다만 이 둘은 파라미터 수도, 사전학습된 모델도 같지 않다 — "루프 여부만 다른 완벽한 쌍둥이"는 아니다. 그래서 저자들은 한 가지를 더 확인한다. SanSi의 뼈대를 루프 없이 딱 한 번만 통과시킨 버전은 58.6%로, 비루프 비교군(58.4%)과 사실상 같았다. 같은 뼈대라도 루프를 끄면 비교군 수준으로 떨어진다는 뜻이니, 13.5%p는 뼈대가 아니라 루프에서 나온 값이다.
그런데 이 득은 아무 데서나 똑같이 나지 않는다. 한눈에 판가름 나는 분류 문제에서는 겨우 +3.1%p다. 반대로 여러 정보를 엮어야 하는 문제에서 커지고, 학습 때 한 번도 안 본 지식 질문에서 +17.6%p로 가장 크다. 학습 데이터에서 멀어질수록 득도 커졌다. 당연한 결과다. System 1 직관으로 즉시 풀리는 문제는 애초에 "다시 생각할" 거리가 없다. 직관이 막히는 어려운 문제에서야 1.5의 재고가 비로소 일을 한다.
난이도를 정확히 통제해 만든 과제가 이 점을 가장 깨끗하게 보여준다. 각 문항이 정확히 몇 단계를 요구하는지 프로그램으로 찍어 만든 거짓말쟁이 사슬에서, 학습은 8단계까지만 보여줬다. 학습 범위 밖인 9~16단계에서 SanSi는 72.6%를 맞혔다. 파라미터가 세 배인 단일 통과 모델은 같은 문제에서 우연 수준인 50.0%에 멈췄다. 파라미터를 세 배로 늘려도 닿지 못한 깊이에 루프가 닿은 것이다.
더 깊이 생각할수록 성적은 올라간다. 하지만 올라가는 폭은 앞쪽 두세 번에 거의 다 들어 있다. SanSi라는 이름이 이걸 미리 알았던 듯하다. 三思, "세 번 생각하라"는 논어 구절에서 왔는데, 정작 공자는 계문자의 세 번을 두고 "두 번이면 족하다"고 답했다. 데이터도 공자 편이었다. 두 번째 루프 하나가 전체 이득의 62%를 가져오고, 세 번째까지면 88%가 들어온다.
그 뒤는 밑지는 장사에 가깝다. 루프 8은 루프 1의 답 중 21.0%를 고쳐 맞혔지만, 멀쩡한 답 7.3%를 거꾸로 틀리게 바꿔 놨다. 다섯 번을 넘기면 고치는 만큼 망가뜨린다. 답을 바꾸기는 해도 더 낫게 만들지는 못하는 구간이다.
비용은 바로 이 지점에서 갈린다. 여덟 번 돌리면 한 번보다 GPU 시간이 7.7배 든다. 세 번은 2.9배다. 2.9배로 88%를 손에 넣고 나면, 남은 12%를 위해 두 배 넘는 값을 더 치르는 구간이 분명히 있다.
그러나 더 깊이 생각한다고 더 겸손해지지는 않는다. 오히려 확신만 커진다. 루프를 돌수록 모델은 맞은 답에도, 틀린 답에도 함께 자신만만해진다. 둘에 대한 확신이 나란히 올라가서, 맞을 때와 틀릴 때를 가르는 간격은 거의 그대로다. 더 정확해지고 더 당당해지지만, "자기가 틀렸다는 걸 아는" 능력은 제자리라는 뜻이다. 그래서 확신이 실제 정답률과 얼마나 어긋나는지 — 자신감을 과하게 매기는 경향을 재는 지표(ECE) — 는 루프 3에서 가장 좋았다가(0.082), 답이 다 정해진 뒤에도 확신만 계속 올라 루프 8에서 0.093으로 되올랐다.
System 2처럼 근거를 하나씩 대며 검산하는 과정이 루프에는 없다. 그래서 1.5의 재고는 판단을 다듬다가도, 어느 순간부터는 같은 판단에 확신만 덧대는 함정에 빠진다. 정확도만 보면 뒤쪽 루프들이 72% 안팎에서 엇비슷해 어느 하나를 최적이라 짚기 어렵지만, 확률을 믿고 무언가를 자동으로 돌릴 거라면 보정이 가장 좋은 루프 3이 최적점인 이유다.
여기서 날카로운 신호가 하나 나온다. 답이 언제 정해졌는지가 그 답의 신뢰도를 말해 준다. 끝까지 한 번도 안 바뀐 답은 82.2%가 정답이었다. 반면 루프 8에 가서야 겨우 정해진 답은 35.6%만 맞았다. 늦게 정해진 결정일수록 못 믿을 결정이다.
좋아진 능력도 하나 있다. 근거가 없을 때 억지 답을 피하는 힘이다. 핵심 증거를 일부러 지운 문항에서, 루프를 돌수록 모델은 무리하게 답을 고르는 비율을 27.1%에서 17.5%로 줄였다. 확신은 전반적으로 부풀면서도, 근거가 통째로 비어 있는 경우는 더 잘 알아챈 것이다.
온틀의 AI PM이 내리는 판단 상당수가 바로 이 타입드 결정이다. 한 장면만 끝까지 따라가 보자. 고객이 "납기를 2주 당겨달라"고 요청한다. AI PM은 결정해야 한다. 지금 진행으로 넘길지, 사람 판단이 필요한 '결정 기다리는 중'으로 올릴지, 받을 수 없는 요청으로 종료할지. 선택지가 정해져 있고 글이 아니라 판단이 나와야 하는, 꼭 타입드 결정이다.
그러면 앞의 발견들이 이 장면에서 구체적인 운영 규칙으로 바뀐다.
첫째, 예산을 요청 난이도에 맞춘다. "로고 색만 바꿔달라" 같은 요청과 "이 납기가 기존 계약·생산 일정과 부딪치지 않나" 같은 요청은 무게가 다르다. 앞은 루프 한두 번으로 끝내고, 뒤는 더 깊이 돌린다. 모든 요청에 최대 루프를 똑같이 걸면 쉬운 요청에서 비용만 샌다.
둘째, 근거가 비면 지어내지 말고 올린다. 납기를 당길 수 있는지는 생산 일정이라는 근거가 있어야 안다. 그 근거가 없을 때 모델이 억지 진행 결정을 만들어 내는 대신 "모르겠다"로 기운다면, 그대로 '결정 기다리는 중'으로 올려 고객에게 생산 일정을 되묻는 게 맞다. 게다가 내부 추론을 글로 뱉지 않으니, 고객 화면에 분석이니 설계니 하는 내부 용어가 샐 일도 없다.
셋째, 자동 진행의 확률 기준은 루프 8이 아니라 루프 3에 건다. 뒤쪽 루프는 정확도를 크게 바꾸지 않으면서 확신만 부풀리기 때문이다. 그리고 "답이 늦게 정해졌는지"를 보조 신호로 둬서, 막판에야 정해진 진행 결정은 자동 집행에서 빼고 사람 검토 줄로 돌린다. 앞 절에서 본 '일찍 정해진 답과 늦게 정해진 답'의 신뢰도 차이가 이 분기를 정당화한다. 온틀이 지켜볼 판단은 결국 이 하나다 — 이 결정, 몇 번째 루프에서 정해졌나.
루프가 못 하는 일도 분명하다. 파라미터가 세 배인 모델에는 루프를 여덟 번 돌려도 1.8%p 못 미친다. 남은 격차는 여러 단계 추론이 아니라 지식 질문과 애매한 증거에 몰려 있다. 이유는 단순하다. 루프는 "가진 지식을 얼마나 잘 쓰는지"는 끌어올려도 "얼마나 많이 저장하고 있는지"는 바꾸지 못한다. 그러니 지식량이 병목이라면 루프가 아니라 더 큰 모델을 봐야 한다.
두 가지를 더 짚어 둘 만하다. 하나, 이 평가는 전부 영어 공개 데이터셋이다. "어려울수록 득이 크다", "루프 3 근처가 보정 최적" 같은 성질이 한국어나 우리 도메인 데이터에서도 같은 크기로 재현될지는 이 논문만으로 단정할 수 없다. 도입 전에 자기 데이터로 직접 재 봐야 한다. 둘, "근거 없음을 알아챈다"는 좋은 성질도 '답할 수 없음'이라고 라벨이 붙은 공개 문항에서의 결과다. 실무의 진짜 회색지대 — 근거가 애매하게 부족한 경우 — 까지 커버하는지는 따로 확인할 몫이다.
마지막으로 저자들도 언제 루프를 멈출지, 그 정지 규칙은 제안하지 않는다고 분명히 밝힌다. 몇 번 돌릴지는 아직 쓰는 쪽이 정해야 한다. 그러니 "세 번이면 충분하다"는 이 글의 제목은 결론이 아니라, 당신이 자기 데이터로 다시 그어야 할 선의 출발점이다.
SanSi는 매 루프가 끝날 때마다 그 시점의 답을 내놓습니다. 그래서 여덟 번까지 끝까지 돌리면 "한 번 생각했을 때 답"부터 "여덟 번 생각했을 때 답"까지가 한꺼번에 손에 들어옵니다. 다만 주의할 점이 있습니다. 여덟 번을 다 돌린 뒤 앞쪽 답을 골라 쓴다고 계산이 줄지는 않습니다 — 이미 여덟 번을 돌렸으니 비용은 여덟 번어치 그대로입니다. 계산 예산을 아끼려면 그 루프에서 실제로 실행을 멈춰야 합니다. 즉 예산이 빠듯하면 앞쪽 루프에서 끊어 거기서 끝내고, 여유가 있으면 더 깊이 돌리는 식으로, 모델을 여러 개 둘 필요 없이 하나로 예산을 조절한다는 뜻입니다.
아닙니다. 이미 루프하도록 사전학습된 뼈대의 가중치는 통째로 얼려 두고, 그 위에 작은 부품만 미세조정합니다. 뼈대는 건드리지 않고 일부만 바꿔 끼우는 경량 기술(LoRA)로, 더한 값은 6,100만 개뿐입니다. 16문항씩 1,000스텝이면 끝납니다. 학습이 가벼운 것이 이 방식의 실용적인 장점입니다.
정확도만 보면 아닙니다. 저자들이 비교에 넣지 못한 상용 결정 API가 전체 78.9%로 가장 높았습니다. 다만 그 API는 크기와 학습 데이터가 공개돼 있지 않아, "같은 조건에서 루프가 더하는 값"을 재는 통제 비교에는 넣을 수 없었습니다. 이 논문의 기여는 최고 점수가 아니라, 루프가 정확히 얼마를 더하는지를 깨끗하게 분리해 보여준 데 있습니다.
그렇습니다. 정답 라벨 없이 생성 모델을 학습시킬 때 이 결정 모델을 유일한 채점관(보상)으로 썼더니, 생성 모델의 성능 점수(정밀도와 재현율을 함께 보는 F1)가 39.5에서 47.3으로 7.7%p 올랐습니다. 잘 보정된 결정 모델은 그 자체로 쓸 만한 심판이 된다는 신호입니다.