Blog
llmaitransformerrag

LLM(Large Language Model) 완전 정리 - 개념부터 활용까지

LLM의 핵심 개념, Transformer 아키텍처, 학습 과정, 프롬프트 엔지니어링, RAG까지 체계적으로 정리합니다.

Data Dynamics2026年4月15日23 min read
This post is not yet translated. The original Korean version is shown below.

LLM(Large Language Model)은 방대한 텍스트 데이터를 학습하여 인간의 언어를 이해하고 생성하는 대규모 인공지능 모델입니다. 이 글에서는 LLM의 핵심 개념부터 실제 활용까지 체계적으로 정리합니다.


1. LLM이란 무엇인가

정의와 등장 배경

LLM(Large Language Model)은 수십억~수천억 개의 파라미터를 가진 딥러닝 모델로, 대규모 텍스트 코퍼스를 학습하여 자연어를 이해하고 생성하는 능력을 갖춘 모델을 말합니다.

LLM의 등장 배경을 시간순으로 정리하면 다음과 같습니다.

시기기술특징
2017Transformer 논문 발표"Attention Is All You Need" — 병렬 처리 가능한 새로운 아키텍처
2018GPT-1 / BERT사전 학습(Pre-training) + 미세 조정(Fine-tuning) 패러다임 확립
2020GPT-3 (175B 파라미터)Few-shot 학습 능력 입증, 범용 언어 모델의 가능성 제시
2022ChatGPT대화형 AI의 대중화, RLHF 기법 적용
2023~2024GPT-4, Claude, Gemini, LLaMA멀티모달, 긴 컨텍스트, 오픈소스 모델 경쟁
2025~2026Claude 4, GPT-5 등에이전트 기반 자율 작업, 100만+ 토큰 컨텍스트

전통적인 NLP와의 차이점

전통적인 NLP와 LLM의 근본적인 차이는 태스크별 모델 vs 범용 모델 패러다임에 있습니다.

구분전통 NLPLLM
학습 방식태스크별 개별 학습대규모 사전 학습 → 미세 조정
데이터레이블링된 소규모 데이터인터넷 규모의 비정형 텍스트
모델 크기수백만 파라미터수십억~수천억 파라미터
범용성단일 태스크 (감성 분석, 개체명 인식 등)번역, 요약, 코딩, 추론 등 다양한 태스크 수행
제로샷 성능학습하지 않은 태스크 수행 불가학습하지 않은 태스크도 프롬프트로 수행 가능

2. LLM의 핵심 기술: Transformer 아키텍처

Attention 메커니즘

Attention은 입력 시퀀스에서 각 토큰이 다른 토큰들과 어떤 관련성을 갖는지 계산하는 메커니즘입니다. 기존 RNN/LSTM의 순차 처리 한계를 극복하고, 긴 문장에서도 멀리 떨어진 단어 간의 관계를 효과적으로 포착합니다.

Attention의 핵심 수식은 다음과 같습니다:

Attention(Q, K, V) = softmax(QK^T / √d_k) × V
  • Q (Query): 현재 토큰이 다른 토큰에 대해 묻는 질의
  • K (Key): 각 토큰이 가진 특성 정보
  • V (Value): 실제로 전달할 값
  • √d_k: 스케일링 팩터 (차원의 제곱근)

Self-Attention과 Multi-Head Attention

Self-Attention은 동일한 시퀀스 내에서 각 토큰이 다른 모든 토큰과의 관계를 계산하는 방식입니다. 예를 들어 "그 고양이가 매트 위에 앉았다. 그것은 편해 보였다."에서 "그것"이 "고양이"를 가리킨다는 것을 파악할 수 있습니다.

Multi-Head Attention은 Self-Attention을 여러 개의 "헤드"로 병렬 수행하여, 다양한 관점에서 토큰 간 관계를 학습합니다.

MultiHead(Q, K, V) = Concat(head_1, ..., head_h) × W_O

각 head_i = Attention(QW_i^Q, KW_i^K, VW_i^V)

예를 들어, 8개의 헤드가 있다면 각 헤드는 문법적 관계, 의미적 관계, 위치 관계 등 서로 다른 패턴을 독립적으로 학습합니다.

Encoder vs Decoder 구조

Transformer 아키텍처는 용도에 따라 세 가지 변형으로 활용됩니다.

구조대표 모델특징주요 용도
Encoder-onlyBERT, RoBERTa양방향 컨텍스트 이해분류, 개체명 인식, 감성 분석
Decoder-onlyGPT, Claude, LLaMA왼쪽→오른쪽 자기회귀 생성텍스트 생성, 대화, 코딩
Encoder-DecoderT5, BART입력 이해 + 출력 생성번역, 요약

현재 대부분의 LLM(GPT, Claude, LLaMA, Gemini 등)은 Decoder-only 구조를 채택하고 있습니다. 이 구조는 다음 토큰을 예측하는 자기회귀(Autoregressive) 방식으로 텍스트를 생성합니다.


3. LLM의 학습 과정

LLM의 학습은 크게 세 단계로 나뉩니다.

사전 학습 (Pre-training)

사전 학습은 LLM 학습의 첫 번째이자 가장 비용이 큰 단계입니다. 인터넷, 도서, 논문 등 대규모 텍스트 데이터를 활용하여 언어의 구조와 지식을 학습합니다.

학습 목표: 다음 토큰 예측 (Next Token Prediction)

입력: "오늘 날씨가 정말"
예측: "좋다" (확률 0.35), "덥다" (확률 0.20), "춥다" (확률 0.15), ...

사전 학습의 주요 특징:

  • 데이터 규모: 수 TB(테라바이트)의 텍스트 데이터
  • 연산 비용: 수천수만 GPU로 수주수개월 학습
  • 비지도 학습: 레이블링 없이 텍스트 자체에서 패턴 학습
  • 비용: 대형 모델 기준 수백만~수천만 달러

미세 조정 (Fine-tuning)

사전 학습된 모델을 특정 목적에 맞게 추가 학습하는 단계입니다.

방식설명장점
Full Fine-tuning모든 파라미터 업데이트최고 성능 가능
LoRA (Low-Rank Adaptation)일부 저랭크 행렬만 학습적은 메모리, 빠른 학습
QLoRA양자화 + LoRA소비자급 GPU에서도 가능
Instruction Tuning지시-응답 쌍으로 학습지시 따르기 능력 향상
# LoRA를 이용한 미세 조정 예시 (Hugging Face PEFT)
from peft import LoraConfig, get_peft_model
 
lora_config = LoraConfig(
    r=16,                      # 저랭크 차원
    lora_alpha=32,             # 스케일링 팩터
    target_modules=["q_proj", "v_proj"],  # 적용할 레이어
    lora_dropout=0.05,
    task_type="CAUSAL_LM"
)
 
model = get_peft_model(base_model, lora_config)
# 전체 파라미터 대비 약 0.1%만 학습

RLHF (Reinforcement Learning from Human Feedback)

RLHF는 LLM의 응답 품질을 사람의 선호도에 맞게 개선하는 기법입니다.

RLHF 3단계 프로세스:

  1. SFT (Supervised Fine-Tuning): 고품질 대화 데이터로 지도 학습
  2. Reward Model 학습: 사람이 평가한 응답 선호도를 학습하는 보상 모델 구축
  3. PPO (Proximal Policy Optimization): 보상 모델을 기반으로 강화학습 수행
사용자 질문 → LLM이 여러 응답 생성 → 사람이 순위 매김
→ 보상 모델이 점수 학습 → 강화학습으로 LLM 정책 개선

참고: 최근에는 RLHF 외에도 DPO(Direct Preference Optimization), RLAIF(AI Feedback을 이용한 강화학습) 등 다양한 정렬(Alignment) 기법이 연구되고 있습니다.


4. 토큰화(Tokenization)와 임베딩(Embedding)

토큰화 방식

토큰화는 텍스트를 모델이 처리할 수 있는 최소 단위(토큰)로 분할하는 과정입니다. LLM에서 주로 사용되는 토큰화 방식은 다음과 같습니다.

방식설명사용 모델
BPE (Byte-Pair Encoding)빈도 높은 문자 쌍을 반복적으로 병합GPT 시리즈
SentencePiece언어 독립적 서브워드 토큰화LLaMA, T5
WordPieceBPE 변형, 우도 기반 병합BERT
TiktokenBPE 기반, OpenAI 최적화 구현GPT-3.5/4

토큰화 결과 예시:

# tiktoken 라이브러리를 이용한 토큰화 예시
import tiktoken
 
enc = tiktoken.encoding_for_model("gpt-4")
text = "Large Language Models are transforming AI"
tokens = enc.encode(text)
# [27050, 11688, 27972, 527, 46890, 15592]  → 6개 토큰
 
# 한국어 토큰화
text_ko = "대규모 언어 모델은 AI를 변화시키고 있다"
tokens_ko = enc.encode(text_ko)
# 한국어는 영어 대비 약 2~3배 더 많은 토큰으로 분할됨

참고: 한국어는 영어 대비 동일한 의미를 표현하는 데 더 많은 토큰을 사용하므로, API 비용과 컨텍스트 활용 효율에 영향을 줍니다.

벡터 임베딩의 개념

임베딩은 토큰을 고차원 벡터 공간에 매핑하는 과정입니다. 의미적으로 유사한 단어는 벡터 공간에서 가까운 위치에 배치됩니다.

"왕" - "남자" + "여자" ≈ "여왕"
"서울" - "한국" + "일본" ≈ "도쿄"

LLM에서 임베딩의 역할:

  • 입력 임베딩: 토큰 → 벡터 변환 (모델 입력)
  • 위치 임베딩: 토큰의 순서 정보 인코딩
  • 출력 임베딩: 벡터 → 토큰 확률 변환 (모델 출력)

컨텍스트 윈도우 (Context Window)

컨텍스트 윈도우는 모델이 한 번에 처리할 수 있는 최대 토큰 수를 말합니다.

모델컨텍스트 윈도우비고
GPT-34,096 토큰약 3,000 단어
GPT-4128K 토큰약 96,000 단어
Claude 3.5200K 토큰약 150,000 단어
Claude Opus 41M 토큰약 750,000 단어
Gemini 1.5 Pro1M 토큰약 750,000 단어

컨텍스트 윈도우가 클수록 더 긴 문서를 한 번에 처리할 수 있지만, 연산 비용은 토큰 수의 제곱에 비례하여 증가합니다.


5. 주요 LLM 모델 비교

GPT 시리즈 (OpenAI)

OpenAI의 GPT(Generative Pre-trained Transformer) 시리즈는 LLM 대중화를 이끈 모델입니다.

모델파라미터주요 특징
GPT-3175BFew-shot 학습의 가능성 입증
GPT-3.5비공개ChatGPT의 기반, RLHF 적용
GPT-4비공개 (추정 1.7T MoE)멀티모달, 향상된 추론 능력
GPT-4o비공개음성/이미지 통합, 빠른 추론

Claude (Anthropic)

Anthropic의 Claude는 안전성과 유용성의 균형을 강조하는 모델입니다.

  • Constitutional AI: 헌법적 AI 기법으로 안전성 확보
  • 긴 컨텍스트: 최대 1M 토큰 지원
  • 코딩 능력: 코드 생성, 분석, 디버깅에 강점
  • 에이전트 활용: Claude Code 등 도구를 통한 자율적 작업 수행

오픈소스 모델

모델개발사파라미터특징
LLaMA 3Meta8B / 70B / 405B오픈소스, 상업적 사용 가능
MistralMistral AI7B / 8x7B (MoE)작은 크기 대비 높은 성능
GemmaGoogle2B / 7B / 27B경량 모델, 다양한 크기 제공
Qwen 2.5Alibaba0.5B ~ 72B다국어, 코드, 수학에 강점

참고: MoE(Mixture of Experts)는 전체 파라미터 중 일부 전문가 네트워크만 활성화하여 효율적으로 추론하는 아키텍처입니다. 예를 들어, Mistral 8x7B는 총 46.7B 파라미터를 갖지만 추론 시에는 약 12.9B만 사용합니다.


6. 프롬프트 엔지니어링

프롬프트의 구조와 원칙

프롬프트 엔지니어링은 LLM에 전달하는 입력(프롬프트)을 최적화하여 원하는 결과를 얻는 기법입니다.

효과적인 프롬프트의 구성 요소:

  • 역할 지정 (Role): 모델이 수행할 역할 정의
  • 맥락 (Context): 배경 정보와 제약 조건
  • 지시 (Instruction): 수행할 작업의 명확한 설명
  • 예시 (Examples): 원하는 입출력 형태 제시
  • 출력 형식 (Format): 응답 구조 지정 (JSON, 표, 목록 등)

Zero-shot / Few-shot / Chain-of-Thought

Zero-shot: 예시 없이 지시만으로 태스크 수행

다음 문장의 감성을 분석하세요: "이 제품 정말 최고입니다!"
→ 긍정

Few-shot: 소수의 예시를 포함하여 태스크 수행

문장: "배송이 빨라서 좋았어요" → 긍정
문장: "화면이 자주 꺼져요" → 부정
문장: "가격은 괜찮은데 품질이 별로예요" → ?
→ 부정

Chain-of-Thought (CoT): 단계별 추론 과정을 유도

Q: 가게에 사과 23개가 있었습니다. 8개를 팔고 12개를 새로 입고했습니다.
   현재 사과는 몇 개인가요?

A: 단계별로 풀어보겠습니다.
   1. 초기 사과: 23개
   2. 판매 후: 23 - 8 = 15개
   3. 입고 후: 15 + 12 = 27개
   따라서 현재 사과는 27개입니다.

시스템 프롬프트와 역할 지정

시스템 프롬프트는 모델의 전반적인 행동 방식을 정의하며, 대화 시작 시 설정됩니다.

{
  "messages": [
    {
      "role": "system",
      "content": "당신은 10년 경력의 데이터 엔지니어입니다. 기술적 질문에 대해 정확하고 실용적인 답변을 제공하세요. 코드 예시를 포함해주세요."
    },
    {
      "role": "user",
      "content": "Spark에서 데이터 스큐 문제를 해결하는 방법은?"
    }
  ]
}

참고: 시스템 프롬프트는 모델에 따라 지원 방식이 다릅니다. Claude는 system 파라미터를, GPT는 system role 메시지를 사용합니다.


7. RAG (Retrieval-Augmented Generation)

RAG의 필요성과 구조

RAG는 외부 지식 베이스에서 관련 정보를 검색하여 LLM의 응답에 활용하는 기법입니다.

LLM 단독 사용의 한계:

  • 학습 데이터 이후의 최신 정보를 알 수 없음
  • 기업 내부 데이터나 도메인 지식 부재
  • 할루시네이션(거짓 정보 생성) 위험

RAG 파이프라인 구조:

[사용자 질의]
     ↓
[1. 질의 임베딩] → 질의를 벡터로 변환
     ↓
[2. 벡터 검색] → 벡터 DB에서 유사 문서 검색
     ↓
[3. 컨텍스트 구성] → 검색된 문서 + 원본 질의 결합
     ↓
[4. LLM 생성] → 컨텍스트 기반 응답 생성
     ↓
[응답 출력]

벡터 데이터베이스 연동

RAG에서 핵심 역할을 하는 벡터 데이터베이스의 주요 옵션:

벡터 DB특징적합 환경
Chroma경량, 임베디드, Python 친화적프로토타입, 소규모
Pinecone완전 관리형 SaaS운영 부담 최소화
Weaviate하이브리드 검색 지원키워드 + 벡터 검색 필요 시
Milvus대규모 분산 처리엔터프라이즈, 대용량
pgvectorPostgreSQL 확장기존 PostgreSQL 활용 시
# LangChain + Chroma를 이용한 간단한 RAG 구현 예시
from langchain.document_loaders import TextLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import Chroma
from langchain.chains import RetrievalQA
from langchain.llms import ChatOpenAI
 
# 1. 문서 로드 및 분할
loader = TextLoader("company_docs.txt")
docs = loader.load()
splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
chunks = splitter.split_documents(docs)
 
# 2. 벡터 DB에 저장
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_documents(chunks, embeddings)
 
# 3. RAG 체인 구성
qa_chain = RetrievalQA.from_chain_type(
    llm=ChatOpenAI(model="gpt-4"),
    retriever=vectorstore.as_retriever(search_kwargs={"k": 3}),
    return_source_documents=True
)
 
# 4. 질의
result = qa_chain.invoke({"query": "우리 회사의 데이터 보존 정책은?"})
print(result["result"])

기업 환경에서의 RAG 파이프라인

기업에서 RAG를 도입할 때 고려해야 할 요소:

  • 청킹 전략: 문서를 적절한 크기로 분할 (고정 크기 vs 의미 기반)
  • 임베딩 모델 선택: 다국어 지원, 도메인 특화 여부
  • 하이브리드 검색: 벡터 검색 + 키워드 검색(BM25) 결합
  • 리랭킹 (Re-ranking): 검색 결과를 LLM이나 Cross-Encoder로 재정렬
  • 보안: 문서 접근 권한에 따른 검색 결과 필터링
  • 평가: 검색 정확도(Recall@K)와 응답 품질 모니터링

8. LLM의 한계와 주의사항

할루시네이션 (Hallucination)

할루시네이션은 LLM이 사실이 아닌 정보를 마치 사실인 것처럼 자신 있게 생성하는 현상입니다.

할루시네이션 유형:

  • 사실적 오류: 존재하지 않는 논문이나 통계를 인용
  • 논리적 오류: 그럴듯하지만 잘못된 추론
  • 일관성 오류: 같은 대화 내에서 모순된 답변

완화 전략:

  • RAG를 통한 외부 지식 기반 응답
  • 출처 명시 요청 (Citation)
  • 온도(Temperature) 파라미터 낮추기
  • 응답 검증 파이프라인 구축

편향성 (Bias)

LLM은 학습 데이터에 포함된 편향을 반영할 수 있습니다.

  • 사회적 편향: 성별, 인종, 문화적 고정관념
  • 언어 편향: 영어 중심 학습으로 비영어권 성능 저하
  • 시간적 편향: 학습 데이터의 시점에 따른 정보 편중

비용과 지연시간

LLM 운영에는 상당한 비용과 인프라가 필요합니다.

항목고려사항
API 비용입력/출력 토큰 단위 과금 (모델별 상이)
자체 호스팅GPU 서버 비용 (A100/H100 등)
지연시간토큰 생성 속도 (TTFT, TPS)
동시 처리배치 처리, 요청 큐 관리
최적화양자화(Quantization), KV 캐시, 추측적 디코딩

참고: TTFT(Time to First Token)는 첫 토큰이 생성되기까지의 시간, TPS(Tokens Per Second)는 초당 생성 토큰 수를 의미합니다.


9. 엔터프라이즈 LLM 활용 사례

문서 요약 및 검색

  • 회의록 자동 요약: 녹취록에서 핵심 내용, 액션 아이템 추출
  • 기술 문서 검색: 사내 위키, Confluence 등에서 RAG 기반 검색
  • 보고서 생성: 데이터 분석 결과를 자연어 보고서로 변환

코드 생성 및 리뷰

  • 코드 자동 완성: IDE 통합 코드 어시스턴트 (Claude Code, GitHub Copilot 등)
  • 코드 리뷰: PR 기반 자동 코드 리뷰 및 개선 사항 제안
  • 레거시 코드 마이그레이션: 구 버전 코드를 최신 프레임워크로 변환
  • 테스트 코드 생성: 단위 테스트, 통합 테스트 자동 생성

데이터 파이프라인 자동화

  • SQL 생성: 자연어 질의를 SQL로 변환 (Text-to-SQL)
  • ETL 파이프라인 설계: 데이터 흐름 설계 및 코드 생성
  • 이상 탐지: 로그 분석을 통한 시스템 이상 패턴 감지
  • 데이터 품질 검증: 스키마 변경 감지, 데이터 정합성 검사 자동화

References

  • Vaswani, A. et al. (2017). "Attention Is All You Need." NeurIPS
  • Brown, T. et al. (2020). "Language Models are Few-Shot Learners." NeurIPS
  • Ouyang, L. et al. (2022). "Training language models to follow instructions with human feedback." NeurIPS
  • Hu, E. et al. (2021). "LoRA: Low-Rank Adaptation of Large Language Models." ICLR
  • Lewis, P. et al. (2020). "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks." NeurIPS
  • Wei, J. et al. (2022). "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models." NeurIPS
  • Touvron, H. et al. (2023). "LLaMA: Open and Efficient Foundation Language Models." arXiv

— Data Dynamics 엔지니어링 팀