657MB 로컬 추론 AI: MiniCPM5-1B를 Claude Fable 5 데이터로 파인튜닝한 소형 사고 모델 분석
#MiniCPM5 #파인튜닝 #GGUF #로컬LLM #ClaudeFable5 #양자화
API 키 없이 노트북에서 돌아가는 10억 파라미터(1B)짜리 "사고하는" AI가 등장했습니다. 이름은 MiniCPM5-1B-Claude-Opus-Fable5-Thinking. 커뮤니티 개발자 GnLOLot이 OpenBMB의 MiniCPM5-1B에 Claude의 Fable 5 응답 데이터를 학습시켜 공개했습니다. 가장 작은 양자화 버전은 단 657MB로, 인터넷 없이도 내 컴퓨터에서 추론을 도는 게 가능해졌다는 점에서 화제입니다.
핵심 요약: 128K 컨텍스트, 네 가지 양자화(Q4_K_M~F16), Ollama/llama.cpp/LM Studio에서 한 줄로 실행. 단, "파인튜닝된 모델"과 "지식 증류"는 다른 이야기라는 점을 꼭 알아두셔야 합니다.
1. 제안된 모델은 무엇인가
이 모델은 openbmb/MiniCPM5-1B라는 공개 베이스 모델 위에 만들어졌습니다. OpenBMB가 직접 공개한 실재 릴리스이며, 표준 LlamaForCausalLM 구조를 사용하는 1.08B(10억 8천만) 파라미터의 밀집형(dense) 모델입니다. 구성을 숫자로 보면 이렇습니다.
| 항목 | 값 |
|---|---|
| 파라미터 수 | 약 1.08B (10억) |
| 레이어 수 | 24 |
| 어텐션 방식 | 그룹 질의 어텐션(GQA) |
| 컨텍스트 길이 | 131,072 토큰 (= 128K) |
| 아키텍처 | LlamaForCausalLM (밀집형) |
| 사고(Thinking) 모드 | 네이티브 지원 (enable_thinking) |
OpenBMB는 자사가 비교군으로 설정한 1B급 오픈소스 모델 범위에서 SOTA(State Of The Art, 최고 수준) 성능을 보고했습니다. 여기서 "SOTA"는 모든 모델 중 최고가 아니라, 명시된 비교 조건 안에서 최고라는 뜻이라는 점은 기억해 두실 필요가 있습니다.
베이스 모델에는 이미 네이티브 사고 템플릿이 들어 있어서, enable_thinking 옵션으로 추론 모드를 켜고 끌 수 있습니다. Think 모드(추론 과정을 텍스트로 먼저 뱉고 답하는 모드)와 No Think 모드(바로 답만 내는 모드)를 모두 지원합니다. 파생 모델인 MiniCPM5-1B-Claude-Opus-Fable5-Thinking은 이 템플릿과 도구 호출(tool-calling) 형식을 그대로 유지합니다.
개발자는 이 베이스 모델에 파인튜닝(이미 학습된 모델을 특정 작업용 데이터로 살짝 더 학습시키는 과정)을 적용했습니다. 모델 카드에는 "코딩과 지시 따르기 능력을 끌어올리기 위해 Fable 5 데이터로 추가 파인튜닝"했다고 적혀 있고, GGUF 카드도 같은 내용을 반복합니다. Fable 5는 별도 공개된 데이터셋이라기보다, 이 프로젝트에서 Claude의 응답·추론 모음을 가리키는 이름으로 보입니다.
2. 실제로 어떻게 만들어졌나 — "증류"가 아닙니다
여기가 가장 중요한 부분입니다. 흔히들 "작은 모델이 큰 모델을 모방하면 그게 지식 증류지?"라고 생각하기 쉬운데, 이 모델은 고전적인 지식 증류(distillation)가 아닙니다.
고전적 지식 증류 vs. 이 모델의 방식
- 고전적 지식 증류: 큰 모델(교사)의 가중치·로짓(softmax 이전의 원시 점수) 같은 내부 신호를 그대로 작은 모델(학생)에 흘려보냄.
- 이 프로젝트의 방식: 교사 모델로 대화를 생성해 텍스트 응답과 추론 과정을 모음 → 이 텍스트 데이터셋으로 작은 모델을 지도 파인튜닝(supervised fine-tuning).
쉽게 말하면, "교사의 뇌를 복사"한 게 아니라 "교사가 쓴 답안지를 모아 학생이 그 답안지 형태로 글쓰기를 연습한 것"에 가깝습니다.
이 차이가 중요한 이유는 명확합니다. Claude의 가중치나 로짓에 정식으로 접근할 수 있는 사람은 없기 때문입니다. 따라서 이것은 가중치 수준 증류가 아니라, 생성된 출력(output)에 대한 지도 파인튜닝입니다. 반면 OpenBMB의 베이스 모델은 자체 교사·학생 체크포인트 사이에 온폴리시(on-policy) 증류 단계를 실제로 거쳤다고 문서화돼 있습니다.
결과적으로 10억 파라미터짜리 모델은 응답의 형식과 말투를 모방하는 법을 배웁니다. 교사 모델의 근본적인 추론 능력이나 폭넓은 지식이 그대로 이식되는 것은 아닙니다. 10억이라는 파라미터 예산은 최첨단 규모 추론을 담아내기엔 구조적으로 한계가 있다는 점을 분명히 해두셔야 합니다.
3. 확인되는 사양 — 숫자 요약
사양은 베이스 모델의 config.json을 그대로 따라 128K 컨텍스트입니다. GGUF 저장소에는 네 가지 양자화(quantization, 모델의 숫자 정밀도를 줄여 용량을 낮추는 기법) 버전이 들어 있습니다.
| 양자화 | 파일 크기(대략) | 비고 |
|---|---|---|
| Q4_K_M | 약 657MB | 가장 작은 빌드 (헤드라인 숫자) |
| Q5_K_M | 약 751MB | 품질과 크기 사이의 타협점 |
| Q8_0 | 약 1.1GB | 관리자가 권장하는 기본값 |
| F16 | 약 2.1GB | 양자화 미적용 풀 정밀도 |
자주 보이는 "657MB"라는 숫자는 가장 작은 양자화 버전의 크기일 뿐, 기본 빌드의 크기가 아닙니다. 가성비와 품질 균형이 가장 좋은 빌드는 Q8_0(1.1GB)이라는 점을 기억해 두시면 좋겠습니다.
로컬 추론 도구 호환성은 넓은 편입니다.
- llama.cpp
- Ollama
- LM Studio
- jan
- KoboldCpp
4. 내 컴퓨터에서 실행하는 방법
GGUF 카드에 안내된 가장 빠른 경로는 Ollama입니다. 설치 후 터미널에 아래 한 줄만 입력하면 됩니다.
ollama run hf.co/GnLOLot/MiniCPM5-1B-Claude-Opus-Fable5-Thinking-GGUF:Q4_K_M
같은 저장소에 llama.cpp, LM Studio, jan, KoboldCpp 사용법도 함께 문서화돼 있어, 환경에 맞춰 골라 쓸 수 있습니다.
Think 모드 권장 샘플링 설정
temperature = 0.9top_p = 0.95
모델은 최종 답변 전에 추론 블록(사고 과정 텍스트)을 먼저 출력할 수 있습니다. 챗봇처럼 깔끔한 응답만 보이게 하려면 후단 애플리케이션에서 이 블록을 잘라내 주는 처리(파싱/스트리밍)가 필요합니다.
5. 핵심 요점 5가지
- 이 모델은 Claude Fable 5 추적 데이터로 OpenBMB의 MiniCPM5-1B를 지도 파인튜닝한 결과물이며, 가중치 수준의 증류 모델이 아닙니다.
- 실제 사양은 128K 컨텍스트, Q4_K_M 657MB ~ F16 2.1GB의 GGUF 양자화 라인업, 권장 기본값은 Q8_0(1.1GB).
- 출력에 대한 파인튜닝은 최첨단 추론 능력이나 광범위한 지식이 아니라, 형식과 스타일을 전달하는 데 그칩니다.
- 벤치마크와 학습 데이터셋이 공개되지 않아 성능 주장을 독립적으로 검증하기는 현재로서는 어렵습니다.
- Apache-2.0 라이선스는 베이스 가중치에만 적용됩니다. Claude 출력물로 학습했다는 사실은 모델 카드가 답하지 않는 라이선스 그레이존을 남깁니다.
6. 용어 한 번에 정리
- 🧩 파인튜닝(Fine-tuning)
- 이미 학습된 모델을 특정 작업이나 도메인 데이터로 추가 학습시켜 성능을 조정하는 과정. 처음부터 새로 학습하는 것보다 비용이 훨씬 적게 듭니다.
- 🧮 로짓(Logits)
- 신경망 마지막 층에서 나오는, 아직 확률로 바뀌기 전의 원시 점수. 소프트맥스 같은 함수를 거치면 확률이 됩니다.
- 📦 GGUF
- llama.cpp와 Ollama에서 쓰는 LLM 전용 바이너리 저장 형식. 헤더·메타데이터·텐서 데이터를 한 파일에 담습니다.
- 🪶 양자화(Quantization)
- FP32·FP16 같은 높은 정밀도 숫자를 INT8·INT4 같은 낮은 비트로 바꿔 모델을 압축하는 기법. 용량과 연산량은 줄지만 품질 손실이 약간 생길 수 있습니다.
- 🔗 그룹 질의 어텐션(GQA)
- 여러 질의(query) 헤드가 키·값 헤드를 공유하도록 그룹화해, 메모리 사용량은 줄이고 품질은 멀티 쿼리 어텐션보다 유지하는 절충형 어텐션 방식입니다.
- 📏 컨텍스트 윈도(Context Window)
- 모델이 한 번에 읽고 기억할 수 있는 최대 토큰 수. 이 모델은 128K 토큰으로, 일반 책 한 권 분량을 한 번에 넣을 수 있는 수준입니다.
- 🏆 SOTA(State Of The Art)
- 특정 비교군·평가 조건 안에서 가장 좋은 성능을 기록한 모델/기법을 가리키는 말. "전부 최고"가 아니라 "조건부 최고"라는 점을 주의.
- 📜 Apache License 2.0
- 사용·수정·상업적 재배포가 비교적 자유로운 허용적 오픈소스 라이선스. 단, 이 라이선스는 베이스 가중치에만 적용된다는 점을 잊지 마세요.
7. 자주 묻는 질문 (FAQ)
Q. 정말 657MB로 "사고하는" AI가 내 노트북에서 돌아가나요?
A. Q4_K_M 빌드 기준 657MB이며, llama.cpp/Ollama 등이 설치된 일반 노트북에서 실행은 가능합니다. 다만 "사고"의 깊이는 큰 모델 대비 제한적입니다.
Q. 이 모델을 상업적으로 써도 되나요?
A. 베이스 가중치는 Apache-2.0로 자유도가 높지만, Claude 출력물로 추가 학습했다는 점 때문에 파생 모델의 라이선스 해석은 모델 카드가 명시적으로 답하지 않은 영역입니다. 사업에 쓰실 거라면 OpenBMB 및 Claude(Anthropic)의 이용약관을 함께 확인하시길 권합니다.
Q. Q4_K_M과 Q8_0 중 어떤 걸 받아야 하나요?
A. 저장 공간이 빠듯하면 Q4_K_M(657MB), 품질 여유가 있다면 Q8_0(1.1GB, 권장 기본값)이 균형이 좋습니다.
Q. "지식 증류" 아니냐는 비판은요?
A. 맞는 비판입니다. 가중치·로짓 단위의 증류가 아니라 텍스트 응답을 모은 데이터셋에 대한 지도 파인튜닝이므로, 결과 모델은 교사의 형식과 스타일만 모방한다는 점을 이해하셔야 합니다.
Q. 벤치마크 점수는 어디서 보나요?
A. 아쉽게도 본 모델 카드에는 공개된 벤치마크가 없습니다. 사용 전 직접 업무 데이터로 소규모 평가를 돌려 보시는 것을 추천드립니다.