📅 2026.10.06
오늘은 NLP Task에 맞게 입력과 출력을 설계하는 방법, 그리고 언어 모델이 텍스트를 처리하고 생성하는 과정을 배웠다. 사전학습 모델을 활용하고 미세조정하는 이유도 함께 정리했다.
자연어는 한국어·영어처럼 사람들이 의사소통하며 자연스럽게 형성한 언어다. 중의성, 문맥 의존성, 표현의 다양성, 생략 등의 특징이 있다.
“배가 크다”는 여러 의미로 해석할 수 있고, “여기 춥네”는 상황에 따라 창문을 닫아 달라는 요청일 수도 있다.
NLP는 이런 언어의 구조와 의미를 분석·변환·생성하는 분야다. 컴퓨터 맥락에서는 명시적인 기호와 문법 규칙으로 정의한 형식 언어와 대비한다.
같은 텍스트라도 목표에 따라 필요한 결과가 달라진다.
Task를 알아야 데이터, 출력 형식, 학습 목표, 평가 기준을 정할 수 있다. Transformer나 LLM은 도구이고, Task는 그 도구가 해결해야 할 문제다.
“NLG는 NLU가 전제된다”는 말은 적절한 생성에 내용과 맥락의 파악이 중요하다는 뜻이다. 별도의 이해 모듈이 반드시 필요한 것은 아니며, 숫자 데이터를 문장으로 바꾸는 생성도 가능하다.
여러 NLP Task를 입력 → 출력 텍스트라는 생성 문제로 표현할 수 있다. 하지만 유창한 출력이 사실성이나 정확한 이해를 보장하지는 않는다. 원문 왜곡, 형식 위반, 오류 누적과 평가의 어려움도 고려해야 한다.
모델에 텍스트를 넣을 때는 다음 흐름을 거친다.
텍스트 → 토큰화 → 토큰 ID → 임베딩 벡터 → 문맥 처리 → 출력
토큰 ID는 식별 번호이고, 임베딩은 계산에 사용하는 벡터다. 번호가 가깝다고 의미가 가까운 것은 아니다. Transformer에서는 기본 임베딩을 이후 층들이 문맥에 맞게 갱신한다.
Inference는 학습된 모델에 새 입력을 넣어 결과를 얻는 과정이다. 일반적으로 파라미터를 바꾸지 않는다.
Decoding은 두 의미로 사용된다.
Greedy는 가장 높은 확률의 토큰을 선택하고, Sampling은 확률 분포에 따라 토큰을 뽑는다. tokenizer.decode()는 보통 두 번째 의미다.
모델을 설계할 때는 다음 순서로 생각할 수 있다.
Task 정의 → 정답 Y 설계 → 모델 출력 설계 → 손실 함수 설계 → 모델 설계
분류의 정답이 긍정=2라고 해서 모델이 숫자 2를 직접 출력해야 하는 것은 아니다. 범주별 점수 3개를 출력한 뒤 확률로 변환하고, 가장 높은 범주를 선택할 수 있다.
즉, 정답 Y의 형태와 모델의 직접 출력 형태는 다를 수 있다.
생성형 요약의 정답은 요약문의 토큰 ID 시퀀스다. 모델은 각 생성 위치에서 다음 토큰 후보 전체에 대한 점수를 출력한다.
원문 + 지금까지의 요약 → 다음 토큰 확률 → 토큰 선택 → 반복
각 단계는 토큰 분류처럼 볼 수 있지만, 전체 Task는 가변 길이 시퀀스 생성이다. 학습에는 보통 정답 토큰에 대한 교차 엔트로피를 사용한다.
반면 추출형 요약은 원문에서 중요한 문장을 고르므로, 문장별 선택 여부나 중요도 점수를 출력하도록 설계할 수 있다.
GPT 같은 자기회귀 모델은 다음 토큰을 예측하는 과정을 반복해 문장을 생성한다.
문맥 벡터 → Logits → Softmax → 확률 분포 → 토큰 선택
출력층의 계산은 다음처럼 표현할 수 있다.
p = softmax(Wh + b)
여기서 h는 모델이 계산한 문맥 표현이고, W와 b는 학습된 파라미터다. 어휘 크기가 V라면 한 단계의 출력 점수는 V개다.
학습에서는 정답 토큰의 확률을 높이도록 파라미터를 조정하고, 추론에서는 확률을 바탕으로 토큰을 선택한다.
Softmax는 확률을 계산하고, 디코딩은 출력 토큰을 선택한다.
LSTM은 Cell State와 Hidden State, 그리고 게이트를 사용해 이전 정보를 전달하는 RNN 구조다.
핵심은 다음 관계다.
새 기억 = 유지한 기존 기억 + 선택한 새 정보
게이트는 현재 입력과 이전 은닉 상태를 바탕으로 학습된다. 장기 의존성 학습을 돕지만 모든 정보를 무한히 기억하는 것은 아니다. 은닉 상태 자체가 토큰 확률은 아니며, 별도의 출력층에서 확률을 계산한다.
Transformer는 Self-Attention으로 토큰 간 관계를 계산해 문맥 표현을 만드는 구조다.
순환 계산 없이 토큰 위치의 계산을 병렬화하기 유리해 대규모 학습에 도움이 됐다. 이후 BERT와 GPT 계열을 통해 사전학습 모델의 재사용, 미세조정, 프롬프트 기반 Task 수행이 확산됐다.
다만 사전학습과 문맥 기반 표현이 Transformer에서 처음 시작된 것은 아니다. 또한 학습을 병렬화할 수 있어도, 자기회귀 생성은 보통 토큰을 하나씩 만든다.
Pretrained Model은 대량의 데이터로 미리 학습된 모델이다. 이미 학습한 언어 표현과 패턴을 새로운 Task에 활용한다.
이를 사용하면 처음부터 학습하는 것보다 Task 데이터, 시간, 연산 비용을 줄일 수 있다.
LLM에서는 사전학습을 마친 기본 모델을 Base Model이라고 부른다. 여기에 지시·대화 데이터로 추가 학습해 요청을 따르도록 조정할 수 있다.
사전학습 모델을 특정 Task나 분야의 데이터로 추가 학습해 전체 또는 일부 파라미터를 조정하는 과정이다.
예: 사전학습 모델 → 원문·정답 요약문으로 추가 학습 → 요약에 맞게 조정
특정 Task 성능, 전문 용어 적응, 출력 형식과 문체의 일관성을 개선할 수 있다. 다만 효과를 확인하려면 별도의 평가 데이터가 필요하다.
프롬프트는 입력 문맥을 바꾸고, 미세조정은 학습으로 파라미터를 바꾼다.
NLP 모델을 이해하려면 구조뿐 아니라 어떤 문제를 풀고, 무엇을 출력하며, 어떤 목표로 학습하는지 함께 봐야 한다.
Task 정의 → 데이터·정답 설계 → 표현 변환 → 모델 계산 → 출력·평가
생성 모델도 이 흐름 안에 있다. 다음 토큰 예측을 반복해 문장을 만들지만, 자연스러운 문장과 올바른 Task 수행은 구분해야 한다. 사전학습과 미세조정을 연결해 보니 모델이 무엇을 배우고 어떻게 활용되는지 더 명확해졌다.