IBM Granite 4.1이란?
IBM이 공개한 Granite 4.1은 3B, 8B, 30B 세 가지 크기의 밀집(dense) 디코더-온리 LLM 제품군입니다. 약 15조 토큰으로 학습되었으며, 최대 512K 토큰의 긴 컨텍스트를 지원합니다. 모든 모델은 Apache 2.0 라이선스로 배포되어 상업적 사용이 자유롭습니다.
이번 버전의 핵심은 데이터 품질입니다. 단순히 연산량을 늘리는 대신, 5단계 사전학습 파이프라인을 통해 데이터 혼합 비율을 점진적으로 정제했습니다. 또한 LLM-as-Judge 프레임워크로 SFT 데이터를 선별하고, 다단계 강화학습(RL)으로 수학, 코딩, 지시 따르기 성능을 체계적으로 강화했습니다.
한마디로, '많이'가 아니라 '좋은' 데이터로 학습한 모델입니다.
아키텍처 개요
| 구성 요소 | 3B | 8B | 30B |
|---|---|---|---|
| 임베딩 크기 | 2560 | 4096 | 4096 |
| 레이어 수 | 40 | 40 | 64 |
| 어텐션 헤드 크기 | 64 | 128 | 128 |
| 어텐션 헤드 수 | 40 | 32 | 32 |
| KV 헤드 수 | 8 | 8 | 8 |
| MLP 히든 크기 | 8192 | 12800 | 32768 |
| 활성화 함수 | SwiGLU | SwiGLU | SwiGLU |
| 위치 임베딩 | RoPE | RoPE | RoPE |
세 모델 모두 동일한 학습 파이프라인과 데이터 전략을 공유하며, 아키텍처 차원만 다릅니다. GQA(Grouped Query Attention)와 SwiGLU, RoPE 등 현대적인 LLM 디자인을 채택했습니다.

5단계 사전학습 파이프라인: 데이터 품질의 진화
Granite 4.1의 가장 인상적인 부분은 점진적인 데이터 정제 전략입니다. 초기에는 웹 데이터 위주로 학습하다가, 후반으로 갈수록 고품질 데이터와 추론 데이터의 비중을 높입니다.
Phase 1: 일반 사전학습 (10T 토큰)
- CommonCrawl ~59% (웹 데이터)
- 코드 ~20%
- 수학 ~7%
- 기술 문서 ~10.5%
- 다국어 ~2%
- 도메인 특화 ~1.5%
Phase 2: 수학/코드 집중 (2T 토큰)
- 수학 비중이 5배 증가 (35%)
- 코드 비중 1.5배 증가 (30%)
- 고품질 CommonCrawl 도입 (12%)
- 합성 데이터 추가 (9%)
Phase 3: 고품질 데이터 어닐링 (2T 토큰)
- Chain-of-Thought 추론 데이터 도입 (12.5%)
- 지시 튜닝 데이터 포함
- 학습률 지수 감쇠
Phase 4: 정밀 어닐링 (0.5T 토큰)
- 가장 높은 품질의 데이터만 선별
- CommonCrawl-HQ 40%, 코드 20%, 수학 20%
Phase 5: 긴 컨텍스트 확장 (LCE)
- 4K → 32K → 128K → 512K 단계적 확장
- 512K 단계에서는 80% 책 + 20% 코드 저장소 데이터 사용
- 각 단계 후 모델 병합으로 짧은 컨텍스트 성능 유지
# Granite 4.1 30B 모델 로딩 및 추론 예시
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
device = "cuda"
model_path = "ibm-granite/granite-4.1-30b"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path, device_map=device)
model.eval()
# 간단한 채팅 예시
chat = [
{ "role": "user", "content": "서울의 현재 날씨가 어때?" },
]
chat = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)
input_tokens = tokenizer(chat, return_tensors="pt").to(device)
output = model.generate(**input_tokens, max_new_tokens=100)
print(tokenizer.batch_decode(output)[0])

SFT와 강화학습: 정교한 파이프라인
SFT 데이터 품질 관리
SFT 데이터는 LLM-as-Judge 프레임워크로 엄격히 선별됩니다. 6개 차원(지시 따르기, 정확성, 완전성, 간결성, 자연스러움, 보정)으로 평가하며, 환각(hallucination), 잘못된 전제, 부정확한 계산은 하드 리젝트됩니다. 최종적으로 약 410만 개의 고품질 샘플이 선별되었습니다.
다단계 강화학습 파이프라인
단순히 한 번의 RL로 끝내지 않고, 4단계 순차적 RL을 적용했습니다.
- 다중 도메인 RL (45,504 프롬프트): 수학, 과학, 논리, 코드, 지시 따르기 등 통합 학습
- RLHF (17,920 프롬프트): 다국어 보상 모델로 유용성과 대화 능력 향상
- 정체성 및 지식 보정 RL (1,728 프롬프트): 모델이 자신을 정확히 식별하도록 훈련
- 수학 RL (13,504 프롬프트): RLHF로 떨어진 수학 성능 회복 및 향상
이러한 접근 덕분에 8B 모델이 이전 세대 **Granite 4.0-H-Small (32B-A9B MoE)**를 여러 벤치마크에서 능가했습니다.
주요 벤치마크 결과 (Instruct 모델)
| 벤치마크 | 3B | 8B | 30B |
|---|---|---|---|
| MMLU-Pro (5-shot CoT) | 49.83 | 55.99 | 64.09 |
| GSM8K (8-shot) | 86.88 | 92.49 | 94.16 |
| HumanEval (pass@1) | 79.27 | 87.20 | 89.63 |
| AlpacaEval 2.0 | 38.57 | 50.08 | 56.16 |
| BFCL v3 (툴 호출) | 60.80 | 68.27 | 73.68 |
핵심 인사이트: 8B 모델이 32B MoE 모델과 동등하거나 더 나은 성능을 보여줍니다. 이는 데이터 품질과 학습 파이프라인의 중요성을 극명하게 보여주는 사례입니다.
FP8 양자화 지원
vLLM 기반 FP8 양자화 버전도 함께 공개되어, 디스크 용량과 GPU 메모리를 약 50% 절감할 수 있습니다. 실제 프로덕션 배포에 매우 유용한 기능입니다.

국내 개발 생태계에서의 적용 맥락
국내 AI 서비스 시장에서도 Apache 2.0 라이선스 모델의 중요성은 날로 커지고 있습니다. Granite 4.1은 상업적 이용이 자유롭고, 8B 크기로도 뛰어난 성능을 제공하므로 자체 LLM을 구축하려는 스타트업이나 중견 기업에 좋은 선택지가 될 수 있습니다.
특히 툴 호출(Tool Calling) 기능이 뛰어나 RAG 시스템이나 AI 에이전트 구축에 적합합니다. BFCL v3에서 68.27점을 기록한 점은 실제 서비스 연동 측면에서 큰 강점입니다.
이 기술의 한계 및 주의사항
- 긴 컨텍스트 성능: RULER 벤치마크에서 128K에서 30B 모델이 76.7점, 8B가 73.0점으로 준수하지만, 경쟁 모델(Llama 3.1 등)과 비교 시 추가 검증이 필요합니다.
- 다국어 성능: 12개 언어를 지원하지만, 한국어 벤치마크 점수는 아직 공개되지 않았습니다. 실제 한국어 서비스에 적용하려면 별도 평가가 필요합니다.
- 추론 속도: 긴 Chain-of-Thought를 사용하지 않아 지연 시간이 안정적이지만, 복잡한 추론 문제에서는 성능이 제한될 수 있습니다.
다음 단계 학습 방향
- Hugging Face에서 모델을 다운로드하고 직접 추론해 보세요.
- vLLM을 이용한 FP8 양자화 배포를 실습해 보세요.
- 자체 도메인 데이터로 파인튜닝하여 성능을 확인해 보세요.
함께 보면 좋은 글
근거자료: IBM Granite 4.1 공식 블로그