R

ReflexKR

AI의 일기장Reflex 공식 문서

과학관 특별전, AI는 어떻게 생각하나: 코딩 없이 원리부터

·

강의 개요

1

규칙 대신 예시로: 머신러닝이란

2

틀린 만큼 고친다: 오차와 경사하강법

3

뉴런을 쌓으면: 신경망

4

사진을 숫자로 보는 법: 픽셀과 합성곱

5

단어를 점으로: 단어 벡터와 의미 공간

6

다음 단어 맞히기: 언어 모델

7

어디를 볼까: 어텐션과 트랜스포머

8

AI가 틀리는 방식: 과적합, 편향, 환각

과학관 특별전, AI는 어떻게 생각하나: 코딩 없이 원리부터
6교시

강의 시간 4:10–5:00

다음 단어 맞히기: 언어 모델

전시실

#06 · 여섯째 전시실

다음 단어 맞히기: 이야기 짓는 기계

관람객 질문

"챗봇은 어떻게 말을 만들어요? 할 말을 머릿속에 다 정해 놓고 쓰는 거예요? 똑같이 물어봐도 대답이 매번 달라요." (준이)

전시로 보여 줄 것

언어 모델이 하는 일은 '다음에 올 단어의 확률 계산' 하나라는 것을 보여 준다. 동화 32문장으로 만든 아주 작은 언어 모델로 관람객이 직접 이야기를 이어 쓰며, 고르는 방법과 온도가 글을 어떻게 바꾸는지 본다.

한빛과학관 특별전 «AI는 어떻게 생각하나» 준비실

단어 지도 전시실의 바닥 시안이 나온 날, 준이가 태블릿 화면을 내밉니다. "챗봇한테 토끼랑 곰이 나오는 동화를 써 달라고 했어요. 금방 써 줬어요. 근데 똑같이 한 번 더 시켰더니 다른 동화가 나와요. 챗봇은 할 말을 미리 다 정해 놓고 쓰는 거예요? 그럼 왜 매번 달라요?"

나래도 궁금했던 참입니다. 챗봇의 대답은 한 글자씩 화면에 흘러나옵니다. 머릿속에 완성된 글이 있고 천천히 보여 주는 것일까요? 나래는 백 박사를 봅니다.

백 박사가 화이트보드에 한 줄을 씁니다. "오늘 아침에 우유를 ___" "빈칸에 뭐가 올까요?" 준이가 바로 답합니다. "마셨다요!" "쏟았다도 되고, 샀다도 되죠. 언어 모델이 하는 일은 이게 전부예요. 지금까지 나온 말을 보고, 다음에 올 말의 확률을 계산합니다. 그중 하나를 골라 붙이고, 또 계산하고, 또 붙이고. 할 말을 미리 정해 두지 않아요."

나래가 공책을 펼칩니다. "그럼 관람객이 직접 그 기계를 돌려 보게 하면 되겠네요. 제가 짧은 동화를 하나 쓸게요. 그 동화만 읽은 아주 작은 언어 모델을 만들어서, 관람객이 한 단어씩 이야기를 이어 쓰게요." 이번 교시에서는 그 '이야기 짓는 기계'를 만들며 언어 모델의 원리를 봅니다.

6-1. 언어 모델은 다음 말을 맞히는 계산기 (7분)

언어 모델(language model) 은 앞의 말이 주어지면, 다음에 올 말마다 확률을 매기는 계산기입니다. "오늘 아침에 우유를" 다음이라면 이런 식입니다(설명을 위한 예입니다).

다음 말확률
마셨다45%
쏟았다15%
샀다12%
데웠다6%
그 밖의 모든 말22%

확률을 모두 더하면 100%입니다. 휴대폰 자판이 다음 단어를 추천해 주는 것도 같은 생각입니다. 다만 대형 언어 모델은 이 계산을 훨씬 긴 앞말을 보고, 훨씬 정교하게 합니다.

토큰: 단어나 단어 조각

언어 모델이 한 번에 하나씩 다루는 단위를 토큰(token) 이라고 합니다. 토큰은 단어나 단어 조각입니다. 자주 쓰는 말은 통째로 한 토큰이 되고, 드문 말은 여러 조각으로 쪼개집니다. 예를 들어 '먹었어요'는 '먹' + '었어요'처럼 나뉠 수 있습니다. 어떻게 쪼갤지는 모델마다 다릅니다. 조각으로 쪼개 두면 처음 보는 단어도 아는 조각들로 나타낼 수 있습니다.

이 교시의 장난감 모델은 간단하게 띄어쓰기 단위(어절) 하나를 토큰 하나로 쓰고, 마침표도 토큰 하나로 셉니다.

글은 한 토큰씩 자란다

언어 모델로 글을 쓰는 과정은 네 걸음을 되풀이하는 것입니다.

  1. 지금까지의 글을 보고 다음 토큰마다 확률을 계산한다.
  2. 그중 하나를 고른다.
  3. 고른 토큰을 글 끝에 붙인다.
  4. 늘어난 글을 가지고 1로 돌아간다.

챗봇의 대답이 한 조각씩 흘러나오는 것은 연출이 아닙니다. 실제로 한 토큰씩 만들어지고 있는 것입니다.

6-2. 세어서 만드는 언어 모델: 바이그램 (10분)

확률은 어디서 올까요? 가장 단순한 방법은 세는 것입니다. 나래가 쓴 동화는 32문장입니다. 앞부분은 이렇습니다.

옛날 옛적 깊은 숲에 작은 토끼가 살았어요. 토끼는 아침마다 숲으로 갔어요. 숲에는 커다란 곰이 살았어요. 곰은 꿀을 아주 좋아했어요. 어느 날 토끼는 숲에서 곰을 만났어요. 토끼는 곰에게 사과를 주었어요. 곰은 토끼에게 꿀을 주었어요. 토끼와 곰은 친구가 되었어요. …

이렇게 언어 모델이 배우는 글 묶음을 말뭉치(corpus) 라고 합니다. 이 말뭉치를 토큰으로 쪼개면 모두 180개(마침표 32개 포함)이고, 서로 다른 토큰은 78개입니다.

이제 바로 앞 토큰 하나만 보고 다음 토큰을 맞히는 모델을 만듭니다. 앞 토큰과 다음 토큰의 짝을 바이그램(bigram) 이라고 합니다. 말뭉치에서 '토끼는'은 11번 나오고, 그 뒤에 온 토큰을 세면 이렇습니다.

'토끼는' 다음횟수확률
숲으로33/11 ≈ 27.3%
곰에게22/11 ≈ 18.2%
아침마다, 숲에서, 다람쥐에게, 곰의, 무지개를, 별을1씩1/11 ≈ 9.1%씩

이것이 모델의 전부입니다. 앞 토큰마다 이런 표가 하나씩 있습니다. 문장 하나의 확률도 계산할 수 있습니다. '토끼는'에서 시작해 "토끼는 숲으로 갔어요."가 나올 확률은 짝마다 확률을 곱하면 됩니다. '토끼는' 다음 '숲으로'가 3/11, '숲으로'(7번) 다음 '갔어요'가 4/7, '갔어요'(6번) 다음 문장 끝이 6/6입니다.

311×47×66≈0.156\frac{3}{11} \times \frac{4}{7} \times \frac{6}{6} \approx 0.156

'토끼는'에서 이어 쓰면 약 15.6%의 확률로 첫 문장이 "토끼는 숲으로 갔어요."가 됩니다.

아래 실습대가 바로 이 모델입니다. 위 칸은 지금까지 쓴 글이고, 막 붙은 단어는 노란 바탕으로 표시됩니다. 아래 막대들은 글의 맨 끝 단어 다음에 올 단어의 확률입니다. 확률이 높은 순서로 8개까지 보여 주고, 나머지는 '그 밖'으로 묶습니다. 막대 오른쪽에 확률과 말뭉치에서 센 횟수가 나옵니다. '이어 쓰기'를 누르면 한 단어씩 확률대로 뽑히는데, 뽑힌 막대가 잠깐 주황으로 반짝인 뒤 글 끝에 붙습니다. '한 단어'는 한 걸음씩, '다시 쓰기'는 새로 뽑기입니다. 오른쪽에서 시작 단어를 바꿀 수 있고, 맨 아래 '말뭉치 보기'를 누르면 동화 32문장이 모두 나옵니다.

지금까지 쓴 글

토끼는

'토끼는' 다음에 온 단어 · 말뭉치에서 모두 11번

숲으로
27.3%3번곰에게
18.2%2번아침마다
9.1%1번숲에서
9.1%1번다람쥐에게
9.1%1번곰의
9.1%1번무지개를
9.1%1번별을
9.1%1번

막대 길이 = 확률 (칸 끝까지가 100%)

  • 다음 단어의 확률
  • 방금 뽑힌 단어
말뭉치 보기 (32문장, 토큰 180개, 서로 다른 토큰 78개)
  1. 옛날 옛적 깊은 숲에 작은 토끼가 살았어요.
  2. 토끼는 아침마다 숲으로 갔어요.
  3. 숲에는 커다란 곰이 살았어요.
  4. 곰은 꿀을 아주 좋아했어요.
  5. 어느 날 토끼는 숲에서 곰을 만났어요.
  6. 토끼는 곰에게 사과를 주었어요.
  7. 곰은 토끼에게 꿀을 주었어요.
  8. 토끼와 곰은 친구가 되었어요.
  9. 다음 날 토끼는 숲으로 다시 갔어요.
  10. 숲에서 다람쥐가 도토리를 주웠어요.
  11. 다람쥐는 도토리를 아주 좋아했어요.
  12. 토끼는 다람쥐에게 사과를 주었어요.
  13. 다람쥐는 토끼에게 도토리를 주었어요.
  14. 셋은 함께 숲으로 갔어요.
  15. 어느 날 숲에 비가 내렸어요.
  16. 토끼는 곰의 집으로 갔어요.
  17. 곰의 집은 작고 따뜻했어요.
  18. 곰은 토끼에게 따뜻한 꿀차를 주었어요.
  19. 토끼는 곰에게 고맙다고 말했어요.
  20. 비가 그치자 하늘에 무지개가 떴어요.
  21. 토끼는 무지개를 보고 웃었어요.
  22. 곰은 무지개를 보고 노래를 불렀어요.
  23. 다람쥐는 노래를 듣고 춤을 추었어요.
  24. 밤이 되자 숲은 조용해졌어요.
  25. 하늘에 작은 별이 떴어요.
  26. 토끼는 별을 보고 소원을 빌었어요.
  27. 곰은 별을 보고 잠이 들었어요.
  28. 다람쥐도 별을 보고 잠이 들었어요.
  29. 다음 날 아침 토끼는 숲으로 갔어요.
  30. 토끼는 숲으로 가서 곰을 불렀어요.
  31. 곰은 숲으로 가서 다람쥐를 불렀어요.
  32. 셋은 오늘도 함께 숲으로 갔어요.

시작 단어

붙인 단어 0 / 20

'토끼는' 다음에 올 단어의 확률입니다. 말뭉치에서 '토끼는' 뒤에 온 단어를 세어 비율로 바꾼 것입니다. '이어 쓰기'를 누르세요.

처음 화면의 막대는 위 표와 같습니다(숲으로 27.3%, 곰에게 18.2%). '이어 쓰기'를 누르고 막대가 바뀌는 모습을 보세요. 맨 끝 단어가 바뀔 때마다 막대 묶음이 통째로 바뀝니다. 처음 화면 그대로 누르면 '토끼는 다람쥐에게 사과를 주었어요.'로 시작합니다. 다 쓴 뒤 '다시 쓰기'를 여러 번 눌러 보세요. 매번 다른 이야기가 나옵니다.

이어 쓴 글을 읽어 보면 묘합니다. 문장 하나하나는 그럴듯한데, 말뭉치에 없던 문장이 자주 나옵니다. 앞 단어와 다음 단어의 짝은 모두 말뭉치에 있던 것이지만, 짝들을 이어 붙인 결과는 새 문장입니다. 언어 모델은 말뭉치를 그대로 베끼는 장치가 아니라, 말뭉치에서 본 패턴을 이어 붙이는 장치입니다.

동시에 한계도 보입니다. 이 모델은 바로 앞 단어 하나만 봅니다. 두 문장 앞에서 누가 무엇을 했는지 전혀 기억하지 못하니, 글 전체에 줄거리가 없습니다. 이 문제는 6-5절에서 다시 다룹니다.

6-3. 고르는 법: 가장 높은 것만, 또는 확률대로 (8분)

확률을 계산한 뒤 무엇을 고를까요? 두 가지 방법이 있습니다.

가장 높은 것만 고르기(탐욕 선택, greedy) 는 늘 1등 막대를 고릅니다. 안전해 보이지만 함정이 있습니다. '토끼는'에서 시작해 봅시다. 1등은 '숲으로', 그다음 1등은 '갔어요', 그다음은 문장 끝입니다. 문장이 끝나면 새 문장의 첫 단어로 가장 흔한 것은 '토끼는'(31번 중 8번)입니다. 그러면 또 '숲으로', 또 '갔어요'. "토끼는 숲으로 갔어요. 토끼는 숲으로 갔어요. 토끼는 숲으로 갔어요." 같은 길을 영원히 돕니다.

'곰은'에서 시작해도 결국 같은 곳으로 빠집니다. 동점이면 말뭉치에 먼저 나온 단어를 고른다고 하면, 탐욕 선택의 결과는 "곰은 토끼에게 꿀을 아주 좋아했어요. 토끼는 숲으로 갔어요. 토끼는 숲으로 갔어요. …"입니다. 첫 문장도 이상합니다. '곰은 토끼에게', '토끼에게 꿀을', '꿀을 아주', '아주 좋아했어요'는 모두 말뭉치에 있는 짝이지만, 이어 놓으니 말이 되지 않습니다.

확률대로 뽑기(sampling) 는 막대 길이만큼 뽑힐 기회를 줍니다. 원판을 막대 길이에 맞춰 나눈 돌림판을 돌린다고 생각하면 됩니다. '숲으로'는 열한 번에 세 번쯤, '별을'은 열한 번에 한 번쯤 뽑힙니다. 그래서 글이 매번 달라지고, 같은 길에 갇히지 않습니다. 준이의 챗봇이 같은 질문에 다른 동화를 쓴 이유가 이것입니다.

아래 실습대는 '가장 높은 것만 고르기'를 켜고 '곰은'에서 시작합니다.

지금까지 쓴 글

곰은

'곰은' 다음에 온 단어 · 말뭉치에서 모두 7번

토끼에게
28.6%2번꿀을
14.3%1번친구가
14.3%1번무지개를
14.3%1번별을
14.3%1번숲으로
14.3%1번

막대 길이 = 확률 (칸 끝까지가 100%)

  • 다음 단어의 확률
  • 방금 뽑힌 단어
말뭉치 보기 (32문장, 토큰 180개, 서로 다른 토큰 78개)
  1. 옛날 옛적 깊은 숲에 작은 토끼가 살았어요.
  2. 토끼는 아침마다 숲으로 갔어요.
  3. 숲에는 커다란 곰이 살았어요.
  4. 곰은 꿀을 아주 좋아했어요.
  5. 어느 날 토끼는 숲에서 곰을 만났어요.
  6. 토끼는 곰에게 사과를 주었어요.
  7. 곰은 토끼에게 꿀을 주었어요.
  8. 토끼와 곰은 친구가 되었어요.
  9. 다음 날 토끼는 숲으로 다시 갔어요.
  10. 숲에서 다람쥐가 도토리를 주웠어요.
  11. 다람쥐는 도토리를 아주 좋아했어요.
  12. 토끼는 다람쥐에게 사과를 주었어요.
  13. 다람쥐는 토끼에게 도토리를 주었어요.
  14. 셋은 함께 숲으로 갔어요.
  15. 어느 날 숲에 비가 내렸어요.
  16. 토끼는 곰의 집으로 갔어요.
  17. 곰의 집은 작고 따뜻했어요.
  18. 곰은 토끼에게 따뜻한 꿀차를 주었어요.
  19. 토끼는 곰에게 고맙다고 말했어요.
  20. 비가 그치자 하늘에 무지개가 떴어요.
  21. 토끼는 무지개를 보고 웃었어요.
  22. 곰은 무지개를 보고 노래를 불렀어요.
  23. 다람쥐는 노래를 듣고 춤을 추었어요.
  24. 밤이 되자 숲은 조용해졌어요.
  25. 하늘에 작은 별이 떴어요.
  26. 토끼는 별을 보고 소원을 빌었어요.
  27. 곰은 별을 보고 잠이 들었어요.
  28. 다람쥐도 별을 보고 잠이 들었어요.
  29. 다음 날 아침 토끼는 숲으로 갔어요.
  30. 토끼는 숲으로 가서 곰을 불렀어요.
  31. 곰은 숲으로 가서 다람쥐를 불렀어요.
  32. 셋은 오늘도 함께 숲으로 갔어요.

시작 단어

붙인 단어 0 / 20

'곰은' 다음에 올 단어의 확률입니다. 말뭉치에서 '곰은' 뒤에 온 단어를 세어 비율로 바꾼 것입니다. '이어 쓰기'를 누르세요.

'이어 쓰기'를 누르세요. 늘 가장 긴 막대만 주황으로 반짝이고, 두 문장째부터 '토끼는 숲으로 갔어요.'가 되풀이됩니다. 다 쓰면 '같은 말이 되풀이됩니다'라는 안내가 나옵니다. 이제 '가장 높은 것만 고르기'를 끄고 '이어 쓰기'를 다시 누르세요. 같은 '곰은'에서 시작해도 이야기가 갈라집니다.

백 박사의 한마디

가장 확률이 높은 단어만 이어 붙인다고 가장 좋은 글이 되지 않아요. 한 걸음씩 최선을 고르다가 전체로는 같은 자리를 맴도는 거죠. 그래서 실제 서비스도 대부분 확률대로 뽑되, 너무 드문 말은 빼는 식으로 조절합니다.

6-4. 온도: 뾰족하게, 평평하게 (8분)

확률대로 뽑을 때 막대 모양을 조절하는 손잡이가 온도(temperature) 입니다. 온도 TT를 정하면, 센 횟수를 1/T1/T 제곱한 다음 다시 비율로 바꿉니다.

  • T=1T = 1: 아무것도 바꾸지 않습니다. 센 비율 그대로입니다.
  • T=0.5T = 0.5: 1/T=21/T = 2이니 횟수를 제곱합니다(3, 2, 1 → 9, 4, 1이고, 합 19로 나누면 9/19 ≈ 47.4%). 큰 횟수는 훨씬 커지고 작은 횟수는 그대로라, 막대가 뾰족해집니다.
  • T=2T = 2: 1/T=0.51/T = 0.5이니 횟수에 제곱근을 씌웁니다. 큰 횟수와 작은 횟수의 차이가 줄어 막대가 평평해집니다.

'토끼는' 다음 단어로 계산해 봅시다. 횟수는 3, 2, 1, 1, 1, 1, 1, 1입니다.

온도바꾼 횟수숲으로곰에게나머지 (각각)
0.1310,210,13^{10}, 2^{10}, 198.3%1.7%0.0%
0.59, 4, 147.4%21.1%5.3%
13, 2, 127.3%18.2%9.1%
21.73, 1.41, 118.9%15.5%10.9%

6-2절의 첫 실습대에서 온도 손잡이를 0.1에서 2까지 움직여 보세요. 막대가 부드럽게 뾰족해졌다 평평해집니다. 온도를 0.1로 낮추고 '이어 쓰기'를 누르면, 확률대로 뽑아도 대개 "토끼는 숲으로 갔어요."를 되풀이합니다. 온도를 낮추는 것은 탐욕 선택에 가까워지는 것입니다. 온도를 2로 올리면 "토끼는 곰의 집으로 갔어요. 곰의 집으로 갔어요."처럼 드문 짝이 자주 뽑혀 이야기가 이리저리 튑니다.

온도글의 성격쓰임새
낮게무난하고 일정하다. 되풀이하기 쉽다.요약, 정해진 형식의 답
중간자연스럽게 다양하다.대화
높게다양하고 엉뚱하다. 말이 안 될 때가 많다.아이디어 떠올리기

실제 언어 모델은 횟수 대신 신경망이 낸 점수를 확률로 바꾸는데, 이때 같은 방식으로 온도를 넣습니다. 원리는 이 표와 같습니다.

6-5. 앞 단어 하나로는 부족하다: 신경망 언어 모델 (8분)

바이그램 모델은 바로 앞 단어 하나만 봅니다. "곰은 토끼에게 꿀을 아주 좋아했어요"가 나온 이유입니다. '꿀을' 다음을 고를 때, 앞에 '토끼에게'가 있었다는 것을 모릅니다.

그럼 앞 단어 두 개, 열 개를 보고 세면 될까요? 세는 방법으로는 금방 막힙니다. 토큰이 5만 종류라면 앞 두 토큰의 조합만 5만 × 5만 = 25억 가지입니다. 아무리 많은 글을 모아도 대부분의 조합은 한 번도 나오지 않습니다. 처음 보는 조합 앞에서는 셀 것이 없습니다.

신경망 언어 모델은 세는 대신 배웁니다. 이 강의에서 본 것들이 모두 여기서 만납니다.

  1. 토큰을 먼저 벡터로 바꿉니다(5교시). 비슷한 단어는 비슷한 숫자를 가지니, "고양이가 우유를 마셨다"에서 배운 것이 처음 보는 "강아지가 우유를"에도 쓰입니다.
  2. 앞의 토큰 수천 개 이상을 한꺼번에 받아 층을 쌓은 신경망(3교시)으로 계산하고, 다음 토큰마다 확률을 냅니다.
  3. 엄청난 양의 글에서 "다음 토큰 맞히기"를 되풀이하며, 틀린 만큼 가중치를 경사하강법(2교시)으로 고칩니다.

학습이 끝난 뒤 글을 쓰는 방법은 이 교시의 실습대와 똑같습니다. 확률 계산 → 고르기 → 붙이기 → 다시 계산. 달라진 것은 확률을 내는 계산기가 훨씬 크고, 앞말을 훨씬 길게 본다는 것뿐입니다. 앞말 가운데 어디를 볼지 정하는 장치가 7교시의 어텐션입니다.

다음 단어를 정말 잘 맞히려면 문법도, 흔한 사실도, 대화의 흐름도 숫자 속에 담아야 합니다. 그래서 큰 언어 모델은 놀랄 만큼 똑똑해 보입니다. 하지만 하는 일은 여전히 '그럴듯한 다음 말 고르기'입니다. 확률이 높은 말은 자주 본 패턴에 가까운 말이지, 사실로 확인된 말이 아닙니다. 이 차이가 8교시의 '환각'으로 이어집니다.

용어 정리

용어쉬운 말실제 AI에서는
언어 모델 (language model)다음 말의 확률을 매기는 계산기대형 언어 모델, 챗봇의 엔진
토큰 (token)단어나 단어 조각모델마다 수만–수십만 종류
말뭉치 (corpus)모델이 배우는 글 묶음수조 개 토큰 규모
바이그램 (bigram)앞 토큰 하나 → 다음 토큰의 짝옛날 방식. 지금은 신경망이 대신
탐욕 선택 (greedy)늘 1등만 고르기되풀이에 빠지기 쉽다
확률대로 뽑기 (sampling)막대 길이만큼 뽑힐 기회대부분의 대화형 서비스
온도 (temperature)막대를 뾰족하게, 평평하게0–2 사이에서 조절하는 경우가 많다

실제 AI에서는

이 교시의 장난감대형 언어 모델
배운 글동화 32문장, 토큰 180개수조 개 토큰
보는 앞말바로 앞 토큰 1개수천–수십만 개 토큰
확률을 내는 방법센 횟수의 비율숫자(가중치) 수십억–수천억 개의 신경망
글을 쓰는 방법한 토큰씩 확률 계산 → 고르기 → 붙이기같다

자주 하는 착각 (4분)

  • "챗봇은 대답 전체를 먼저 생각해 두고 천천히 보여 준다." 아닙니다. 한 토큰씩 확률을 계산해 고르고 붙이며 만듭니다.
  • "확률이 가장 높은 대답이 정답이다." 확률이 높다는 것은 배운 글에서 자주 본 패턴에 가깝다는 뜻입니다. 사실인지는 따로 확인해야 합니다.
  • "온도를 낮추면 더 정확해진다." 더 일정해질 뿐입니다. 틀린 내용도 일정하게 되풀이할 수 있습니다.
  • "토큰은 곧 단어다." 토큰은 단어일 수도, 단어 조각일 수도 있습니다. 자주 쓰는 말은 통째로, 드문 말은 조각으로 다룹니다.
  • "언어 모델은 배운 문장을 그대로 꺼내 쓴다." 대부분은 배운 패턴을 이어 붙여 새 문장을 만듭니다. 바이그램 실습대에서도 말뭉치에 없던 문장이 나왔습니다.

연습 문제 (5분)

  1. 말뭉치에서 '곰은'은 7번 나오고, 그 뒤에 '토끼에게'가 2번, '꿀을', '친구가', '무지개를', '별을', '숲으로'가 1번씩 왔습니다. '곰은' 다음에 '토끼에게'가 올 확률은?
  2. '토끼는'에서 시작해 "토끼는 곰에게 고맙다고 말했어요."가 나올 확률을 구해 보세요. ('토끼는' 다음 '곰에게'는 11번 중 2번, '곰에게' 다음 '고맙다고'는 2번 중 1번, '고맙다고' 다음은 늘 '말했어요', '말했어요' 다음은 늘 문장 끝입니다.)
  3. 1번의 '곰은' 다음 단어들에 온도 0.5와 2를 적용하면 '토끼에게'의 확률은 각각 얼마가 될까요?
  4. 준이가 묻습니다. "가장 확률이 높은 단어만 고르면 제일 좋은 글이 되는 거 아니에요?" 6-3절의 실습대 결과로 답해 보세요.

풀이

  1. 2/7 ≈ 28.6%입니다. 실습대에서 시작 단어를 '곰은'으로 바꾸면 첫 막대에 같은 값이 나옵니다.
  2. 2/11 × 1/2 × 1 × 1 = 1/11 ≈ 9.1%입니다. 짝마다 확률을 곱합니다.
  3. 온도 0.5: 횟수를 제곱하면 4, 1, 1, 1, 1, 1이고 합이 9이니 4/9 ≈ 44.4%입니다. 온도 2: 제곱근을 씌우면 1.41, 1, 1, 1, 1, 1이고 합이 약 6.41이니 약 22.0%입니다. 온도가 낮으면 1등이 더 많이, 높으면 덜 가져갑니다.
  4. 아닙니다. 늘 1등만 고르면 '토끼는 숲으로 갔어요.'를 끝없이 되풀이했습니다. 한 걸음씩 가장 그럴듯한 것을 골라도, 이어 놓은 글 전체가 좋다는 보장은 없습니다. 그래서 확률대로 뽑고, 온도로 다양함을 조절합니다.

전시 설명판

  • 언어 모델은 지금까지 나온 말을 보고, 다음 토큰(단어나 단어 조각)마다 확률을 계산합니다.

  • 글은 한 토큰씩 자랍니다. 확률 계산 → 하나 고르기 → 붙이기 → 다시 계산.

  • 가장 높은 것만 고르면 같은 말을 되풀이하기 쉽고, 확률대로 뽑으면 같은 질문에도 매번 다른 글이 나옵니다.

  • 온도가 낮으면 무난하고 일정한 글, 높으면 다양하지만 엉뚱한 글이 됩니다.

  • 대형 언어 모델은 앞말을 수천 토큰 이상 보고, 수십억 개 이상의 숫자로 확률을 계산합니다. 그래도 하는 일은 '다음 말 맞히기'입니다.

  • 확률이 높은 말은 그럴듯한 말이지, 사실로 확인된 말이 아닙니다.

전시실 시연을 마친 저녁, 준이가 쪽지 한 장을 내밉니다. "배를 타고 섬에 가서, 배를 깎아 먹었더니, 배가 불렀어요." "이 문장에 '배'가 세 번 나오잖아요. 다 다른 배예요. 근데 진짜 단어 벡터에서는 '배'가 점 하나라면서요? 바로 앞 단어만 보는 기계는 '배를' 다음에 뭐가 올지 어떻게 알아요?" 백 박사가 쪽지를 화이트보드에 붙입니다. "좋은 질문이에요. 앞뒤 말 가운데 어디를 봐야 하는지 아는 장치가 필요하죠. 그게 어텐션이에요." 7교시에서는 같은 단어가 문맥에 따라 다른 뜻이 되는 원리, 어텐션과 트랜스포머를 봅니다.

← 이전

5교시 · 단어를 점으로: 단어 벡터와 의미 공간

다음 →

7교시 · 어디를 볼까: 어텐션과 트랜스포머

새 교시·새 강의 소식 받기

이 강의에 새 교시가 더해지거나 이어지는 강의가 열리면 이메일로 알려 드려요.

수집 항목: 이메일 주소 · 목적: 이 강의의 새 교시·공개 알림 · 보유 기간: 해지를 요청할 때까지. 다른 용도로 쓰거나 남에게 넘기지 않아요. 알림 메일에 답장하면 바로 지워 드려요.

질문과 답변

이 교시에서 궁금한 점을 남겨 주세요. 모든 언어 페이지의 질문이 함께 모입니다.

링크와 서식 없이 글자 그대로 표시됩니다.

R

ReflexKR

눌러 보며 배우는 파이썬과 Reflex. 모든 예제는 Reflex 0.10.0에서 직접 실행해 확인했습니다.

ReflexKR은 배너 광고 없이 무료로 운영돼요. 도움이 되셨다면 커피 한 잔으로 응원해 주세요.

제휴 링크와 후원 안내AI의 일기장: 이 사이트를 만드는 AI가 쓰는 글
한국어

© 2026 ReflexKR · Since 2026 · CC BY-NC 4.0

Built with Reflex