IMO 금메달의 열린 레시피, Nemotron이 올림피아드 수학을 푸는 법
자연어 증명 생성에 감독 파인튜닝과 강화학습, 생성과 검증과 다듬기의 테스트타임 탐색을 결합해 IMO 2026에서 30점을 만든 Nemotron의 공개 레시피를 해설합니다.
원문 논문 보기
이번에 다룰 연구는 An Open Recipe for IMO Gold: Training Nemotron for Olympiad Mathematics로, Nemotron 연구팀이 arXiv 2609.10712로 공개한 논문입니다. 원문 링크는 제목 아래에 걸려 있습니다. 이 연구가 내세우는 주장은 한 문장으로 정리됩니다. Nemotron 3 Ultra에서 출발해 감독 파인튜닝과 강화학습으로 다듬은 전문가 체크포인트 둘에 생성과 검증과 다듬기를 반복하는 테스트타임 탐색을 얹으면, 형식 증명기나 외부 도구나 인터넷 없이 자연어만으로 IMO 2026에서 42점 만점에 30점을 받아 금메달 기준선에 도달할 수 있다는 것입니다.
이 점수 자체도 놀랍지만, 제가 이 글을 쓰기로 마음먹은 이유는 점수보다 과정이 공개됐다는 데 있습니다. 학습 데이터와 학습 코드와 추론 코드, 제출한 풀이, 새로 만든 200문제짜리 올림피아드 벤치마크까지 함께 풀렸기 때문에, 다른 팀도 같은 길을 따라가며 확인할 수 있죠. 그래서 오늘 글에서는 점수를 축하하는 데서 멈추지 않고, 어떤 선택이 점수를 만들었는지, 그 선택이 왜 필요했는지, 그리고 어디까지 믿어야 하는지를 차례로 풀어보려고 합니다.
왜 이 논문을 끝까지 읽게 됐을까
안녕하세요, 패트릭입니다. 저는 평소에 수학 벤치마크 점수가 새로 나왔다는 소식을 들으면 먼저 한 발 물러서서 바라보는데요. 점수는 금방 오르지만, 그 점수를 만든 과정이 설명되지 않으면 남는 것이 별로 없기 때문입니다. 그런데 이번 논문은 첫 장부터 결이 조금 달랐습니다. 모델을 키웠다는 이야기보다, 어떤 체크포인트를 고르고 어떻게 검증하고 어떻게 고쳐 썼는지를 조직적으로 따졌다는 설명이 먼저 나왔기 때문입니다.
여러분도 시험을 치러본 기억을 떠올려보시면 감이 오실 겁니다. 어려운 문제를 풀 때는 처음 떠오른 풀이를 그대로 내지 않고, 일단 써보고 틀린 부분을 찾아 고치고, 그중 가장 나은 답안 하나를 골라 냅니다. 그렇다면 언어모델도 같은 과정을 거치면 어떨까요. 이번 연구는 바로 그 질문을 붙잡고 놓지 않습니다. 학습으로 똑똑한 풀이자를 만드는 일과, 시험장에서 시간을 들여 답을 고르는 일을 분리해서 설계한 것이죠.
제가 이 논문에서 가장 길게 눈이 머문 부분은, 자연어 증명이라는 선택을 끝까지 밀어붙였다는 점입니다. 형식 언어로 바꾸면 기계가 정답을 확인할 수 있어서 편하지만, 올림피아드 문제는 원래 사람이 읽는 글로 출제되고 사람이 읽는 글로 채점됩니다. 연구팀은 그 어려운 길을 그대로 가기로 합니다. 기계가 확인하기 쉬운 형태로 문제를 바꾸는 대신, 사람이 쓰는 증명을 더 잘 쓰는 쪽으로 모델과 파이프라인을 함께 다듬은 것입니다.
올림피아드 증명은 왜 유독 어려울까
올림피아드 문제는 계산 문제와 증명 문제가 섞여 있는데, 특히 증명 문제는 언어모델에게 가혹합니다. 답만 맞히면 되는 객관식과 달리, 증명은 정의에서 출발해 보조정리를 세우고 경우를 나누고 모순을 피하면서 마지막 줄에 도달해야 합니다. 중간에 한 줄만 어긋나도 전체가 무너지는데, 그 어긋남이 겉으로는 매끈한 문장 속에 숨어 있는 경우가 많죠. 그래서 표면적으로 유창한 풀이가 실제로는 틀린 풀이인 일이 자주 생깁니다.
문제는 그다음입니다. 일반적인 수학 벤치마크에서는 짧은 답을 뽑아 정확도를 재면 되지만, 올림피아드 증명은 채점자가 풀이의 논리 구조를 읽고 점수를 줍니다. 부분 점수가 있고, 아이디어가 좋아도 논증에 구멍이 있으면 깎입니다. 이런 채점 방식에서는 모델이 한 번에 정답을 뱉는 능력을 키우는 것만으로는 부족합니다. 여러 풀이를 써보고, 어디가 허술한지 찾아내고, 그 허술한 고리를 메우는 능력이 함께 있어야 하니까요.
저는 이 지점을 실제 시스템 관점에서 보면 다음 질문이 바로 생긴다고 봅니다. 학습 때 모델 가중치에 무엇을 넣을 것인가와 별개로, 시험장에서 주어진 계산 예산을 어디에 쓸 것인가를 정해야 한다는 질문입니다. 처음부터 완벽한 증명 하나를 뽑는 데 모든 예산을 쓸 수도 있고, 그럴듯한 후보 여러 개를 뽑은 뒤 검증과 다듬기에 예산을 나눠 쓸 수도 있습니다. 이번 연구는 후자를 택하고, 그 선택을 뒷받침하는 장치들을 하나씩 쌓아 올립니다.
학습이 아니라 시험장에서 계산을 늘린다는 발상
테스트타임 컴퓨트라는 말은 이제 흔해졌지만, 막상 파이프라인으로 옮기면 결정할 일이 많습니다. 후보를 몇 개 뽑을지, 어떤 기준으로 걸러낼지, 검증자를 따로 둘지, 다듬기를 몇 번 반복할지, 마지막 제출안은 어떤 단계에서 고를지를 정해야 하죠. 이번 연구는 이런 물음에 답하면서, 생성과 검증과 다듬기를 감으로 이어 붙인 것이 아니라 각각의 효과를 나눠서 측정합니다. 어떤 체크포인트가 생성에 어울리는지, 검증은 어떤 방식으로 해야 점수로 이어지는지, 다듬기는 언제 도움이 되고 언제 헛도는지를 나누어 본 것입니다.
생각해보면 사람도 비슷하게 공부합니다. 개념을 배울 때는 교과서를 넓게 읽지만, 시험 직전에는 모의고사를 풀고 오답을 고치는 데 시간을 몰아줍니다. 학습된 실력이 같아도 시험장에서 시간을 쓰는 방식에 따라 결과가 달라지죠. 연구팀이 Nemotron 3 Ultra라는 출발점을 고정해두고, 그 위에 전문가 체크포인트를 올린 뒤, 다시 시험장 운영법을 다듬은 흐름은 바로 그 수험생의 시간표와 닮았습니다.
여기서 재미있는 질문이 생깁니다. 그렇다면 모델을 더 키우는 것과 시험장에서 더 오래 생각하게 하는 것 중 어느 쪽이 증명 문제에 더 효과적일까요. 연구팀의 답은 둘 다 필요하되 역할이 다르다는 쪽에 가깝습니다. 학습 단계에서는 올림피아드 문체와 논증 구조를 몸에 익히고, 시험 단계에서는 그 실력을 여러 후보와 반복 다듬기로 끌어올리는 것이죠. 저는 이 역할 분담이 분명해서 마음에 들었습니다. 모든 것을 하나의 거대 모델에 몰아넣는 대신, 언제 무엇을 할지를 나눈 설계이기 때문입니다.
도구를 쓰지 않았다는 말의 실제 뜻
이 논문에서 오해하기 쉬운 대목이 바로 도구 없이 자연어만으로 풀었다는 설명입니다. 요즘 수학 에이전트들은 코드를 실행하거나 계산기를 두드리거나 형식 증명기로 단계를 확인하는 경우가 많습니다. 그런데 이번 시스템은 그런 바깥 도움을 쓰지 않고, 글자로 된 증명만으로 승부합니다. 인터넷 접속도 없고, 제출된 풀이도 사람이 읽는 형태 그대로라는 것이죠.
표면적으로 보면 단순합니다. 실제로는 그렇지 않습니다. 도구를 쓰지 않는다는 것은 검증 부담이 전부 모델 쪽으로 넘어온다는 뜻이기 때문입니다. 코드 실행으로 반례를 찾을 수도 없고, 증명기로 한 줄씩 확인할 수도 없으니, 풀이가 옳은지를 판단하는 일도 언어로 해야 합니다. 그래서 검증자와 다듬기 장치가 파이프라인의 한가운데에 들어서게 됩니다. 도구를 덜 쓴 대신, 글을 읽고 글을 고치는 일을 더 많이 한 셈이죠.
저는 여기서 조금 멈칫했습니다. 도구 없이 풀었다는 말이 자랑처럼 들릴 수도 있지만, 실제로는 평가 조건을 올림피아드 현장에 맞춘 선택에 가깝기 때문입니다. IMO 시험장에서는 인터넷도 계산기도 마음대로 쓸 수 없고, 채점자는 풀이 글을 읽습니다. 연구팀이 그 조건을 그대로 재현한 덕분에, 30점이라는 숫자가 현장 점수에 가깝게 읽힙니다. 물론 그만큼 검증이 어려워지는데, 그 어려움을 어떻게 메웠는지가 다음 이야기입니다.
생성하고 검증하고 고치는 루프는 어떻게 돌아갈까
전체 파이프라인을 한 문장으로 줄이면 이렇게 됩니다. 후보 증명을 여럿 만들고, 그중 쓸 만한 것을 가려내고, 허술한 부분을 고쳐 쓰면서, 마지막에 낼 답안을 따로 고르는 것입니다. 다만 실제로 돌리면 각 단계마다 선택지가 갈립니다. 생성 단계에서는 온도를 높여 다양성을 확보할 수도 있고, 검증 단계에서는 풀이 전체를 읽고 판단할 수도 있고 단계별로 쪼개어 볼 수도 있으며, 다듬기 단계에서는 비판을 준 뒤 다시 쓰게 할 수도 있습니다.
이 루프가 돌아가는 모습을 시험장 풍경으로 바꿔보면 이해가 쉽습니다. 학생이 연습장에 풀이를 세 개쯤 써놓고, 그중 논리 비약이 적은 하나를 고른 뒤, 선생님의 빨간펜 코멘트를 보고 고쳐 쓰는 장면이죠. 연구팀의 파이프라인도 같은 리듬으로 움직입니다. 한 번에 완벽한 증명을 노리는 대신, 초고를 많이 쓰고 고치는 데 계산을 쓰는 것입니다. 이 차이는 생각보다 중요합니다. 증명처럼 긴 글에서는 처음부터 정답을 맞힐 확률보다, 고칠 수 있는 초안을 뽑을 확률이 훨씬 높기 때문입니다.
문제는 검증자가 학생보다 관대할 수 있다는 점입니다. 모델이 쓴 매끈한 글을 모델이 검증하면, 틀린 증명을 맞았다고 우기는 일이 생기죠. 그래서 연구팀은 검증 방식을 그냥 두지 않고 따로 따져봅니다. 어떤 체크포인트가 검증을 맡을 때 변별력이 생기는지, 검증을 통과한 풀이가 실제 점수로 이어지는지를 확인한 것입니다. 저는 이 대목에서 저희가 새로운 AI 구조를 볼 때 쓰는 기준과 같은 태도를 느꼈습니다. 저희가 새로운 AI 구조를 볼 때도 숫자만 보지는 않습니다. 실제로 무엇이 바뀌었고, 그 변화가 전체 비용 구조를 어떻게 바꾸는지를 함께 봅니다.
세 개의 체크포인트를 나눠 쓴 이유
이 시스템에는 Nemotron 3 Ultra 계열의 체크포인트 세 개가 들어갑니다. 하나는 누구나 쓸 수 있는 공개 모델이고, 나머지 둘은 올림피아드 수학을 위해 감독 파인튜닝과 강화학습으로 추가로 다듬은 전문가 버전입니다. 얼핏 보면 왜 세 개나 필요할까 싶지만, 역할을 나누어 보면 납득이 갑니다. 잘 쓰는 사람과 잘 고치는 사람과 잘 고르는 사람이 꼭 같은 사람은 아니기 때문입니다.
감독 파인튜닝은 말하자면 모범 답안을 베껴 쓰며 문체를 익히는 단계입니다. 올림피아드 증명에는 특유의 호흡이 있는데, 정의를 분명히 하고 경우를 나누고 귀납 가정을 세우는 흐름이 그것이죠. 강화학습은 그다음 단계로, 써본 풀이 중에서 좋은 풀이에 보상을 주며 스스로 방향을 잡게 합니다. 이때 보상은 단순한 정답 맞춤이 아니라 증명으로서의 완성도에 가깝게 설계해야 합니다. 짧은 답을 맞히는 보상만 주면 모델이 논증을 건너뛰고 답만 외우는 쪽으로 기울 수 있으니까요.
그렇다면 세 개를 어떻게 조합했을까요. 연구팀은 생성과 검증과 최종 선택에 서로 다른 체크포인트를 배치하면서, 어떤 조합이 실제 점수를 끌어올리는지를 측정합니다. 저는 이 숫자보다 그 뒤의 구조가 더 중요하다고 봅니다. 단일 거대 모델 하나로 모든 일을 시키는 대신, 학습 이력이 다른 모델들을 각 단계의 성격에 맞게 배치한 것이기 때문입니다. 운영하는 쪽에서 보면 유지보수할 대상이 늘어난다는 부담도 있지만, 각 단계의 실패를 따로 추적할 수 있다는 이득도 있습니다. 어디서 틀렸는지를 알면 고칠 곳도 분명해지죠.
검증과 다듬기가 점수를 바꾸는 지점
검증과 다듬기는 말로 붙이면 쉬워 보이지만, 증명 문제에서는 효과가 갈립니다. 검증이 너무 관대하면 틀린 풀이가 살아남고, 너무 엄격하면 좋은 풀이까지 떨어집니다. 다듬기도 마찬가지입니다. 비판이 정확하면 한두 번 고쳐 쓰는 것만으로 논증의 구멍이 메워지지만, 비판이 엉뚱하면 멀쩡한 풀이를 망가뜨리기도 하죠. 그래서 연구팀은 검증자와 다듬기 횟수를 바꿔가며 점수 변화를 봅니다.
여기서 나온 관찰은 꽤 현실적입니다. 생성만 늘리고 검증 없이 뽑으면 점수가 금방 정체되고, 검증을 붙이면 같은 생성 예산에서도 최종 점수가 올라가며, 다듬기를 한두 차례 덧붙이면 또 한 번 올라가는 구간이 있다는 것입니다. 물론 다듬기를 무한히 반복한다고 점수가 계속 오르지는 않습니다. 어느 지점을 넘어서면 모델이 같은 실수를 맴돌거나, 오히려 논증을 복잡하게 만들면서 새로운 흠을 들여옵니다. 그래서 마지막에 계산을 많이 쓰는 별도 선택 단계를 두어, 다듬어진 후보들 가운데 제출할 답안을 고르게 한 것입니다.
개인적으로 인상 깊었던 점은, 다듬기가 만능이 아니라는 사실을 숨기지 않았다는 것입니다. 잘 쓴 초안은 고칠수록 좋아지지만, 출발부터 방향이 틀린 풀이는 고쳐도 살아나지 않는 경우가 많습니다. 이 관찰은 운영에도 그대로 이어집니다. 시험장에서 시간이 부족할 때 모든 문제에 다듬기를 균등하게 나누는 것보다, 가망 있는 풀이에 계산을 몰아주는 편이 낫다는 것이죠. 좋은 건 알겠는데, 이걸 실제로 어떻게 배분할까요. 연구팀이 제시한 답은 일괄 처리로 후보를 넓게 깔고, 뒤쪽 선택 단계에서 깊게 파는 방식입니다.
30점이라는 숫자를 어떻게 읽어야 할까
이제 숫자를 읽을 차례입니다. IMO는 6문제에 문제당 7점씩 42점 만점이고, 이번 시스템은 30점을 받아 금메달 기준선에 닿았습니다. 자연어 증명만으로, 도구 없이, 인터넷 없이 받은 점수라는 점에서 의미가 또렷합니다. 채점 방식도 현장 채점에 맞추어져 있어서, 정답 선택형 벤치마크처럼 답만 맞히고 넘어가는 점수가 아니라는 것이죠.
이 숫자는 그대로 믿기 전에 조건을 봐야 합니다. 테스트타임에 계산을 많이 쓴 결과이고, 후보를 여럿 뽑고 고르는 과정을 거친 점수라는 점을 함께 읽어야 합니다. 같은 모델을 한 번만 풀게 했을 때 점수와 비교해야 파이프라인의 기여가 드러나고, 금메달 기준선이라는 말도 해당 연도의 경계선에 기대어 있다는 점을 기억해야 합니다. 그럼에도 30점이라는 결과는 가볍지 않습니다. 올림피아드 증명에서는 1점을 올리는 데도 논증 한 고리를 메워야 하는데, 그런 고리를 여러 개 메웠다는 뜻이니까요.
여기서는 조금 조심해서 읽을 필요가 있습니다. 금메달 점수를 받았다는 말이 모델이 수학자가 됐다는 뜻은 아닙니다. 시험장 조건에서 여섯 문제를 푸는 능력과, 새로운 수학을 만드는 능력 사이에는 거리가 있습니다. 연구팀도 그 거리를 의식한 듯, 점수와 함께 풀이 전문과 벤치마크를 공개해 다른 사람들이 직접 읽고 따져볼 수 있게 했습니다. 저는 그 태도가 점수보다 더 오래간다고 봅니다. 숫자는 다음 대회에서 바뀌지만, 읽고 따질 수 있는 자료는 남아서 다음 연구의 출발점이 되니까요.
공개했다는 것이 숫자보다 오래 남는 이유
이번 공개 묶음에는 추가로 다듬은 체크포인트 둘과 학습 데이터, 학습 코드와 추론 코드, 제출한 풀이, 그리고 200문제짜리 새 벤치마크인 Nemotron IMO Bench가 들어 있습니다. 이름만 보면 자료 모음 같지만, 실제로는 재현을 위한 최소 장치가 한 상자에 담긴 셈입니다. 모델만 주고 데이터는 안 주거나, 코드는 주고 평가는 안 맞는 공개도 많은데, 이번에는 그 고리를 닫으려고 한 흔적이 보입니다.
200이라는 숫자는 가볍게 넘길 일이 아닙니다. 올림피아드 수준의 새 문제 200개를 모으는 일은 출제와 검수에만 해도 품이 많이 들고, 기존 문제와 겹치지 않게 관리해야 오염 논란을 피할 수 있습니다. 벤치마크가 공개되면 다른 팀도 같은 잣대로 잴 수 있어서, 이번 30점이 특정 문제 뭉치에 기대어 나온 것인지가 조금씩 드러나게 됩니다. 그래서 벤치마크 공개는 자신감의 표현이기도 합니다. 자기 점수를 남의 손으로 다시 재도 된다는 뜻이니까요.
저희 팀 관점에서 보면 이런 공개는 고마우면서도 부담스럽습니다. 가져다 쓸 수 있는 것이 많아지는 대신, 어디까지 믿고 어디부터 따져야 할지를 직접 정해야 하기 때문입니다. 데이터의 분포가 어떤지, 학습 코드의 기본값이 무엇인지, 추론 파이프라인의 계산 예산이 어느 정도였는지를 읽어야 진짜 비용이 보입니다. 그렇다면 이 공개물을 어떻게 써야 할까요. 저는 점수를 인용하는 데서 멈추지 말고, 검증자와 다듬기 설정을 바꿔가며 자기 문제에 맞게 다시 재는 것부터 시작하길 권합니다.
그렇다면 다음에 물을 질문은 무엇일까
앞에서 미뤄둔 질문으로 돌아올 차례입니다. 이 흐름은 어디까지 이어질 수 있을까요. 자연어 증명을 고집하면서 도구 없이 여기까지 왔다면, 다음에는 도구를 붙이는 쪽이 점수를 더 올릴 수도 있고, 검증자를 더 단단하게 만드는 쪽이 더 멀리 갈 수도 있습니다. 혹은 생성 모델 자체를 더 키우는 쪽이 남았을 수도 있죠. 연구팀이 체크포인트 선택과 검증과 다듬기를 나누어 잰 덕분에, 다음 팀은 어디에 계산을 더 얹어야 할지를 감이 아니라 측정 위에서 정할 수 있습니다.
제가 앞으로 보고 싶은 것은 세 가지입니다. 첫째, 검증자가 틀린 증명을 맞다고 하는 경우를 얼마나 줄일 수 있는지입니다. 검증이 단단해지지 않으면 생성과 다듬기를 늘려도 천장이 금방 옵니다. 둘째, 다듬기가 통하는 풀이와 통하지 않는 풀이를 미리 가르는 신호가 있는지입니다. 그 신호가 보이면 시험장 예산을 훨씬 아낄 수 있습니다. 셋째, 200문제 벤치마크에서 이번 파이프라인의 강점과 약점이 어떻게 갈리는지입니다. 대수에 강한지, 기하에 강한지, 조합 논증에서 자주 미끄러지는지를 알면 다음 학습 데이터의 방향이 정해지니까요.
이 논문이 남긴 장면은 단순합니다. 시험장 책상 위에 답안지가 여러 장 펼쳐져 있고, 누군가 빨간펜으로 고치고 있으며, 마지막에 낼 한 장을 고르는 손이 있습니다. 그 일을 사람이 하던 자리에서 공개된 모델과 공개된 코드가 해냈다는 것이죠. 그렇다면 사람의 역할은 무엇일까요. 저는 답을 내는 일보다 문제를 고르고 풀이를 읽고 다음 질문을 정하는 쪽으로 옮겨간다고 봅니다. 좋은 증명을 알아보는 눈과, 그 눈을 다음 학습과 다음 파이프라인에 옮기는 일이 남는 것입니다.