Skip to main content

한국어 LLM — 한국어 대규모 언어 모델

GPT, LLaMA 등 영어 중심 LLM의 한국어 성능은 제한적입니다. 한국어의 문법 구조, 존대법, 문화적 맥락을 이해하기 위해 한국어에 특화된 LLM들이 개발되고 있습니다. 이 문서에서는 한국어 LLM의 현황과 실무 선택 기준을 다룹니다.

학습 목표

이 문서를 완료하면 다음을 할 수 있습니다.
  • 주요 한국어 LLM(KULLM, SOLAR, EXAONE, HyperCLOVA X)의 특성을 비교할 수 있습니다
  • 오픈소스 vs 비공개 모델의 장단점과 선택 기준을 이해합니다
  • 한국어 LLM을 HuggingFace로 로드하고 추론을 수행할 수 있습니다
  • 프로젝트 요구사항에 맞는 한국어 LLM을 선택할 수 있습니다

왜 중요한가

한국어 LLM 생태계는 빠르게 발전하고 있으며, 실무에서 올바른 모델 선택이 중요합니다.
  1. 한국어 품질: 영어 LLM의 한국어 출력보다 자연스럽고 정확한 결과를 얻을 수 있습니다
  2. 데이터 주권: 사내 데이터를 외부 API로 보내지 않고 온프레미스에서 처리할 수 있습니다
  3. 비용 효율성: API 호출 비용 대신 자체 인프라에서 운영하여 비용을 절감할 수 있습니다
  4. 커스터마이징: Fine-tuning을 통해 특정 도메인(법률, 의료, 금융 등)에 최적화할 수 있습니다

핵심 개념

한국어 LLM 개발 접근법

한국어 LLM은 크게 세 가지 방식으로 개발됩니다.

KULLM (Korea University, 2023)

고려대학교 NLP&AI 연구실에서 공개한 한국어 LLM으로, 영어 모델을 한국어에 적응시킨 초기 시도 중 하나입니다.
항목KULLM v2
발표2023, 고려대학교
기반 모델LLaMA 2
파라미터13B
학습 방식한국어 Instruction Tuning
학습 데이터GPT4ALL, Dolly, ShareGPT의 한국어 번역
라이선스연구용
특징: 비교적 소규모 데이터로 Instruction Tuning한 모델입니다. 학술 연구 목적으로 공개되었으며, 한국어 LLM 연구의 시작점 역할을 했습니다. 한계: 학습 데이터가 번역 데이터 위주이므로, 한국 문화나 고유 표현에 약할 수 있습니다.

SOLAR (Upstage, 2023)

Upstage가 개발한 LLM으로, **Depth Up-Scaling(DUS)**이라는 독자적인 기법으로 주목받았습니다.
항목SOLAR 10.7B
발표2023, Upstage
기반 모델Mistral 7B → DUS로 확장
파라미터10.7B
핵심 기법Depth Up-Scaling
컨텍스트4,096
라이선스Apache 2.0

Depth Up-Scaling (DUS)

기존 모델의 레이어를 복제하고 이어 붙여 더 깊은 모델을 만드는 기법입니다. DUS의 장점:
  • 처음부터 학습하지 않고 기존 모델의 지식을 재활용합니다
  • Mixture of Experts보다 단순하면서도 효과적인 스케일링 방법입니다
  • Continue Pre-training만으로 성능을 끌어올릴 수 있습니다

EXAONE (LG AI Research, 2024)

LG AI 연구원이 개발한 Expert AI 모델로, 산업 현장 적용에 중점을 둡니다.
항목EXAONE 3.0
발표2024, LG AI Research
파라미터7.8B
아키텍처Decoder-only Transformer
학습 방식처음부터 사전학습 (한국어 + 영어)
학습 데이터8T 토큰 (한국어 + 영어 + 코드)
컨텍스트4,096
라이선스비상업적 연구 / 상업용 별도 계약
특징한국어 1위 (Open Ko-LLM Leaderboard 기준)
EXAONE 3.5 시리즈 (2024):
모델파라미터컨텍스트특징
EXAONE 3.5 2.4B2.4B32K경량, 엣지 디바이스
EXAONE 3.5 7.8B7.8B32K범용, 밸런스
EXAONE 3.5 32B32B32K고성능, 전문 태스크

HyperCLOVA X (NAVER, 2023~)

NAVER가 개발한 한국어 최대 규모의 LLM입니다. API 서비스(CLOVA Studio)로 제공됩니다.
항목HyperCLOVA X
발표2023~, NAVER
접근 방식처음부터 한국어 중심 사전학습
학습 데이터한국어 비중 매우 높음 (구체적 규모 미공개)
서비스CLOVA Studio (API)
라이선스비공개 (API만 제공)
특징한국 문화/사회 이해도 최고
장점: 네이버 플랫폼의 대규모 한국어 데이터(뉴스, 카페, 블로그, 지식iN 등)로 학습하여, 한국어의 문화적 뉘앙스와 최신 트렌드를 가장 잘 이해합니다. 한계: 비공개 모델로 API로만 접근 가능하며, Fine-tuning 자유도가 제한됩니다.

오픈소스 vs 비공개 모델 비교

기준오픈소스 (SOLAR, EXAONE)비공개 API (HyperCLOVA X, GPT-4)
커스터마이징Fine-tuning 자유로움API 파라미터 조정만 가능
데이터 보안온프레미스 배포 가능데이터가 외부 서버로 전송
비용 구조인프라 비용 (GPU)토큰당 과금
성능특화 시 우수범용 성능 높음
유지보수자체 운영 필요서비스 제공자가 관리
최신 업데이트수동 업데이트자동 업데이트

어떤 모델을 선택해야 할까?

상황추천 모델이유
한국어 자연스러움 최우선HyperCLOVA X한국어 데이터 최다, 문화 이해도 최고
오픈소스 + 한국어 성능EXAONE 3.5Open Ko-LLM 상위, 다양한 크기
상업용 + 경량SOLAR 10.7BApache 2.0, 효율적 크기
연구/실험 목적KULLM학술 연구용, 데이터셋 공개
데이터 보안 중요EXAONE / SOLAR온프레미스 배포 가능
빠른 프로토타이핑HyperCLOVA X API인프라 없이 즉시 사용
도메인 특화 필요SOLAR + Fine-tuningApache 2.0, Fine-tuning 자유

종합 비교 테이블

모델파라미터개발기반라이선스한국어 특화접근 방식
KULLM v213B고려대LLaMA 2연구용Instruction Tuning영어 모델 적응
SOLAR 10.7B10.7BUpstageMistralApache 2.0DUS + Continue Pre-train영어 모델 확장
EXAONE 3.52.4~32BLG AI Research자체연구용/상업별도처음부터 학습한영 동시 학습
HyperCLOVA X미공개NAVER자체비공개 (API)처음부터 학습한국어 중심 학습

HuggingFace 실습

SOLAR 모델 로드 및 추론

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

# SOLAR 10.7B Instruct 모델 로드
model_name = "upstage/SOLAR-10.7B-Instruct-v1.0"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype=torch.float16,
    device_map="auto",
)

# 대화 형식의 프롬프트 구성
conversation = [
    {"role": "system", "content": "당신은 한국어 AI 어시스턴트입니다. 친절하고 정확하게 답변하세요."},
    {"role": "user", "content": "사전학습 언어 모델이란 무엇인가요? 간단히 설명해주세요."},
]

# 토크나이저의 chat_template 적용
prompt = tokenizer.apply_chat_template(
    conversation,
    tokenize=False,
    add_generation_prompt=True,
)

inputs = tokenizer(prompt, return_tensors="pt").to(model.device)

with torch.no_grad():
    outputs = model.generate(
        **inputs,
        max_new_tokens=256,
        temperature=0.7,
        top_p=0.9,
        do_sample=True,
        repetition_penalty=1.1,
    )

# 입력 부분을 제외한 생성된 텍스트만 출력
generated = outputs[0][inputs["input_ids"].shape[-1]:]
response = tokenizer.decode(generated, skip_special_tokens=True)
print(response)

EXAONE 모델 로드 및 추론

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

# EXAONE 3.5 7.8B Instruct 모델 로드
model_name = "LGAI-EXAONE/EXAONE-3.5-7.8B-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype=torch.bfloat16,
    device_map="auto",
    trust_remote_code=True,
)

# EXAONE 대화 형식
messages = [
    {"role": "system", "content": "당신은 도움이 되는 AI 어시스턴트입니다."},
    {"role": "user", "content": "Transformer 모델의 핵심 구성 요소 3가지를 설명해주세요."},
]

# 프롬프트 생성 및 추론
input_ids = tokenizer.apply_chat_template(
    messages,
    tokenize=True,
    add_generation_prompt=True,
    return_tensors="pt",
).to(model.device)

with torch.no_grad():
    output = model.generate(
        input_ids,
        max_new_tokens=512,
        temperature=0.7,
        top_p=0.9,
        do_sample=True,
    )

response = tokenizer.decode(output[0][input_ids.shape[-1]:], skip_special_tokens=True)
print(response)

양자화를 활용한 경량 실행

from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
import torch

# 4-bit 양자화 설정 (GPU 메모리 약 75% 절약)
bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16,
    bnb_4bit_use_double_quant=True,
)

# SOLAR 10.7B를 4-bit로 로드 (약 6GB VRAM)
model_name = "upstage/SOLAR-10.7B-Instruct-v1.0"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    quantization_config=bnb_config,
    device_map="auto",
)

print(f"모델 메모리 사용량: {model.get_memory_footprint() / 1e9:.1f} GB")

AI/ML 활용

한국어 LLM의 실무 활용 시나리오입니다.
  • 고객 서비스 챗봇: 한국어 존대법과 문화적 맥락을 이해하는 대화 시스템 구축
  • 문서 요약/분석: 한국어 비즈니스 문서, 보고서, 법률 문서의 자동 요약
  • 콘텐츠 생성: 마케팅 카피, 블로그 글, SNS 콘텐츠의 한국어 자동 생성
  • 코드 리뷰/생성: 한국어 주석과 문서를 이해하는 코드 어시스턴트
  • 교육 콘텐츠: 한국어 학습 자료 자동 생성 및 질의응답
어느 정도 효과가 있지만, 처음부터 한국어를 포함하여 학습한 모델보다는 제한적입니다. Continue Pre-training은 기존 영어 지식 위에 한국어 패턴을 추가하는 것이므로, 1) 영어 능력이 약간 저하될 수 있고 (catastrophic forgetting), 2) 한국어 고유의 문법 구조 이해가 불완전할 수 있습니다. SOLAR의 DUS 접근법은 이 문제를 모델 구조 확장으로 완화합니다.
영어 중심 토크나이저(예: LLaMA의 BPE)는 한국어를 비효율적으로 토큰화합니다. 한글 한 글자가 23개 토큰으로 분리되어, 같은 의미의 문장이 영어보다 23배 많은 토큰을 소모합니다. 이는 컨텍스트 윈도우를 빠르게 소진하고, API 비용을 증가시킵니다. 한국어 특화 토크나이저는 한국어 어절/형태소 단위로 효율적 토큰화를 수행합니다.
Upstage가 운영하는 한국어 LLM 성능 평가 리더보드입니다. 한국어 번역된 여러 벤치마크(ARC, HellaSwag, MMLU, TruthfulQA, Winogrande 등)로 모델을 평가합니다. 다만 번역된 벤치마크의 한계가 있어, KLUE나 KoBEST 같은 원어민 기준 벤치마크와 함께 참고하는 것이 바람직합니다.
llama.cpp, Ollama 등의 도구를 사용하면 양자화된 모델을 CPU에서 실행할 수 있습니다. GGUF 형식의 4-bit 양자화 모델은 8~16GB RAM의 일반 PC에서도 실행 가능합니다. 다만 생성 속도가 GPU 대비 매우 느리므로(초당 수 토큰), 프로토타이핑이나 개인 학습 용도로 적합합니다.

체크리스트

학습을 마치셨다면 아래 항목을 확인해 보세요.
  • 한국어 LLM의 세 가지 개발 접근법(영어 적응, 처음부터 학습, 다국어)의 차이를 설명할 수 있다
  • KULLM, SOLAR, EXAONE, HyperCLOVA X의 핵심 특징과 한계를 구분할 수 있다
  • Depth Up-Scaling(DUS)의 동작 원리를 설명할 수 있다
  • 오픈소스와 비공개 모델의 트레이드오프를 이해하고 상황별 선택 기준을 적용할 수 있다
  • HuggingFace로 한국어 LLM을 로드하고 추론을 수행할 수 있다
  • 양자화를 적용하여 메모리 효율적으로 모델을 실행할 수 있다