<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Quantization on ICE-ICE-BEAR-BLOG</title><link>https://ice-ice-bear.github.io/ko/tags/quantization/</link><description>Recent content in Quantization on ICE-ICE-BEAR-BLOG</description><generator>Hugo -- gohugo.io</generator><language>ko</language><lastBuildDate>Thu, 07 May 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://ice-ice-bear.github.io/ko/tags/quantization/index.xml" rel="self" type="application/rss+xml"/><item><title>DGX Spark에서 Qwen3.5-122B를 28.3에서 51 tok/s로 끌어올린 추론 최적화 레시피</title><link>https://ice-ice-bear.github.io/ko/posts/2026-05-07-dgx-spark-qwen35-inference-tuning/</link><pubDate>Thu, 07 May 2026 00:00:00 +0900</pubDate><guid>https://ice-ice-bear.github.io/ko/posts/2026-05-07-dgx-spark-qwen35-inference-tuning/</guid><description>&lt;img src="https://ice-ice-bear.github.io/" alt="Featured image of post DGX Spark에서 Qwen3.5-122B를 28.3에서 51 tok/s로 끌어올린 추론 최적화 레시피" /&gt;&lt;h2 id="개요"&gt;개요
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://github.com/albond/DGX_Spark_Qwen3.5-122B-A10B-AR-INT4" target="_blank" rel="noopener"
 &gt;albond/DGX_Spark_Qwen3.5-122B-A10B-AR-INT4&lt;/a&gt;는 &lt;a class="link" href="https://www.nvidia.com/en-us/products/workstations/dgx-spark/" target="_blank" rel="noopener"
 &gt;NVIDIA DGX Spark&lt;/a&gt; 단일 박스에서 &lt;a class="link" href="https://huggingface.co/Qwen/Qwen3.5-122B-A10B" target="_blank" rel="noopener"
 &gt;Qwen3.5-122B-A10B&lt;/a&gt;를 28.3에서 51 tok/s까지 80퍼센트 끌어올린 레시피다. INT4 양자화, FP8 dense layer hybrid, MTP-2 speculative decoding, INT8 LM head, TurboQuant KV cache까지 다섯 가지 기법을 차례로 쌓았고 256K context도 유지된다. Apache 2.0, GitHub 별 171개. &amp;ldquo;단일 워크스테이션에서 100B급 MoE 모델을 production 수준으로 돌릴 수 있는가&amp;rdquo; 라는 질문에 대한 강한 긍정 답이다.&lt;/p&gt;
&lt;pre class="mermaid" style="visibility:hidden"&gt;flowchart LR
 Base["Baseline &amp;lt;br/&amp;gt; 28.3 tok/s"] --&gt; S1["+ Hybrid INT4+FP8 &amp;lt;br/&amp;gt; 30.8 tok/s"]
 S1 --&gt; S2["+ MTP-2 Speculative &amp;lt;br/&amp;gt; 38.4 tok/s"]
 S2 --&gt; V2["v2: + INT8 LM Head &amp;lt;br/&amp;gt; 51 tok/s"]
 V2 --&gt; TQ["v2-tq: + TurboQuant KV &amp;lt;br/&amp;gt; 39 tok/s &amp;lt;br/&amp;gt; 1.4M KV"]&lt;/pre&gt;&lt;h2 id="결과-표"&gt;결과 표
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;구성&lt;/th&gt;
 &lt;th&gt;tok/s&lt;/th&gt;
 &lt;th&gt;향상&lt;/th&gt;
 &lt;th&gt;빌드&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Baseline (vLLM 0.19 + AutoRound INT4 + FlashInfer)&lt;/td&gt;
 &lt;td&gt;28.3&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;+ Hybrid INT4+FP8 dense layers&lt;/td&gt;
 &lt;td&gt;30.8&lt;/td&gt;
 &lt;td&gt;+8.8%&lt;/td&gt;
 &lt;td&gt;step 1&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;+ MTP-2 Speculative Decoding&lt;/td&gt;
 &lt;td&gt;38.4&lt;/td&gt;
 &lt;td&gt;+35.7%&lt;/td&gt;
 &lt;td&gt;step 2&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;v2&lt;/strong&gt; (+ INT8 LM Head v2)&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;51&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;+80%&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;Dockerfile.v2&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;v2-tq (+ TurboQuant KV Cache)&lt;/td&gt;
 &lt;td&gt;39&lt;/td&gt;
 &lt;td&gt;+38%&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;Dockerfile.v2-tq&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;같은 최적화로 Qwen3.5-35B-A3B (작은 형제) 는 112 tok/s까지 올라간다.&lt;/p&gt;
&lt;h3 id="256k-context"&gt;256K Context
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;설정&lt;/th&gt;
 &lt;th&gt;KV Cache&lt;/th&gt;
 &lt;th&gt;256K 동시 사용자&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;v2 (standard)&lt;/td&gt;
 &lt;td&gt;355K tokens&lt;/td&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;v2-tq (TurboQuant)&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;1.4M tokens&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;5&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="모델-한-줄"&gt;모델 한 줄
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://huggingface.co/Qwen/Qwen3.5-122B-A10B" target="_blank" rel="noopener"
 &gt;Qwen3.5-122B-A10B&lt;/a&gt;는 122B 총 파라미터 중 10B만 활성화하는 hybrid MoE다. 256개 expert 중 8 routed + 1 shared, Gated DeltaNet과 Gated Attention이 12:1 비율로 교차하는 48 레이어 구조에 native 262K context (YaRN 확장 시 1M)까지 지원한다. Apache 2.0. 이 모델을 &lt;a class="link" href="https://github.com/intel/auto-round" target="_blank" rel="noopener"
 &gt;Intel AutoRound&lt;/a&gt;로 INT4 양자화한 &lt;a class="link" href="https://huggingface.co/Intel/Qwen3.5-122B-A10B-int4-AutoRound" target="_blank" rel="noopener"
 &gt;Intel/Qwen3.5-122B-A10B-int4-AutoRound&lt;/a&gt; (group size 128, shared_expert는 ignore) 가 출발점이다.&lt;/p&gt;
&lt;h2 id="핵심-기법"&gt;핵심 기법
&lt;/h2&gt;&lt;h3 id="1-hybrid-int4--fp8-dense-layers-9"&gt;1. Hybrid INT4 + FP8 Dense Layers (+9%)
&lt;/h3&gt;&lt;p&gt;AutoRound INT4 모델의 BF16 shared expert weights를 official Qwen 체크포인트의 FP8 weights로 교체한다. 즉 expert 레이어만 INT4, dense는 FP8. 정확도를 보존하면서 메모리와 연산량을 동시에 줄인다.&lt;/p&gt;
&lt;h3 id="2-mtp-2-speculative-decoding-36"&gt;2. MTP-2 Speculative Decoding (+36%)
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://arxiv.org/abs/2404.19737" target="_blank" rel="noopener"
 &gt;Multi-Token Prediction&lt;/a&gt; 방식으로 한 번에 2 토큰을 예측한다. accept rate가 약 80퍼센트로 매우 높아 디코드 throughput이 가장 크게 점프하는 단계다. 작은 draft 모델을 따로 돌리지 않고 메인 모델 자체가 multi-head 예측을 한다는 점이 주목할 만하다.&lt;/p&gt;
&lt;h3 id="3-int8-lm-head-v2-triton-커널"&gt;3. INT8 LM Head v2 (Triton 커널)
&lt;/h3&gt;&lt;p&gt;LM head, 즉 최종 token vocabulary projection 레이어를 INT8로 양자화한다. Triton 커스텀 커널로 구현되며 v2 빌드에서 가장 큰 점프 (38.4 → 51 tok/s) 를 만든다. LM head는 보통 양자화 대상에서 빠지지만 vocabulary가 큰 모델일수록 영향력이 크다는 게 다시 확인됐다.&lt;/p&gt;
&lt;h3 id="4-turboquant-kv-cache-선택"&gt;4. TurboQuant KV Cache (선택)
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://github.com/microsoft/turbo-quant" target="_blank" rel="noopener"
 &gt;TurboQuant&lt;/a&gt;로 KV cache를 4배 압축한다. 절대 throughput은 v2 대비 약간 떨어지지만 256K context 동시 사용자가 1명에서 5명으로 늘어난다. Long-context multi-tenant 시나리오에서 의미 있는 트레이드오프다.&lt;/p&gt;
&lt;h2 id="환경"&gt;환경
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;vLLM 0.19.1, CUDA 13.0, Docker 기반&lt;/li&gt;
&lt;li&gt;추론 엔진: &lt;a class="link" href="https://github.com/vllm-project/vllm" target="_blank" rel="noopener"
 &gt;vLLM 0.19&lt;/a&gt; + &lt;a class="link" href="https://github.com/flashinfer-ai/flashinfer" target="_blank" rel="noopener"
 &gt;FlashInfer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;모델: &lt;code&gt;Intel/Qwen3.5-122B-A10B-int4-AutoRound&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;./install.sh&lt;/code&gt; 한 번으로 Step 0~4 자동 (idempotent)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="인사이트"&gt;인사이트
&lt;/h2&gt;&lt;p&gt;100B급 모델을 단일 워크스테이션에서 51 tok/s로 돌린다는 건 production 응답 속도 (60 tok/s 근처) 에 거의 닿았다는 뜻이다. 별 171개 짜리 레시피 치고는 짜임새가 단단해서 벤치 표, 단계별 Docker, install.sh, vLLM/CUDA 버전 호환성까지 모두 갖췄고 그대로 따라 돌릴 수 있다. 흥미로운 건 다섯 기법이 직교한다는 점이다. Hybrid quant은 메모리/정확도, MTP는 디코딩 병렬성, INT8 LM head는 컴퓨트, TurboQuant은 KV 메모리를 각각 친다. 한 곳을 짠 게 아니라 병목을 차례로 옮기면서 합산한 결과가 80퍼센트다. 그리고 v2-tq에서 보이듯 throughput과 동시 사용자 수는 다른 축이라 워크로드에 따라 다른 빌드를 골라야 한다. 다음 분기쯤이면 이런 hybrid quant + speculative + custom kernel 스택이 vLLM/SGLang에 표준으로 들어올 가능성이 높고, &amp;ldquo;100B 모델을 한 박스에서&amp;rdquo; 가 점점 demo가 아니라 default로 바뀐다.&lt;/p&gt;
&lt;h2 id="참고"&gt;참고
&lt;/h2&gt;&lt;h3 id="repo-and-model-cards"&gt;Repo and model cards
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/albond/DGX_Spark_Qwen3.5-122B-A10B-AR-INT4" target="_blank" rel="noopener"
 &gt;albond/DGX_Spark_Qwen3.5-122B-A10B-AR-INT4&lt;/a&gt; — 별 171, Apache 2.0&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://huggingface.co/Qwen/Qwen3.5-122B-A10B" target="_blank" rel="noopener"
 &gt;Qwen/Qwen3.5-122B-A10B&lt;/a&gt; — 122B/10B hybrid MoE, 262K context&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://huggingface.co/Intel/Qwen3.5-122B-A10B-int4-AutoRound" target="_blank" rel="noopener"
 &gt;Intel/Qwen3.5-122B-A10B-int4-AutoRound&lt;/a&gt; — INT4 group128 quantized&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://www.nvidia.com/en-us/products/workstations/dgx-spark/" target="_blank" rel="noopener"
 &gt;NVIDIA DGX Spark&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="inference-frameworks"&gt;Inference frameworks
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/vllm-project/vllm" target="_blank" rel="noopener"
 &gt;vLLM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/flashinfer-ai/flashinfer" target="_blank" rel="noopener"
 &gt;FlashInfer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="optimization-techniques"&gt;Optimization techniques
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/intel/auto-round" target="_blank" rel="noopener"
 &gt;Intel AutoRound (arXiv:2309.05516)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://arxiv.org/abs/2404.19737" target="_blank" rel="noopener"
 &gt;Multi-Token Prediction (arXiv:2404.19737)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/microsoft/turbo-quant" target="_blank" rel="noopener"
 &gt;TurboQuant&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Simon Willison의 Granite 4.1 3B 펠리컨 갤러리 — 양자화 21종이 똑같이 망한 이유</title><link>https://ice-ice-bear.github.io/ko/posts/2026-05-04-simonwillison-granite-pelican-benchmark/</link><pubDate>Mon, 04 May 2026 00:00:00 +0900</pubDate><guid>https://ice-ice-bear.github.io/ko/posts/2026-05-04-simonwillison-granite-pelican-benchmark/</guid><description>&lt;img src="https://ice-ice-bear.github.io/" alt="Featured image of post Simon Willison의 Granite 4.1 3B 펠리컨 갤러리 — 양자화 21종이 똑같이 망한 이유" /&gt;&lt;h2 id="개요"&gt;개요
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://simonwillison.net/" target="_blank" rel="noopener"
 &gt;Simon Willison&lt;/a&gt;이 &lt;a class="link" href="https://huggingface.co/ibm-granite/granite-4.1-3b-instruct" target="_blank" rel="noopener"
 &gt;IBM Granite 4.1 3B&lt;/a&gt; 양자화 21종(1.2GB ~ 6.34GB, 합계 51.3GB)에 자기 시그니처 프롬프트인 &amp;ldquo;Generate an SVG of a pelican riding a bicycle&amp;quot;를 던졌다. 결론은 한 줄: &lt;em&gt;&amp;ldquo;There&amp;rsquo;s no distinguishable pattern relating quality to size — they&amp;rsquo;re all pretty terrible!&amp;rdquo;&lt;/em&gt;. 이번 글은 그 갤러리를 출발점으로, 비공식 벤치마크가 공식 점수판이 못 잡는 무엇을 잡아내는지, 그리고 양자화-품질 곡선을 측정하려면 어디서부터 봐야 하는지를 정리한다.&lt;/p&gt;
&lt;pre class="mermaid" style="visibility:hidden"&gt;flowchart LR
 P["프롬프트 &amp;lt;br/&amp;gt; pelican on a bicycle"] --&gt; Q["Granite 4.1 3B &amp;lt;br/&amp;gt; 21 quant variants"]
 Q --&gt; S1["1.2GB ~ 6.34GB"]
 S1 --&gt; O["SVG 출력 21장"]
 O --&gt; J["Simon의 눈 판정"]
 J --&gt; R["크기-품질 상관 없음 &amp;lt;br/&amp;gt; 전부 추상 도형"]&lt;/pre&gt;&lt;h2 id="svg-펠리컨-이-뭐길래"&gt;&amp;ldquo;SVG 펠리컨&amp;rdquo; 이 뭐길래
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://simonwillison.net/tags/pelican-riding-a-bicycle/" target="_blank" rel="noopener"
 &gt;Simon Willison의 pelican-riding-a-bicycle 시리즈&lt;/a&gt;는 새 LLM이 나올 때마다 그가 고정으로 돌리는 비공식 평가다. 프롬프트는 단 한 줄.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&amp;ldquo;Generate an SVG of a pelican riding a bicycle.&amp;rdquo;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;SVG는 텍스트 모델이 좌표·path·viewBox를 직접 출력해야 하는 양식이라 시각적 사고를 강제한다. 더 중요한 건 결과가 &lt;strong&gt;즉시 그림으로 렌더링&lt;/strong&gt; 되어 모델 간 비교가 직관적이라는 점이다. &lt;a class="link" href="https://lmarena.ai/" target="_blank" rel="noopener"
 &gt;LMArena&lt;/a&gt; 의 익명 페어 비교나 &lt;a class="link" href="https://paperswithcode.com/dataset/mmlu" target="_blank" rel="noopener"
 &gt;MMLU&lt;/a&gt; 의 객관식 점수에는 잡히지 않는 실패 모드 — 비례, 선의 연속성, 부품 배치 — 가 한 장의 SVG에서 드러난다.&lt;/p&gt;
&lt;h2 id="이번-실험"&gt;이번 실험
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;항목&lt;/th&gt;
 &lt;th&gt;내용&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;대상&lt;/td&gt;
 &lt;td&gt;&lt;a class="link" href="https://huggingface.co/ibm-granite/granite-4.1-3b-instruct" target="_blank" rel="noopener"
 &gt;IBM Granite 4.1 3B Instruct&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;변형&lt;/td&gt;
 &lt;td&gt;양자화 21종 (1.2GB ~ 6.34GB, 합 51.3GB)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;프롬프트&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;Generate an SVG of a pelican riding a bicycle&amp;rdquo;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;출력&lt;/td&gt;
 &lt;td&gt;SVG 21장, 한 페이지 갤러리&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;판정자&lt;/td&gt;
 &lt;td&gt;Simon Willison 본인 (눈)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a class="link" href="https://simonwillison.net/2026/May/4/granite-41-3b-svg-pelican-gallery" target="_blank" rel="noopener"
 &gt;원본 갤러리 글&lt;/a&gt;에 21장이 그대로 펼쳐져 있다.&lt;/p&gt;
&lt;h2 id="결과--simon의-평가"&gt;결과 — Simon의 평가
&lt;/h2&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;em&gt;&amp;ldquo;There&amp;rsquo;s no distinguishable pattern relating quality to size — they&amp;rsquo;re all pretty terrible!&amp;rdquo;&lt;/em&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;모델 크기와 품질 사이에 구별 가능한 패턴이 없다.&lt;/strong&gt; 1.2GB와 6.34GB가 사실상 같은 줄에 선다.&lt;/li&gt;
&lt;li&gt;21장 모두 추상 도형 덩어리. 펠리컨도, 자전거도 명확히 식별되지 않는다.&lt;/li&gt;
&lt;li&gt;흥미롭게도 &lt;strong&gt;가장 작은 모델이 자전거를 가장 잘&lt;/strong&gt; 표현했고, 가장 큰 모델이 펠리컨에 가까운 형태를 그렸다 — 크기-품질 관계가 단조 증가가 아닐 수 있다는 작은 단서.&lt;/li&gt;
&lt;li&gt;Simon 본인은 &amp;ldquo;기대보다 덜 흥미롭다&amp;rdquo;, &amp;ldquo;더 잘 그리는 모델로 다시 해보겠다&amp;quot;고 마무리.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="의미--무엇을-측정한-것인가"&gt;의미 — 무엇을 측정한 것인가
&lt;/h2&gt;&lt;h3 id="1-양자화-곡선은-본판-capability-ceiling에-막힌다"&gt;1. 양자화 곡선은 본판 capability ceiling에 막힌다
&lt;/h3&gt;&lt;p&gt;5배 메모리 차이(1.2GB → 6.34GB)에도 출력 품질에 의미 있는 차이가 없었다. 그러나 결론은 &lt;strong&gt;&amp;ldquo;양자화가 무해하다&amp;rdquo;&lt;/strong&gt; 가 아니다. &lt;strong&gt;&amp;ldquo;이 모델 자체가 SVG 펠리컨에서 약하다&amp;rdquo;&lt;/strong&gt; 가 더 정확한 해석이다.&lt;/p&gt;
&lt;p&gt;양자화 영향을 깔끔하게 측정하려면 본판이 그 과제에서 충분히 강해야 한다. 본판이 이미 floor 근처면 &lt;a class="link" href="https://github.com/intel/auto-round" target="_blank" rel="noopener"
 &gt;AutoRound&lt;/a&gt;·GGUF·AWQ 어떤 방식으로 누르든 변별이 안 나온다. 즉 양자화 벤치를 설계할 때는 &lt;strong&gt;모델의 capability ceiling을 먼저 확인&lt;/strong&gt; 해야 한다는 교훈.&lt;/p&gt;
&lt;h3 id="2-비공식-벤치마크가-공식-점수판을-보완한다"&gt;2. 비공식 벤치마크가 공식 점수판을 보완한다
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://lmarena.ai/" target="_blank" rel="noopener"
 &gt;LMArena&lt;/a&gt; 의 페어 비교나 &lt;a class="link" href="https://paperswithcode.com/dataset/mmlu" target="_blank" rel="noopener"
 &gt;MMLU&lt;/a&gt; 같은 표준 벤치는 텍스트 토큰의 정답률·선호도를 잡는다. 하지만 &amp;ldquo;이 모델이 좌표 평면에 부품을 배치할 줄 아는가&amp;rdquo; 같은 질문은 잘 안 잡힌다. SVG 펠리컨은 그 갭에 정확히 들어간다 — &lt;strong&gt;공식 벤치엔 없지만 모두가 동의하는 빠른 sanity check&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="3-granite-패밀리에-대한-시사"&gt;3. Granite 패밀리에 대한 시사
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://www.ibm.com/granite" target="_blank" rel="noopener"
 &gt;IBM Granite&lt;/a&gt; / &lt;a class="link" href="https://www.ibm.com/products/watsonx-ai/foundation-models" target="_blank" rel="noopener"
 &gt;watsonx Granite 라인업&lt;/a&gt;은 엔터프라이즈 RAG·도구 호출·코드 작업을 타깃으로 잡혀 있다. 그 좌표계에서 보면 SVG 펠리컨은 분포 밖 과제라 약한 게 어쩌면 당연하다. 다만 같은 시기 풀린 &lt;a class="link" href="https://developers.googleblog.com/" target="_blank" rel="noopener"
 &gt;Google Gemma + LiteRT MTP&lt;/a&gt; 같은 모바일 친화 small model 흐름과 나란히 두면, &lt;strong&gt;3B 클래스 small open model의 실용성은 모델 패밀리/제조사가 어디에 capability를 몰아넣었는지에 따라 크게 갈린다.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="인사이트"&gt;인사이트
&lt;/h2&gt;&lt;p&gt;비공식 벤치마크가 살아남는 이유는 점수판이 못 잡는 결함을 한 장의 그림으로 보여주기 때문이다. SVG 펠리컨은 &lt;a class="link" href="https://paperswithcode.com/dataset/mmlu" target="_blank" rel="noopener"
 &gt;MMLU&lt;/a&gt;·&lt;a class="link" href="https://lmarena.ai/" target="_blank" rel="noopener"
 &gt;LMArena&lt;/a&gt; 의 보완재이지 대체재가 아니다 — 둘이 같이 있어야 모델의 강점·약점이 드러난다. 양자화-품질 곡선은 본판 capability에 강하게 의존하므로, 양자화 벤치를 설계할 때는 본판이 그 과제에서 충분히 위에 있는지를 먼저 본다. &lt;a class="link" href="https://github.com/intel/auto-round" target="_blank" rel="noopener"
 &gt;AutoRound&lt;/a&gt; 같은 방식으로 압축률을 더 짜내도 floor 근처 모델에서는 변별이 안 난다. 21장 갤러리에서 가장 작은 모델이 자전거를 가장 잘 그렸다는 디테일은 단조 관계 가정 자체를 의심하게 만든다 — 양자화 비교는 단일 점수가 아니라 분포로 봐야 한다는 뜻. &lt;a class="link" href="https://www.ibm.com/granite" target="_blank" rel="noopener"
 &gt;IBM Granite&lt;/a&gt;가 엔터프라이즈 좌표계를 정조준하는 동안 시각적 추론 같은 분포 밖 과제가 약한 건 당연한 결과이고, 그래서 small open model을 고를 때는 &amp;ldquo;어느 패밀리가 어디에 capability를 몰아넣었나&amp;quot;를 봐야 한다. Simon 같은 외부 관찰자가 21종을 한 페이지에 깔아주는 건 결국 모두를 위한 빠른 모델 카드 역할 — 공식 벤치 결과가 풀리기 전에 한 장으로 감을 잡게 해준다.&lt;/p&gt;
&lt;h2 id="참고"&gt;참고
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Original gallery post&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://simonwillison.net/2026/May/4/granite-41-3b-svg-pelican-gallery" target="_blank" rel="noopener"
 &gt;Simon Willison: Granite 4.1 3B SVG Pelican Gallery (2026-05-04)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://simonwillison.net/tags/pelican-riding-a-bicycle/" target="_blank" rel="noopener"
 &gt;pelican-riding-a-bicycle 시리즈 태그&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://simonwillison.net/" target="_blank" rel="noopener"
 &gt;Simon Willison&amp;rsquo;s Weblog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;IBM Granite&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://huggingface.co/ibm-granite/granite-4.1-3b-instruct" target="_blank" rel="noopener"
 &gt;IBM Granite 4.1 3B Instruct (Hugging Face)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://www.ibm.com/granite" target="_blank" rel="noopener"
 &gt;IBM Granite 공식 페이지&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://www.ibm.com/products/watsonx-ai/foundation-models" target="_blank" rel="noopener"
 &gt;watsonx 파운데이션 모델 라인업&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Related benchmark refs&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://lmarena.ai/" target="_blank" rel="noopener"
 &gt;LMArena (페어 비교 리더보드)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://paperswithcode.com/dataset/mmlu" target="_blank" rel="noopener"
 &gt;MMLU (Papers with Code)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/intel/auto-round" target="_blank" rel="noopener"
 &gt;Intel AutoRound (양자화 라이브러리)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>