오늘은 LLM 연구에서 핫한 주제인 추론(reasoning)에 대해 다뤄보려고 합니다. DeepSeek R1을 비롯해 많은 연구자들이 주목하고 있는 LLM의 강점(?)인데, LLM 연구의 맥락에서 추론이란 무엇인지, 어떻게 추론 능력을 향상시키는지 살펴보려고 해요.
*이 포스트는 Substack.com의 Ahead of AI 소식지[1]를 참고하여 작성하였습니다.
**틀린 부분이 (많이) 있을 수도 있습니다. 가감없이 피드백 부탁드립니다..
What is Reasoning?
서두에서 언급했다시피, reasoning을 직역하면 추론입니다. 추론은 사전적 정의에 따르면 '미루어 생각하여 논'하는 능력을 말하는데요, 이걸 LLM에게 가르친다면 가장 중요한 포인트는 '생각'이 되겠네요. 즉 LLM과 자연어처리의 맥락에서 추론은 단순 정답 예측이 아닌, 생각을 요하는 복잡한 문제를 풀 수 있는 능력을 말한다고 정의할 수 있겠습니다. 제가 참고한 Ahead of AI 소식지에서는 아래와 같이 reasoning을 정의하고 있어요:
In this article, I define "reasoning" as the process of answering questions that require complex, multi-step generation with intermediate steps.
작성자의 정의가 현재 LLM 연구자들 사이에서 통용되는, 가장 구체적인 의미의 reasoning인 것 같습니다. 여기서 주목할 만한 부분은 단계적으로 문제를 푼다는 것인데요, 수학 문제를 푸는 경우를 예로 들 수 있어요. 저는 종종 수학 수업 과제를 할 때 ChatGPT를 붙들고 씨름을 했었어요😂 그 당시에는 GPT가 수학 문제를 그리 잘 푸는 편이 아니었는데요, 아래 그림이 then vs. now를 잘 보여주는 것 같아요.
어쩌다 이렇게 발전한 것인지는 나중에 자세히 다루기로 하고, 이 단락에서는 학습 방식과 데이터의 차원에서 가볍게만 짚고 넘어갈게요.
GPT와 같은 생성형 언어모델은 next token prediction이라는 방식으로 데이터를 학습해요. 가령, "안녕하세요, 제 이름은 김철수"까지 주어졌을 때 그 뒤에 등장할 수 있는 단어를 예측하는 방식으로 텍스트 데이터를 학습하는 거예요. 세상에 존재하는 모든 텍스트 데이터를 학습한다고 가정했을 때, Given이라는 단어 뒤에 높은 확률로 that이 온다는 것을 학습했기 때문에 Given that … 라는 문장을 자연스럽게 생성할 수 있게 되는 것이에요.
그런데 수학 문제는 좀 달라요. 우리가 수학 문제를 풀 때는 암산으로 답만 딱 내는 경우도 있지만, 보통은 풀이과정과 함께 step-by-step으로 문제를 풀어나가다가 답을 도출하는 경우가 많아요. If a train is moving at 60 mph and travels for 3 hours, how far does it go?라는 질문에 대한 답을 내는 과정을 설명하면서 next token prediction을 반영해 "높은 확률로 '180 miles'라는 구절이 그 문장 뒤에 따라 올 것이다,"라고 말하는 건 직관적으로 생각했을 때 그리 자연스럽지 않죠. 물론 데이터를 어찌저찌 구해서 해결할 수도 있겠지만, 우리가 원하는 것은 확률적으로 답을 때려맞히기보다는 60 ⨉ 3 = 180이라는 곱셈 규칙을 바탕으로 답을 도출하는 언어모델이에요. 이걸 언어모델의 '추론'이라고 하는 것이죠. 그래서 '추론'을 강점으로 하는 모델들은 수학 문제를 푸는 벤치마크(MATH[2] 등)를 평가 지표로 활용하는 경우가 많아요.
How to Achieve Better Reasoning
제가 이 글을 쓸 때 참고한 포스트에서는 크게 네 가지 기법을 소개하고 있어요.
- Inference-time scaling
- Pure RL
- SFT + RL
- SFT + Distillation
이 포스트 자체가 DeepSeek R1의 등장을 계기로 작성된 것처럼 보여요. 실제로 R1 모델에 사용된 주요 테크닉이 강화학습(RL)이고, 얼마 후 이 모델을 기반으로 경량화한 증류모델도 배포했어요. 그런데 제가 생각했을 때 이 기법들은 명확하게 '추론'을 목적으로 새롭게 개발된 기법들은 아니에요. 그래서 저는 다른 기법들은 우선 제쳐두고, inference time-scaling에 대해 조금 더 자세하게 풀어보려고 해요.
인공지능 모델을 논할 때 (특히 컴퓨팅 자원이나 시간 등) training time, test time이라는 용어가 자주 등장해요. 말 그대로 학습 / 테스트 시점 의미하는데요, test time은 학습을 마친 인공지능을 사용하는 시점을 말해요. Inference time이란 용어로 혼용되기도 하고요. Scaling은 보통 사이즈를 키우는 맥락에서 사용되는 단어인데요, 모델의 크기를 키우거나 사용되는 컴퓨팅 자원을 늘릴 때 이런 표현을 써요. 종합하면, inference-time scaling은 일반적으로 inference time에서 컴퓨팅 자원의 사용을 늘림으로써 성능 향상을 기대하는 것을 말해요.
제일 유명한 예시가 Let's think step-by-step이죠. Chain of Thought 기법의 하나로 등장했었는데요, 모델에게 문제를 풀게 하면서 '차근차근 생각해보자,'라고 한 마디 보태주면 문제를 더 잘 푼다는 발견이었어요.
최근에 스탠포드 연구팀에서 발표한 "s1: Simple test-time scaling" 논문에서는, 1천 개의 샘플로 fine-tuning시킨 뒤, inference 시에 <Wait>이라는 토큰으로써 모델이 응답 생성을 중단하지 않게끔, 자신의 기존 답이 틀렸다면 그것을 알아서 수정하게끔 강제했다고 해요. Inference time에서 응답 길이를 늘렸다는 점에서 연구진이 이를 budget-forcing이라고 칭했는데요(응답 길이가 늘어날수록 자원 사용 및 요금이 비싸짐), 궁극적으로는 추론을 향상시키기 위한 목적으로 이런 기법을 사용했다고 보면 될 것 같아요.
What's Next?
여기서부터는 제 생각이지만… 애시당초에 '추론'이라는 개념 자체가 누가 어느 맥락에서 정의하느냐에 따라 그 구체적인 형태(?)가 달라진다고 생각해요. 그래서 논리적으로 생각하는 '과정'보다 복잡한 문제를 잘 설명하고 푼다는 '결과'에 초점이 가 있는 듯하고요. 위에서 언급된 RL이나 inference-time scaling도 '논리적인 사고'를 기술적으로 구현했다기보다는, 경험적인 시도가 낳은 발견이라고 생각해요. 앞으로 나아갈 연구의 방향은.. 방금 이야기했던 것처럼 논리적인 사고가 무엇인지에 대한 고찰을 바탕으로 이를 기술적으로 (보다 단순하고 비용효율적인 측면에서) 구현하는 게 아닐지, 하는 생각이 드네요.
그럼 이만 총총~
[1] S. Raschka, “Understanding Reasoning LLMs,” Sebastianraschka.com, Feb. 05, 2025. https://magazine.sebastianraschka.com/p/understanding-reasoning-llms (accessed Feb. 12, 2025).
[2] D. Hendrycks et al., “Measuring Mathematical Problem Solving With the MATH Dataset,” arXiv.org, 2021. https://arxiv.org/abs/2103.03874 (accessed Feb. 12, 2025).
[3] T. Kojima, S. S. Gu, M. Reid, Y. Matsuo, and Y. Iwasawa, “Large Language Models are Zero-Shot Reasoners,” arXiv.org, 2022. https://arxiv.org/abs/2205.11916 (accessed Feb. 13, 2025).
[4] N. Muennighoff et al., “s1: Simple test-time scaling,” arXiv.org, 2025. https://arxiv.org/abs/2501.19393 (accessed Feb. 13, 2025).
'newsie' 카테고리의 다른 글
[Fortnightly Tech Digest] New Year's Edition (1) | 2025.02.01 |
---|---|
[Fortnightly Tech Digest] Year-End to New Beginnings (0) | 2025.01.05 |
[Fortnightly Tech Digest] December's First Half (0) | 2024.12.22 |
[Fortnightly Tech Digest] Emergency Leave (1) | 2024.12.09 |
[Fortnightly Tech Digest] Special Topic: Agentic RAG (0) | 2024.11.24 |