Granite 4.2 LLM: 구축 방식 안내
요약
IBM이 추론 능력에 초점을 맞춘 Granite 4.2 LLM 패밀리를 공개했습니다. 이 모델은 3B, 8B, 30B 세 가지 크기로 출시되었으며, 다단계 강화학습(multi-stage RL)과 에이전틱 RL을 통해 강력한 추론 및 도구 호출 능력을 갖추었습니다.
핵심 포인트
- 3B, 8B, 30B 세 가지 크기의 디코더 전용 LLM 패밀리 출시
- 다단계 강화학습(RL)을 거쳐 에이전트처럼 행동하도록 학습됨
- 사고/비사고 모드와 저노력 사고 모드를 지원하여 추론 능력을 최적화
- OpenAI 호환 엔드포인트를 통해 네이티브 도구 호출 및 플러그인이 가능함
저희가 Granite 4.2 추론 모델 패밀리를 어떻게 구축했는지에 대한 기술적인 설명입니다.
작성자: Granite Team, IBM
요약: Granite 4.2는 밀집형(dense), 디코더 전용(decoder-only) 추론 LLM의 첫 번째 패밀리로, 3B, 8B, 30B 세 가지 크기로 출시되었습니다. 이 모델들은 Granite-4.1 기본 모델을 기반으로 후처리(post-trained) 되었습니다. Granite-4.1 기본 모델은 약 15조 토큰으로 처음부터 사전 학습되었으며, 컨텍스트 창을 512K 토큰까지 확장하는 5단계 전략을 거쳤고, chain-of-thought, 추론(reasoning), 그리고 agentic-trajectory 데이터로 지도 미세 조정(supervised fine-tuned)된 후, 다단계 강화학습 (multi-stage reinforcement learning) 파이프라인으로 후처리되었습니다. 이 파이프라인에는 8B 및 30B 모델이 실제 격리 환경(sandboxed environments) 내에서 도구와 함께 행동하는 방법을 배우는 agentic RL이 포함됩니다. 모든 모델은 사고/비사고 (thinking / non-thinking) 스위치, 쉬운 질문에 짧은 추론 예산(reasoning budget)을 사용하는 저노력 (low-effort) 사고 모드, 그리고 네이티브 도구 호출 기능을 갖추고 있습니다. 모든 Granite 4.2 모델은 Apache 2.0 라이선스 하에 공개됩니다.
링크:
Granite 4.2는 추론(reasoning)에 초점을 맞춘 Granite 언어 모델 패밀리의 출시 버전입니다. 이전의 Granite 출시는 강력한 명령어 수행 비서였지만, Granite 4.2는 명시적인 추론 기능을 추가했습니다. 모든 모델은 답변 전에 사고 과정(chain of thought)을 생성할 수 있으며, 작업이 얼마나 많은 숙고를 필요로 하는지에 따라 사고 (thinking) 모드 또는 비사고 (non-thinking) 모드로 실행될 수 있습니다. 저노력 (low-effort) 모드는 이 두 모드 사이에 위치하며, 쉬운 질문에 짧은 추론 예산을 사용합니다.
세 가지 크기(3B, 8B 및 30B)는 동일한 아키텍처 디자인을 공유하며 동일한 학습 파이프라인(베이스 모델, SFT 후 다단계 RL)을 따르며, 각각의 규모에서 구현됩니다. 세 모델 모두 강력한 추론 능력과 명령어 수행 능력을 갖추고 있습니다. 가장 명확하게 역량 분리가 나타나는 것은 사후 훈련 단계입니다. 8B 및 30B 모델은 에이전트처럼 작동하도록 학습시키는 에이전틱 RL(agentic RL) 블록을 추가로 거칩니다. 이 과정에서 도구 호출, 코드 편집 및 실행, 터미널 구동, 실제 환경 내 웹 검색 등의 능력을 습득합니다. 모든 모델은 네이티브 도구 호출을 지원합니다. OpenAI와 호환되는 엔드포인트(예: vLLM 사용 시)를 통해 서비스되며, OpenAI 함수 호출 형식으로 도구 호출을 방출하고 추가적인 연결 장치 없이 에이전틱 하네스에 플러그인됩니다. Granite 4.2는 SGLang에서도 지원되므로, SGLang 쿡북에서 즉시 서비스 가능한 레시피를 확인하십시오.
나머지 게시물에서는 빌드 과정(아키텍처, 사전 학습, 지도 미세 조정, 다단계 RL 파이프라인 및 결과)을 안내합니다.
Granite 4.2 모델은 다음 핵심 구성 요소를 가진 디코더 전용 밀집 트랜스포머 아키텍처를 기반으로 구축되었습니다:
어텐션(Attention): 그룹화된 쿼리 어텐션 (GQA)을 사용하며, 40개의 어텐션 헤드와 8개의 KV 헤드를 가집니다.
위치 임베딩(Position Embedding): $ heta = 10,000,000$인 로터리 위치 임베딩 (RoPE)을 사용합니다.
피드-포워드(Feed-Forward): SwiGLU 활성화 함수를 가진 MLP를 사용합니다.
정규화(Normalization): RMSNorm ($ ext{ε} = 1 ext{e-}5$)을 사용합니다.
임베딩(Embeddings): 분리된 입력/출력 임베딩 (비결합형)을 사용합니다.
정밀도(Precision): bfloat16을 사용합니다.
| Component | 3B Dense | 8B Dense | 30B Dense |
|---|---|---|---|
| Embedding size | 2560 | 4096 | 4096 |
| ... | |||
| Granite 4.2 모델은 Granite-4.1 기본 모델을 기반으로 후속 학습(post-trained)되었습니다. Granite-4.1 기본 모델은 약 15조 토큰을 사용하여 5단계의 훈련 전략으로 처음부터 훈련되었습니다. 1 |
사전 훈련 방식은 이전 세대와 매우 유사하게 따릅니다. 데이터 블렌드, 단계 일정, 장문 컨텍스트 확장에 대한 자세한 내용은 Granite 4.1 블로그를 참조하십시오.
지도 미세 조정(Supervised fine-tuning, SFT)을 통해 기본 모델이 신뢰할 수 있는 지침 추종, 추론 및 도구 사용 비서로 변모합니다. SFT 데이터 혼합은 에이전트형(agentic, 31.6%) 및 비에이전트형(non-agentic, 68.4%) 데이터를 결합하며, 총 약 720만 개의 샘플, 즉 대략 100B 토큰으로 구성되어 있으며, 이 중 약 65B가 학습 가능합니다.
**에이전트 코퍼스(agentic corpus)**는 소프트웨어 엔지니어링(SWE, 69%), 도구 호출(tool calling, 12.1%), 터미널 사용(terminal use, 8.0%), 수학(math, 3.5%), 검색(search, 0.8%), 액션(action, 0.2%)을 포함한 광범위한 영역을 다룹니다. 이 샘플과 궤적은 OpenHands, OpenCode, Terminus-2, SWE-agent, OpenResearcher, MiniSWE, OpenSeeker, EnvScaler, Gemini CLI, Hermes, Codex, Goose를 포함하는 다양한 에이전트 스캐폴드 및 하네스(harness)를 사용하여 생성되었습니다. 에이전트 데이터는 오픈 소스 데이터셋과 자체적으로 합성 생성한 RL 환경의 샘플을 결합하며, 다양한 에이전트–하네스 조합에 걸쳐 있습니다.
**비에이전트 코퍼스(non-agentic corpus)**는 지침 추종(instruction following, 18.8%), 코딩(coding, 18.8%), 수학(math, 14.6%), 다국어(multilingual, 7.0%), 과학(science, 5.4%), 추론(reasoning, 3.0%), 안전(safety, 0.8%) 등 여러 주요 범주로 구성됩니다.
샘플이 최종 SFT 혼합물에 들어가기 전에 여러 단계의 품질 관리를 적용합니다. 먼저, 다양한 출처의 데이터는 정규화되고 일관된 OpenAI Chat 형식으로 재구성되어 대화 구조와 도구 상호 작용을 데이터셋과 스캐폴드 전반에 걸쳐 통일시킵니다.
다음으로, GPT-OSS-120B와 Gemma 4를 LLM 기반 심사위원(judge)으로 사용하여 샘플 품질을 평가합니다. 점수가 낮은 샘플은 제거되며, 환각되거나 조작된 정보, 유효하지 않은 도구 상호 작용, 또는 해당 도구 목록에 정의되지 않은 함수로의 도구 호출이 포함된 샘플도 제거됩니다. 또한 적절한 경우 여러 개의 목표 지향적이고 데이터셋별 휴리스틱 규칙(heuristic rules)을 적용하여 품질을 더욱 향상시키고 알려진 노이즈 발생원을 제거합니다.
마지막으로, 로컬 및 글로벌 중복 제거를 수행합니다. 중복 제거는 tools와 messages 필드의 조합에 대해 계산된 SHA-256 해시를 기반으로 하며, 개별 데이터 소스 내와 전체 SFT 혼합물 전반에 걸쳐 중복 샘플을 제거합니다.
완전한 코퍼스는 먼저 글로벌하게 셔플되어 순서 효과(ordering effects)를 줄이고 다양한 도메인의 샘플이 학습 중에 잘 혼합되도록 합니다. 그런 다음 셔플된 코퍼스는 동일한 크기의 .parquet 샤드(shards)로 분할되며, 모델의 토크나이저와 채팅 템플릿을 사용하여 토큰화되고 대규모 분산 학습을 위해 준비됩니다.
최종 대규모 실행을 시작하기 전에, 대표적인 구성에서 하이퍼파라미터(hyperparameters)를 조정합니다. 여기에는 학습률 스케줄(learning-rate schedules), 초기 학습률(initial learning rates), 그리고 웜업 비율(warm-up ratios)을 탐색하여 모델 크기 전반에 걸쳐 안정적으로 학습하는 설정을 찾습니다. 최종 훈련 구성은 아래에 요약되어 있습니다:
| Parameter | Value |
|---|---|
| Compute | 32–128 nodes (모델 크기별), 노드당 4× Grace/GB200 |
| ... | |
| 30B 모델의 경우, 에이전트 코딩에 특별히 초점을 맞춘 두 번째 SFT 단계를 추가로 수행합니다. 이 단계에서는 에이전트 관련(agentic), SWE, 그리고 코딩 데이터가 업샘플링되어 훈련 분포에 대한 효과적인 기여도를 높이는 동시에, 혼합 데이터의 약 16%는 원래 SFT 코퍼스에서 리플레이 데이터로 유지됩니다. |
30B 모델은 이후 더 낮은 학습률인 3.0e-6으로 대략 한 에포크(epoch) 추가 파인튜닝을 거칩니다. 이 목표 지향적인 두 번째 단계는 초기 SFT 단계에서 습득한 능력을 폐기하지 않으면서, 모델이 에이전트 코딩 궤적에 노출되는 것을 증가시킵니다.
SFT 이후, 다단계(multi-stage), 다환경(multi-environment) 강화학습 파이프라인을 적용합니다. 단일 RL 패스 대신, 수학, 코드, 과학, 지침 따르기(instruction following), 도구 사용(tool use), 구조화된 출력(structured output), 소프트웨어 엔지니어링(software engineering), 터미널 사용(terminal use), 웹 검색에 걸친 여러 환경을 아우르는 체인의 집중적인 단계들을 실행합니다. 각 단계는 하나의 능력을 목표로 하는 독립적인 RL 실행이며, 이전 단계의 체크포인트에서 워밍업(warm-starts)됩니다.
그림 1. 단계별 RL 커리큘럼. 기초 RL(검증 가능한 보상 + 스킬 부스터)은 모든 크기에 대해 실행되며; 에이전트 관련 RL 블록(SWE → 터미널 → 검색)은 8B와 30B에 대해서만 실행됩니다. 모든 모델은 RLHF로 마무리됩니다. 각 단계는 이전 체크포인트에서 워밍업되는 별도의 GRPO 실행입니다.
모든 단계는 비동기 GRPO (Group Relative Policy Optimization)로 학습되므로, 생성기와 훈련기의 루프가 서로를 기다리며 막히는 일이 없습니다. 생성 작업자 풀(pool of generation workers)이 응답을 계속 샘플링하고 완성된 궤적(trajectories)을 공유 버퍼에 떨어뜨립니다. 이 버퍼가 한 단계 분량의 데이터를 담으면, 훈련기가 해당 배치(batch)를 가져와 최적화기 스텝(optimizer step)을 수행하고 업데이트된 매개변수를 생성 작업자들에게 중단 없이 스트리밍합니다. 새로고침은 롤아웃 도중에 발생할 수 있으며, 이 경우 단일 궤적이 두 개의 인접한 정책 버전으로부터 이어 붙여지게 됩니다. 우리는 비용 지불을 피하기 위해 이를 허용하는데, 작업자들은 매번 재구축하는 대신 기존의 KV 캐시를 재사용하고, 하나의 가드레일은 그들이 훈련기보다 한 업데이트 이상 벗어나지 않도록 제한하여 샘플이 얼마나 오프-정책(off-policy)이 될 수 있는지 경계합니다. 이 제한을 통과하는 모든 불일치는 절단 중요도 샘플링 (truncated importance sampling)에서 목적 함수로 처리되는데, 이는 훈련 대 생성 로그 확률 비율을 고정된 천장에 클램핑하여 소수의 오래된 토큰들이 업데이트를 지배하는 것을 막습니다.
장점은 하나 제외 기준선 (leave-one-out baseline)을 가진 그룹 상대적 방식입니다. 즉, 각 응답은 동일한 프롬프트에 대해 추출된 다른 샘플들의 평균 보상과 비교되어, 별도의 값 네트워크(value network)가 필요 없습니다. 이를 구체적으로 설명하자면, 첫 번째이자 가장 오래 실행되는 단계인 RLVR를 예로 들 수 있습니다: 각 스텝은 256개의 프롬프트에 대해 각각 16개의 샘플 응답을 짝지어 4,096개의 예제 배치(example batch)를 만들고, 이를 훈련기가 다음 롤아웃이 시작되기 전에 단일 최적화기 스텝으로 소비합니다. 이후 단계들은 이 장치를 변경하지 않고 스테이지별 모양만 조정하며, 이는 다음에 표시됩니다.
파이프라인은 모든 단계에 걸쳐 공통의 하이퍼매개변수 백본(backbone)을 유지하여 커리큘럼을 더 쉽게 실행하고 비교할 수 있게 합니다. 몇 가지 노브(knobs)는 어디서나 고정되어 있습니다:
| Parameter | 값 (단계별 공유) |
|---|---|
| Algorithm | GRPO (값 네트워크 없음; 그룹 상대 이점) |
| ... | |
| 무엇이 단계마다 바뀌는가 하는 것은 각 실행의 형태이다: 한 단계당 프롬프트 및 생성 횟수, 컨텍스트 길이, 에이전트 루프 실행 여부, 그리고 참조 정책 쪽으로 얼마나 강하게 되돌아가는지(pull back)이다. 아래 표는 30B 체인에 대한 정확한 설정을 단계별로 보여준다: |
| Stage | Prompts/step | Gens/prompt | Max seq len | Rollout turns | KL | LR |
|---|---|---|---|---|---|---|
| RLVR (×3) | 256 | 16 | 64K | 1 | 0 | 5e-7 |
| ... | 0 | 5e-7 | ||||
| Terminal | 8 | 32 | 64K | 64 | 0.01 | 1e-6 |
| Search | 32 | 16 | 128K | 64 | 0.01 | 5e-7 |
| RLHF | 128 | 16 | 48K | 1 | 0.05 | 5e-7 |
표에 표시된 값은 30B 모델에 대한 것이다. 전역 배치 크기 = prompts/step × generations/prompt (예: RLVR의 경우 256 × 16 = 4096). 3B 및 8B 모델은 더 적은 단계(How the Three Sizes Differ 참조)를 사용하지만 동일한 레시피와 하이퍼파라미터를 사용한다. 변경되는 것은 스위치(knobs)가 아니라 단계 목록이다.
KL 스케줄은 보상 유형을 따른다: 보상이 객관적이고 검증 가능한 경우 자유롭게 탐색하며(RLVR 및 SWE 2는 KL 0에서 실행), 목적이 선호도, 안전성 또는 좁은 기술 접목인 경우 참조 정책에 가깝게 머무른다(RLHF와 코드 부스터는 KL 0.05를 사용). rollout-turns 열은 GRPO 자체가 각 rollout당 보는 환경 상호작용 횟수를 센다. 모든 경우에 모델은 완전하고 실제 환경의 궤적(trajectories)으로 학습된다.
각 단계는 단일 목표와 고유한 보상 신호를 가진 별도의 RL 실행이다. 이 단계가 완료되면, 그 정책이 Hugging Face 형식으로 내보내져 다음 단계의 기본 모델이 되므로, 파이프라인은 따뜻하게 시작하는(warm-starts) 일련의 과정이다:
SFT ─▶ RLVR ─▶ Skill boosters ─▶ SWE agent ─▶ Terminal ─▶ Search ─▶ RLHF
└──────── foundational RL ────────┘ └──────── agentic RL (8B / 30B) ────────┘
8B와 30B 모델은 전체 사다리(full ladder)를 따릅니다. 3B 모델은 에이전트 블록(agentic block) 없이, 기초적인 강화학습(RL)과 정렬(alignment)만 거치는 단축 경로를 따릅니다.
한 단계(stage)는 주로 어떻게 보상받는지에 의해 정의됩니다. 파이프라인 전반에는 세 가지 보상 유형이 있으며, 하나의 단계가 여러 개를 사용할 수 있습니다:
| 보상 유형 | 측정하는 것 | 사용되는 곳 |
|---|---|---|
| 검증 가능 (Verifiable) | 정확히 일치(Exact-match), 단위 테스트, 형식 확인기, 규칙 기반 확인기를 실제 정답에 적용 | RLVR · boosters · SWE |
| 보상 모델 / LLM 심사관 (Reward model / LLM judge) | 개방형 품질, 선호도, 안전성, 답변 정확성 | RLVR · Search · RLHF |
| 에이전트 결과 (Agentic outcome) | 모델이 실제 환경에서 과제를 실제로 해결했는가? | SWE · Terminal · Search |
AI 자동 생성 콘텐츠
본 콘텐츠는 Hugging Face Blog의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기