VibeThinker-3B: 3B 파라미터로 프론티어급 추론에 도달한 소형 언어 모델 (feat. Weibo AI)

VibeThinker-3B 소개: 작은 모델은 정말 추론에 약할까

새로 산 자전거를 처음 탈 때를 떠올려 봅시다. 누구나 처음에는 몇 번씩 넘어지고 비틀거리지만, 일단 균형을 잡는 감각을 익히고 나면 자전거의 크기나 무게는 더 이상 큰 문제가 되지 않습니다. 정작 중요한 것은 페달을 밟는 몸집이 아니라 균형을 잡는 요령이었던 셈입니다.

이번에 살펴볼 VibeThinker-3B 는 거대 언어 모델(Large Language Model)의 추론(reasoning) 능력에 대해 이와 비슷한 질문을 던집니다. 이 기술 보고서는 Weibo AI 연구팀이 공개한 $3$B 파라미터 규모의 소형 추론 모델로, "검증 가능한 추론(verifiable reasoning) 능력을 엄격하게 작은 모델 안에서 어디까지 끌어올릴 수 있는가"를 실증적으로 탐구합니다. 결론부터 말하면, VibeThinker-3B는 AIME26에서 94.3 점, LiveCodeBench v6에서 80.2 Pass@1을 기록하며 자신보다 수백 배 큰 DeepSeek V3.2($671$B)나 Kimi K2.5($1$T) 같은 최상위 모델과 어깨를 나란히 했습니다.

거대 모델에 집중된 추론 능력

최근 강화학습(Reinforcement Learning)이 언어 모델의 사후 학습(post-training) 단계에 깊숙이 들어오면서, 복잡한 논리 추론 능력이 크게 향상되었습니다. 다만 현재 학계와 산업계는 어려운 추론 과제의 문턱을 넘기 위해 주로 스케일링 법칙(Scaling Law) 에 따라 파라미터 규모를 키우는 방식에 의존하고 있습니다. 그 결과 프론티어급 추론 능력은 수백억에서 수천억 파라미터 규모의 모델에 집중되어 있습니다.

반대편에는 $3$B 이하의 소형 언어 모델(Small Language Model, SLM) 이 있습니다. 이들은 배포 비용, 추론 효율, 그리고 학술 연구에서의 접근성 측면에서 분명한 강점을 지닙니다. 하지만 어려운 수학적 유도나 복잡한 프로그래밍 과제를 다룰 때는 본질적인 병목에 부딪힌다는 것이 일반적인 통념이었습니다. 작은 모델은 긴 호흡의 추론(long-horizon reasoning)에 약하다는 믿음이지요.

연구팀의 이전 작업인 VibeThinker-1.5B 는 이 통념에 처음 균열을 냈습니다. 극도로 작은 파라미터를 가진 모델도 안정적이고 일관된 논리 사슬을 만들어낼 수 있음을 보였기 때문입니다. 다만 $1.5$B 모델은 "작은 모델도 추론이 가능하다"는 실현 가능성을 입증하는 데 무게가 있었고, 그 능력의 상한선이 어디인지는 여전히 미지수로 남아 있었습니다.

발상의 전환: 추론은 압축 가능한 능력인가

여기서 연구팀은 한 걸음 더 나아간 질문을 던집니다. SLM을 단순히 연산 비용을 아끼기 위한 차선책으로 취급하는 대신, "엄격하게 $3$B인 모델이 정말로 최상위 LLM에 필적하는 프론티어급 성능에 도달할 수 있는가?" 를 정면으로 묻는 것입니다.

이 질문의 바탕에는 중요한 가설이 깔려 있습니다. 만약 검증 가능한 과제에서의 추론 능력이 방대한 지식의 암기가 아니라 탐색(search), 제약 조건 만족(constraint satisfaction), 오류 수정(error correction), 다단계 조합(multi-step composition) 에 달려 있다면, 이 능력은 작고 재사용 가능한 "추론 코어"로 고도로 압축될 수 있을 것입니다. 마치 자전거 타기의 핵심이 몸집이 아니라 균형 감각이듯, 추론의 핵심도 파라미터의 양이 아니라 구조화된 해 공간을 탐색하는 절차에 있다는 발상입니다.

연구팀은 이를 파라미터 압축-커버리지 가설(Parametric Compression-Coverage Hypothesis) 로 정식화합니다. 이 가설은 모델의 능력을 두 부류로 나눕니다. 검증 가능한 추론처럼 구조화된 해 공간 안에서의 탐색과 검증이 핵심인 파라미터 밀집형(parameter-dense) 능력은 압축이 잘 되는 반면, 개방형 지식이나 범용 대화처럼 사실과 개념, 롱테일 시나리오를 폭넓게 담아야 하는 파라미터 확장형(parameter-expansive) 능력은 넓은 커버리지를 위해 많은 파라미터를 필요로 한다는 것입니다. 이 관점은 VibeThinker-3B가 수학과 코딩에서는 최상위 모델에 필적하면서도, GPQA-Diamond 같은 지식 집약 벤치마크에서는 여전히 격차를 보이는 이유를 자연스럽게 설명해 줍니다.

Spectrum-to-Signal: 다양성을 펼친 뒤 신호를 증폭하다

VibeThinker-3B는 Qwen2.5-Coder-3B 를 기반 모델로 삼아, 단계적인 사후 학습 파이프라인을 거쳐 만들어집니다. 전체 학습 철학은 VibeThinker-1.5B에서 제안한 Spectrum-to-Signal 원리(Spectrum-to-Signal Principle, SSP) 를 그대로 계승합니다.

SSP의 핵심 직관은 간단합니다. 화가가 색을 칠하기 전에 먼저 팔레트에 다양한 색을 넓게 펼쳐 두는 것처럼, 지도 미세조정(Supervised Fine-Tuning, SFT) 단계에서는 다양한 풀이 경로를 폭넓게 펼친 "스펙트럼(Spectrum)" 을 구축합니다. 그다음 강화학습 단계에서는 이 넓은 스펙트럼 안에서 올바른 추론 경로, 즉 "신호(Signal)" 만을 증폭합니다. SFT가 단일 정답을 모방하는 데 그치지 않고 의도적으로 풀이의 다양성을 넓혀 두어야, 이후 강화학습이 탐색할 여지가 커진다는 것이 이 원리의 골자입니다.

위 그림처럼 파이프라인은 네 단계로 순차적으로 펼쳐집니다. (1) 커리큘럼 기반 2단계 SFT로 능력의 바탕을 넓게 깔고, (2) 다중 도메인 강화학습으로 추론 신호를 증폭한 뒤, (3) 오프라인 자기 증류로 여러 단계에서 끌어낸 능력을 하나로 통합하고, (4) 마지막으로 Instruct RL을 통해 복잡한 사용자 지시를 정확히 따르도록 다듬습니다. 이제 각 단계를 차례로 살펴보겠습니다.

1단계: 커리큘럼 기반 2단계 SFT로 스펙트럼 구축하기

SFT 단계의 목표는 이후 강화학습이 딛고 설 안정적인 "콜드 스타트(cold start)" 정책을 만드는 것입니다. VibeThinker-3B는 수학, 코드, STEM 추론, 일반 대화, 지시 따르기를 아우르는 다중 도메인 혼합 데이터셋을 구성합니다.

데이터 품질을 끌어올리기 위해 연구팀은 먼저 자동 데이터 합성 및 쿼리 확장(Query Expansion) 파이프라인을 도입합니다. 명확한 정답이나 신뢰할 수 있는 단위 테스트를 갖춘 고신뢰 시드(seed) 쿼리만 골라낸 뒤, 개념 조합, 풀이 골격, 제약 조건, 평가 목표 등 여러 축으로 변형하고 확장하여 더 다양한 지식 구성과 추론 패턴을 담은 파생 쿼리를 만들어 냅니다. 이렇게 만든 쿼리는 강력한 교사 모델로 여러 번 독립 샘플링한 뒤 다수결 투표로 의사 정답(pseudo-label)을 생성합니다.

또한 다중 경로 추론 증류(Multi-path Reasoning Distillation) 를 적용해, 하나의 표준 풀이만 남기는 대신 여러 후보 추론 궤적을 모두 보존합니다. 이는 SSP의 정신을 그대로 따르는 설계로, 모델이 다양한 분해 방식과 유도 경로, 검증 전략을 학습하도록 만들어 이후 강화학습의 탐색 다양성을 높입니다. 데이터 품질은 (1) n-gram 기반 필터링으로 반복 패턴과 벤치마크 오염을 제거하고, (2) LLM 기반 쿼리 품질 평가로 불완전하거나 논리가 깨진 문제를 걸러내며, (3) 정답 검증, 코드 샌드박스 실행, LLM 다수결을 결합한 궤적 정확성 필터링까지 거치는 3 단계 검수를 통과합니다.

본격적인 학습은 커리큘럼 방식으로 두 단계에 걸쳐 진행됩니다. 1단계 는 폭넓은 능력 커버리지와 행동 콜드 스타트에 집중하며, 품질 필터링을 거친 전체 추론 데이터로 학습합니다. 전역 배치 크기 128, 초기 학습률 5 \times 10^{-5} 에서 코사인 어닐링으로 8 \times 10^{-8} 까지 감소시키며 5 에폭을 학습합니다. 2단계 는 더 어렵고 긴 호흡의 추론 표본으로 데이터 분포를 옮깁니다. 추론 궤적이 $5$K 토큰보다 짧은 표본을 버리고, VibeThinker-1.5B를 참조 모델로 삼아 쿼리당 8 번 롤아웃해서 오류율이 0.75 미만인 비교적 쉬운 문제를 걸러냅니다. 이 필터링으로 얕은 추론 데이터의 비중을 낮춰, 2단계 SFT가 긴 호흡의 논리 유도와 복잡한 제약 조건 만족에 집중하도록 강제합니다.

마지막으로 다양성 탐색 증류(Diversity-Exploring Distillation) 를 두 SFT 단계 모두에 적용합니다. 흥미로운 점은 검증 손실이 가장 낮거나 Pass@1이 가장 높은 체크포인트를 단순히 고르지 않는다는 것입니다. 대신 도메인별 탐침(probing) 집합에서 Pass@K 성능을 평가해, 더 많은 유효 해를 만들어 내는 체크포인트를 각 도메인의 전문가 모델로 선택합니다. 그런 다음 이 도메인 전문가 모델들을 파라미터 수준에서 병합(merge)하여 하나의 통합 SFT 모델을 얻습니다. 이렇게 하면 도메인별 추론 능력을 보존하면서도 출력의 다양성을 높게 유지할 수 있습니다.

2단계: 다중 도메인 강화학습으로 신호 증폭하기

강화학습 단계의 핵심 알고리즘은 VibeThinker-1.5B에서 도입한 MGPO(MaxEnt-Guided Policy Optimization) 입니다. SSP의 관점에서 SFT가 다양한 해 공간을 펼쳐 두면, 강화학습은 그 안에서 올바른 추론 신호를 증폭하는 역할을 맡습니다. MGPO는 이 역할을 모델의 현재 능력 경계(capability boundary) 근처에 있는 프롬프트를 골라냄으로써 수행합니다.

구체적으로 각 프롬프트 q 에 대해 이전 정책에서 G 개의 응답을 샘플링하고 검증 가능한 보상으로 평가하여, 경험적 그룹 정확도 p(q) = \frac{1}{G}\sum_{i=1}^{G}\mathbb{I}(r_i=1) 를 계산합니다. p(q) \approx 0 인 프롬프트는 너무 어려워 긍정 신호가 희박하고, p(q) \approx 1 인 프롬프트는 이미 포화되어 학습할 것이 없습니다. 따라서 MGPO는 정답률이 중간인, 즉 정답과 오답 롤아웃이 공존하는 프롬프트에 더 높은 가중치를 부여합니다.

w(q)=\exp\left(-\gamma D_{\mathrm{ME}}(p(q)\,\|\,p_0)\right),\quad p_0=0.5,\ \gamma>0.

여기서 D_{\mathrm{ME}} 는 경험적 정확도 p(q) 가 최대 엔트로피 지점인 0.5 에서 얼마나 벗어났는지를 측정합니다. 이 가중치 w(q) 는 GRPO 스타일의 클리핑 목적 함수 안에서 그룹 상대 어드밴티지에 곱해집니다. 마치 시험 공부를 할 때 이미 다 아는 쉬운 문제나 도저히 손도 못 대는 어려운 문제 대신, "조금만 더 하면 풀 수 있을 것 같은" 문제에 시간을 집중하는 것과 같습니다. 이 방식은 불확실성이 충분한 프롬프트에 학습을 집중시켜 더 안정적이고 건강한 그래디언트 신호를 만들어 냅니다.

VibeThinker-3B는 MGPO의 핵심 공식은 그대로 두되 학습 안정성을 위해 몇 가지를 조정했습니다. 특히 롤아웃 엔진이 추론 처리량에 최적화될수록 학습-추론 간 확률 불일치(training-inference mismatch)가 증폭되어 강화학습이 붕괴할 수 있는데, 이를 막기 위해 모든 강화학습 단계를 온-폴리시(on-policy) 방식으로 수행합니다.

단일 긴 컨텍스트 학습: 이전 결론을 뒤집다

여기서 VibeThinker-1.5B와 흥미로운 차이가 나타납니다. DeepScaleR 등 기존 연구와 1.5B 작업에서는 컨텍스트 창을 점진적으로 확장하는 다단계 전략이 학습 효율과 최종 성능을 모두 높였습니다. 하지만 이 결론은 $3$B 모델에서는 성립하지 않았습니다.

"높은 절단(high-truncation)으로 시작하는 초기 단계가 모델의 긴 사고 능력을 약화시키고, 정책을 불완전하거나 지나치게 짧은 추론 궤적 쪽으로 편향시킨다" 는 것이 연구팀의 관찰입니다. 이들은 이 역전 현상이 더 강력한 강화학습 초기 체크포인트와 관련이 있다고 봅니다. VibeThinker-3B는 더 엄격한 SFT 데이터 품질 관리를 거쳐 무효한 추론 패턴이 애초에 적기 때문에, 높은 절단 워밍업이 노이즈 제거가 아니라 오히려 이미 갖춰진 양질의 긴 호흡 추론 행동을 망가뜨린다는 것입니다. 그래서 연구팀은 처음부터 단일 $64$K 긴 컨텍스트 창으로 강화학습을 진행하여 롤아웃 절단을 줄이고 긴 추론 궤적을 온전히 보존합니다.

학습은 Math RL에서 시작해 Code RL을 거쳐 STEM RL로 순차적으로 이어집니다. 수학에서 다진 긴 호흡의 기호 유도와 다단계 탐색 능력을 코드의 실행 가능한 논리와 경계 조건 처리로, 다시 다학제적 과학 시나리오로 일반화해 나가는 구조입니다. 각 단계의 체크포인트는 이후 오프라인 자기 증류에 재활용됩니다.

Long2Short Math RL: 정확도에서 효율로

이전 작업과 또 다른 차별점은 "정확도에서 효율로(from accuracy to efficiency)" 이어지는 2 단계 강화학습 전략입니다. 1단계에서 표준 MGPO로 정확도를 충분히 끌어올린 뒤, 수학 강화학습에 Long2Short 단계를 추가하여 정확도를 해치지 않으면서 불필요한 추론 토큰을 줄이는 것이 목표입니다.

핵심 아이디어는 각 프롬프트 그룹에서 정답 궤적끼리만 보상을 재분배하는 것입니다. 짧고 정확한 응답에는 보상을 높이고 길고 정확한 응답에는 보상을 낮추되, 오답 궤적은 그대로 둡니다. 정답 집합 \mathcal{C} 에 대해 간결성 점수 s_i = 1/L_i (L_i 는 응답 길이)를 정의하고, 중심을 맞춘 길이 인식 보상 이동을 적용합니다. 이때 보상 이동의 합은 \sum_{i \in \mathcal{C}}(r_i' - r_i) = 0 으로 영합(zero-sum)이 되도록 설계됩니다. 덕분에 어드밴티지 추정에 쓰이는 그룹 수준 보상 기준선에는 체계적 편향을 주지 않으면서, 정답 궤적 사이의 상대적 선호만 더 간결한 풀이 쪽으로 재조정할 수 있습니다. 재분배 폭을 조절하는 계수 \lambda0.2 로 설정됩니다.

3단계: 오프라인 자기 증류로 능력 통합하기

다중 도메인 강화학습을 마치면, Math, Code, STEM 각 단계의 체크포인트에서 양질의 추론 패턴을 담은 궤적을 추출하여 하나의 통합 학생 모델로 다시 증류합니다. 이 단계가 흥미로운 이유는 단순히 정답 궤적을 모으는 데 그치지 않고 학습 잠재력 점수(learning-potential score) 를 도입한다는 점입니다.

먼저 도메인별 검증기로 거부 샘플링(rejection sampling)을 수행해 오답 궤적을 제거합니다. 그다음 검증된 교사 궤적 각각에 대해 학생 모델에서의 길이 정규화 음의 로그 가능도(negative log-likelihood)를 계산합니다.

S_{\mathrm{LP}}(q,y)=-\frac{1}{|y|}\sum_{t=1}^{|y|}\log \pi_{\theta_{\mathrm{stu}}}(y_t \mid q, y_{<t}).

점수가 높다는 것은 교사가 성공적으로 생성하고 검증한 궤적이지만 아직 학생 모델이 잘 모델링하지 못한다는 뜻이므로, 증류 가치가 높다고 볼 수 있습니다. 마치 학생이 이미 술술 푸는 문제보다, 답을 보면 이해되지만 스스로는 아직 못 푸는 문제를 복습하는 것이 학습 효율이 높은 것과 같은 이치입니다. 다만 이 점수가 길이나 비정상 토큰에 휘둘리지 않도록, 전역 순위가 아니라 도메인별 길이 버킷 안에서 우선순위를 계산하고, 극단적으로 짧거나 점수가 비정상적으로 높은 이상치는 제외한 뒤 중간에서 높은 점수 구간의 궤적을 우선 선별합니다.

4단계: Instruct RL로 사용자 친화성 다듬기

마지막 Instruct RL 단계는 추론 능력을 강화한 체크포인트를 더 신뢰할 수 있는 사용자 대면 모델로 전환합니다. 형식에 민감한 프롬프트, 긴 컨텍스트 지시, 일반 정렬 예시가 섞인 데이터로 학습하며, 명시적 제약이 있는 표본은 형식, 순서, 항목 수, 키워드 제약, 과제 완료 여부를 검사하는 규칙 기반 검증기로 보상을 계산합니다. 개방형 프롬프트는 유용성, 일관성, 지시 준수, 중복성을 평가하는 루브릭 기반 보상 모델로 다룹니다. 이 단계 덕분에 긴 호흡의 추론 강화학습을 거친 뒤에도 엄격한 제어 가능성을 유지할 수 있습니다.

추론 시점 확장: 핵심 주장만 검증하는 CLR

VibeThinker-3B는 정답을 검증할 수 있는 과제를 위한 추론 시점 확장(test-time scaling) 전략으로 CLR(Claim-Level Reliability Assessment) 을 제안합니다. 대부분의 추론 시점 확장 기법이 추론 궤적 전체를 통째로 집계하는 것과 달리, CLR은 문제 풀이에서 핵심 결정에 영향을 주는 중요한 주장(claim)에만 집중합니다.

절차는 두 단계로 간결합니다. 먼저 표준 평가와 동일한 샘플링 설정으로 문제당 K=32 개의 후보 궤적을 생성하고, 각 궤적에서 최종 답과 함께 결정에 핵심적인 주장 M=5 개를 추출합니다. 다음으로 모델이 스스로 검증자(self-verifier)가 되어 이 주장들을 반증하거나 검증하여 이진 판정 v_{k,m} \in \{0,1\} 을 내립니다. 중간 논리에 결함이 있는 궤적을 강하게 처벌하기 위해, CLR은 이 판정들을 비선형 신뢰도 점수로 변환합니다.

r_k=\left(\frac{1}{M}\sum_{m=1}^{M}v_{k,m}\right)^{M}

지수 M 거듭제곱 덕분에, 핵심 주장 중 단 하나라도 검증에 실패하면 해당 궤적의 신뢰도가 급격히 떨어집니다. 마지막으로 후보 답들을 동치 관계로 군집화한 뒤, 신뢰도 가중 합이 가장 큰 답을 최종 선택합니다. 이 방식은 모델 파라미터를 전혀 갱신하지 않으면서, 장황한 궤적 전체를 처리하는 대신 핵심 논리 지점만 짚어내 토큰 소비를 크게 줄이면서도 Pass@1을 일관되게 끌어올립니다.

실험 결과: $3$B가 거대 모델의 영역에 들어서다

평가는 수학(AIME25/26, HMMT25, BruMO25, IMO-AnswerBench), 코드(LiveCodeBench v6, OJBench), 지식(GPQA-Diamond), 지시 따르기(IFEval, IFBench)를 아우르는 검증 가능한 벤치마크에서 진행됩니다. 모든 평가는 vLLM을 백엔드로, 온도 1.0, top-p =0.95 설정으로 수행되며, 수학 벤치마크는 64 회 독립 생성의 평균 Pass@1을 보고합니다.

소형 및 중형 모델 대비 압도적 우위

소형 및 중형 추론 모델과 비교하면 VibeThinker-3B의 우위는 뚜렷합니다. 수학에서 AIME25 91.4, AIME26 94.3, HMMT25 89.3, BruMO25 93.8, IMO-AnswerBench 76.4 를 기록하며 $14$B 미만 소형 추론 베이스라인을 크게 앞섭니다. 주목할 점은 이 향상이 수학에만 국한되지 않는다는 것입니다. LiveCodeBench v6에서 80.2, OJBench에서 38.6 을 기록해 비교 표의 모든 모델을 LiveCodeBench v6에서 능가했고, IFEval 93.4, IFBench 74.5 로 추론 최적화가 지시 제어 가능성을 훼손하지 않음을 확인했습니다.

최상위 모델 대비, 그리고 CLR의 효과

비교 기준을 최상위 추론 모델로 높여도 VibeThinker-3B는 경쟁력을 유지합니다. CLR 없이도 AIME26 94.3 은 DeepSeek V3.2($671$B)나 Kimi K2.5($1$T)에 필적하고, BruMO25 93.8 은 훨씬 큰 여러 모델을 능가합니다. 여기에 CLR을 적용하면 정답 검증이 가능한 수학 벤치마크에서 추가 향상이 일어나, AIME25 96.7, AIME26 97.1, HMMT25 95.4, BruMO25 99.2, IMO-AnswerBench 80.6 에 도달합니다. 이는 GLM-5($744$B), Gemini 3 Pro, GPT-5 같은 플래그십 모델과 같은 구간에 진입한 수치입니다.

이 결과가 $3$B 모델이 종합 능력에서 최상위 범용 시스템을 따라잡았다는 뜻은 아닙니다. 오히려 "잘 제약된 검증 가능한 추론 과제에서는, 최상위 성능이 더 이상 초대형 모델만의 전유물이 아니다" 라는 구체적인 증거에 가깝습니다. VibeThinker-1.5B가 작은 모델도 완결적이고 논리적으로 일관된 추론 궤적을 만들 수 있음을 보였다면, VibeThinker-3B는 "최상위 추론 등급에 진입하는 데 실제로 어느 정도의 파라미터 문턱이 필요한가"라는 질문에 한 발 더 답한 것입니다.

분포 밖 일반화: 최신 LeetCode 콘테스트

정적인 벤치마크 분포에 과적합된 것이 아닌지 검증하기 위해, 연구팀은 2026425 일부터 531 일까지의 최신 LeetCode 주간 및 격주 콘테스트로 분포 밖(out-of-distribution) 일반화를 평가했습니다. 각 문제를 Python 일회성 생성으로 4 회 독립 샘플링한 결과, VibeThinker-3B는 총 128 개의 첫 제출 중 123 개를 통과하여 96.1\% 의 합격률을 기록했습니다. 이는 GPT-5.2, Qwen3-Max, Kimi K2.5, Claude 4.6 모델들을 같은 집계 기준에서 앞서는 수치입니다. 최근에 출제된 신선하고 다양한 문제를 실행 검증으로 평가했다는 점에서, 이 결과는 모델이 처음 보는 알고리즘 문제에도 견고하게 일반화함을 보여줍니다.

솔직한 경계: 지식 집약 과제

연구팀은 자신들의 한계도 솔직하게 드러냅니다. 가장 큰 모델들과의 격차는 경쟁 수학이나 실행 가능한 코딩보다 지식 집약 평가, 특히 GPQA-Diamond 에서 더 분명하게 나타납니다. CLR로 70.2 에서 72.9 까지 끌어올려도 최상위 대형 모델과는 눈에 띄는 격차가 남습니다. 하지만 연구팀은 이를 가설에 대한 반증이 아니라 오히려 일관된 증거로 봅니다. 핵심 주장은 $3$B 모델이 범용 모델을 완전히 대체했다는 것이 아니라, 작은 모델도 많은 검증 가능한 추론 과제에서 최상위 성능에 도달할 수 있다는 것이기 때문입니다.

한계와 시사점: 추론과 지식을 분리하다

이러한 관찰을 바탕으로 연구팀은 추론-지식 분리 패러다임(Reasoning-Knowledge Decoupling Paradigm) 을 제안합니다. 대규모 모델은 다양한 의미와 롱테일 분포를 흡수하는 광범위한 지식의 너비를 담는 자연스러운 그릇으로 남되, 구조적으로 제약된 공간과 신뢰할 수 있는 학습 신호가 주어진다면 작은 모델도 이미 고밀도의 추론 깊이를 충분히 담아낼 수 있다는 것입니다.

따라서 VibeThinker-3B의 진정한 의미는 $3$B 모델이 대규모 범용 모델을 대체할 수 있음을 증명한 데 있지 않습니다. 오히려 "소형 모델 개발이 더 이상 배포 효율이나 비용 절감을 위한 수동적 타협이 아니라, 전통적인 파라미터 스케일링 패러다임과 근본적으로 상호 보완적인 유망한 연구 궤적으로 부상한다" 는 구체적인 신호를 제공한다는 데 있습니다. 명확한 피드백과 검증 메커니즘이 있는 능력 영역이라면, 작은 모델은 프론티어급 성능을 향한 또 하나의 진화 경로가 될 수 있습니다.

설치 및 사용 방법

VibeThinker-3B는 MIT 라이선스로 공개되어 있으며, transformers>=4.54.0 이상이 필요합니다. 더 나은 추론 성능을 위해서는 vLLM==0.10.1 또는 SGLang>=0.4.9.post6 사용을 권장합니다. 수학, 코딩, STEM처럼 정답을 검증할 수 있는 과제에 적합하며, 광범위한 개방형 지식 과제에는 더 큰 범용 모델이 여전히 유리할 수 있습니다.

from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig

class VibeThinker:
    def __init__(self, model_path):
        self.model_path = model_path
        self.model = AutoModelForCausalLM.from_pretrained(
            self.model_path,
            low_cpu_mem_usage=True,
            torch_dtype="bfloat16",
            device_map="auto",
        )
        self.tokenizer = AutoTokenizer.from_pretrained(
            self.model_path,
            trust_remote_code=True,
        )

    def infer_text(self, prompt):
        messages = [{"role": "user", "content": prompt}]
        text = self.tokenizer.apply_chat_template(
            messages, tokenize=False, add_generation_prompt=True,
        )
        model_inputs = self.tokenizer([text], return_tensors="pt").to(self.model.device)
        generation_config = dict(
            max_new_tokens=102400,
            do_sample=True,
            temperature=1.0,  # 권장값: temperature=1.0, top_p=0.95
            top_p=0.95,
            top_k=None,       # vLLM/SGLang에서는 top_k=-1 로 설정
        )
        generated_ids = self.model.generate(
            **model_inputs,
            generation_config=GenerationConfig(**generation_config),
        )
        generated_ids = [
            output_ids[len(input_ids):]
            for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
        ]
        return self.tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]

if __name__ == "__main__":
    model = VibeThinker("WeiboAI/VibeThinker-3B")
    print(model.infer_text("Your Prompt"))

벤치마크 평가 기준 권장 설정은 온도 1.0, top-p =0.95, top-k =-1 입니다.

:scroll: VibeThinker-3B: Exploring the Frontier of Verifiable Reasoning in Small Language Models 논문

:scroll: VibeThinker-1.5B: Tiny Model, Big Logic 논문 (이전 연구)

:github: VibeThinker GitHub 저장소

:hugs: VibeThinker-3B (Hugging Face)




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다!
텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. :smiley:

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck:

1개의 좋아요

그들의 AI라 조금 의심의 눈초리로 보았는데 써 봐야 알 거 같다는 결론에 도달해서 해 봐야겠습니다

1개의 좋아요

네네 Weibo쯤 되는 기업이 설마... 하면서 흐린 눈으로 결과를 기다리고 있는 중입니다 ㅎㅎ

혹시나 써보시게 되면 후기 부탁드립니다 +_+

AI 모델이 MCP 연동등 tool 관련 지원이 되지 않아서 RAG구축등에 활용하기 힘들 듯 하고, 코딩쪽에서도 코딩테스트 등 주어진 문제 내 모든 필요 지식이 들어 있는 알고리즘 풀이 정도 하는 듯 하지만,다양한 외부 API 에 대한 지식이 필요한 코딩은 기대못하는 수준인 듯하군요.

아래 수학 문제도 오답을 내는군요.

두 점 (0,-1), (3,2) 를 지나고, 꼭짓점이 직선

y=3x-3

위에 있는 포물선의 방정식

y=ax^2+bx+c

에서 상수 a, b, c 의 값을 구하여라.
단, a<0 이다.

해답이 a = -1, b=4, c=-1 인데, a<-1, b=1-3a, c=-1 로 오답을 냅니다.

아직 상용할 수준의 모델이 아닌 연구용 인 듯합니다.

3개의 좋아요