• Turing Post Korea
  • Posts
  • Topic #26: 'Test-Time Compute'는 무엇이고, 어떻게 스케일링할까?

Topic #26: 'Test-Time Compute'는 무엇이고, 어떻게 스케일링할까?

AI 모델의 '추론' 능력을 혁신하는 'Test-Time Compute'. 그 '스케일링'을 위한 기법들

글을 시작하며

꽤 오랜 시간, AI 연구자와 스타트업들이 ‘즉각적으로 결과물을 생성하는’ 모델을 만들어 왔죠. 그런데 최근에 오픈AI의 o1 모델과 함께 등장한, ‘느린 사고 (Slow Thinking)’ 방식으로 모든게 뒤집히고 있다고 해야 할까요? 어쨌든 큰 변화가 생기고 있습니다.

모델이 ‘서두르지 않고’ 여러 단계를 거쳐서 ‘생각’할 시간을 가지면 - 다시 말해서 CoT (Chain-of-Thought) 추론이라고 알려진 과정을 거치면, 모델의 추론 (Reasoning) 능력이 놀라울 정도로 좋아진다는 걸 확인했죠. 이게 바로 ‘테스트 타임 컴퓨트 (Test-Time Compute)’라는 아주 흥미로운 주제하고 연결됩니다.

오늘 에피소드에서는, ‘테스트 타임 컴퓨트’에 대해서 좀 폭넓게 살펴보고, 이걸 스케일링하는 다섯 가지 방법, 그리고 이 접근 방식이 AI 모델의 추론 능력을 어떻게 높여주는지 이야기해 볼까 합니다. 앞으로 AI 모델 개발, 전반적인 업계의 관점에서 아주 중요한 주제가 될 걸로 생각합니다. 조금 글이 길지만, 크게 크게 가볍게 이해해 본다는 마음으로 한 번 가 볼까요?

오늘 에피소드에서는 아래와 같은 내용을 다룹니다:

오픈AI의 o1 모델 이면에 있는 핵심 아이디어

본격적인 이야기를 하기 전에, ‘시스템 1 사고 (System 1 Thinking)’와 ‘시스템 2 사고 (System 2 Thinking)’을 간단히 짚고 넘어가면 좋겠습니다.

시스템 1 사고, 그리고 시스템 2 사고는 사람의 사고방식을 설명하는 두 가지 모델인데요, 대니얼 카너먼 (Daniel Kahneman)과 아모스 트버스키 (Amos Tversky)가 제시한 개념입니다. 이 분들은 사람이 정보를 처리하고 의사 결정을 내릴 때, 아래와 같이 두 가지의 다른 시스템을 사용한다고 봤다고 합니다.

시스템 1 사고 vs. 시스템 2 사고. Image Credit: The Decision Lab

시스템 1 사고란 건 ‘빠르고 직관적인 사고 방식’으로, 자동적이고 무의식적으로 작동합니다. 노력이나 집중이 거의 필요없고, 감정과 경험에 근거하기 때문에 빠른 판단에 유리합니다 - 뜨거운 커피잔을 잡고 바로 손을 놓는 것처럼요. 그렇지만 오류의 가능성이 높고 편향에 취약하죠.

시스템 2 사고는 ‘느리고 신중한 사고 방식’으로, 의식적이고 계획적으로 작동합니다. 집중과 노력이 필요하고, 논리적 추론에 근거하기 때문에 복잡한 문제 해결에 유리하죠 - 수학 문제 풀이나 중요한 결정 등을 내릴 때가 시스템 2 사고가 작동하는 예시입니다. 정확하지만 시간과 노력이 많이 소요되구요.

물론, 이 시스템 1 사고와 시스템 2 사고는 상호 보완적이고, 상황에 따라 적절한 방식을 선택하는 것이 중요하겠죠.

수많은 개발자들, 그리고 스타트업에서 ‘즉각적 결과물을 생성’하는, ‘빠른 속도의 모델’을 추구하는 동안, 오픈AI는 o1 모델의 더 ‘심층적인 사고’에 베팅을 한 것이고, 결국 ‘Test-Time Compute’가 늘어나게 된 겁니다. 이 Test-Time Compute가 앞에서 이야기한 ‘시스템 2 사고’와 거의 일치한다고 보는데, 빠르고 직관적인 시스템 1 사고’와 반대로 느리고, 신중하고, 논리적인 추론을 하죠.

Time-Time Compute (TTC)는 무엇일까?

TTC (Test-Time Compute)는, AI 모델을 학습시킨 다음에 ‘응답을 생성하거나 작업을 수행할 때’ - Inference Time 이죠? - 사용하는 ‘컴퓨팅 자원과 능력의 양’이라고 정의하면 될 것 같습니다. 다시 말해서, 모델을 훈련할 때가 아니라, 실제로 사용할 때 필요한 처리 능력과 시간이라고 할 수 있습니다.

Test-Time Compute의 핵심적인 측면을 보자면:

  • 추론 과정 (Inference Process)
    질문이나 프롬프트를 모델에 입력하면, 모델이 입력을 처리하고 응답을 생성합니다. 이 과정의 연산 비용을 ‘Test-Time Compute’라고 부릅니다.

  • Test-Time 스케일링 (Scaling)
    오픈AI의 o1 시리즈 같은 일부 고급의 AI 모델은, 추론 과정 중에 추론 시간을 다이나믹하게 늘릴 수 있습니다. 이건 ‘복잡한 질문에 대해서는 더 많은 시간을 할애해서 ‘생각’할 수 있다는 뜻인데, 더 컴퓨팅 자원이 많이 들겠지만 정확도는 올라갑니다.

오픈AI의 o1은 최종적인 답변에 도달하기 전에 단계적인 사고 방식 - CoT (Chan-of-Thought) - 을 사용하는데, 이 때문에 o1 모델은 복잡한 문제 해결 능력이 필요한 작업에 탁월한 성과를 낼 수 있습니다.

o1은 매우 강력한 모델이지만, 폐쇄형 모델이죠. 그래서 다른 개발자들이 o1이 채택하고 있는 원칙들을 바탕으로 해서 새로운 모델을 만들고, Test-Time Compute를 스케일링하고, o1의 비밀을 밝혀서 이 새로운 기술을 AI 커뮤니티에 제공하려고 많은 노력을 했죠. 지금부터 이렇게 해서 ‘밝혀진’ o1의 핵심적인 아이디어를 살펴보고, Test-Time Compute를 스케일링하는 기법과 관련된 다섯 가지 연구에 대해서 살펴보겠습니다.

DeepSeek-R1에서 ‘Test-Time Compute’를 스케일링한 방법

DeepSeek-R1 모델 발표 이후, 모두가 이 모델의 성능, 그리고 그 뒤에 있는 강화학습 (Reinforcement Learning)의 힘에 열광하고 있죠.

그렇지만, DeepSeek이 어떤 생각으로 R1을 만드는 과정에서 강화학습 요소를 추가했는가 하는건 다서 간과되고 있지 않은가 싶습니다. 겉으로 보기에, R1은 오픈AI의 o1을 포함한 최고의 모델들과 경쟁하겠다는 마음으로 설계한 것처럼 보이지만, 실제로 DeepSeek이 DeepSeek-R1 논문에서 밝힌 중요한 목표는 ‘심층적이고도 단계적인 사고’의 원칙을 활용해서 강력한 추론 능력을 달성하겠다는 것이었죠. ‘뛰어난 뭔가를 개발하겠다’는 동기, 그리고 ‘Inference 중에 추론 능력을 향상시키겠다’는 과제에 대해서 고민하다가 DeepSeek가 Test-Time Compute를 확장하기 위한 자신만의 접근 방식을 만들어내게 되었다고 봅니다.

강화학습 (RL; Reinforcement Learning), 그리고 지도학습 파인튜닝 (SFT; Supervised Fine-Tuning)이 고급 추론 능력을 만들어내는데 어떻게 기여를 했을까요?

DeepSeek는 아래와 같이 세 가지 경로로 가능성을 탐색했습니다:

  • DeepSeek-R1-Zero
    사전 레이블링된 데이터를 전혀 사용하지 않고 강화학습만으로 모델을 훈련

  • DeepSeek-R1
    소량의 단계별 추론 예제를 사용해서 약간의 파인튜닝으로 시작하고, 그 다음에 강화학습 적용

  • 증류 (Distillation)
    DeepSeek-R1의 추론 능력을 더 작은 AI 모델로 이전해서 효율성을 높이기

세 가지 경로가 적용되는 이미지. Image Credit: Son Ov Man 블로그

그럼 각각 하나씩 살펴보겠습니다.

  • DeepSeek-R1-Zero

DeepSeek-R1-Zero는 PPO (Proximal Policy Optimization) 기법의 변형인 GRPO (Group Relative Policy Optimization) 기법을 사용해서, ‘순수한 강화학습’만으로 추론을 학습합니다.

PPO vs. GRPO. Image Credit: Ostin X

GRPO는, 별도의 가치 함수 모델 (Value Model)이 없이 ‘평균 보상’을 기준으로 그룹 내에서 행동을 비교하고 평가해서, 훈련 비용을 줄이고 성능을 향상시켜 주는데요. 이 모델은 단계별 추론을 통해서 수학 문제를 푸는 것 같은 ‘정확성’에 대해서 보상을 받을 뿐 아니라, ‘추론 과정을 구조화된 형식으로 제시’하는 것에 대해서도 보상을 받습니다.

그 결과:

  • AIME 테스트와 같은 ‘추론 벤치마크’에서 정확도를 15.6%에서 71%로 높이는 놀라운 개선을 보여줬고, 다수결 투표를 통해서 최대 86.7%까지 향상시키면서 오픈AI의 o1 수준의 성능에 도달했습니다.

  • "아하!" 모멘트: Test-Time Compute의 증가와 함께, 모델이 ‘스스로를 돌아보는 성찰’과 유사하게 보이는, 세련되고 정교한 행동을 보여줍니다. 다시 말해서, 이전 단계로 다시 돌아가서 재평가하고, 대안적인 문제 해결 방식을 탐색한다든가 하는 겁니다. 이 “아하!” 모멘트의 발견은, 모델이 ‘스스로 접근 방식을 재고하는 것이 더 답변의 결과를 좋게 만들어줄 수 있다’는 걸 보여줍니다.

  • 자체적 진화 (Self-Evolution): 시간이 지나면서 모델이 복잡한 문제 해결에 더 많은 시간을 쓰게 되고 추론 중에 더 많은 컴퓨팅 자원을 할당하게 되면서, 이런 세련된 능력이 자연스럽게 나타나는데, 따라서 명시적으로 프로그래밍을 하지 않아도 추론 능력이 향상됩니다.

Image Credit: DeepSeek-R1 논문

하지만, DeepSeek-R1-Zero는 가끔 서로 다른 언어를 섞어서 쓰거나, 답변이 체계적이지 않게 나오는 경우도 있고 해서 이해하기 어려운 점이 있었습니다. 여기서 DeepSeek-R1의 멀티 스텝 트레이닝 과정이 등장해서 문제를 해결합니다.

  • DeepSeek-R1, 그리고 ‘Cold-start Fine-tuning’과 강화학습의 결합

DeepSeek-R1은, ‘추론’에 초점을 두고 강화학습을 적용하기 전에, ‘콜드 스타트 데이터 (소량의 잘 구조화된 추론 예제 데이터)’를 활용한 파인튜닝으로 시작합니다 - 추론 작업, 그리고 일반적인 목적의 작업을 위한 데이터를 혼합해서 파인튜닝을 하구요.

나아가서, 글쓰기, 사실에 기반한 질문 답변 등을 더 잘 하고 사람의 선호도에 더 맞게 잘 응답하도록 추가적인 강화학습 기법을 사용해서 추가 개선을 합니다.

이런 단계들을 거친 DeepSeek-R1은, 훨씬 더 이해하기도 쉽고 사용자가 편하게 상호작용할 수 있는, 오픈AI의 o1-1217 같은 고급 모델과 동등한 수준의 추론 성능을 달성하는 모델이 됩니다.

Image Credit: DeepSeek-R1 논문

  • Test-Time Compute 개념을 ‘증류 (Distillation)’

그 다음으로, ‘DeepSeek-R1의 추론 능력을 ‘더 작은 모델’로 옮길 수 있다면, 강력한 추론 모델의 접근성이 더 높아지지 않을까?’ 하는 생각을 DeepSeek 연구자들이 했겠죠?

연구자들은, DeepSeek-R1으로 하여금 80만 개의 고품질 훈련 예제를 만들게 해서, 이 데이터를 가지고 Qwen이라든가 Llama 같은 오픈 소스 모델을 파인튜닝했습니다. 놀랍게도, 이렇게 증류 (Distillation)된 모델이 더 작은 모델에 직접 강화학습을 적용하는 경우보다 훨씬 뛰어난 성능을 보여줬어요:

  • 7B 사이즈의 증류 모델인 DeepSeek-R1-Distill-Qwen-7B는 추론 벤치마크에서 QwQ-32B 같은 훨씬 더 큰 모델보다도 나은 성능을 보여줬습니다.

  • 32B, 70B짜리 증류 모델은 오픈소스 AI 모델 중에서 최고의 추론 성능 기록을 세웠습니다.

Image Credit: DeepSeek-R1 논문

자, 이렇게 DeepSeek의 획기적인 시도, 그리고 발견 덕분에, 오픈AI의 모델과 동등하거나 그 이상의 성능을 보이는, 효과적인 단계별 사고를 할 수 있도록 하는, 게다가 자체적인 방법으로 만든 다양한 사이즈의 오픈소스 모델을 갖게 된 겁니다.

Test-Time Compute의 스케일링: 멀티모달 모델의 경우

위에서 DeepSeek에서 Test-Time Compute를 스케일링한 방법을 간략히 알아봤는데요.

시대는 바야흐로 ‘멀티모달리티’의 시대 아니겠어요? 연구자들이 MLLM (Multi-Modal Large Language Model, 멀티모달 거대언어모델)에도 ‘느리지만 단계적인 사고 방식’을 적용해서 추론 능력을 향상시키려고 노력을 하고 있습니다. 이 글에서는 1) 긴 형식 (Long Form)의 텍스트 추론 예제만 사용해서 모델을 파인튜닝하는 방법, 2) CoMCTS (Collective Monte Carlo Tree Search; 집단 몬테카를로 트리 서치) 기법, 그리고 3) 새로운 ‘Test-Time Verification (테스트 시간 검증)’ 모델의 세 가지 흥미로운 방법을 알아보겠습니다.

‘Long Form’ 텍스트 예제로 MLLM을 트레이닝하기

멀티모달 모델 역시 언어모델을 기반으로 구축되죠?

대부분의 MLLM은 사전 훈련된 LLM, 사전 훈련된 모달리티 인코더, 그리고 모달리티 인터페이스로 구성됩니다.
Image Credit: Ludovico Bessi 미디엄

Gaoling School of AI, Baichuan AI, 그리고 BAAI의 연구자들은 멀티모달 모델의 ‘느린 사고 능력’ - 즉 시스템 2 사고 능력 - 이 주로 언어 처리 구성 요소에서 비롯된다고 생각했습니다. 즉, 이와 관련된 기술이 다양한 유형의 모달리티를 가진 데이터 - 텍스트, 이미지 등 - 간에 전송, 전이될 수 있지 않을까 하는 생각입니다.

실제로 o1과 유사한 MLLM을 재현하는 연구에서, 모두 텍스트로만 만들어진 5,000개의 ‘Long Form’ 추론 예제만 사용해서 모델을 파인튜닝했더니, 때때로 폐쇄형 모델과 동등하거나 심지어는 능가하는 결과를 나타낸다는 게 입증이 되기도 했습니다.

Image Credit: ‘Virgo: A Preliminary Exploration on Reproducing o1-like MLLM’ 논문

연구자들이 멀티모달 (이미지 + 텍스트) 추론 데이터로 MLLM을 훈련하는 것도 해 봤지만, 이 경우 ‘텍스트 기반의 훈련’보다 크게 나은 성능을 보여주지 않았는데요. 왜일까요? 아마도 ‘많은 시각적 문제가 심층적인 추론보다는 객체 인식이나 그래프 읽기에 더 의존하기 때문’일 거라고 생각합니다.

어쨌든, 연구자들의 실험 과정에서, 멀티모달 모델의 ‘느린 사고’ 성능을 향상시켜주는 ‘Virgo (Visual Reasoning with Long Thought)’라는 새로운 시스템을 탄생시키게 되었습니다:

  • Virgo는 MathVision에서 38.4%, OlympiadBench에서 29.3%의 성능을 기록했습니다.

  • 특히, 단계별 추론을 요구하는 어려운 문제에서 가장 좋은 성능을 보여주었는데요. 예를 들어 Virgo는 어려운 질문에서 QVQ를 능가해서, QVQ의 48.6% 정확도보다 상당히 높은 54.7%의 정확도를 보여주었습니다.

Image Credit: ‘Virgo: A Preliminary Exploration on Reproducing o1-like MLLM’ 논문

하지만 Virgo에 몇 가지 문제가 있습니다:

  • 쉬운 수준과 중간 수준 난이도 구간의 질문에서는 성능이 좋지 않았는데, 이건 아마 간단한 문제에 긴 추론을 강제로 적용하면 문제를 해결하기 더 어렵게 만들기 때문이 아닐까 짐작됩니다.

  • 그리고 MMMU에서는 모델의 성능이 크게 향상되지 않았습니다. 아마 이건 MMMU에는 깊이있는 추론이 필요없는, 더 간단한 질문들이 많기 때문일 가능성이 크죠.

  • 흥미롭게도, 더 작은 Virgo-7B 모델이 멀티모달 훈련 후에 더 나은 성능을 보여줬습니다. 연구자들은, 이게 ‘시각적 데이터’가 복잡한 추론에 어려움을 겪는 더 작은 모델을 더 잘 도와주기 때문일 거라고 이야기하고 있네요.

간단히 ‘Long Form’의 텍스트 추론 예제만으로 모델을 파인튜닝해서 MLLM의 Test-Time Compute 추론 능력을 스케일링하는 법을 알아봤구요. 다음은 몬테카를로 트리 서치를 업그레이드해서 사용하는 방법을 알아봅니다.

CoMCTS (Collective Monte Carlo Tree Search) 기법 활용하기

멀티모달 거대언어모델 (MLLM)이 단계별로 생각하는 방법을 가르치기 위한 또 다른 흥미로운 아이디어를 난양 기술대학교, 칭화 대학교, 손중한 대학교, 그리고 바이두의 연구진이 생각했는데요.

(말이 좀 어렵지만) MLLM은 ‘구조화된 추론 단계’를 자연스럽게 생성하는 모델이 아니기 때문에, 답을 찾아가는 검색 과정에서 자주 ‘저품질의 추론 루프’에 갇히게 된다고 해요. 이걸 해결하기 위해서 연구자들이 CoMCTS (집단 몬테카를로 트리 서치)라고 부르는 기법을 제안했습니다.

CoMCTS는, 개념적으로 ‘단 한 개의 모델에 의존하지 않고, 대신 여러 모델의 강점을 결합하는’ 집단 학습 (Collective Learning) 개념을 활용합니다.

CoMCTS에서 ‘여러 모델이 협력한다’는 건, 단순히 여러 개의 AI 모델이 동시에 문제를 푼다는 의미 이상이라고 해요. 모델이 각자의 장점을 활용해서 서로 정보를 공유, 학습해서 더 효과적으로 문제를 풀게 되는 거죠. 모델이 협력하는 방식은 1) 다양한 관점에서 탐색을 해서 더 광범위한 해결책을 검색하고, 지역 최적화 (Local Optimization)에 빠지지 않게 하고, 2) 탐색 과정에서 얻은 정보를 공유하면서 탐색 효율성을 높이고 약점을 보완하고, 3) 이런 정보들을 종합해서 최적의 다음 단계를 선택하는 ‘집단 지성’의 구현 방식이라고 하면 될 것 같습니다.

CoMCTS에서 볼 수 있는 여러 모델의 협력 예시로는, 여러 개의 이미지 인식 모델을 사용해서 객체를 다양한 각도에서 인식하고 더 정확한 인식 결과를 얻는다든가, 여러 개의 게임 AI 모델을 사용해서 서로 다른 전략을 시뮬레이션하고 최적의 전략을 학습하는 경우 등이 있습니다.

CoMCTS가 단계별로 어떻게 작동하는지 간단히 살펴볼께요:

Image Credit: ‘Mulberry: Empowering MLLM with o1-like Reasoning and Reflection via Collective Monte Carlo Tree Search’ 논문

  1. 확장 (Expansion)
    AI 모델이 단 하나의 다음 단계를 생성하는 대신 여러 개의 가능한 다음 단계를 생성합니다.

  2. 시뮬레이션 및 오류 검사
    다양한 추론 경로를 테스트하고 잘못된 단계를 식별합니다.

  3. 역전파 (Backpropagation)
    모델이 오류로부터 학습을 하고 추론 내용을 조정합니다.

  4. 선택 (Selection)
    정확도를 계속 향상시키기 위해서 최상의 추론 경로를 선택합니다.

CoMCTS는 어떤 장점이 있을까요?

  • 여러 가지의 AI 모델을 함께 사용해서, 잘못된 추론 루프에 갇히는 것을 피할 수 있게 해 주고, 올바른 답변의 검색 속도를 크게 높여줍니다.

  • 반성적 추론 (Reflective Reasoning): 단순하게 올바른 답변을 찾는 것을 넘어서, 옳고 그른 단계를 모두 배우고, 이것들을 비교하고, 스스로의 실수를 이해하고 수정해서, 더 정확하고 자기 인식적인 (Self-Aware) 추론을 이끌어 냅니다.

Image Credit: ‘Mulberry: Empowering MLLM with o1-like Reasoning and Reflection via Collective Monte Carlo Tree Search’ 논문

CoMCTS를 사용해서 연구자들이 Mulberry-260K라는 데이터셋을 만들었습니다. 이 데이터셋은 26만 개의 멀티모달 질문과 그에 대한 단계별 해결책, 일반적인 오류 및 수정 사항 (반성적 추론 경로)를 포함하는 데이터셋입니다. 이 데이터셋으로 훈련된 Mulberry MLLM은 많이 개선된 멀티모달 추론 성능을 보여줬습니다.

  • Mulberry-7B는 Qwen2-VL-7B보다 4.2% 향상된 성능을 보여줬습니다.

  • Mulberry-11B는 LLaMA-3.2-11B-Vision-Instruct보다 성능이 7.5% 향상되었습니다.

  • 대부분의 오픈소스 AI 모델보다 성능이 뛰어났고, 최고 수준의 폐쇄형 AI 모델과 동등하게 경쟁할 수 있는 수준입니다.

  • MathVista (수학 추론 벤치마크)에서 +5.7%, MMMU에서 +3.0%의 정확도를 기록했습니다.

Image Credit: ‘Mulberry: Empowering MLLM with o1-like Reasoning and Reflection via Collective Monte Carlo Tree Search’ 논문

전반적으로, CoMCTS 같은 혁신은 ‘멀티모달 추론 역시 심층적으로, 단계적으로 수행하면서 개선할 수 있고, MLLM이 스스로 만든 실수나 오류로부터 배울 수 있다’는 점을 보여주고 있습니다.

Test-Time Verification: CoT 기법으로 이미지 생성하기

자, 연구자들의 상상력은 여기서 멈추지 않죠.

CUHK, MiuLar Lab, MMLab, 베이징 대학교, 그리고 상하이 AI 연구소의 연구자들이 함께, 단계별 추론을 통해서 ‘이미지 생성’ 작업을 더 잘 하게 해 주는 다른 방법을 모색했는데요; 바로 PARM과 PARM++라는 두 가지의 새로운 보상 모델입니다. 이 보상 모델로 ‘Test-Time Verification’이 더 잘 되도록 한다는 아이디어거든요.

Test-Time Verification (TTV)은 AI 모델이 예측이나 작업을 수행하는 Test/Inference 단계에서 모델의 성능과 신뢰도를 향상시키는 다양한 기법을 말합니다. 기본적으로 대부분의 AI 모델들이 학습 단계에서 얻은 지식을 바탕으로 테스트 단계에서 예측을 수행하지만, TTV는 테스트 단계에서도 모델이 자신의 예측을 검증하고 개선할 수 있도록 합니다.

편집자

PARM과 PARM++을 사용해서 이미지 품질을 향상시킬 수 있다는 건데, 한 번 간단히 살펴보죠.

PARM은 ‘Potential Assessment Reward Model’의 약자로, 이미지를 생성하는 중간 단계를 평가하고 품질이 낮은 결과물이 나오지 않도록 방지한다고 해요:

  • 이미지의 선명도 (Clarity) 판단
    생성되고 있는 이미지가 평가하기에 충분히 선명한지 판단합니다.

  • (이미지 품질의) 잠재력 평가
    생성되고 있는 이미지가 고품질의 최종 결과물로 이어질 수 있는지 예측합니다.

  • Best-of-N 선택: 이전의 판단 결과에 근거해서 최상의 결과를 낼 수 있는 생성 경로를 선택합니다.

PARM은, 최종 이미지만 평가하고 최상의 이미지를 선택하는 기존의 ORM (Outcome Reward Model), 그리고 중간 생성 단계를 평가하는 PRM (Process Reward Model) 대비 6% 이상 나은 성능을 보여주면서, ‘Test-Time Verification’ 모델들 중에 가장 좋은 모델의 자리에 올랐습니다.

Image Credit: ‘Can We Generate Images with CoT? Let’s Verify and Reinforce Image Generation Step by Step’ 논문

PARM++는, 여기서 더 나아가서 ‘Reflection Mechanism (성찰 메커니즘)’으로 PARM을 향상시켜서, 이미지의 자체적인 수정을 할 수 있게 합니다. 작동 방식은 다음과 같습니다:

  1. 생성된 최종 이미지가 텍스트 프롬프트와 일치하는지 평가합니다.

  2. 불일치하는 내용이 감지되면 자세한 피드백을 제공합니다.

  3. 이미지가 요구 사항을 충족할 때까지 반복적으로 개선합니다.

PARM++는 이미지 생성 성능을 최대 24%까지 향상시켜서, Stable Diffusion 3를 15% 정도 능가하는 걸로 나타나는데요. PARM++는 ‘AI가 생성한 이미지를 예술가가 작품을 다듬는 것처럼 지속적으로 개선할 수 있는 효과적인 패러다임을 제시’하고 있죠. 앞으로 이런 방식의 기법이 비디오 생성 영역에도 적용될 것으로 예상합니다.

멀티모달 모델과 관련한 ‘Test-Time Compute’ 패러다임에 대해서는 이 정도로 하죠. 이제 기존의 추론 모델을 Test-Time Compute 관점에서 더 향상시키는 기법들, 그리고 이에 기반한 RAG에 대해서 살펴보도록 하겠습니다.

Search-o1: ‘검색 (Retrieval)’과 ‘에이전트 기능’을 개선하다

중국의 인민대학교, 그리고 칭화대학교에서 함께 만든 ‘Search-o1 프레임웍’. 이 프레임웍은 오픈AI의 o1 같은 거대 추론모델 (LRM; Large Reasoning Model. 앞에서 언급한 모든 모델이 LRM이죠)과 에이전트 기반 검색 워크플로우와 통합하는 프레임웍이예요. 즉, Search-o1은 LRM이 필요할 때 외부 지식을 검색하고 불필요한 정보를 필터링해서 더 효과적으로 추론을 할 수 있게 해 줍니다.

Search-o1이 어떻게 작동하는지, 그리고 Test-Time Compute에 어떤 영향을 미치는지 살펴볼께요.

Image Credit: ‘Search-o1: Agentic Search-Enhanced Large Reasoning Models’ 논문

  • 기존 모델 (LRM 모델)이 답변을 직접 생성하는 것과 달리, Search-o1 구조에서는 뭔가 지식이 부족하다거나 할 때 추론을 일시적으로 중지합니다.

  • 그 다음 검색 질의를 구성하고, 문서를 가져오고, 검색된 정보를 통합한 다음 계속 다음 단계를 진행하죠. 당연히 질의 당 여러 문서를 검색하게 되면, 추론 중에 수행되는 연산의 횟수가 늘어납니다.

  • 모델이 하나의 추론 작업 안에서 많은 검색 단계를 필요로 한다면, 전체적인 연산 비용이 크게 증가할 수가 있다는 겁니다.

모델에 너무 많은 정보를 주지 않고 원시 문서 (Raw Documents)와 관련된 정보만 제공하고, 중복된 정보를 제공하지 않도록, Search-o1은 ‘Reason-in-Documents’ 모듈을 구현하고 있는데요. 이 모듈은 검색된 데이터를 ‘추론 체인’에 추가하기 전에, 분석, 요약, 필터링을 합니다. 그런데 여기서, 이런 추가 단계가 유용한 정보를 추출하고 압축하려고 ‘추가적인 모델 추론’을 하게 되어서, 아무래도 계산 오버헤드가 더해집니다.

‘Test-Time Compute’를 증가시키는 - 즉 연산 비용을 증가시키는 - 모든 단계에 대해서, Search-o1은 대규모 추론의 오버헤드를 줄이기 위한 최적화 기능도 제공하는데요, 그 대표적인 예가 ‘여러 개의 추론 작업을 배치로 그룹화’하는 거라고 합니다. 이 ‘배치 추론 메커니즘 (Batch Inference Mechanism)’은 아래와 같은 기능을 통해서 여러 개의 테스트 케이스를 처리할 때 중복되는 계산 비용을 줄여 줍니다:

  • 여러 개의 추론 작업에 대한 병렬 토큰 생성

  • 여러 개의 질의에 대해서 동시에 지식 검색

  • 여러 개 문서를 동시에 개선

Search-o1 기법을 활용하면 다양한 벤치마크에서 추론 능력이 크게 향상되는 결과를 볼 수 있습니다. 아래 테이블에서 한 번 확인해 보시기 바랍니다.

Image Credit: ‘Search-o1: Agentic Search-Enhanced Large Reasoning Models’ 논문

자, 여기까지 ‘Test-Time Compute 스케일링’과 관련된 혁신적인 기법을 살펴봤는데, 저희가 살펴본 것들과 다른 많은 기법이 또 있겠죠? 그 중에, 주목할 만한 세 가지 접근 방식이 더 있습니다.

3가지 기법 더, 맛만 봅시다

  1. 최근에 엔비디아가 자사의 SANA-1.5 디퓨전 트랜스포머에서 ‘추론 시간 스케일링 (Inference-Time Scaling)’ 접근 방식을 활용해서 더 정확한 이미지를 생성했죠. 모델의 크기를 늘리는 대신, SANA-1.5가 생성하는 이미지의 숫자를 늘리고, ‘AI 심판’ (NVILA-2B 모델)이 토너먼트 방식의 경쟁에서 최고 순위를 차지한 이미지를 선택합니다.

  2. 스탠포드 대학교의 연구진들은, ‘Test-Time Scaling’을 잘 하기 위한 간단한 방법을 하나 제안했는데요. 훈련 시에 아주 자세한 추론 단계가 포함되어 있는, 어렵고 다양한 질문들 1,000개로 만들어진 s1K 데이터셋을 사용합니다. 추론을 모델이 효과적으로 할 수 있도록 ‘Budget Forcing’이라고 부르는 기법을 채용했는데, 이건 모델이 생각하는 ‘시간’을 통제할 수 있도록 “기다려 (Wait)”라든가 “최종 답변을 해 (Final Answer)”라는 태그를 사용합니다. 이 기법이 지난 며칠간 또 화제가 되었죠.

  3. 베이징 교통대학에서 발표한 O1-CODER는, 강화학습과 MCTS (몬테카를로 트리서치) 기법을 활용해서 ‘코딩 작업’을 시스템 2 방식으로 하게끔 한 모델입니다. 모델이 먼저 의사코드 (Pseudocode)를 생성한 다음에, 이걸 바탕으로 전체 코드를 생성합니다. 유효성 검사를 TCG (Test Case Generator)를 사용해서 하고, 강화학습과 MCTS로 모델의 코딩 능력을 향상시키는 구조입니다.

극복해야 할 한계

지금까지 살펴본 ‘Test-Time Compute Scaling’ 접근 방식, 지금까지 추론에 있어서 역대 최고의 성능을 보여주고 있지만, 추가적으로 극복해야 할 몇 가지 제약 사항이 있습니다:

  • 과소 사고 문제 (Underthinking Issue)
    o1 및 이와 유사한 모델은, 유망한 아이디어인데도 너무 빨리 버린다거나, 여러 가지 아이디어 사이를 너무 빠르게 검토하고 뛰어넘거나 할 수 있습니다.

  • 지연 시간의 가변성 (Latency Variability)
    응답 시간이 일관되지 않습니다. 간단한 질의는 빠르게 처리하겠지만, 복잡한 질의라면 시간이 아주 오래 걸릴 수도 있어서, 실시간에 가까운 반응을 필요로 하는 어플리케이션이라면 문제가 되겠죠.

  • 잠재적인 연산 능력의 과/소 할당(Potential Over/Under Allocation)
    일부 질의는 필요한 것보다 더 많은 컴퓨팅 파워를 받을 수 있어서 비효율적이 되거나, 다른 질의는 필요보다 더 컴퓨팅 파워를 적게 받아 최적의 답변을 찾지 못할 수도 있습니다.

  • 비결정성 (Loss of Determinism)
    동일한 질의인데도 시스템의 부하 상태 또는 모델 휴리스틱 등 외부적인 요인 때문에 서로 다른 레벨의 연산을 거칠 수가 있어서, 일관성이 없는 출력이 나올 수 있습니다.

  • 예측 불가능한 비용 (Unpredictable Costs): 질의 당 비용이 아무래도 다양해서, 변동성이 큰 질의를 많이 해야 하는 사용자의 경우 예산에 대한 가시성이 떨어집니다.

맺으며: Test-Time Compute의 미래

오늘의 AI 101 에피소드에서는, Test-Time Compute의 핵심적인 아이디어, 그리고 이의 Scaling을 위한 몇 가지 오픈소스 기법을 중심으로 살펴봤습니다:

  • DeepSeek-R1의 강화학습 및 콜드 스타트 데이터를 사용한 SFT

  • 멀티모달 모델의 Test-Time Scaling을 위한 접근 방식

    • Long Form 텍스트 데이터 기반의 훈련

    • CoMCTS 기법 적용

    • Test-Time Verification 기법

  • RAG 기능 관점의 Search-o1 프레임웍

분명한 건, 앞으로 Test-Time Scaling을 위한 수많은 새로운 연구가 나올 거라는 겁니다. 지금까지의 주종이었던 ‘빠르게 추론하는 모델’을 넘어서, ‘정확하고 사려깊은 추론 과정을 위해서 더 많은 시간을 할애하는 모델’이 우리 앞에 등장했고 우리가 써 볼 수 있다는 것, 정말 놀라운 일이예요!

‘느린 사고’의 모델, Slow Thinking은 어쩌면 사람이 생각하는 방식에 더 가깝고, 따라서 사람 수준의 지능에 AI가 도달하는데 더 효과적인 경로가 될지도 모르겠습니다.

추론 (Inference)을 하는 도중에 모델의 추론 (Reasoning) 능력을 더욱 향상시키는 데 도움이 될 수도 있는 또 하나의 흥미로운 관점이 있는데요 - 바로 Test-Time Training (테스트 시간 훈련)입니다.

아라빈드 스리니바스 트위터

Test-Time Training (TTT; T3라고 저는 불러볼께요 ^.^)은 심지어 테스트, 즉 Inference 단계에서조차 모델이 계속해서 학습하고 가중치를 업데이트하는 머신러닝 기법입니다. 모델이 최종 예측을 하기 전에 테스트 데이터에 대해서 자체적인 파인튜닝을 하기 때문에 정확도가 향상됩니다. 이런 ‘차원이 다른 적응력 (Adaptability)’을 가진 모델이라면, 예상하지 못했던 시나리오와 Distribution Shift를 만나더라도 훨씬 더 잘 처리할 수 있을 겁니다.

과연, Test-Time Training, 추론 모델을 한층 더 발전시킬 다음 단계가 될까요?

보너스: 참고자료

읽어주셔서 감사합니다. 친구와 동료 분들에게도 뉴스레터 추천해 주세요!

Reply

or to participate.