2026년 SLM: 소규모 언어 모델 및 벤치마크 개요
2023년에 "AI 모델"은 거의 항상 GPT-4 또는 Claude를 의미했습니다. 2026년에는 풍경과 근본적으로 다릅니다: Phi-4-mini(38억 매개변수)가 Mixtral 8x7B(46B)보다 성능이 뛰어납니다. 수학적 추론 벤치마크에서 1억 3,500만 개의 매개변수 SmolLM2가 실행됩니다. Raspberry Pi 4 및 Gemma 3n E4B의 LMArena Elo는 1300 이상으로 많은 제품보다 높습니다. 1년 전의 70B 모델. 소규모 언어 모델의 시대가 도래했으며 이는 시사하는 바가 있습니다. AI 애플리케이션을 개발하는 사람들을 위한 구체적인 내용입니다.
무엇을 배울 것인가
- 2026년 주요 SLM 지도: Phi-4-mini, Gemma 3n, Qwen 3, SmolLM2, DeepSeek
- 벤치마크 해석 방법: MMLU, HumanEval, MATH, GPQA
- 코딩, 추론, 채팅, 분류 작업을 위해 어떤 모델을 선택해야 할까요?
- 각 모델의 로컬 추론에 필요한 하드웨어
- 사용 사례에 대한 맞춤형 벤치마크를 실행하는 방법
2026년의 "작은" 언어 모델을 정의하는 것
"작은"의 정의는 시간이 지남에 따라 변경되었습니다. 2024년에 '소규모'는 7B 미만을 의미함 매개변수. 2026년에는 1B 모델이 2년 전의 13B와 경쟁하게 되면서 한계점은 실습이 진행되었습니다. SLM을 실행할 수 있는 10B 매개변수 미만의 모델로 간주합니다. 공격적인 양자화 없이 소비자 하드웨어에서.
| 모델 | 매개변수 | 창조자 | 특허 | VRAM(fp16) |
|---|---|---|---|---|
| SmolLM2 | 135M - 1.7B | 포옹얼굴 | 아파치 2.0 | 0.3~3.5GB |
| 파이-4-미니 | 3.8B | 마이크로소프트 | MIT | 7.6GB |
| 젬마 3n E4B | 4B 효과. | 젬마 ToS | 8GB | |
| 퀀 3(1.7B) | 1.7B | 알리바바 | 아파치 2.0 | 3.4GB |
| 퀀 3(7B) | 7B | 알리바바 | 아파치 2.0 | 14GB |
| DeepSeek-R1 (7B) | 7B 증류 | DeepSeek | MIT | 14GB |
| 미스트랄 7B v0.3 | 7B | 미스트랄 AI | 아파치 2.0 | 14GB |
| 라마 3.2 (3B) | 3B | Meta | 라마 3.2 | 6GB |
벤치마크: 올바르게 해석하는 방법
학문적 벤치마크는 유용하지만 주의해서 해석해야 합니다. 탁월한 모델 MMLU(일반 지식)에 대한 지식은 깨끗한 Python 코드를 생성하는 데 부적절할 수 있습니다. 주요 벤치마크와 실제로 측정한 내용은 다음과 같습니다.
주요 학문적 벤치마크
# Confronto benchmark principali (valori approssimativi, Febbraio 2026)
benchmarks = {
"Phi-4-mini (3.8B)": {
"MMLU": 72.8, # Conoscenza generale, 57 soggetti
"HumanEval": 62.3, # Completamento codice Python
"MATH": 70.5, # Ragionamento matematico (AMC/AIME)
"GPQA Diamond": 36.2, # PhD-level science questions
"MT-Bench": 7.8, # Conversazione multi-turno (1-10)
},
"Gemma 3n E4B": {
"MMLU": 74.1,
"HumanEval": 58.7,
"MATH": 65.3,
"GPQA Diamond": 34.8,
"MT-Bench": 8.1,
"LMArena Elo": 1312, # Confronto umano (stile chess ELO)
},
"Qwen 3 7B": {
"MMLU": 78.3,
"HumanEval": 72.1,
"MATH": 78.9,
"GPQA Diamond": 41.2,
"MT-Bench": 8.4,
},
"DeepSeek-R1 7B distilled": {
"MMLU": 75.2,
"HumanEval": 68.4,
"MATH": 82.3, # Eccelle nel ragionamento matematico
"GPQA Diamond": 38.7,
"MT-Bench": 8.0,
},
# Per confronto: modelli piu grandi
"Mixtral 8x7B (46B)": {
"MMLU": 71.4, # Phi-4-mini (3.8B) lo supera!
"HumanEval": 60.1,
"MATH": 66.8,
},
}
# NOTA IMPORTANTE: i benchmark non misurano tutto
# - Hallucination rate (frequenza di invenzioni plausibili)
# - Instruction following su task complessi
# - Context handling su documenti lunghi
# - Velocita di inferenza su hardware specifico
# - Consumo energetico
사용 사례에 대한 벤치마크를 구축하는 방법
from lm_eval.api.model import LM
from lm_eval import evaluator
import json
def benchmark_slm_for_custom_task(
model_name: str,
task_examples: list[dict],
metric_fn: callable
) -> dict:
"""
Benchmark di un SLM su un task personalizzato.
task_examples: lista di {"input": str, "expected": str}
metric_fn: funzione che restituisce float 0-1 (accuracy, F1, etc.)
"""
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.float16,
device_map="auto"
)
results = []
total_time = 0
for example in task_examples:
import time
start = time.time()
inputs = tokenizer(example["input"], return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=256,
temperature=0.1, # bassa temperatura per task deterministici
do_sample=False
)
elapsed = time.time() - start
generated = tokenizer.decode(
outputs[0][inputs.input_ids.shape[1]:],
skip_special_tokens=True
)
score = metric_fn(generated, example["expected"])
results.append({
"input": example["input"][:50],
"expected": example["expected"],
"generated": generated,
"score": score,
"latency_ms": elapsed * 1000
})
total_time += elapsed
avg_score = sum(r["score"] for r in results) / len(results)
avg_latency = sum(r["latency_ms"] for r in results) / len(results)
return {
"model": model_name,
"task_score": round(avg_score, 4),
"avg_latency_ms": round(avg_latency, 1),
"total_examples": len(results),
"hardware": torch.cuda.get_device_name(0) if torch.cuda.is_available() else "CPU",
"detail": results
}
# Esempio di uso per classificazione del sentiment in italiano
sentiment_examples = [
{"input": "Classifica il sentiment: 'Il prodotto e eccellente!' -> ", "expected": "positivo"},
{"input": "Classifica il sentiment: 'Esperienza terribile, non lo raccomando' -> ", "expected": "negativo"},
# ... 100 esempi dal proprio dataset reale ...
]
def exact_match(generated: str, expected: str) -> float:
return 1.0 if expected.lower() in generated.lower() else 0.0
# Eseguire il benchmark su piu modelli
for model in ["microsoft/phi-4-mini", "Qwen/Qwen3-7B", "google/gemma-3n-e4b"]:
result = benchmark_slm_for_custom_task(model, sentiment_examples, exact_match)
print(f"{model}: score={result['task_score']}, latency={result['avg_latency_ms']}ms")
하드웨어 요구 사항: SLM을 실행하는 데 필요한 것
SLM의 주요 장점 중 하나는 소비자 하드웨어에서 실행된다는 것입니다. 다음은 실무 가이드입니다.
| 하드웨어 | V램 / 램 | 호환 모델(fp16) | 토큰/초(대략) |
|---|---|---|---|
| 맥북 M3 프로(18GB) | 18GB 통합 | 피-4-미니, 젬마 3n, 라마 3.2 3B | 25~40톡/초 |
| 맥북 M4 맥스(48GB) | 48GB 통합 | 전체 7B, 라마 3 8B | 60~80톡/초 |
| RTX 4060(8GB) | 8GB VRAM | Phi-4-미니 q4, SmolLM2 1.7B | 35~55톡/초 |
| RTX 4070(12GB) | 12GB VRAM | Phi-4-미니 fp16, Qwen 3 7B q4 | 50~70톡/초 |
| RTX 4090(24GB) | 24GB VRAM | 모든 7B fp16, 라마 3 8B | 100~130톡/초 |
| A100 서버(80GB) | 80GB VRAM | 최대 40B 모델 | 200-400톡/초 |
# Verificare se un modello entra nella VRAM disponibile
def check_model_fits_vram(
model_name: str,
quantization: str = "fp16",
safety_margin: float = 0.85
) -> dict:
"""
Stima il VRAM necessario e verifica la compatibilita.
quantization: 'fp32', 'fp16', 'int8', 'int4' (gguf q4)
"""
import torch
# Stima parametri del modello
param_counts = {
"microsoft/phi-4-mini": 3.8e9,
"google/gemma-3n-E4B": 4.0e9,
"Qwen/Qwen3-7B": 7.6e9,
"deepseek-ai/DeepSeek-R1-Distill-Qwen-7B": 7.6e9,
"meta-llama/Llama-3.2-3B": 3.2e9,
"HuggingFaceTB/SmolLM2-1.7B": 1.7e9,
}
bytes_per_param = {
"fp32": 4, "fp16": 2, "bf16": 2, "int8": 1, "int4": 0.5
}
params = param_counts.get(model_name, 0)
if params == 0:
return {"error": f"Model {model_name} not in database"}
model_vram_gb = (params * bytes_per_param.get(quantization, 2)) / 1e9
overhead_gb = 1.5 # KV cache + activations
total_vram_gb = model_vram_gb + overhead_gb
available_vram = 0
if torch.cuda.is_available():
available_vram = torch.cuda.get_device_properties(0).total_memory / 1e9
elif hasattr(torch.backends, 'mps') and torch.backends.mps.is_available():
# Apple Silicon: usare la memoria di sistema disponibile
import psutil
available_vram = psutil.virtual_memory().available / 1e9 * 0.7
fits = total_vram_gb <= available_vram * safety_margin
return {
"model": model_name,
"quantization": quantization,
"model_vram_gb": round(model_vram_gb, 2),
"total_with_overhead_gb": round(total_vram_gb, 2),
"available_gb": round(available_vram, 2),
"fits": fits,
"recommendation": "OK" if fits else
f"Insufficiente: prova int4 o un modello piu piccolo"
}
# Test
for model in ["microsoft/phi-4-mini", "Qwen/Qwen3-7B"]:
for quant in ["fp16", "int8", "int4"]:
result = check_model_fits_vram(model, quant)
status = "OK" if result["fits"] else "NO"
print(f"[{status}] {model} ({quant}): {result['total_with_overhead_gb']:.1f}GB needed")
사용 사례에 맞게 선택할 SLM
모델 선택은 주로 작업에 따라 다릅니다. 다음은 실무 가이드를 바탕으로 한 것입니다. 2026년 벤치마크 및 커뮤니티 테스트.
사용 사례 권장 사항
- 코딩(Python, TypeScript, SQL): Qwen 3 7B 또는 DeepSeek-R1 7B — 7B 동급 최고
- 수학적/논리적 추론: DeepSeek-R1 7B 증류 — 베이스에 비해 엄청난 개선
- 채팅 및 일반 비서: Phi-4-mini 또는 Gemma 3n — 최고의 품질/크기 비율
- 단순 분류 및 NLU: SmolLM2 1.7B — 이미 많은 작업에서 임계값을 초과했습니다.
- 모바일 온디바이스: Gemma 3n E4B(NPU에 최적화) 또는 SmolLM2 135M
- 이탈리안 래그: Phi-4-mini(다국어 포르테) 또는 Mistral 7B v0.3
결론
2026년은 소규모 언어 모델 시대를 확실하게 검증했습니다. 올바른 아키텍처와 올바른 교육 데이터는 2년보다 10배 더 오래된 모델을 능가합니다. 전에. 선택은 더 이상 "LLM 대 SLM"이 아니라 "어떤 SLM이 어떤 하드웨어에서 어떤 작업을 수행하는지"입니다.
시리즈의 다음 기사에서는 Phi-4-mini와 Gemma 3n을 자세히 비교합니다. 두 가지 선택 코딩에 대한 나란히 벤치마크를 통해 2026년 엣지 배포에 가장 흥미로운 점 이탈리아어와 영어로 추론 및 대화 작업을 수행합니다.
시리즈: 소규모 언어 모델
- 제1조(본): 2026년 SLM - 개요 및 벤치마크
- 기사 2: Phi-4-mini 대 Gemma 3n - 세부 비교
- 3조: LoRA 및 QLoRA를 통한 미세 조정
- 기사 4: Edge의 양자화 - GGUF, ONNX, INT4
- 기사 5: Ollama - 5분 안에 로컬로 SLM







