CaLR, 확산 모델이 생각을 고쳐 쓰는 법

추론을 잠재 최적화로 다시 쓴 CaLR을 따라가며 인과 구조와 그라디언트 기반 자기 수정이 병렬 생성을 어떻게 바꾸는지 풀어봅니다.

원문 논문 보기
'CaLR, 확산 모델이 생각을 고쳐 쓰는 법' 기사 커버 이미지

이번에 살펴본 논문은 arXiv에 공개된 CaLR: Causal Latent Revision for Robust Diffusion Reasoning (arXiv:2609.20981)입니다. 원문 링크는 제목 아래에 걸어 두었습니다. 이 논문이 내세우는 주장은 한 문장으로 정리할 수 있는데, 추론을 순차 샘플링이나 단순한 디노이징이 아니라 인과 구조로 묶인 잠재 최적화 문제로 다시 쓰고 그 안에서 중간 생각을 병렬로 고쳐 나가겠다는 것입니다.

왜 이런 문제의식이 나왔을까요. 저자들은 자기회귀 모델이 가진 탐욕스러움을 먼저 짚습니다. 한 번 토큰을 내놓으면 그 선택이 뒤에 오는 모든 문장을 끌고 가기 때문입니다. 그렇다면 확산 언어 모델은 자유로울까요. 그렇지 않다고 말합니다. 병렬로 여러 위치를 함께 다듬을 수는 있지만, 생각을 순서대로 엮는 엄격한 인과 뼈대가 부족하다는 것입니다. 저는 이 대목을 읽으면서 고개가 끄덕여졌는데요. 빠르지만 흩어지고, 질서 있지만 되돌리기 어려운 두 가지 실패가 서로 대칭을 이룬다는 진단이기 때문입니다.

오늘 글에서는 이 진단을 따라가면서 CaLR이 제안하는 장치를 하나씩 풀어보겠습니다. 인과 토폴로지 행렬이라는 외부 뼈대를 빌려오는 아이디어가 왜 나왔는지, 잠재 공간에서 미분으로 생각을 고친다는 말이 실제로 무엇을 뜻하는지, 그리고 스도쿠처럼 제약이 서로 물리는 과제에서 왜 이런 접근이 힘을 받는지를 찬찬히 살펴보겠습니다.

글을 고쳐 쓰는 일과 답을 고쳐 쓰는 일

안녕하세요, 패트릭입니다. 저는 초고를 쓸 때 일부러 거칠게 씁니다. 어차피 나중에 고칠 것을 알기 때문입니다. 그런데 여러분도 이런 경험이 있지 않을까요. 한 문단을 다 쓰고 나서 세 번째 문장이 틀렸다는 것을 알았는데, 그 뒤 문장들이 이미 그 틀린 문장을 전제로 자라버린 경우요. 그때는 한 문장만 고쳐서 될 일이 아닙니다. 뒤에 딸려온 문장들을 함께 손봐야 하죠.

언어 모델의 추론도 이와 비슷합니다. 자기회귀 모델은 왼쪽에서 오른쪽으로 써 내려가는데, 한 번 고른 단어는 그대로 굳어집니다. 물론 나중에 이어지는 문장으로 수습할 수는 있습니다. 하지만 이미 굳은 앞부분을 직접 되돌려 고치지는 못하죠. 그래서 앞부분에서 작은 욕심을 부리면 뒤에서 큰 대가를 치르는 일이 생깁니다. 예를 들어 수학 문제 풀이에서 두 번째 줄의 식을 성급하게 정리해 버리면, 그 뒤 풀이가 아무리 정교해도 답은 이미 어긋나 있습니다.

그렇다면 처음부터 여러 줄을 함께 쓰고 조금씩 다듬는 방식은 어떨까요. 확산 언어 모델이 바로 그런 쪽에 가깝습니다. 빈칸투성이 초안에서 시작해 전체를 여러 번 훑으면서 조금씩 채워 나갑니다. 듣기만 하면 훨씬 유연해 보이죠. 실제로 병렬로 다듬는다는 점에서는 그렇습니다. 그런데 여기에는 다른 고민이 따라붙습니다. 앞뒤를 함께 고칠 수는 있는데, 무엇이 원인이 되고 무엇이 결과가 되는지 그 순서의 뼈대가 흐릿해질 수 있기 때문입니다. 저는 이 지점이 이번 논문을 읽게 된 직접적인 이유였습니다. 빠르다는 말과 제대로 생각한다는 말이 왜 같은 방향을 가리키지 않는지 궁금했기 때문입니다.

병렬로 생성되는 여러 추론 단계와 그 사이를 잇는 인과 화살표 개념도
병렬로 생성되는 여러 추론 단계와 그 사이를 잇는 인과 화살표 개념도

왜 한 번 쓴 문장은 잘 안 고쳐질까

자기회귀 모델의 탐욕스러움이라는 표현은 처음 들으면 조금 낯설게 느껴집니다. 탐욕이라는 말은 보통 당장 눈앞의 보상을 좇는다는 뜻이니까요. 그런데 문장 생성에 대입하면 금방 감이 옵니다. 매 스텝마다 모델은 지금까지 쓴 접두사만 보고 다음 토큰을 고릅니다. 그 순간 가장 그럴듯한 선택을 하는 것이죠. 문제는 그 선택이 되돌릴 수 없다는 데 있습니다. 뒤늦게 더 좋은 길이 보였다고 해도 이미 지나온 길을 바꿀 수 없으니까요.

생각해보면 사람도 시험 시간에는 비슷하게 행동합니다. 시간이 모자라면 일단 눈앞에서 풀리는 대로 쓰게 되죠. 그런데 사람은 답안지를 다 쓰고 나서 시간이 남으면 앞으로 돌아와 고칩니다. 틀린 줄을 지우고 다시 씁니다. 자기회귀 모델의 기본 생성 방식에는 이 되돌아가기가 없습니다. 물론 여러 번 샘플링해서 좋은 답을 고르거나, 뒤에서 설명을 덧붙이는 꼼수는 쓸 수 있습니다. 하지만 이미 쓴 앞부분 자체를 병렬로 다시 만지는 동작은 구조 안에 들어 있지 않습니다.

여기서 재미있는 질문이 생깁니다. 그렇다면 앞부분을 고치지 못한다는 제약을 그대로 둔 채로 추론 능력을 키울 수 있을까요. 저는 어렵다고 봅니다. 추론이라는 작업 자체가 앞뒤 정합성을 계속 확인하는 일이기 때문입니다. 세 번째 줄과 일곱 번째 줄이 서로 모순되면 둘 중 하나는 물러나야 하는데, 앞부분이 굳어 있으면 뒷부분만 희생할 수밖에 없습니다. 그래서 긴 증명이나 여러 단계 계산에서는 작은 실수 하나가 끝까지 따라다니죠. 이 논문이 자기회귀 모델의 한계를 먼저 언급하는 이유도 여기에 있다고 읽었습니다. 출발점이 되는 문제의식을 공유하기 위해서죠.

병렬로 쓰면 빨라지는데 왜 생각이 흐트러질까

확산 언어 모델의 매력은 분명합니다. 한 번에 한 칸씩 채우는 대신 전체 초안을 놓고 여러 위치를 함께 다듬기 때문입니다. 서로 떨어진 부분을 동시에 볼 수 있으니 전체 그림을 잡기에는 좋아 보이죠. 그런데 이 방식에도 빈틈이 있습니다. 동시에 고친다는 것이 곧 순서대로 생각한다는 뜻은 아니기 때문입니다.

예를 들어 다섯 단계짜리 풀이를 쓴다고 해 봅시다. 두 번째 단계가 네 번째 단계의 근거가 되어야 한다면, 두 단계 사이에는 방향이 있어야 합니다. 누가 누구를 떠받치는지가 분명해야 한다는 것이죠. 그런데 모든 위치를 대칭적으로 다루며 노이즈를 걷어내는 방식에서는 이런 방향이 자연스럽게 생기지 않습니다. 모든 칸이 서로를 조금씩 참고하면서 부드럽게 바뀌다 보니, 논리적인 선후관계가 흐릿해질 수 있습니다. 저는 이 대목을 사람 회의에 비유해서 이해했습니다. 다섯 명이 동시에 말하면 정보는 빨리 모이지만, 누가 결정한 것이고 누가 그 결정을 따라야 하는지가 분명하지 않으면 회의는 길어지기 때문입니다.

그래서 병렬 생성은 빠르지만 흩어지기 쉽다는 말이 나옵니다. 각각의 문장은 그럴듯한데 전체를 관통하는 줄기가 약한 결과물이 나올 수 있죠. 특히 뒤에 오는 결론이 앞에 있는 가정을 슬쩍 바꾸어 버리는 경우가 그렇습니다. 이런 어긋남은 한두 토큰의 문제가 아니라 구조의 문제에 가깝습니다. 그래서 단순히 디노이징을 더 오래 돌린다고 해결되지 않습니다. 더 오래 다듬는다고 방향이 생기는 것은 아니기 때문입니다. 그렇다면 방향이라는 것을 바깥에서 가져와야 할까요. 이 질문이 다음 장치로 이어집니다.

왼쪽에서 오른쪽으로 이어지는 생성과 병렬로 다듬는 생성을 나란히 비교한 그림
왼쪽에서 오른쪽으로 이어지는 생성과 병렬로 다듬는 생성을 나란히 비교한 그림

추론을 샘플링이 아니라 최적화로 바라보면 뭐가 달라질까

제가 이 논문에서 가장 흥미롭게 본 부분은 문제의 틀 자체를 바꾼 대목입니다. 보통 추론은 샘플을 뽑는 일로 생각합니다. 좋은 답이 나올 때까지 뽑거나, 그럴듯한 경로를 따라가는 것이죠. 그런데 CaLR은 추론을 제약이 걸린 잠재 최적화로 다시 씁니다. 뽑는다는 말 대신 푼다는 말을 쓰는 셈입니다. 이 차이는 생각보다 중요합니다.

샘플링의 세계에서는 답이 맞았는지 틀렸는지를 마지막에 확인합니다. 중간에 살짝 어긋나도 일단 끝까지 가보고 나서 평가하죠. 반면 최적화의 세계에서는 중간 상태를 계속 점수화하면서 조금씩 움직입니다. 논리적으로 맞는지, 앞뒤가 어긋나지 않는지, 주어진 조건을 어기지 않는지를 목적함수처럼 다루고, 그 값을 좋게 만드는 방향으로 잠재 상태를 고쳐 나갑니다. 그러니까 한 번 쓰고 끝내는 것이 아니라, 좋아질 때까지 다듬는 것이 기본 동작이 됩니다.

이 발상의 전환이 왜 필요할까요. 추론은 정답 하나를 맞히는 일이 아니라 여러 문장 사이의 관계를 맞추는 일이기 때문입니다. 세 번째 문장과 다섯 번째 문장이 서로 모순이면 둘 중 적어도 하나는 바뀌어야 합니다. 샘플링만으로는 이 조율을 우연에 맡기게 되죠. 반면 최적화로 보면 모순 자체가 줄여야 할 손실이 됩니다. 저는 이 부분을 읽으면서 오답 노트에 비유했습니다. 틀린 답을 버리고 새로 뽑는 것이 아니라, 어디가 어긋났는지를 보고 그 부분을 직접 고치는 방식에 가깝기 때문입니다.

물론 여기서 바로 다음 질문이 생깁니다. 무엇이 맞는 방향인지를 누가 알려줄까요. 잠재 공간에서 이쪽으로 움직이라는 신호를 만들려면 기준이 필요한데, 그 기준이 논리적인 인과를 알아야 하기 때문입니다. 그래서 뼈대에 해당하는 장치가 필요해집니다.

인과라는 뼈대를 빌려오면 생기는 일

CaLR이 가져온 장치 가운데 하나는 인과 토폴로지 행렬입니다. 이름이 거창하게 들리지만 하는 일은 직관적입니다. 여러 생각 조각 사이에 누가 누구를 떠받치는지를 표로 적어두는 것이죠. 두 번째 생각이 네 번째 생각의 근거라면 그 방향으로 연결선을 긋습니다. 이렇게 모아둔 연결 관계가 바로 행렬의 모습입니다.

재미있는 점은 이 뼈대를 확산 모델 스스로 처음부터 배우게 하지 않는다는 데 있습니다. 논문은 전문가 모델에서 가져온 행렬을 쓴다고 설명합니다. 저는 이 선택이 꽤 현실적이라고 봤습니다. 인과 구조를 매번 처음부터 배우는 것은 비용이 크고 흔들리기 쉬운데, 이미 그런 관계를 잘 잡는 모델이 있다면 그 지식을 빌려오는 편이 안정적이기 때문입니다. 마치 경험 많은 설계자가 그려준 골조 위에 시공을 올리는 것과 비슷하죠.

그런데 여기서 조심해서 읽을 대목이 있습니다. 뼈대를 빌려온다는 것은 곧 그 뼈대의 품질에 기대게 된다는 뜻이기 때문입니다. 전문가 모델이 잘못된 방향을 알려주면 확산 모델도 그 방향을 따라갈 수 있습니다. 저는 그래서 이 장치를 만능열쇠처럼 보지 않았습니다. 오히려 병렬 생성의 흩어짐을 잡아주는 안내선에 가깝다고 이해했습니다. 안내선이 있으면 각 생각이 자기 자리를 찾기가 쉬워지죠. 두 번째 생각이 바뀌면 그 영향을 받는 네 번째 생각이 함께 움직여야 한다는 사실이 분명해지니까요. 반면 안내선 없이 모든 생각을 대칭적으로 다루면 누가 누구를 따라야 하는지 알 수 없습니다. 이 차이가 병렬 수정의 성패를 가른다고 논문은 말합니다.

잠재 생각 블록 위에 얹힌 희소 인과 그래프 구조도
잠재 생각 블록 위에 얹힌 희소 인과 그래프 구조도

미분으로 생각을 고친다는 말은 무슨 뜻일까

다음 장치는 암시적 미분을 이용한 그라디언트 기반 수정입니다. 말만 들으면 어렵게 느껴지는데요. 실제로는 이렇게 풀 수 있습니다. 지금 쓴 중간 생각이 논리적으로 얼마나 어긋나 있는지를 잴 수 있다면, 그 어긋남을 줄이는 쪽으로 생각을 조금씩 옮기면 됩니다. 이때 어느 쪽으로 얼마나 옮길지를 알려주는 것이 그라디언트입니다.

저는 이 과정을 내비게이션에 비유해서 읽었습니다. 목적지가 논리적 정합성이라면, 지금 위치에서 목적지까지 남은 거리와 방향을 알려주는 것이 미분 신호인 셈이죠. 한 번에 목적지까지 점프하지 않고 조금씩 방향을 틀어 가는 것입니다. 그래서 CaLR의 생성은 한 번 쓰고 끝나는 것이 아니라, 쓰고 나서 어긋난 곳을 찾아 다시 만지는 일을 반복합니다. 병렬 생성의 장점은 살리면서 그 위에 수정이라는 동작을 얹은 것이죠.

여기서 실제 시스템 관점에서 보면 다음 질문이 바로 생깁니다. 매번 이렇게 고치면 계산 비용이 늘어나지 않을까요. 맞습니다. 공짜는 아닙니다. 다만 생각해 볼 점은 어디에 돈을 쓰느냐입니다. 여러 번 뽑아서 그중 좋은 것을 고르는 방식도 비용이 듭니다. CaLR은 뽑는 횟수를 늘리는 대신 고치는 데 예산을 쓰는 쪽에 가깝습니다. 저는 저희가 새로운 아키텍처를 볼 때 쓰는 기준을 여기에도 적용했습니다. 점수만 보지 않고 무엇이 바뀌었고 그 변화가 어떤 비용 구조를 만드는지를 함께 본 것이죠. 이 논문의 경우 병렬로 고친다는 말이 곧 추가 연산과 추가 메모리를 감수한다는 뜻이 됩니다. 그 대가로 얻는 것이 앞뒤가 맞는 중간 과정이라면, 어떤 과제에서는 충분히 남는 장사일 수 있습니다.

또 하나 짚고 싶은 점은 암시적이라는 말의 쓰임입니다. 최적화 문제를 매번 완전히 풀어서 답을 구하는 것이 아니라, 그 해가 조건에 따라 어떻게 움직이는지를 이용해 수정 신호를 만든다는 뜻에 가깝습니다. 저는 이 대목을 읽으면서 꽤 영리하다고 느꼈는데요. 완벽한 해를 구하려다 시간을 다 쓰는 대신, 지금 상태에서 좋아지는 방향만 알아내어 한 걸음씩 움직이기 때문입니다.

어긋난 중간 단계를 그라디언트로 되돌려 고치는 반복 루프 그림
어긋난 중간 단계를 그라디언트로 되돌려 고치는 반복 루프 그림

스도쿠처럼 답이 서로 물고 있을 때 벌어지는 일

이 논문이 스도쿠를 따로 들어 설명하는 이유가 있습니다. 스도쿠는 한 칸의 숫자가 행과 열과 박스를 통해 다른 칸에 영향을 주는 과제이기 때문입니다. 한 곳만 맞힌다고 될 일이 아니죠. 전체가 서로 물려 있습니다. 이런 과제를 전역 제약 만족이 필요한 과제라고 부르는데, 말 그대로 모든 조각이 동시에 맞아야 합니다.

자기회귀 방식으로 스도쿠를 풀면 어떤 일이 생길까요. 왼쪽 위부터 순서대로 채워 나가다가 중간에 막히면 이미 쓴 앞부분이 발목을 잡습니다. 앞에서 성급하게 고른 숫자가 뒤에서 모순을 만들기 때문입니다. 반면 뼈대 없이 병렬로만 다듬으면 각 칸은 그럴듯해 보이는데 전체로 보면 행에 같은 숫자가 두 번 나오는 식의 어긋남이 남을 수 있습니다. 빠르지만 어딘가 헐거운 것이죠.

CaLR의 접근은 이 사이를 노립니다. 여러 칸을 병렬로 다루면서도 어떤 칸이 어떤 칸에 영향을 주는지를 뼈대로 들고 있습니다. 그래서 세 번째 행의 숫자를 바꾸면 그 숫자를 근거로 삼던 다른 칸도 함께 흔들립니다. 저는 여기서 조금 멈칫했습니다. 이 설명이 너무 매끄럽게 들렸기 때문입니다. 실제로 모든 제약을 이렇게 부드럽게 전파할 수 있을까요. 논문이 말하는 바를 조심스럽게 옮기면, 적어도 이런 구조를 가진 과제에서 보고된 강건함이 더 낫다는 것입니다. 저는 이 숫자보다 그 뒤의 구조가 더 중요하다고 봅니다. 전체를 함께 고치면서 방향을 잃지 않는다는 성질 자체가 전역 제약을 다루는 데 어울리기 때문입니다.

여러분도 일상에서 비슷한 경우를 떠올릴 수 있습니다. 회의 일정 잡기가 그렇습니다. 한 사람의 시간을 맞추면 다른 사람의 시간이 어긋나죠. 한 명씩 순서대로 물어보면 끝이 없고, 모두에게 동시에 물어보면 서로 말이 달라집니다. 필요한 것은 전체를 함께 보면서 어긋난 부분을 조금씩 조율하는 일입니다. CaLR이 하려는 일도 이와 비슷합니다. 병렬로 보되 함부로 흩어지지 않게 묶어두는 것이죠.

행과 열과 박스 제약이 서로 얽힌 스도쿠 격자 개념도
행과 열과 박스 제약이 서로 얽힌 스도쿠 격자 개념도

숫자를 볼 때 제가 조심했던 대목

논문은 복잡한 과제에서 확산 모델 가운데 가장 좋은 성능을 냈고 강한 자기회귀 기준을 넘었다고 보고합니다. 이 문장을 읽으면 마음이 먼저 움직이죠. 드디어 병렬 방식이 순차 방식을 넘었나 싶기 때문입니다. 그런데 여기서는 조금 조심해서 읽을 필요가 있습니다. 보고된 1등이라는 말이 곧 모든 조건에서 낫다는 뜻은 아니기 때문입니다.

제가 먼저 떠올린 질문은 무엇을 맞추고 비교했느냐입니다. 같은 연산 예산인지, 같은 모델 크기인지, 같은 시도 횟수인지에 따라 이야기가 달라집니다. 여러 번 뽑아서 고르는 방식을 허용하면 점수가 올라가는데, 그 비용을 무시하고 점수만 비교하면 공평하지 않죠. 논문이 이런 조건을 어떻게 맞췄는지는 원문에서 더 확인할 일입니다. 저는 이번 글에서 구체적인 수치를 되풀이하지 않으려 합니다. 수치 자체보다 그 수치가 어떤 구조에서 나왔는지가 더 궁금했기 때문입니다.

다음으로 궁금했던 점은 스도쿠 같은 제약 과제에서의 강건함이 어디까지 일반화될 수 있는지입니다. 스도쿠는 규칙이 분명하고 정답 여부가 딱 떨어집니다. 그래서 수정 신호를 만들기가 비교적 쉽죠. 하지만 현실의 추론 과제는 이렇게 깔끔하지 않습니다. 답이 여러 개이거나, 중간 과정의 옳고 그름을 재기가 어렵거나, 문제마다 원인과 결과의 모양이 다릅니다. 그렇다면 인과 뼈대를 빌려오는 방식이 매번 통할까요. 뼈대를 주는 전문가 모델이 그 과제를 잘 모르면 어떻게 될까요. 이런 질문에는 아직 빈칸이 남습니다.

그래서 저는 이번 결과를 이렇게 받아들였습니다. 병렬 생성이 구조를 가지면 까다로운 제약 과제에서 버팀목이 생긴다는 것을 보여준 사례로요. 그 이상도 그 이하도 아닙니다. 이 결과는 마음에 들지만, 여기까지 일반화하기에는 확인해야 할 조건이 더 많습니다. 특히 뼈대의 품질이 전체 성능에 얼마나 영향을 미치는지, 뼈대 없이도 같은 수정이 가능한지를 가르는 실험이 궁금합니다. 논문을 읽을 때 이런 대목을 그냥 넘기지 않는 것이 저희가 숫자를 대하는 방식이기도 합니다.

서빙 관점에서 보면 다음 질문이 바로 생깁니다

좋은 건 알겠는데, 이걸 실제로 어떻게 서빙할까요. 이 질문을 빼놓고 아키텍처 이야기를 끝낼 수는 없습니다. CaLR처럼 중간에 계속 고치는 방식은 학습 때만이 아니라 추론 때도 연산과 메모리를 씁니다. 잠재 상태를 들고 있으면서 여러 번 다듬어야 하니까요. 처리량은 좋아질 여지가 있지만 요청 하나하나의 지연은 늘어날 수 있습니다. 병렬로 넓게 보겠다는 선택이 곧 하드웨어 비용으로 돌아오는 것이죠.

저는 그래서 이 구조를 메모리와 대역폭의 관점에서 다시 그려봤습니다. 여러 생각 조각을 함께 들고 있어야 하니 활성화 메모리가 늘어납니다. 매 수정 스텝마다 그 조각들을 읽고 써야 하니 대역폭 부담도 커집니다. 뼈대에 해당하는 행렬을 참조하는 비용도 있습니다. 행렬이 희소하다면 부담이 작겠지만 촘촘하다면 이야기가 달라지죠. 배치로 여러 요청을 묶을 때는 한 요청의 수정 횟수가 전체 배치의 속도를 끌고 갈 수도 있습니다. 먼저 끝난 요청이 늦게 끝나는 요청을 기다려야 한다면 아까운 일이 생기니까요.

그렇다면 이 비용을 줄일 방법은 있을까요. 저는 몇 가지 방향을 떠올렸습니다. 어긋남이 클 때만 수정하고 작을 때는 일찍 멈추는 방식이 있을 수 있죠. 모든 단계에 같은 뼈대를 씌우지 않고 논리적으로 얽힌 부분에만 집중하는 방식도 생각할 수 있습니다. 뼈대를 매번 전문가 모델에서 가져오지 않고 미리 계산해 두거나 가볍게 근사하는 방법도 있을 것입니다. 물론 이런 최적화는 논문이 직접 보여준 범위를 넘어서는 상상입니다. 그래서 단정하지 않고 질문으로 남겨둡니다. 다만 실제 시스템에 올리려면 이런 질문을 피할 수 없다는 점은 분명합니다.

정해진 계산 예산 안에서 초안을 함께 고치는 병렬 작업자 개념도
정해진 계산 예산 안에서 초안을 함께 고치는 병렬 작업자 개념도

그래서 다음에 보고 싶은 장면은 이것입니다

여기까지 오면 처음 질문으로 돌아오게 됩니다. 확산 모델이 생각을 고쳐 쓸 수 있게 되면 우리는 무엇을 얻게 될까요. 저는 점수표의 1등보다 다른 장면을 떠올립니다. 모델이 답만 내놓는 것이 아니라 중간에 어디가 어긋났는지를 스스로 짚고, 그 부분을 근거와 함께 고치는 모습입니다. 추론 과정이 한 번에 써 내려간 기록이 아니라 여러 번 다듬어진 흔적으로 남는 것이죠. 그렇게 되면 긴 증명이나 복잡한 계획처럼 앞뒤가 얽힌 일에서 모델의 행동이 조금 더 믿음직해질 수 있습니다.

제가 앞으로 보고 싶은 것은 크게 세 가지입니다. 첫째, 뼈대 없이도 스스로 방향을 잡을 수 있는지입니다. 지금은 전문가 모델에서 빌려온 구조에 기대고 있는데, 확산 모델 스스로 인과를 세우는 장면이 궁금합니다. 둘째, 틀린 뼈대가 들어왔을 때의 행동입니다. 잘못된 안내선을 받았을 때 모델이 그것을 거부하거나 고칠 수 있는지, 아니면 그대로 끌려가는지가 궁금하죠. 셋째, 수정 과정의 해석 가능성입니다. 그라디언트가 가리키는 방향이 사람이 이해하는 근거 관계와 일치하는지, 아니면 점수만 좋게 만드는 지름길인지를 보고 싶습니다.

이런 질문을 던지는 이유는 단순합니다. 병렬로 고친다는 아이디어가 한두 과제에서 통하는 요령을 넘어서는 설계 원리인지 확인하고 싶기 때문입니다. 만약 이 방식이 여러 과제에서 같은 패턴으로 통한다면, 추론을 바라보는 눈이 조금 달라질 수 있습니다. 답을 뽑는 일이 아니라 관계를 맞추는 일로 말이죠. 그렇다면 사람의 역할은 무엇일까요. 저는 좋은 뼈대를 무엇을 기준으로 고를지, 그리고 어떤 어긋남을 줄여야 할지를 정하는 일이 사람에게 남는다고 봅니다. 무엇을 최적화할지를 정하는 것은 여전히 우리의 몫이기 때문입니다.

오늘 살펴본 CaLR은 그 가능성을 작게 보여준 시도입니다. 병렬이라는 속도와 인과라는 질서를 함께 쥐려는 시도라고 저는 읽었습니다. 이 시도가 어디까지 이어질지는 아직 모릅니다. 다만 다음에 비슷한 논문을 만나면 저는 같은 질문을 다시 던질 것 같습니다. 무엇이 무엇을 떠받치고 있는지, 그리고 틀렸을 때 스스로 돌아올 수 있는지 말이죠.

참고 자료

  1. CaLR: Causal Latent Revision for Robust Diffusion Reasoning · arxiv.org

    리뷰 원문