본문 바로가기

인공지능 논문 정리

Scaling up Test-Time Compute with Latent Reasoning: A Recurrent Depth Approach

1. Introduction

최근 Language Model(LLM) 분야에서 모델이 추론에 필요한 계산량을 유연하게 조절할 수 있게 하는 방법에 대한 관심이 높아지고 있다. 전통적으로는 모델 크기(파라미터 수)를 키우거나, Chain-of-Thought(CoT) 를 활용해 추론할 때 더 많은 토큰을 생산하도록 하여 inference 단에서의 계산량을 늘려왔다. 그러나, 항상 길고 명시적인 토큰 시퀀스를 통해 “생각”을 드러내는 방식은 다양한 한계가 있다. 이 글에서는 Recurrent Depth(순환형 깊이)라는 새로운 모델 아키텍처가 제안되어, 잠재 공간에서 반복적 계산을 수행함으로써 test-time compute를 자연스럽게 확장하는 방법을 살펴본다.

 

Recurrent Depth 모델은 기존의 Transformer (decoder) 구조의 중간 블록을 재귀적으로 여러 번 적용하여, 추가적인 계산을 수행할 수 있게 했다. 기존에는 NN개의 Layer를 고정된 순서로 쌓아서 한 번만 전방향 연산을 수행했다. 그러나 이 모델에서는 공유되는 반복 블록을 여러 번 unroll하여 원하는 만큼의 내부 계산을 늘릴 수 있다. 즉, 모델은 토큰 단에서 별도의 CoT 토큰을 생성하지 않고도, 내부에서 다회전(loop) 계산을 수행함으로써 문제를 깊이 생각한다. 이 과정에서 모델 크기가 작음에도 더 많은 계산을 통해 성능 향상을 이끌 수 있다.

재귀적인 추론을 통한 성능 증가

예를 들어, 전통적 방법에서는 3.5B 파라미터의 모델은 계속 3.5B 파라미터 수준에 머물렀다. 그러나 Recurrent Depth 모델은 test-time에 16회, 32회, 64회 등 여러 번 반복함으로써, 실질적으로 8배, 16배 이상의 연산을 투입하고, 이는 때로는 50B 모델 수준의 compute를 활용하는 효과로 이어질 수 있다고 했다.


2. 기존 방법과의 비교: 왜 Latent Reasoning인가?

2.1 CoT와의 차별점

CoT는 모델이 출력 단계에서 모든 중간 추론 단계를 텍스트로 풀어쓰는 방식이다. 이는 사람이 머리로 여러 스텝을 생각한 후 답을 말하는 것과 유사하지만, 실제로 모델 내부의 고급 계산도 자연어 형태로 전사되기 때문에, 주어진 문맥창(context window)이 매우 커져야 하며, 별도의 CoT 데이터가 필요하다. 또한, 텍스트로 표현하기 어렵거나 공간적/추상적 사고는 자연어 시퀀스에 담기 힘들다.

이에 비해 Recurrent Depth 모델은 하나의 Transformer 블록을 테스트 시점에서 반복 적용하여, 숨겨진(latent) 벡터 상태에서만 반복 계산을 수행한다. 따라서:

  • 추가 데이터(예: CoT corpus) 없이도 학습 가능하다.
  • 긴 context window가 필수적이지 않다(짧은 4k context만으로도 내적 계산 반복이 가능하다).
  • 분기, 병렬, 비언어적 사고 등 자연어로 표현하기 어려운 계산이 가능할 수 있다.

2.2 모델 크기와도 다른 축의 스케일

LLM은 보통 파라미터 수를 늘림으로써 성능을 높인다. 그러나 Recurrent Depth는 파라미터 수를 늘리지 않고도, 테스트 시점에서 반복 횟수를 임의로 늘려 “동일한 파라미터로 더 많은 계산량”을 쓸 수 있게 했다. 이는 GPU 메모리 사용 측면에서도 장점이 있다. 또한 인퍼런스에서 매우 깊은 Network가 unfolded되어 작동하므로, “더 깊이 생각하는” 모델이 자동으로 형성된다.


3. 모델 구조

기본적으로 Recurrent Depth 모델은 prelude - core - coda의 세 부분으로 구성되었다고 했다.

  1. Prelude: 토큰 입력을 잠재 공간으로 매핑한다. 여기서 여러 Transformer 레이어가 사용된다.
  2. Recurrent Core: 이 코어 블록은 동일한 레이어를 반복 공유한다. 즉 한 번의 forward 패스에서 $r$ 번 코어 블록을 돌리는 식이다. 각 반복마다 (1) prelude가 계산한 임베딩 $e$ 와 (2) 이전 상태 $s_{i-1}$이 입력되어  $s_i=R(e,s_{i−1})\,s_i=R(e, s_{i-1})$를 구한다.
  3. Coda: 최종 상태 $s_R$ 을 받아서 로지트(출력)를 산출한다.

여기서 초깃값 $s_0$ 은 정규분포에서 샘플링된 난수 상태이고, prelude 결과 $e$는 모든 반복 단계에 주입된다. 이는 모델이 반복 과정에서 입력 문맥을 참고하며 안정적으로 수렴하도록 하는 기법이라고 했다. (기존 RNN은 time축 반복이고, 이는 depth축 반복이라는 차이가 있다.)

학습 시에는 random하게 iterations 횟수 $r$ 을 샘플링하여, 서로 다른 반복 횟수를 훈련 단계에서 교대로 시도한다. 또한 중간 gradient compute를 줄이기 위해 truncated backpropagation 방식으로 마지막 $k$ 스텝만 역전파한다. 예를 들어 $k=8$ 이라면, 32번 반복할 때도 마지막 8회에 대해서만 gradient를 전파한다.


4. 대규모 학습 사례

연구진은 이 Recurrent Depth 모델을 약 3.5B 파라미터(h=5280 정도)로 구성하고, OpenAI나 Meta 수준에는 미치지 못하지만, 꽤나 큰 규모(약 800B 토큰)로 학습을 진행했다. 이 모델을 Huginn-0125로 명명했다고 했다. 일부 구현 난이도가 있었으나, AMD 기반 초고성능 컴퓨팅 리소스를 통해 병렬 훈련을 수행했다.
이때 발생한 핵심 문제로, 초깃값과 normalization 전략이 매우 중요했으며, 잘못 세팅하면 숨겨진 상태가 초기에 전부 collapse해버리는 문제가 있었다고 했다. 최종적으로 “sandwich” 구조의 RMSNorm과 특정 초기화로 안정적인 학습에 성공했다.

4.1 데이터

800B 토큰의 프리트레이닝 코퍼스는 다양한 오픈소스 데이터(주로 웹 텍스트, Code, 수학 자료 등)로 구성했다. 별도의 Chain-of-Thought 데이터는 없이, 일반적 Instruction 튜닝 자료는 소량 섞었다고 했다.
학습은 곧바로 한 번의 거대한 run으로 수행되었으며, 학습 도중 반복 깊이 rr을 1, 4, 8, 16, 32, 64 등으로 다양하게 테스트했다. 결과적으로 모델은 오랜 학습에도 큰 모멘텀 손실 없이 안정적으로 수렴했다.


5. 성능 결과

5.1 Zero-shot 표준 벤치마크

ARC, HellaSwag, MMLU 등 전형적 벤치마크에서, 해당 모델(3.5B, 800B 토큰)은 예전 6-7B 수준 모델과 비슷하거나 약간 뒤처지는 모습도 있었으나, 일부 영역에서는 비슷했다. 다만, Recurrent Depth 모델은 추론 반복 횟수를 늘릴수록 성능이 큰 폭으로 개선되었으며, 특히 ARC-Challenge나 MMLU 등 “고난도” 문제에서 이 개선이 뚜렷했다.

5.2 수학·코드 태스크

GSM8k(초등 산수), MATH(수학 문제), HumanEval/MBPP(코드 문항)에서, Recurrent Depth 모델이 토큰이 적음에도 반복 계산을 할수록 점수가 유의미하게 상승했다. 코드 태스크에서도 적절한 수준의 정답률을 보였다. 무엇보다 특이한 점은, 3.5B 모델이지만 test-time에 32~64회 반복으로, 마치 더 큰 모델처럼 문제를 푸는 면모가 관찰되었다.


6. 응용 가능성: Recurrent Depth가 열어줄 편의 기능들

6.1 Per-token Adaptive Compute

Recurrent Depth 모델은 같은 시퀀스 안에서도 토큰마다 “충분히 생각했으니 더는 반복 안 해도 된다”라고 스스로 판단해 단계를 멈출 수 있다. 이른바 adaptive compute이다. 전통적인 Transformer에서는 layer별 early exit가 필요했지만, 이 모델은 하나의 반복 블록을 여러 번 돌리는 구조이므로 자연스럽게 토큰별로 정지 가능하다.

6.2 Continuous Chain-of-Thought(잠재공간 CoT)

토큰별로 이전 토큰의 반복 결과를 초기 상태로 삼아 이어갈 수도 있다. 즉 한 토큰에서 계산한 최종 latent state를 다음 토큰 계산의 초깃값으로 넘겨주어, 마치 실제 Chain-of-Thought처럼 사고를 이어가는 방식이다. 그러나 모든 중간 추론이 latent space에서 일어난다.

6.3 Self-Speculative Decoding

Speculative Decoding 기법은 대규모 모델 추론을 가속화하기 위해 “draft”와 “verifier” 모델을 나누는 기법이다. 그런데 Recurrent Depth 모델은 자기 자신을 draft로 한 후, 더 반복한 버전으로 verifier를 실행할 수 있다. 추가 코드 없이도 self-speculative decoding이 가능하다고 했다.


7. 내부 메커니즘 관찰

연구진은 모델이 반복 계산을 하는 중간 상태($s_1$ → $s_2$ →…)를 시각화했다. 그 결과:

  • Convergent fixed point: 대부분의 토큰에서, 어느 정도 반복하면 같은 지점으로 수렴한다.
  • Orbit(회전/궤도 형태): 특정 토큰, 예를 들어 산술 계산에 관련된 토큰은 latent space에서 계속 회전하는 꼴을 보였다. 이는 해당 토큰이 어떤 “계산 과정”을 수행할 때, 벡터가 다양한 방향으로 돌면서 상태를 갱신하고 있음을 암시한다.
  • Sliders: 어떤 토큰은 한 방향으로 조금씩 이동해, 반복 횟수를 세거나 cumulative sum 같은 개념을 구현하는 듯한 양상이 있었다.

이러한 행동은 단 한 번도 명시적으로 설계되지 않았고, 오직 “학습 과정에서 다양한 recurrence 수를 시도하여 문장 예측”만으로 습득된다.


8. 향후 과제 및 결론

연구진은 이번 시도에서, Recurrent Depth 아키텍처가 테스트 시점에서 임의로 “추가 연산”을 투입해 성능을 개선하는 가능성을 보여주었다고 했다. Chain-of-Thought를 이용하지 않음에도 불구하고, 산술·수학·코드 등에서 효과적인 개선을 보였고, per-token adaptivity나 self-speculative decoding 등 다양한 이점이 자연스럽게 형성된다.

그러나 아직 800B 토큰 정도로는 거대 모델 대비 아쉬운 점이 존재하며, 데이터 구성·초기화·lr 스케줄 등의 최적화 여지가 많다. 또한, 이 구조가 거대 규모(수십B 파라미터)에서 어떤 식으로 작동할지도 더 연구가 필요하다. 거기에 Recurrent Mixture-of-Experts, 다른 attention 기법 등과 결합하면 매우 높은 효율을 낼 수 있으리라고 기대된다.

Recurrent Depth는 또 하나의 “추가 축”으로서 test-time compute를 확장하는 유망한 접근이다. 미래의 LLM이 chain-of-thought, 파라미터 규모, 그리고 latent recurrence 등을 복합적으로 활용해, 더욱 강력한 reasoning 성능을 발휘하는 것이 기대된다.