Looped Transformer: 모델 크기는 그대로, 생각은 더 깊게

Insight 20분 읽기
조회 918

‘쉬운 문제에는 1초, 어려운 문제에는 1분’

사람에게는 자연스러운 이 과정이, 보통의 Transformer 아키텍처에는 자연스럽지 않습니다. 질문이 쉽든 어렵든, 토큰 하나를 만들어 낼 때 거치는 계산의 깊이가 똑같기 때문입니다.

최근 LLM 기반 AI 시스템의 패러다임은 테스트 시간 연산량(Test-time Compute)을 확장해 추론 능력을 끌어올리는 방향으로 빠르게 나아가고 있습니다. 즉, 모델이 어려운 문제를 만났을 때, 더 많은 연산을 거친 뒤 답을 내도록 설계하는 것인데요. 문제는 그 연산량을 어느 방향으로 늘릴 것인가 하는 것입니다.

지금까지 확실한 해법은 두 가지였습니다. 모델 자체를 더 크게 만들거나, 답을 내기 전에 생각을 더 길게 말하게 하는 것입니다. 최근에는 후자가 더 널리 쓰이고 있죠. OpenAI의 o 시리즈나 DeepSeek-R1처럼 Chain-of-Thought(CoT)로 중간 추론 과정을 글로 길게 적어 내려가는 방식입니다. 효과는 분명했지만, 글이 길어지는 만큼 비용과 응답 시간이 함께 늘어났고, 무엇보다 모델이 더 생각하려면 그 생각을 반드시 문장으로 꺼내야 한다는 제약이 있었습니다.

반면 루프 트랜스포머(Looped Transformer)는 방향을 달리합니다. 모델을 더 크게 만들거나 생각을 더 길게 말하게 하는 대신, 같은 신경망 블록을 반복 사용함으로써 내부 계산을 더 깊게 만듭니다. 말로 드러나지 않는 내부 사고에 더 많은 시간을 주는 것이죠.


“생각할 시간”을 정확히 나누어 보자

AI에서 생각할 시간을 늘린다는 말은 한 가지 의미만 갖지 않습니다. 아래 그림처럼 서로 다른 세 가지 방법이 있습니다.

첫 번째는 모델 자체를 크게 만드는 것입니다. 파라미터 수를 늘리면 모델은 더 많은 패턴과 더 복잡한 변환을 학습할 수 있습니다. 다만 이것은 질문을 받은 뒤 생각할 시간을 늘리는 방법이라기보다, 처음부터 더 큰 두뇌를 준비하는 방법에 가깝습니다. 모델 파일과 실행에 필요한 메모리도 함께 커집니다.

두 번째는 모델 내부의 계산 단계를 늘리는 것입니다. 이것이 Looped Transformer가 사용하는 방법입니다. 같은 핵심 블록을 여러 번 통과시키면서 내부 표현을 조금씩 다듬습니다. 반복 횟수를 늘려도 파라미터 수는 변하지 않지만, 답을 내기 전에 수행하는 계산은 늘어납니다.

세 번째는 중간 추론을 문장으로 생성하는 것입니다. Chain-of-Thought(CoT)나 최근의 추론 모델이 사용하는 방식입니다. 모델은 답을 바로 내놓는 대신 중간 과정을 토큰으로 생성하고, 앞서 생성한 내용을 바탕으로 다음 추론을 이어갑니다. 생각의 과정이 텍스트로 길어지는 만큼 응답 시간과 계산 비용도 증가합니다.

여기서 한 가지 짚어둘 점이 있습니다. 실제 챗봇의 총 계산량은 입력 길이와 출력 토큰 수에 따라 달라집니다. 앞에서 말한 “정해진 깊이”란 총 계산량이 아니라, 토큰 하나를 처리하는 신경망의 기본 깊이가 미리 정해져 있다는 뜻입니다. 답을 길게 쓰면 그 깊이를 여러 번 반복하는 것이지, 한 번의 깊이가 더 깊어지는 것은 아닙니다.

이 세 가지는 모두 AI의 능력과 계산량을 늘릴 수 있지만, 같은 방식은 아닙니다.

파라미터 수는 모델의 크기를 늘리고, CoT는 생각을 말로 풀어내는 시간을 늘리며,
 Looped Transformer는 말로 꺼내기 전 내부에서 되풀이하는 계산을 늘립니다.

따라서 “추론 문장을 열 개 생성했으니 신경망이 열 배 깊어진 것과 같다”고 단순하게 계산할 수는 없습니다. CoT는 새로운 토큰을 하나씩 생성하며 추론을 이어가는 방식이고, Looped Transformer는 하나의 토큰을 결정하기 전에 잠재 공간의 표현을 반복해서 다듬는 방식입니다.

이 차이가 바로 Looped Transformer의 핵심입니다. 모델을 더 크게 만들지도 않고, 생각을 긴 문장으로 꺼내지도 않은 채, 모델 내부에서 계산할 시간을 늘리는 것입니다.


Looped Transformer는 무엇을 반복하는가

Looped Transformer가 반복하는 것은 입력 문장이나 이미 생성한 단어가 아닙니다. 모델 내부에서 처리 중인 잠재 표현(latent representation)을 같은 신경망 블록에 여러 번 통과시킵니다.

모델은 세 부분으로 나누어 볼 수 있습니다.

  • Prelude는 입력 토큰을 내부 표현으로 바꿉니다.
  • Core는 문맥과 조건을 반영해 이 표현을 다듬습니다.
  • Coda는 마지막 표현으로 다음 토큰의 확률을 계산합니다.

일반적인 Transformer는 서로 다른 가중치를 가진 여러 층을 차례로 통과합니다. 반면 Looped Transformer는 동일한 core 블록을 반복해서 사용합니다. 첫 번째 계산 결과를 다시 같은 core에 넣으면서 내부 표현을 단계적으로 수정하는 것입니다.

이를 간단히 식으로 나타내면 다음과 같습니다.

  • 입력 준비: e=P(x)
  • 반복 계산: si=R(e,si-1)
  • 다음 토큰 예측: p=C(sr)

R은 반복되는 core이고, r은 반복 횟수입니다. 동일한 R의 가중치를 계속 재사용하므로 r을 늘려도 파라미터 수는 증가하지 않습니다. 모델 크기는 유지하면서 문제에 투입하는 계산을 늘릴 수 있는 것입니다. 이러한 방식을 가중치 공유(weight tying)라고 합니다.

조금 더 직관적으로 보면 수학 문제를 푸는 모습과 비슷합니다.

첫 번째 반복: 문제의 내용과 조건을 파악한다
두 번째 반복: 조건들을 연결해 풀이를 시도한다
세 번째 반복: 앞에서 만든 풀이를 더 다듬는다

실제로 반복마다 이런 역할이 정해져 있는 것은 아닙니다. 다만 앞선 계산 결과를 바탕으로 다음 계산을 이어간다는 점에서, 같은 문제를 처음부터 똑같이 다시 푸는 것과는 다릅니다.

식에서 매 반복마다 원래 입력 표현 e가 함께 들어간다는 점도 눈여겨볼 만합니다. 이를 입력 재주입(input injection)이라고 하는데, 이 장치가 없으면 반복을 거듭하는 동안 모델이 애초에 무엇을 풀고 있었는지를 잃어버리기 쉽습니다.

이처럼 깊이 방향으로 같은 블록을 반복한다는 발상은 완전히 새로운 것은 아닙니다. 2018년 Universal Transformer도 내부 표현을 같은 블록으로 반복 갱신하고, Adaptive Computation Time(ACT)을 이용해 위치마다 계산 단계를 조절했습니다. 최근의 recurrent-depth 모델과 LoopLM은 이 발상을 decoder-only 언어모델과 대규모 사전학습에 적용합니다. 핵심은 파라미터를 늘리지 않고도 테스트 시점의 반복 횟수, 즉 계산 깊이를 조절하려는 것입니다.


RNN과 무엇이 다른가

같은 블록을 반복해서 사용한다면 RNN과 비슷해 보일 수 있습니다. 두 구조 모두 가중치를 재사용하지만, 반복하는 대상과 방향이 다릅니다.

전통적인 RNN은 문장을 왼쪽에서 오른쪽으로 읽으며 계산을 반복합니다. 이전 토큰까지의 상태와 새로운 토큰을 결합해 다음 상태를 만들기 때문에, 반복의 축은 토큰의 시간·위치 방향입니다.

반면 Looped Transformer는 문맥 전체를 담은 잠재 표현을 동일한 core에 반복해서 통과시킵니다. 첫 번째 반복에서 토큰 사이의 관계를 정리하고, 이후 반복에서 같은 문맥을 다시 검토하며 내부 표현을 더 세밀하게 다듬습니다. 반복의 축이 토큰의 순서가 아니라 신경망의 깊이 방향인 것입니다.

정리하면 RNN은 문장을 따라 이동하면서 정보를 누적하는 구조이고, Looped Transformer는 문맥의 내부 표현을 같은 블록에서 여러 번 다듬는 구조입니다. 이처럼 깊이 방향으로 반복 계산을 수행하기 때문에 Looped Transformer를 recurrent-depth 모델, 즉 ‘깊이가 순환하는 모델’이라고 부릅니다.


CoT와 무엇이 다른가

CoT는 답을 바로 내놓는 대신, 문제를 풀어가는 중간 과정을 텍스트로 먼저 생성합니다. 장점은 후속 도구가 읽을 수 있고, 사람이 검토할 단서가 생긴다는 것입니다. 그러나 텍스트는 모델 내부 상태 전체가 아니며, 긴 추론 토큰은 지연 시간과 컨텍스트 사용량을 늘립니다.

반면 Looped Transformer는 중간 과정을 문장으로 만들지 않습니다. 대신 모델 내부의 계산 결과를 같은 핵심 블록에 여러 번 통과시키며 계속 다듬습니다. 이 방식은 말로 표현하기 어려운 정보까지 그대로 활용할 수 있다는 장점이 있습니다. 하지만 계산 과정이 숫자로 이루어진 내부 상태에만 남기 때문에, 사람이 그 내용을 직접 읽거나 확인할 수는 없습니다. 즉, 내부에서 더 깊게 계산할 수 있다는 것과 그 과정을 사람에게 설명할 수 있다는 것은 별개의 문제입니다.

[ 주의 ]
CoT가 중간 과정이 보인다고 해서 모델의 실제 인과적 추론 과정을 그대로 공개하는 것은 아닙니다. 반대로 잠재 반복이 보이지 않는다고 해서 검증이 불가능한 것도 아닙니다. 외부 근거 검색, 도구 실행 기록, 테스트, 제약 검사 같은 별도의 검증층이 필요합니다.


반복을 늘리면 무엇이 좋아지는가

Looped Transformer의 가장 큰 특징은 모델의 크기와 계산의 깊이를 분리할 수 있다는 것입니다.

일반적인 Transformer는 계산을 더 깊게 하려면 층을 추가해야 합니다. 32층 모델을 64층으로 만들면 새로 추가된 층마다 별도의 가중치가 필요하므로 파라미터 수와 모델 파일, 실행에 필요한 메모리가 함께 증가합니다.

Looped Transformer는 하나의 core를 여러 번 사용합니다. 같은 core를 여덟 번 통과하면 계산 과정은 여덟 단계 깊어지지만, 서로 다른 core 여덟 개를 저장할 필요는 없습니다. 저장된 모델은 작게 유지하면서 실제 계산은 더 깊게 수행할 수 있는 것입니다.

  • 일반 Transformer는 새로운 층과 파라미터를 추가해 계산 깊이를 늘립니다. 
  • Looped Transformer는 같은 층의 파라미터를 반복 사용해 계산 깊이를 늘립니다. 

따라서 이 구조의 장점은 단순히 ‘더 오래 생각한다’는 데만 있지 않습니다. 같은 계산 깊이를 구현하면서도 저장해야 하는 파라미터를 줄일 가능성이 있습니다. 모델 파일과 가중치 메모리가 작아지므로, 메모리가 제한된 엣지 장치나 온디바이스 AI에서 특히 매력적입니다.

2.6B가 12B와 비슷하다면

그렇다면 2.6B 규모의 Looped Transformer가 12B 일반 모델과 비슷한 성능을 낸다면 혁신이라고 할 수 있을까요? 조건부로는 그렇습니다. 저장 공간과 파라미터 메모리를 크게 줄이면서도 필요한 성능을 유지할 수 있기 때문입니다.

Ouro 연구가 주목받은 이유도 여기에 있습니다. Ouro 1.4B와 2.6B는 연구진이 평가한 여러 벤치마크에서 최대 12B 규모의 비교 모델과 비슷한 결과를 보였습니다. 통제 실험에서는 이 성능이 더 많은 지식을 저장했기 때문이라기보다, 이미 학습한 지식을 여러 단계에 걸쳐 조합하고 활용하는 능력이 좋아졌기 때문인 것으로 나타났습니다.

쉽게 말하면 12B 모델만큼 많은 내용을 기억하게 된 것은 아니지만, 자신이 알고 있는 내용을 반복해서 검토하고 조합함으로써 일부 문제에서 비슷한 답을 만들어 낸 것입니다.

3.5B 규모의 개념증명 모델인 Huginn도 반복의 효과를 보여 줍니다. 논문과 모델 카드에 따르면 일부 추론 벤치마크에서 core의 반복 횟수를 늘릴수록 성능이 향상됐으며, 공개 모델에서는 대략 64단계 부근까지 개선이 관찰됐습니다. 이는 학습을 마친 뒤에도 같은 모델의 반복 횟수를 조절해 성능을 높일 수 있다는 가능성을 보여 줍니다. 빠른 응답이 필요할 때는 적게 반복하고, 어려운 문제에는 더 많은 계산을 배분할 수 있는 것입니다.

다만 파라미터가 작다고 전체 비용이 줄어드는 것은 아닙니다. 저장해야 할 가중치는 줄지만, core를 반복해서 실행하는 만큼 연산량과 응답시간은 증가합니다. 또한 반복한다고 해서 모델이 원래 갖고 있지 않은 지식을 새로 얻는 것도 아닙니다. 폭넓은 사실과 지식을 요구하는 문제에서는 여전히 큰 모델이 유리할 수 있습니다.

그래도 공짜는 아니다

결국 Looped Transformer가 제안하는 교환 관계는 다음과 같습니다.

더 많은 파라미터를 저장하는 대신, 더 많은 계산 시간을 사용한다.

파라미터를 줄여도 실제 성능이 유지되고, 추가되는 계산시간이 허용 범위 안에 있으며, 연구 결과가 실제 업무에서도 재현된다면 이 구조는 충분히 혁신적일 수 있습니다. 큰 모델의 능력 일부를 더 적은 메모리로 구현하고, 어려운 문제에만 계산을 추가하는 새로운 확장 방법이 될 수 있기 때문입니다.


필요한 만큼만 반복할 수 있을까?

반복 횟수를 늘리면 모델은 내부 표현을 더 여러 번 다듬을 수 있습니다. 하지만 모든 문제와 모든 토큰에 같은 횟수의 계산이 필요한 것은 아닙니다.

예를 들어 “대한민국의 수도는?”처럼 답이 분명한 질문에 많은 반복을 사용하는 것은 비효율적입니다. 반면 여러 조건을 비교하거나 계산해야 하는 문제에는 더 많은 반복이 도움이 될 수 있습니다. 문장 안에서도 조사나 문장부호처럼 쉽게 결정되는 토큰과, 계산 결과나 핵심 결론처럼 더 많은 검토가 필요한 토큰이 있습니다.

가장 단순한 방법은 모든 토큰에 미리 정한 횟수를 똑같이 적용하는 것입니다. 예를 들어 core를 항상 16번 반복하도록 설정할 수 있습니다. 구현하기는 쉽지만, 쉬운 토큰에도 16번의 계산을 사용하기 때문에 불필요한 연산이 생깁니다.

이를 해결하려는 방법이 적응형 계산 깊이(adaptive depth)입니다.

그림 3. 적응형 계산의 개념. 실제 종료 기준은 모델과 연구마다 다르며, “정답을 알았다”를 직접 측정하는 것은 아니다.

모델이 반복할 때마다 “계산을 더 계속할 필요가 있는가?”를 판단하고, 충분하다고 판단되면 반복을 멈추는 방식입니다. 쉬운 토큰은 몇 번만 계산하고, 어려운 토큰은 더 오래 계산하게 됩니다.

모델은 정답을 직접 알 수 없기 때문에, 일반적으로 내부 상태가 얼마나 안정되었는지를 보고 종료 여부를 판단합니다. 예를 들면 다음과 같습니다.

  • 반복 전후의 다음 토큰 확률이 거의 달라지지 않는가?
  • 가장 가능성이 높은 토큰이 여러 번 반복해도 그대로인가?
  • 모델 내부의 잠재 표현이 더 이상 크게 변하지 않는가?
  • 별도로 학습된 종료 장치가 계산을 멈춰도 된다고 판단하는가?

이러한 기준을 사용하면 같은 모델이라도 문제의 난도에 따라 계산량을 다르게 배분할 수 있습니다. 평균 응답시간을 줄이면서도 어려운 문제에는 충분한 반복을 제공할 가능성이 생기는 것입니다.

다만 내부 상태가 안정됐다고 해서 정답이 확정됐다는 뜻은 아닙니다. 모델이 틀린 답을 향해 빠르게 수렴할 수도 있고, 반대로 올바른 답을 찾는 과정에서 내부 상태가 계속 변할 수도 있습니다. 따라서 종료 기준이 지나치게 느슨하면 너무 일찍 멈추고, 지나치게 엄격하면 불필요한 반복이 늘어납니다. 이를 막기 위해 최소·최대 반복 횟수와 종료 기준을 함께 설정해야 합니다.

적응형 계산의 아이디어도 완전히 새로운 것은 아닙니다. Universal Transformer는 Adaptive Computation Time(ACT)이라는 학습된 종료 장치를 사용해 위치마다 계산 단계를 달리했습니다. Huginn의 공개 구현도 출력 분포의 KL 변화나 가장 유력한 토큰의 안정성 등을 이용해 토큰별 반복 횟수를 조절하는 기능을 제공합니다. 그러나 Huginn의 적응형 계산 기능은 별도로 충분히 학습된 완성형 기능이라기보다, 학습 후 모델에 종료 규칙을 적용한 개념증명에 가깝습니다. 종료 기준이 다양한 과제에서 안정적으로 작동하는지에 대해서는 아직 더 많은 검증이 필요합니다.

적응형 계산의 목표는 모든 문제를 오래 생각하게 만드는 것이 아니라, 쉬운 문제에서는 일찍 멈추고 어려운 문제에만 계산을 더 배분하는 것입니다. 이 방식이 안정적으로 구현된다면 하나의 모델을 여러 환경에서 유연하게 사용할 수 있습니다. 빠른 응답이 중요한 장치에서는 일찍 멈추게 하고, 정확도가 더 중요한 환경에서는 반복을 늘리는 식으로 성능과 응답시간의 균형을 조절할 수 있습니다.


엣지·온디바이스에서 왜 매력적인가

엣지 장치에서는 모델이 메모리에 들어가는지가 첫 번째 관문인 경우가 많습니다. 가중치를 공유하면 같은 유효 깊이를 서로 다른 층으로 구현하는 모델보다 저장 용량과 파라미터 메모리를 줄일 가능성이 있습니다. 반복 횟수를 장치의 전력·지연 예산에 맞춰 조절할 수 있다는 점도 제품군 설계에 있어 매력적입니다.

하지만 “가중치를 한 번 읽어 여러 번 재사용하므로 공짜에 가깝다”는 표현은 과합니다. core 전체가 온칩 캐시에 들어가지 않으면 반복마다 메모리 계층에서 가중치를 다시 가져올 수 있고, 실제 이득은 칩의 캐시, 메모리 대역폭, 연산 집약도, 커널 최적화에 달려 있습니다. 가능성이 있는 하드웨어 가설이지 자동으로 보장되는 성능은 아닙니다.

  • 엣지 평가 체크리스트
    ① 모델 파일·실행 메모리
    ② 목표 정확도까지 필요한 평균/최대 반복 수
    ③ 첫 토큰 지연과 토큰 처리량
    ④ 전력·발열
    ⑤ 반복 종료의 안정성
    ⑥ 기존 런타임의 지원 여부

어디에 잘 맞고, 어디에 덜 맞는가

Looped Transformer의 효과는 모든 작업에서 동일하지 않습니다. 이미 알고 있는 정보를 여러 단계에 걸쳐 조합해야 하는 문제에는 잘 맞을 가능성이 있지만, 모델에 없는 지식을 찾거나 판단 근거를 사람에게 설명해야 하는 작업에는 별도의 방법이 필요합니다.

정리하면 Looped Transformer는 정답에 필요한 정보가 모델 안에 있고, 그 정보를 여러 단계에 걸쳐 조합해야 하는 문제에 가장 잘 맞습니다. 반대로 새로운 정보를 찾아야 하거나 판단 과정을 사람이 직접 확인해야 하는 작업에서는 검색, 외부 도구, 검증 시스템과 함께 사용해야 합니다.


지금 시점의 결론

Looped Transformer가 보여 주는 가장 중요한 변화는 “모델 크기”와 “계산 깊이”를 같은 선택지로 취급하지 않아도 된다는 점입니다. 파라미터를 복제하지 않고 깊이를 늘릴 수 있고, 일부 연구에서는 테스트 시 반복 횟수를 늘려 추론 성능을 확장했습니다.

그러나 이것은 큰 모델, CoT, 검색, 도구 사용을 대체하는 만능 해법이 아닙니다. 반복은 새로운 지식을 주입하지 않으며, 지연시간과 처리량 비용을 치르고, 잠재 상태는 사람이 읽는 근거가 아닙니다. 더구나 Ouro와 Huginn 모두 연구 단계의 결과이며, 비교 모델·데이터·벤치마크가 달라 상용 시스템의 우위를 곧바로 뜻하지 않습니다.

가장 현실적인 관점은 다음과 같습니다.

Looped Transformer는 “작은 모델이 큰 모델을 공짜로 이기는 기술”이 아니라,
제한된 파라미터 예산 안에서 필요한 문제에 계산을 더 배분하려는 설계 선택이다.

하지만, 엣지 AI에서 이 선택은 특히 흥미롭습니다. 메모리 용량은 작지만 연산 여유가 남는 장치라면, 파라미터 대신 시간을 쓰는 교환이 합리적일 수 있기 때문입니다. 다음 단계는 논문 속 최고 점수가 아니라, 실제 목표 장치에서 정확도-지연-전력 곡선을 그리는 일입니다.