1편에서 Granite 4.1 언어 모델의 아키텍처와 "8B가 32B를 이긴 이유"를 다뤘어요.
2편은 언어 모델 밖의 나머지 패밀리예요.
Granite 4.1은 단일 LLM이 아니에요. 언어 + 비전 + 음성 + 임베딩 + 안전성 다섯 가지가 하나의 엔터프라이즈 AI 스택으로 설계된 모델 패밀리예요.
🔑 핵심 요약
Granite 4.1 멀티모달 패밀리 → Vision 4.1 (4B): 차트·표·KVP 추출, 7개 벤치마크 평균 1위 → Speech 4.1 (2B): WER 5.33%, Open ASR 리더보드 최상위권, 3가지 변형 → Guardian 4.1 (2B/3B/5B/8B): GuardBench 상위 10개 중 6개 IBM 모델 → Embedding Multilingual R2 (97M): 200개 언어 RAG 검색 → 전 모델 Apache 2.0 + 암호화 서명 — Granite Guardian은 어떤 LLM과도 연동 가능
실전 1 — Granite Vision 4.1: 차트·표 추출 특화
Vision 4.1은 "범용 멀티모달"이 아니라 "문서 이해 특화" VLM이에요.
일반 VLM이 "이미지 설명해줘"에 최적화됐다면, Vision 4.1은 인보이스·보고서·재무제표에서 구조화된 데이터를 뽑는 데 최적화돼 있어요.
벤치마크:
7개 벤치마크 평균 — 1위 (IBM 주장)
차트 추출:
→ Chart2CSV, Chart2Summary 태스크
→ ChartNet 백만 규모 데이터셋으로 학습 (코드 가이드 증강 방법론)
테이블 추출:
→ TableVQA-Extract (시각 테이블 QA → 추출 태스크)
→ OmniDocBench-tables (다양한 PDF 유형 문서 파싱)
→ PubTablesV2 (대규모 테이블 추출 벤치마크)
KVP(Key-Value Pair) 추출:
→ 인보이스 번호, 날짜, 이름 등 비즈니스 문서 핵심 정보
→ 구조화된 데이터 추출에서 Claude Opus 4.6 초과
Vision 4.1 vs Claude Opus 4.6 (차트 추출):
→ Granite Vision 4.1: 86.5점
→ Claude Opus 4.6: 83.8점
실전 사용법 — 태스크 태그 방식:
from transformers import AutoProcessor, AutoModelForVision2Seq
from PIL import Image
import torch
model_id = "ibm-granite/granite-vision-4.1-4b"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForVision2Seq.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto"
)
# 재무 보고서 이미지에서 표 추출
image = Image.open("financial_report_page.png")
# 태스크 태그로 원하는 추출 방식 지정
messages = [
{
"role": "user",
"content": [
{"type": "image"},
# 테이블 추출 태스크 태그
{"type": "text", "text": "<table_extraction> 이 페이지의 모든 테이블을 CSV 형식으로 추출해줘"}
]
}
]
# 차트 → CSV 변환
# {"type": "text", "text": "<chart_to_csv> 이 차트 데이터를 CSV로 변환해줘"}
# KVP 추출 (인보이스, 계약서)
# {"type": "text", "text": "<kvp_extraction> 인보이스 번호, 날짜, 금액, 수신인 추출해줘"}
inputs = processor.apply_chat_template(
messages, add_generation_prompt=True, return_tensors="pt"
).to(model.device)
output = model.generate(**inputs, max_new_tokens=1024)
result = processor.decode(output[0][inputs["input_ids"].shape[-1]:])
Docling 연동: Granite Vision 4.1은 IBM의 오픈소스 문서 처리 파이프라인 Docling과 네이티브 연동돼요. PDF → 구조화 데이터 변환 파이프라인을 Docling + Vision 4.1 조합으로 구축할 수 있어요.
실전 2 — Granite Speech 4.1: 3가지 변형 선택 기준
Speech 4.1은 용도에 따라 3가지 변형이 있어요.
Granite Speech 4.1 2B (표준):
→ ASR + 음성 번역 (양방향)
→ 영어·프랑스어·독일어·스페인어·포르투갈어·일본어
→ WER 5.33% (Open ASR 리더보드 기준)
→ LibriSpeech clean: 1.33% WER
→ 키워드 목록 바이어싱(KWB) 지원 — 도메인 특화 용어 인식 향상
→ 구두점·대소문자 처리 포함
Granite Speech 4.1 2B-NAR (Non-Autoregressive):
→ ASR 특화, 번역 제외
→ 전체 시퀀스 한 번에 생성 → 토큰 하나씩 생성하는 표준 모델보다 처리량 대폭 향상
→ 고처리량 트랜스크립션 파이프라인에 최적화
→ 레이턴시 < 응답 속도 우선 워크로드
Granite Speech 4.1 2B-Plus:
→ 표준 모델 + 화자 귀속(Speaker-Attributed ASR) 추가
→ 단어 레벨 타임스탬프 — "누가 언제 무슨 말을 했는지" 정확히 추적
→ 회의 녹취, 고객 서비스 통화 분석, 법정 기록에 적합
실전 배포:
from transformers import AutoProcessor, AutoModelForSpeechSeq2Seq
import torch
import soundfile as sf
model_id = "ibm-granite/granite-speech-4.1-2b"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForSpeechSeq2Seq.from_pretrained(
model_id,
torch_dtype=torch.float16,
device_map="auto"
)
# 오디오 로드
audio, sample_rate = sf.read("meeting_recording.wav")
# 트랜스크립션
inputs = processor(
audio,
sampling_rate=sample_rate,
return_tensors="pt"
).to(model.device)
# 고처리량이 필요하면 2B-NAR 모델로 교체
with torch.no_grad():
generated_ids = model.generate(**inputs, max_new_tokens=448)
transcription = processor.batch_decode(
generated_ids,
skip_special_tokens=True
)[0]
print(transcription)
# + 구두점, 대소문자 자동 처리됨
WER 5.33%의 의미: WER 5%는 100단어 중 5단어가 틀린다는 뜻이에요. LibriSpeech clean 기준 1.33%는 매우 깨끗한 환경에서의 수치이고, 회의·프레젠테이션·어닝콜 등 실제 환경에서도 경쟁력 있는 WER을 달성했어요. 엔터프라이즈 회의 녹취, 콜센터 분석에 즉시 적용 가능한 수준이에요.
실전 3 — Granite Guardian 4.1: AI 안전성 레이어
Guardian는 독립 모델이에요. Claude·GPT·Llama 어떤 LLM 위에도 올릴 수 있어요.
Guardian 4.1 감지 항목 (IBM AI Risk Atlas 기반):
① 사회적 편향 콘텐츠
② 혐오·욕설·부적절 언어 (HAP)
③ 환각(Hallucination) 감지
→ 일반 LLM 응답의 사실 오류
→ Tool Call 결과의 오류
→ RAG 응답의 소스 불일치
④ 탈옥(Jailbreak) 시도 감지
⑤ 에이전트 리스크
→ 다단계 에이전트 워크플로우 내 위험 행동
⑥ RAG 품질·정확도 이슈
GuardBench 리더보드: 상위 10개 중 6개가 IBM Granite Guardian
크기별 선택:
Guardian 2B → 레이턴시 최우선, 엣지 배포
Guardian 3B → 균형형, 대부분의 엔터프라이즈 워크로드
Guardian 5B → 높은 정확도, 중요한 컴플라이언스 워크로드
Guardian 8B → 최고 정확도, 규제 산업 (금융·의료)
프로덕션 파이프라인 통합 패턴:
from transformers import pipeline
# Guardian 모델 로드
guardian = pipeline(
"text-classification",
model="ibm-granite/granite-guardian-4.1-8b",
device_map="auto"
)
def safe_generate(user_prompt: str, llm_response: str) -> dict:
"""
LLM 응답 전후 Guardian 검사 패턴
"""
# 1. 입력 프롬프트 검사 (탈옥 시도, 유해 콘텐츠)
input_risk = guardian(f"<prompt>{user_prompt}</prompt>")[0]
if input_risk["label"] == "RISK" and input_risk["score"] > 0.8:
return {"blocked": True, "reason": "위험한 입력 감지", "risk": input_risk}
# 2. LLM 응답 검사 (환각, 편향, 유해 내용)
output_risk = guardian(
f"<prompt>{user_prompt}</prompt>"
f"<response>{llm_response}</response>"
)[0]
if output_risk["label"] == "RISK" and output_risk["score"] > 0.7:
return {"blocked": True, "reason": "위험한 응답 감지", "risk": output_risk}
return {"blocked": False, "response": llm_response}
# 사용 예시
result = safe_generate(
user_prompt="우리 분기 실적 요약해줘",
llm_response=llm.generate("우리 분기 실적 요약해줘")
)
실전 4 — Granite Embedding Multilingual R2: 200개 언어 RAG
Granite Embedding Multilingual R2:
→ 97M 파라미터 (경량)
→ 200개 이상 언어 지원
→ 컨텍스트 길이 대폭 확장 (이전 세대 대비)
→ 시맨틱 검색, 다국어 문서 RAG에 최적화
from sentence_transformers import SentenceTransformer
import numpy as np
# 97M 파라미터, 다국어 지원
model = SentenceTransformer("ibm-granite/granite-embedding-multilingual-r2")
# 한국어·영어 혼합 문서 임베딩
documents = [
"2026년 1분기 매출이 전년 대비 15% 증가했습니다.",
"Q1 2026 revenue increased 15% year-over-year.",
"2026年第一季度收入同比增长15%。",
"Le chiffre d'affaires du T1 2026 a augmenté de 15% par rapport à l'année précédente."
]
# 동일 의미 → 유사한 임베딩 벡터 생성
embeddings = model.encode(documents)
# 유사도 검색
query = "매출 증가율이 얼마나 됩니까?"
query_embedding = model.encode([query])
# 코사인 유사도
similarities = np.dot(embeddings, query_embedding.T).flatten()
top_idx = np.argsort(similarities)[::-1][0]
print(f"가장 관련된 문서: {documents[top_idx]}")
# → 언어 상관없이 의미 기반으로 매칭
실전 5 — 엔터프라이즈 선택 기준: Granite 4.1 vs DeepSeek V4 Pro vs Llama 4
┌──────────────────┬──────────────┬──────────────┬──────────────┐
│ │ Granite 4.1 │ DeepSeek V4 │ Llama 4 │
├──────────────────┼──────────────┼──────────────┼──────────────┤
│ 라이선스 │ Apache 2.0 │ MIT │ Llama 4* │
│ ISO 인증 │ ✅ 42001 │ ❌ │ ❌ │
│ 암호화 서명 │ ✅ │ ❌ │ ❌ │
│ 멀티모달 패밀리 │ 완전 스택 │ 언어만 │ 언어+비전 │
│ 안전성 모델 │ Guardian 내장│ ❌ │ 제한적 │
│ 엔터프라이즈 지원│ IBM watsonx │ DeepSeek API │ Meta/클라우드│
│ 자체 호스팅 │ ✅ │ ✅ (865GB) │ ✅ │
│ 추론 모델 │ ❌ (강점) │ 하이브리드 │ ❌ │
│ 컨텍스트 │ 128K/512K │ 1M │ 10M │
│ 주요 강점 │ 거버넌스·컴플│ 비용 효율 │ 초장문 컨텍스│
└──────────────────┴──────────────┴──────────────┴──────────────┘
*Llama 4: 월간 활성 사용자 7억 초과 시 별도 라이선스 필요
언제 Granite 4.1 전체 스택을 선택하나:
✅ 금융·헬스케어·공공기관 — ISO 42001, 암호화 서명 필수
✅ 멀티모달 엔터프라이즈 AI — 언어+비전+음성+안전성 통합 파이프라인
✅ 문서 처리 자동화 — 인보이스·계약서·재무제표 데이터 추출
✅ 고처리량 회의 녹취 — Speech NAR 변형
✅ 다국어 RAG — 200개 언어 임베딩
✅ 오픈소스 + IBM 엔터프라이즈 지원 (watsonx) 병행
✅ 결론
✅ Granite 4.1은 단일 모델이 아니라 엔터프라이즈 AI 스택이에요. Vision(문서 추출) + Speech(회의 녹취) + Guardian(안전성) + Embedding(다국어 RAG)을 하나의 아키텍처 철학으로 통합했어요. 개별 최고 성능 모델을 따로 조합하는 대신 검증된 스택을 사용하고 싶은 팀에게 강점이에요.
✅ Guardian의 독립성이 핵심이에요. Granite 언어 모델뿐 아니라 GPT, Claude, Llama 어떤 LLM 위에도 Guardian을 안전성 레이어로 올릴 수 있어요. GuardBench 상위 10개 중 6개가 IBM 모델이에요.
❌ 프런티어 언어 성능은 목표가 아니에요. DeepSeek V4 Pro(SWE-bench 80.6%), Claude Opus 4.7(87.6%) 같은 복잡한 추론·코딩 태스크에서 Granite 4.1은 경쟁 대상이 아니에요. 엔터프라이즈 자동화의 반복적이고 예측 가능한 워크로드가 타깃이에요.
❌ Vision 4.1 벤치마크는 "문서 추출" 특화 평가예요. 7개 벤치마크 1위는 차트·표·KVP 추출 기준이에요. 일반 이미지 이해, 씬 설명, 비주얼 QA 등 범용 VLM 태스크에서는 GPT-4o, Gemini 3.5 Flash 대비 열세예요.
관련 글
- IBM Granite 4.1 완전 분석 1편 — 8B 모델이 32B MoE를 이긴 이유: https://cell-devlog.tistory.com/357
- IBM Granite 4.1 완전 분석 2편 — Vision·Speech·Guardian·Embedding 실전: https://cell-devlog.tistory.com/358
'LLM' 카테고리의 다른 글
| MiniMax M3 완전 분석 — GPT-5.5 제쳤다는 중국 오픈소스, 벤치마크·가격·보안 총정리 (0) | 2026.06.04 |
|---|---|
| Microsoft Foundry Local 완전 가이드 — 클라우드 없이 앱에 LLM 내장하는 법 (0) | 2026.06.04 |
| IBM Granite 4.1 완전 분석 1편 — 8B 모델이 32B MoE를 이긴 이유 (0) | 2026.06.02 |
| DeepSeek V4 Pro 완전 분석 — Claude Opus 4.6 대비 7배 저렴하고 성능은 0.2% 차이 (0) | 2026.06.02 |
| vLLM 0.21 완전분석 — TOKENSPEED_MLA, MTP Thinking budget 수정, Blackwell 최적화 총정리 (0) | 2026.06.01 |