LLM 25일 코스 - Day 2: 자연어 처리(NLP) 기초 용어

Day 2: 자연어 처리(NLP) 기초 용어

LLM을 이해하려면 NLP(자연어 처리) 용어를 먼저 알아야 합니다. 오늘은 LLM 논문과 문서에서 가장 자주 등장하는 NLP 용어를 정리합니다.

NLP 핵심 용어표

용어설명예시
토큰(Token)텍스트의 최소 처리 단위”안녕하세요” → [“안녕”, “하세요”]
코퍼스(Corpus)학습에 사용하는 텍스트 데이터 모음위키백과 전체, 뉴스 기사 모음
어휘(Vocabulary)모델이 아는 모든 토큰의 집합GPT-4의 어휘 크기: ~100,000개
임베딩(Embedding)단어를 숫자 벡터로 변환한 것”왕” → [0.2, -0.5, 0.8, …]
시퀀스(Sequence)순서가 있는 토큰의 나열하나의 문장 또는 문단
어텐션(Attention)입력 중 중요한 부분에 집중하는 메커니즘”그는 사과를 먹었다”에서 “그”가 누구인지
인코딩(Encoding)입력을 내부 표현으로 변환문장 → 벡터
디코딩(Decoding)내부 표현을 출력으로 변환벡터 → 문장
Perplexity모델의 예측 불확실성 지표 (낮을수록 좋음)PPL=15: 다음 단어 후보가 약 15개
컨텍스트 윈도우모델이 한 번에 처리할 수 있는 토큰 수최신 모델은 수만~수십만 토큰 이상 지원

토큰화 기본 개념

# 가장 간단한 토큰화: 공백 기준 분리
sentence = "자연어 처리는 정말 재미있습니다"
tokens_simple = sentence.split()
print(tokens_simple)
# ['자연어', '처리는', '정말', '재미있습니다']

# 실제 LLM은 서브워드(subword) 토큰화를 사용
# "재미있습니다" → ["재미", "있", "습니다"] 처럼 더 잘게 쪼갬

임베딩 직관적 이해

import numpy as np

# 임베딩: 단어를 숫자 벡터로 표현
# 의미가 비슷한 단어는 벡터 공간에서 가까이 위치
embeddings = {
    "왕":   np.array([0.8, 0.2, -0.5, 0.9]),
    "여왕": np.array([0.7, 0.3, -0.4, 0.85]),
    "사과": np.array([-0.2, 0.9, 0.6, -0.1]),
}

# 코사인 유사도로 단어 간 유사성 측정
def cosine_similarity(a, b):
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

print(f"왕-여왕 유사도: {cosine_similarity(embeddings['왕'], embeddings['여왕']):.3f}")
print(f"왕-사과 유사도: {cosine_similarity(embeddings['왕'], embeddings['사과']):.3f}")
# 왕-여왕: 높은 유사도 / 왕-사과: 낮은 유사도

Perplexity 계산 예시

import numpy as np

# Perplexity: 모델이 다음 단어를 얼마나 잘 예측하는지
# PPL = exp(평균 크로스 엔트로피 손실)
def calculate_perplexity(loss):
    return np.exp(loss)

good_model_loss = 2.7    # 잘 학습된 모델
bad_model_loss = 5.5     # 학습이 덜 된 모델

print(f"좋은 모델 PPL: {calculate_perplexity(good_model_loss):.1f}")
print(f"나쁜 모델 PPL: {calculate_perplexity(bad_model_loss):.1f}")
# PPL이 낮을수록 다음 단어 예측을 잘하는 모델

NLP 용어는 하루 만에 다 외울 수 없습니다. 이 표를 참고하면서 앞으로 나올 개념들을 하나씩 깊이 파고들겠습니다.

오늘의 연습문제

  1. “인공지능이 세상을 바꾸고 있습니다”라는 문장을 공백 기준, 음절 기준, 의미 기준으로 각각 토큰화해보고 차이점을 설명하세요.
  2. 임베딩 벡터의 차원(dimension)이 크면 어떤 장단점이 있는지 정리해보세요. Word2Vec(300차원)과 최신 대형 모델 임베딩(고차원)을 비교해보세요.
  3. Perplexity가 1이면 어떤 의미인지, 그리고 현실에서 PPL=1인 모델이 가능한지 생각해보세요.

이 글이 도움이 되었나요?