ZGCM-1, 7B로 수백B급과 맞서는 법, 외우지 않고 찾아내는 모델
처음부터 학습한 7B dense 모델 ZGCM-1이 내부 추론과 외부 검색을 묶어 수학과 에이전틱 검색에서 대형 프론티어 모델과 경쟁하는 구조와 학습법을 해설합니다.
원문 논문 보기
arXiv에 2609.13356번으로 공개된 ZGCM-1: A Fully Open and Extremely Efficient Foundation Model for Math and Agentic Search는 7B dense 모델을 처음부터 학습시켜 수학 추론과 에이전틱 검색에서 자신보다 수십 배 큰 프론티어 모델들과 경쟁하게 만들었다고 주장합니다. 원문 논문 링크는 제목 아래에 걸어두었습니다.
이 주장이 눈에 밟힌 이유는 단순합니다. 보통 7B 모델은 가볍고 빠르지만 어려운 수학이나 긴 검색 과제에서는 큰 모델을 따라가기 어렵다고 여겨졌기 때문입니다. 그런데 이 논문은 모델 크기를 키우는 대신 생각하는 방식과 도구를 쓰는 방식을 바꾸면 격차를 좁힐 수 있다고 말합니다. 오늘 글에서는 그 말이 실제로 어떤 설계로 이어졌는지, 어디까지 믿을 수 있고 어디부터 조심해야 하는지 차근차근 풀어보겠습니다.
왜 7B짜리 논문을 다시 열어봤을까
제가 이 논문에서 가장 흥미롭게 본 부분은 숫자보다 전제였습니다. 작은 모델은 열린 웹을 통째로 외울 수 없다는 선언이었죠. 처음에는 다소 비관적으로 들립니다. 그런데 곱씹어보면 오히려 해방감을 주는 문장이기도 합니다. 외우는 일을 포기하면, 대신 무엇을 잘해야 하는지가 분명해지기 때문입니다.
저는 평소에 작은 모델을 만질 때마다 같은 고민을 합니다. 파라미터가 적으면 세상의 사실을 다 넣을 수 없는데, 그렇다면 이 모델에게 무엇을 기대해야 할까요. 암기 과목에서 만점을 바라지 말고, 모르는 것을 인정하고 찾아내는 능력을 기대해야 할까요. ZGCM-1은 바로 그 질문에 답하는 쪽으로 설계됐습니다. 내부에서 신중하게 생각하고, 바깥에서 적극적으로 도구를 쓰는 일을 엮으면 용량의 한계를 넘을 수 있다는 것입니다.
그렇다면 검색을 잘하는 모델은 예전에도 있지 않았을까요. 물론 있었습니다. 검색 증강이라는 이름으로 문서를 붙여서 답하는 모델은 이미 많았죠. 그런데 이번 이야기는 문서를 하나 붙이고 끝내는 수준이 아닙니다. 검색하고 읽고 다시 질문하고, 그 과정을 학습의 대상으로 삼는 쪽에 가깝습니다. 저는 여기서 멈칫했습니다. 검색을 추론 바깥의 편의 기능으로 보지 않고, 추론 자체의 일부로 본다는 점이 달랐기 때문입니다.
작은 모델은 외울 수 없다는 선언부터 시작합니다
여러 사람이 함께 일하다 보면, 모든 것을 외우는 사람보다 모르는 것을 빨리 찾아내는 사람이 더 일을 잘하기도 합니다. 그렇다면 작은 언어 모델에게도 같은 전략이 통할까요. ZGCM-1의 출발점은 바로 여기입니다.
큰 모델은 웹의 상당 부분을 파라미터 안에 압축해 넣는 방식으로 동작합니다. 수도 없이 본 표현과 사실을 가중치에 녹여두고, 질문이 오면 그 안에서 답을 꺼내죠. 그런데 7B 규모에서는 이 방식이 물리적으로 버겁습니다. 담을 수 있는 그릇이 작은데 세상은 너무 넓기 때문입니다. 억지로 외우려 하면 자주 본 것만 어렴풋이 기억하고, 드물게 본 것은 틀리게 말하는 일이 생깁니다.
문제는 그다음입니다. 외우지 못한다면 모델은 어떻게 답해야 할까요. 논문이 제시하는 답은 두 가지를 묶는 것입니다. 하나는 deliberate internal thinking, 즉 성급하게 답하지 않고 안에서 단계를 밟아 생각하는 일입니다. 다른 하나는 active external tool use, 즉 바깥 도구를 부지런히 두드려 정보를 가져오는 일입니다. 따로 보면 특별할 것 없어 보이지만, 이 둘을 처음부터 함께 학습하도록 설계했다는 점이 다릅니다.
실제 시스템 관점에서 보면 다음 질문이 바로 생깁니다. 생각을 깊게 하면 토큰이 늘고, 도구를 자주 쓰면 왕복 시간이 늘어납니다. 그렇다면 작은 모델이 얻는 효율은 어디에서 오는 걸까요. 이 질문을 붙잡고 있어야 뒤에 나오는 구조와 학습 이야기가 제대로 읽힙니다.

생각과 검색을 한 몸으로 묶는다는 발상
표면적으로 보면 단순합니다. 생각하고 검색하면 된다는 말처럼 들리기 때문입니다. 실제로는 그렇지 않습니다. 생각과 검색을 어떻게 엮느냐에 따라 모델의 행동이 완전히 달라지기 때문입니다.
흔한 검색 증강은 순서가 고정돼 있습니다. 질문이 오면 검색하고, 문서를 읽고, 답을 씁니다. 검색은 한 번, 추론은 그다음이라는 식이죠. 그런데 어려운 수학 문제나 여러 단계의 검색 과제는 이렇게 풀리지 않습니다. 중간 답을 보고 다음 검색어를 바꿔야 하고, 검색 결과를 보고 추론 방향을 틀어야 합니다. 일종의 탁구처럼 공이 계속 오가야 합니다.
ZGCM-1이 겨냥한 것은 바로 이 오고 감입니다. 내부 생각이 다음 도구 호출을 정하고, 도구 결과가 다시 내부 생각을 고치는 순환을 학습의 중심에 둔 것입니다. 생각해보면 사람도 비슷하게 배웁니다. 수학 문제를 풀 때 한 번에 답을 쓰지 않고, 정리를 찾아보고 식을 고쳐 쓰면서 조금씩 좁혀가죠. 그 과정에서 중요한 것은 정답 자체보다 다음에 무엇을 확인할지 아는 감각입니다.
저는 이 숫자보다 그 뒤의 구조가 더 중요하다고 봅니다. 7B라는 크기는 그대로인데, 모델이 정보를 다루는 순서가 바뀌었기 때문입니다. 파라미터 안에 답이 없으면 바깥에서 가져오면 됩니다. 다만 언제, 무엇을, 어떻게 가져올지를 스스로 판단해야 합니다. 그렇다면 학습 데이터는 정답만 담으면 될까요. 아닙니다. 찾아가는 과정 자체가 데이터가 되어야 합니다. 뒤에서 다룰 결정 과정 이야기가 바로 이 지점과 연결됩니다.
공개라는 말을 다시 묻게 되는 지점
요즘은 많은 모델이 오픈이라고 말합니다. 그런데 막상 들여다보면 가중치만 공개된 경우가 많습니다. 어떻게 학습했는지, 어떤 데이터를 어떤 순서로 먹였는지, 중간에 무엇이 바뀌었는지는 알기 어렵죠. 재현하려고 해도 같은 출발선에 설 수 없습니다.
ZGCM-1이 말하는 fully open은 결이 다릅니다. 사전 학습과 중간 학습, 후학습 단계의 가중치를 내놓고, 중간 체크포인트까지 함께 푼다고 합니다. 학습 코드와 데이터 레시피, 그리고 학습 기록 로그까지 묶어서 공개한다는 설명도 뒤따릅니다. 저는 이 대목을 읽으면서 공개의 기준이 바뀌고 있다는 느낌을 받았습니다. 결과물만 여는 것이 아니라 과정을 여는 쪽으로 말이죠.
이 차이는 생각보다 중요합니다. 가중치만 있으면 결과는 쓸 수 있지만 이유는 알기 어렵습니다. 반면 중간 체크포인트와 로그가 있으면 성능이 어느 단계에서 올라갔는지, 어떤 학습 선택이 실제로 먹혔는지 따라가 볼 수 있습니다. 저희가 새로운 AI 아키텍처를 볼 때도 benchmark 숫자만 보지는 않습니다. 실제로 무엇이 바뀌었고, 그 변화가 시스템에서 어떤 비용 구조를 만드는지를 함께 봅니다. 그런 점에서 과정 공개는 숫자를 검증하는 도구가 됩니다.
여기서는 조금 조심해서 읽을 필요가 있습니다. 공개 범위가 넓다고 해서 누구나 같은 모델을 처음부터 다시 학습할 수 있다는 뜻은 아니기 때문입니다. 컴퓨팅 비용과 데이터 준비, 운영 경험이라는 벽은 여전히 남습니다. 그럼에도 방향은 분명합니다. 검증 가능한 공개는 논문의 주장을 구호가 아니라 확인할 수 있는 기록으로 바꾸기 때문입니다. 그렇다면 이렇게 열린 기록 위에서 무엇을 먼저 확인해야 할까요. 저는 학습 효율 이야기로 들어가 보고 싶습니다.

256K를 버티게 만든 엇갈린 어텐션 구조
긴 문맥은 에이전트에게 필수에 가깝습니다. 검색 결과를 여러 개 읽고, 이전 시도와 비교하고, 다음 행동을 정하려면 한 번에 보는 창이 넓어야 하기 때문입니다. 그런데 창을 넓히면 계산과 메모리가 함께 늘어납니다. 7B처럼 작은 모델이라도 256K를 그대로 처리하면 부담이 커지죠.
ZGCM-1은 이 문제를 어텐션을 엇갈리게 배치하는 방식으로 풀었다고 합니다. gated sliding-window 어텐션과 full 어텐션을 번갈아 두는 구조입니다. 짧게 보는 층에서는 주변만 훑고, 가끔 전체를 보는 층에서 멀리 떨어진 정보를 연결하는 식이죠. 매일 쓰는 비유로 바꾸면, 평소에는 바로 앞 페이지만 읽다가 일정 간격으로 목차를 펼쳐 전체 흐름을 확인하는 것과 비슷합니다.
이 구조가 흥미로운 이유는 효율과 기억을 함께 노리기 때문입니다. sliding-window는 계산을 아끼고, full 어텐션은 먼 의존성을 붙잡습니다. 게이트가 곁들여지면서 어떤 정보를 흘려보내고 어떤 정보를 남길지를 조절합니다. 물론 게이트가 있다고 해서 긴 문맥의 어려움이 사라지는 것은 아닙니다. 바늘 찾기처럼 먼 곳의 작은 단서를 정확히 집는 일은 여전히 어렵습니다. 다만 모든 층에서 전부 보지 않아도 된다는 점에서 256K라는 길이를 감당할 체력이 생깁니다.
실제 서빙을 떠올리면 또 다른 질문이 생깁니다. 긴 문맥에서 속도를 가르는 것은 연산량만이 아니라 메모리 대역폭과 KV 캐시 크기인데, 이 엇갈린 배치가 실제 지연 시간과 처리량에 어떤 흔적을 남길까요. 논문이 전하는 효율 수치는 사전 학습의 손실 도달 시간에 초점이 맞춰져 있습니다. 그래서 저는 구조 이야기를 효율 수치와 바로 직결시키기보다, 긴 검색 과정을 버티기 위한 체력으로 읽는 편이 정확하다고 봅니다.
학습을 4배 넘게 앞당긴 FP8 Muon이라는 선택
학습 효율 이야기로 들어가면 숫자가 등장합니다. 16K 사전 학습에서 손실 도달 시간이 약 4.2배 개선됐다는 대목입니다. 저는 이런 배율 숫자를 볼 때마다 조건을 먼저 찾습니다. 무엇과 비교해서, 어떤 구간에서, 어떤 정밀도로 잰 것인지가 중요하기 때문입니다.
논문이 밝힌 조합은 stable FP8 Muon optimizer입니다. 풀어 쓰면 낮은 정밀도인 FP8로 계산하면서도 학습을 안정적으로 유지하는 최적화 방식을 썼다는 뜻입니다. Muon이라는 이름이 낯설 수 있는데, 가중치 업데이트 방향을 더 곧게 잡아주는 계열의 최적화로 이해하면 됩니다. 낮은 정밀도는 속도와 메모리에서 이득을 주지만, 자칫하면 학습이 흔들립니다. 그래서 안정화 장치가 함께 붙습니다.
여기서 재미있는 질문이 생깁니다. 정밀도를 낮추면 정말 같은 손실에 더 빨리 닿을까요. 답은 조건부입니다. 연산 자체는 빨라지지만, 흔들림을 잡는 데 추가 비용이 들 수 있기 때문입니다. 논문의 4.2배라는 수치는 그런 흔들림까지 다스린 뒤 16K 구간에서 같은 손실에 도달하는 데 걸린 시간을 비교한 결과로 읽힙니다. 저는 이 숫자를 그대로 믿기 전에 조건을 봐야 한다고 생각합니다. 하드웨어가 무엇인지, 배치 크기와 시퀀스 길이는 어떻게 맞췄는지, 비교 대상 최적화가 무엇인지에 따라 해석이 달라지기 때문입니다.
그럼에도 이 선택이 주는 메시지는 분명합니다. 모델을 키우지 않고도 학습의 시간당 진도를 바꿀 수 있다는 것입니다. 작은 팀이나 제한된 예산에서는 이 차이가 크게 다가옵니다. 며칠 걸릴 학습이 하루로 줄면 시도 횟수가 늘고, 시도 횟수가 늘면 설계가 daring해질 수 있기 때문입니다. (괄호 안에 덧붙이면, 저는 이런 효율 개선을 모델 점수보다 먼저 실험 문화의 변화로 봅니다. 빨리 실패할 수 있으면 더 어려운 질문을 던질 수 있으니까요.)

16K에서 256K까지 조금씩 늘려가는 커리큘럼
긴 문맥을 처음부터 통째로 학습시키는 일은 쉽지 않습니다. 처음부터 256K를 먹이면 계산이 무겁고, 모델도 어디에 집중해야 할지 헤매기 쉽습니다. 그래서 ZGCM-1은 중간 학습에서 16K와 64K, 256K를 단계적으로 늘리는 커리큘럼을 썼다고 합니다.
이 방식은 운동에 비유하면 이해가 쉽습니다. 처음부터 마라톤을 뛰지 않고 짧은 거리에서 자세를 잡은 뒤 조금씩 거리를 늘리는 셈이죠. 짧은 문맥에서는 기본적인 추론과 도구 사용의 틀을 잡고, 중간 길이에서는 여러 문서를 엮는 법을 익히고, 긴 길이에서는 멀리 떨어진 단서를 연결하는 법을 다집니다. 단계마다 모델이 배워야 할 일이 달라집니다.
그런데 커리큘럼은 말처럼 단순하지 않습니다. 짧은 구간에서 너무 오래 머물면 긴 구간 적응이 늦어지고, 너무 빨리 늘리면 앞에서 배운 것이 흔들립니다. 데이터 분포도 함께 바뀌어야 합니다. 짧을 때는 단일 질문과 답 위주로, 길어질수록 검색 기록과 중간 메모가 섞인 궤적이 필요해지기 때문입니다. 논문이 progressive라는 표현을 쓴 것도 이런 점진적 조정을 강조하려는 것으로 읽힙니다.
저는 여기서 구체적인 장면을 떠올립니다. 밤사이 검색 로그가 쌓이고 아침에 에이전트가 이어서 일해야 하는 상황을 가정해 보죠. 전날의 시도가 수만 토큰으로 쌓여 있어도, 모델이 앞부분의 가설과 뒷부분의 증거를 연결하지 못하면 같은 검색을 반복하게 됩니다. 커리큘럼으로 긴 흐름을 읽는 체력을 기른 모델은 이런 반복을 줄일 가능성이 있습니다. 물론 길게 본다고 해서 항상 정확해지는 것은 아닙니다. 길어질수록 헛된 연결을 만들 위험도 함께 커지기 때문입니다. 그래서 다음에 다룰 결정 과정의 정리가 중요합니다.
대화 기록을 결정 과정으로 다시 쓰는 이유
에이전트의 하루는 대화처럼 보이지만, 학습 관점에서는 결정의 연속입니다. 무엇을 보고, 무엇을 부르고, 무엇을 물을지 고르는 일이 반복되죠. ZGCM-1은 이런 상호작용 기록을 Markov Decision Process로 다시 정리했다고 합니다. 어렵게 들리지만 발상은 정직합니다. 과거 전체를 뭉뚱그려 외우기보다, 지금 상태에서 다음 행동을 고르는 문제로 바꾸겠다는 것입니다.
왜 이렇게 바꿀까요. 긴 상호작용을 통째로 배우려 하면 앞뒤가 얽혀서 무엇이 좋은 선택이었는지 알기 어렵습니다. 반면 상태와 행동, 보상이라는 틀로 자르면 각 순간의 선택을 평가할 수 있습니다. 어떤 검색어가 좋은 문서를 불렀는지, 어떤 추론이 헛걸음을 줄였는지 따져볼 수 있죠. 일종의 오답 노트처럼요. 잘된 궤적은 남기고, 막힌 궤적은 어디에서 틀었는지 표시하는 셈입니다.
이 관점이 검색 행동을 바꾸는 지점은 분명합니다. 모델은 답을 맞히는 법을 넘어, 다음 수를 두는 법을 배웁니다. 검색 결과가 기대와 다르면 쿼리를 어떻게 고칠지, 증거가 부족하면 멈추고 더 찾을지 말지를 판단합니다. 생각해보면 사람이 검색을 잘한다는 말도 답을 외운다는 뜻이 아닙니다. 다음 클릭을 잘 고른다는 뜻에 가깝죠. 논문이 agentic search라는 표현을 쓰는 이유도 여기에 있다고 봅니다.
다만 여기서 과장하지 않으려 합니다. 결정 과정으로 정리했다고 해서 모델이 진짜로 장기 계획을 세운다는 보장은 아니기 때문입니다. 눈앞의 보상만 좇다가 돌아가는 길을 택할 수도 있습니다. 저는 그래서 이 부분을 아키텍처의 선언이 아니라 학습 데이터의 문법으로 읽습니다. 궤적을 어떤 형식으로 정리하느냐가 모델이 배울 수 있는 행동의 상한을 정한다는 뜻입니다. 그렇다면 이런 문법 위에서 훈련된 모델이 실제로 큰 모델들과 어깨를 나란히 할까요. 이제 결과 이야기로 넘어갈 차례입니다.

235B급과 나란히 놓인 7B를 어떻게 읽어야 할까
논문이 전하는 결과는 도발적입니다. 7B 모델이 Qwen3-235B-A22B나 GLM-5.1 같은 훨씬 큰 모델들과 수학 추론과 에이전틱 검색 묶음에서 경쟁한다는 것입니다. 크기 차이가 수십 배에 달하는데 같은 표에 이름을 올렸다는 점에서 눈길이 갑니다.
이 숫자는 그대로 믿기 전에 조건을 봐야 합니다. 경쟁이라는 말은 모든 과제에서 이겼다는 뜻이 아닙니다. 특정한 수학 및 검색 묶음에서 어깨를 나란히 했다는 뜻에 가깝습니다. 게다가 큰 모델이 도구를 쓰지 않고 답한 결과와 작은 모델이 도구를 부지런히 쓴 결과를 나란히 놓으면, 비교의 규칙 자체가 달라집니다. 도구를 쓰는 쪽이 유리한 과제에서는 작은 모델이 앞서 보일 수 있기 때문입니다.
그렇다고 이 결과를 깎아내리고 싶지는 않습니다. 오히려 질문을 바꿔야 합니다. 같은 예산을 어디에 쓸지 고르는 일이라고 보면, 이 결과는 의미가 분명해지기 때문입니다. 파라미터를 늘리는 데 예산을 쓰는 대신, 긴 문맥을 버티는 구조와 도구를 쓰는 행동, 그리고 그것을 가르치는 학습에 예산을 쓴 선택이 통했다는 뜻입니다. 저희 팀 관점에서도 이런 선택은 낯설지 않습니다. 서빙 비용과 지연 시간을 함께 보면, 무거운 모델 하나보다 가볍고 부지런한 모델이 더 나은 답이 될 때가 있기 때문입니다.
물론 반론도 있습니다. 도구 호출이 잦아지면 전체 응답 시간은 길어지고, 외부 검색 품질에 따라 답이 흔들릴 수 있습니다. 큰 모델이 안에서 바로 답하는 것과 작은 모델이 바깥을 오가며 답하는 것은 운영의 성격이 다릅니다. 그래서 저는 이 대결을 크기 대 크기보다는 전략 대 전략으로 봅니다. 외워서 답하는 전략과 찾아서 답하는 전략 중에서, 어떤 과제에서는 후자가 더 합리적이라는 것을 보여준 셈입니다. 문제는 그다음입니다. 이 전략이 어디까지 통하고 어디부터 무너질까요.

그래서 다음에는 무엇을 지켜봐야 할까
앞에서 미뤄뒀던 질문으로 돌아올 차례입니다. 이 흐름은 어디까지 이어질 수 있을까요. 저는 세 가지를 보고 싶습니다. 하나는 긴 검색에서의 실패 방식, 하나는 효율 수치의 재현 가능성, 그리고 하나는 공개된 기록이 실제로 어떤 후속 연구를 낳는지입니다.
먼저 실패 방식입니다. 도구를 쓰는 모델은 틀릴 때 사람처럼 틀립니다. 잘못된 검색어에 집착하거나, 그럴듯한 문서 하나에 끌려가거나, 중간 메모를 잃어버리고 같은 곳을 맴돕니다. 이런 실패는 정답률 숫자만으로는 잘 보이지 않습니다. 궤적을 열어봐야 합니다. 공개된 체크포인트와 로그가 있다면, 어느 학습 단계에서 이런 헤맴이 줄었는지 따라가 볼 수 있을 것입니다. 제가 앞으로 보고 싶은 것은 바로 그 장면입니다. 점수가 아니라 헤맴이 줄어드는 과정 말이죠.
다음은 효율입니다. 4.2배라는 수치는 16K 사전 학습의 손실 도달 시간에 대한 이야기입니다. 전체 학습 비용이나 추론 비용, 긴 문맥에서의 실제 처리량을 대신하지 않습니다. 같은 FLOPs가 같은 하드웨어 비용을 뜻하지 않듯이, 사전 학습의 빠르기가 곧바로 서빙의 가벼움으로 이어지지는 않기 때문입니다. 실제 시스템 관점에서 보면 메모리와 대역폭, 동시 요청 처리, 프리페치 같은 변수가 남습니다. 숫자를 의심하자는 말이 아니라, 숫자의 자리를 정확히 두자는 뜻입니다.
마지막은 공개의 파급입니다. 사전 학습부터 후학습까지의 가중치와 중간 기록, 코드와 데이터 레시피, 학습 로그가 함께 열리면 다른 팀이 같은 길을 밟아볼 수 있습니다. 어떤 커리큘럼 단계가 가장 예민했는지, 어떤 도구 궤적이 학습에 가장 도움이 됐는지, 작은 모델의 도구 사용이 어떤 과제에서 먼저 무너지는지를 바깥에서도 물을 수 있게 됩니다. 저는 이 지점에서 논문의 제목을 다시 읽습니다. Fully open이라는 말이 수식처럼 붙은 것이 아니라, 효율이라는 주장과 짝을 이루는 증거의 방식으로 붙었다고 말이죠.
그렇다면 사람의 역할은 무엇일까요. 모델이 스스로 찾아내는 시대일수록 무엇을 찾아내게 할지, 그리고 어떤 찾음을 좋은 찾음이라고 부를지가 더 중요해질 것입니다. 외우지 않는 모델을 만드는 일보다, 잘 찾는 모델을 알아보는 일이 어려워질 수도 있습니다. 그 질문을 안고 원문 논문 링크가 걸린 제목 아래에서부터 다시 읽어보시면, 이 7B 모델의 이야기가 조금 다르게 들릴 것입니다.
