NVIDIA NCA-GENL

NVIDIA NCA-GENL 시험 노트개념 정리18 MIN

LLM 사전학습 방식과 디코딩

인과적 언어 모델링과 마스크드 언어 모델링의 차이, GPT·BERT·T5 계열 구분, 컨텍스트 윈도, temperature·top-k·top-p와 그리디·빔 서치, 환각이 생기는 자리를 정리합니다.

LLM이 무엇을 잘하는지는 두 번 정해집니다. 한 번은 사전학습에서 무엇을 맞히도록 학습했는가로, 또 한 번은 추론에서 나온 확률 분포에서 토큰을 어떻게 고르는가로 정해집니다. 앞의 것이 모델의 계열을 가르고, 뒤의 것이 같은 모델에서도 답을 다르게 만듭니다. 시험은 이 둘을 섞어 「이 일에는 어느 계열인가」와 「이 설정이면 출력이 어떻게 달라지나」를 묻습니다.

사전학습 목표

사전학습(pretraining)은 정답표 없이 대량의 텍스트에서 모델 스스로 문제를 만들어 푸는 단계입니다. 문장의 일부를 가리고 그것을 맞히게 하므로 사람이 레이블을 붙일 필요가 없고, 이런 방식을 자기지도학습이라 부릅니다. 어느 부분을 가리느냐가 목표를 가릅니다.

인과적 언어 모델링

인과적 언어 모델링(causal language modeling)은 앞의 토큰들만 보고 바로 다음 토큰을 맞히는 목표입니다. 「오늘 날씨가」 다음에 「맑다」가 올 확률을 높이도록 학습하고, 문장 전체의 확률은 토큰마다의 조건부 확률을 곱한 것이 됩니다.

P(x1,…,xn)=∏t=1nP(xt∣x1,…,xt−1)P(x_1, \dots, x_n) = \prod_{t=1}^{n} P(x_t \mid x_1, \dots, x_{t-1})

03편의 인과 마스크가 이 목표를 강제하는 장치입니다. 문장 하나의 모든 자리가 동시에 문제가 되므로 학습 신호가 촘촘하고, 학습 때 하던 일(다음 토큰 맞히기)과 생성할 때 하는 일이 똑같아 생성에 곧바로 쓸 수 있습니다.

마스크드 언어 모델링

마스크드 언어 모델링(masked language modeling, MLM)은 문장 중간의 토큰을 가리고 앞뒤를 모두 보며 가린 자리를 맞히는 목표입니다. BERT는 토큰의 15%를 고르고, 그중 80%는 [MASK]로, 10%는 무작위 토큰으로 바꾸고, 10%는 그대로 둡니다. 전부 [MASK]로만 바꾸면 추론 때는 [MASK]가 나오지 않아 학습과 사용이 어긋나기 때문입니다.

양쪽 문맥을 다 보므로 문장을 이해하는 표현은 강하지만, 한 문장에서 가린 15%만 학습 신호가 되고 왼쪽에서 오른쪽으로 이어 쓰는 연습을 한 적이 없어 생성에는 맞지 않습니다.

스팬 복원

T5는 토큰 하나가 아니라 이어진 여러 토큰, 곧 스팬(span)을 통째로 가립니다. 가린 자리마다 <extra_id_0> 같은 표지 토큰을 남기고, 디코더가 표지 뒤에 가려진 내용을 차례로 적어 냅니다. 입력은 인코더가 양방향으로 읽고 출력은 디코더가 인과적으로 쓰므로, 두 목표를 한 모델에 섞은 모양입니다.

모델 계열

GPT 계열

디코더 전용 구조에 인과적 언어 모델링으로 학습한 계열입니다. 질문·지시·문서를 모두 「이어 쓸 앞부분」으로 받아 답을 생성합니다. 오늘날 채팅형 LLM 대부분이 여기에 속하고, 사전학습 뒤에 지시 튜닝과 정렬을 더해 대화에 맞춥니다.

BERT 계열

인코더 전용 구조에 MLM으로 학습한 계열입니다. 출력이 문장이 아니라 토큰마다의 문맥 벡터라서, 그 위에 작은 분류 층을 얹어 감정 분류·개체명 인식·문장 유사도에 씁니다. 검색용 임베딩 모델과 리랭커도 이 계열에서 많이 나옵니다.

T5 계열

인코더-디코더 구조에 스팬 복원으로 학습하고, 모든 과제를 텍스트를 받아 텍스트를 내는 꼴로 통일했습니다. 번역이면 translate English to German:을, 요약이면 summarize:를 앞에 붙이는 식입니다. 입력과 출력이 뚜렷이 갈리는 번역·요약에 잘 맞습니다.

계열 구조 사전학습 목표 대표 쓰임
GPT 디코더 전용 다음 토큰 예측 생성, 대화, 코드
BERT 인코더 전용 가린 토큰 복원 분류, 개체명 인식, 임베딩
T5 인코더-디코더 가린 스팬 복원 번역, 요약

시험에서 이 표는 거꾸로 나옵니다. 「고객 리뷰를 긍정·부정으로 나눈다」면 생성이 필요 없으므로 BERT 계열이 가장 가볍고, 「긴 문서를 세 줄로 줄인다」면 T5나 GPT 계열입니다.

컨텍스트 윈도

컨텍스트 윈도(context window)는 모델이 한 번에 조건으로 삼을 수 있는 토큰 수의 상한입니다. 04편에서 입력과 출력을 합친 예산으로 계산해 보았고, 여기서는 그 상한이 어디서 오는지를 봅니다.

학습 길이와 추론 길이

상한은 사전학습 때 보여 준 시퀀스 길이에서 정해집니다. 학습 때 본 적 없는 위치의 위치 인코딩은 모델에게 낯설어서, 상한을 넘겨 넣으면 품질이 급격히 떨어집니다. 긴 윈도를 가진 모델은 대개 짧게 사전학습한 뒤 긴 문서로 추가 학습하며 위치 인코딩의 범위를 늘린 것입니다.

어텐션은 모든 토큰 쌍을 비교하므로 비용이 길이의 제곱으로 붙습니다. 길이를 두 배로 늘리면 어텐션 점수 행렬은 네 배가 되고, 생성할 때 쌓는 키·값 저장 공간도 길이에 비례해 늘어납니다.

잘림과 중간 손실

윈도를 넘는 입력은 잘립니다. 어디가 잘리는지는 라이브러리 설정에 따라 앞일 수도 뒤일 수도 있어서, 긴 대화에서는 시스템 프롬프트가 잘려 나가는 사고가 납니다. 또 윈도 안에 들어가 있어도 긴 입력의 가운데에 놓인 정보를 앞·뒤보다 덜 활용하는 경향이 보고되어 있습니다. 중요한 지시와 근거는 입력의 처음이나 끝에 두는 것이 안전합니다.

확률 분포 조절

디코더가 한 걸음마다 내는 것은 토큰 하나가 아니라 어휘 전체에 대한 점수, 곧 로짓(logit)이고, 소프트맥스를 지나 확률 분포가 됩니다. 디코딩 파라미터는 이 분포를 고치거나 잘라 내는 손잡이입니다.

temperature

temperature는 소프트맥스에 넣기 전에 로짓을 나누는 값 TT 입니다.

pi=exp⁡(zi/T)∑jexp⁡(zj/T)p_i = \frac{\exp(z_i / T)}{\sum_j \exp(z_j / T)}

로짓이 [2,1,0][2, 1, 0] 인 세 토큰이라면 이렇게 됩니다.

TT 1위 2위 3위
0.5 0.867 0.117 0.016
1.0 0.665 0.245 0.090
2.0 0.506 0.307 0.186

TT 가 작을수록 1위에 확률이 몰려 출력이 일정해지고, 0에 가까워지면 늘 1위만 고르는 그리디와 같아집니다. 클수록 분포가 평평해져 다양하지만 엉뚱한 토큰이 뽑힐 확률도 커집니다. 순위는 바뀌지 않고 간격만 바뀐다는 점이 요점입니다.

top-k

top-k 샘플링은 확률이 높은 순으로 kk 개만 남기고 나머지를 버린 뒤, 남은 것의 합이 1이 되게 다시 나눠 그 안에서 뽑는 방식입니다. 확률이 0.40, 0.25, 0.15, 0.10, 0.06, 0.04인 여섯 토큰에 k=2k = 2 를 쓰면 0.40과 0.25만 남고, 다시 나누면 0.40/0.65≈0.6150.40 / 0.65 \approx 0.615 와 0.25/0.65≈0.3850.25 / 0.65 \approx 0.385 입니다. 약점은 kk 가 분포 모양과 상관없이 고정이라는 것입니다. 한 토큰이 0.95를 차지하는 자리에서도, 후보가 고르게 퍼진 자리에서도 똑같이 kk 개를 남깁니다.

top-p

top-p 샘플링(nucleus sampling)은 개수 대신 누적 확률로 자릅니다. 높은 순으로 더해 가다가 합이 pp 에 이르는 데까지만 남깁니다. 같은 여섯 토큰에 p=0.8p = 0.8 이면 누적이 0.40, 0.65, 0.80이므로 세 개가 남고, 다시 나누면 0.5, 0.3125, 0.1875입니다. 분포가 뾰족한 자리에서는 한두 개만, 평평한 자리에서는 여럿이 남아 kk 의 약점을 메웁니다. 실무에서는 temperature와 top-p를 함께 두되 둘을 동시에 크게 흔들지 않고 하나씩 조정합니다.

탐색 전략

그리디 디코딩

그리디 디코딩은 매 걸음 확률이 가장 높은 토큰 하나를 고릅니다. 빠르고 결과가 늘 같지만, 그 걸음에서 최선이 전체 문장에서 최선이라는 보장이 없습니다. 같은 구절을 되풀이하는 반복 루프에 잘 빠지는 것도 약점입니다.

빔 서치

빔 서치(beam search)는 매 걸음 누적 확률이 높은 후보 문장을 BB 개(빔 너비) 유지하며 나아갑니다. 첫 토큰이 A 0.5, B 0.4이고, A 다음의 최선이 0.4, B 다음의 최선이 0.9라고 합시다. 그리디는 A를 고른 뒤 0.5×0.4=0.200.5 \times 0.4 = 0.20 에 머무르지만, 너비 2인 빔은 B도 붙들고 있어 0.4×0.9=0.360.4 \times 0.9 = 0.36 짜리 문장을 찾습니다. 확률을 곱하면 긴 문장일수록 점수가 작아지므로 길이로 나눠 보정하는 것이 보통입니다.

샘플링과 결정성

빔 서치와 그리디는 정답이 거의 하나로 정해진 번역·요약에 맞고, 대화나 창작처럼 여러 답이 다 괜찮은 일에는 top-p 같은 샘플링이 자연스럽습니다. 같은 입력에 같은 출력이 나와야 하는 테스트나 데이터 추출이라면 temperature를 0에 가깝게 두고, 샘플링을 쓰면서도 재현이 필요하면 난수 시드를 고정합니다.

환각

환각(hallucination)은 모델이 사실과 다르거나 근거 없는 내용을 그럴듯하게 생성하는 현상입니다. 한 곳에서 생기는 것이 아니라 학습과 디코딩 양쪽에 발생 지점이 있습니다.

학습에서 생기는 환각

인과적 언어 모델링이 최적화하는 것은 참이 아니라 그럴듯함입니다. 말뭉치에 드물게 나온 사실은 모델이 제대로 외우지 못하고, 그 자리를 비슷한 패턴의 흔한 값으로 메웁니다. 학습 데이터가 끝나는 시점 이후의 일은 아예 모르는데도, 모른다고 답하는 연습을 받지 않았다면 그럴듯한 답을 지어냅니다. 데이터 속 오류와 모순도 그대로 배웁니다.

디코딩에서 생기는 환각

temperature를 높이면 확률이 낮은 토큰이 뽑힐 기회가 늘어납니다. 그리고 생성은 되돌릴 수 없어서, 한 번 틀린 토큰을 고르면 그다음 토큰들은 그 틀린 앞부분을 조건으로 삼아 이어집니다. 이렇게 한 걸음의 실수가 뒤로 불어나는 것을 눈덩이 효과라 부릅니다. 대응은 층마다 다릅니다 — 사실 질의에는 temperature를 낮추고, 근거 문서를 컨텍스트에 넣는 RAG로 외운 지식 대신 읽은 지식으로 답하게 하고, 출처를 인용하게 해 사람이 확인할 수 있게 합니다.

연습 문제

  1. 다음 중 생성 없이 문장 분류만 하면 되는 일에 가장 알맞은 사전학습 목표는?
    ① 인과적 언어 모델링
    ② 마스크드 언어 모델링
    ③ 강화학습
    ④ 빔 서치
    ②. 앞뒤 문맥을 모두 보고 표현을 만드는 인코더 계열(BERT)이 분류에 가볍고 알맞습니다. ④는 학습 목표가 아니라 디코딩 전략입니다.
  2. 로짓이 [2,1,0][2, 1, 0] 일 때 temperature를 1.0에서 0.5로 낮추면 1위 토큰의 확률은?
    ① 0.665에서 0.506으로 줄어든다
    ② 0.665에서 0.867로 늘어난다
    ③ 그대로 0.665다
    ④ 1위와 2위의 순서가 바뀐다
    ②. 로짓을 0.5로 나누면 [4,2,0][4, 2, 0] 이 되고 e4/(e4+e2+1)≈54.60/62.99≈0.867e^4 / (e^4 + e^2 + 1) \approx 54.60 / 62.99 \approx 0.867 입니다. temperature는 간격만 바꾸고 순위는 바꾸지 않습니다.
  3. 확률이 0.40, 0.25, 0.15, 0.10, 0.06, 0.04인 여섯 토큰에 top-p를 p=0.8p = 0.8 로 적용하면 후보로 남는 토큰 수는?
    ① 2
    ② 3
    ③ 4
    ④ 6
    ②. 누적 확률이 0.40, 0.65, 0.80으로 셋째에서 0.8에 이릅니다.
  4. 3번의 여섯 토큰에 top-k를 k=2k = 2 로 적용한 뒤 다시 정규화하면 1위 토큰의 확률은 약 얼마인가?
    ① 0.40
    ② 0.50
    ③ 0.615
    ④ 0.65
    ③. 남은 둘의 합이 0.40+0.25=0.650.40 + 0.25 = 0.65 이므로 0.40/0.65≈0.6150.40 / 0.65 \approx 0.615 입니다.
  5. 첫 토큰 확률이 A 0.5, B 0.4이고, A 다음 최선이 0.4, B 다음 최선이 0.9입니다. 너비 2인 빔 서치가 두 토큰 뒤 고르는 문장의 확률은?
    ① 0.20
    ② 0.36
    ③ 0.45
    ④ 0.50
    ②. 그리디는 A를 골라 0.5×0.4=0.200.5 \times 0.4 = 0.20 이 되지만 빔은 B도 유지해 0.4×0.9=0.360.4 \times 0.9 = 0.36 을 찾습니다.
  6. 길이 200토큰인 문장에 BERT 방식의 MLM을 적용하면 예측 대상으로 고르는 토큰은 몇 개인가?
    ① 20
    ② 30
    ③ 160
    ④ 199
    ②. 15%를 고르므로 200×0.15=30200 \times 0.15 = 30 개입니다. 그중 80%인 24개가 [MASK]로 바뀝니다.
  7. 환각을 줄이는 방법으로 알맞지 않은 것은?
    ① 사실 질의에서 temperature를 낮춘다
    ② 근거 문서를 검색해 컨텍스트에 넣는다
    ③ 답에 출처를 인용하게 한다
    ④ 다양성을 위해 temperature를 2.0으로 올린다
    ④. 분포가 평평해져 확률이 낮은 토큰이 뽑힐 기회가 늘고, 한 번 틀린 토큰이 뒤를 끌고 가는 눈덩이 효과가 커집니다.
NVIDIA NCA-GENL 시험 노트 전체 보기