수학 개념 지도
딥러닝과 언어 모델

언어 모델과 다음 토큰 예측(Language model and next-token prediction)

앞의 토큰⁠(token)⁠들이 주어졌을 때 다음 토큰의 확률⁠(probability)⁠ 분포를 내놓는 모델. 실제 글에 준 확률의 로그를 최대화하도록(교차 엔트로피⁠(cross-entropy)⁠를 최소화하도록) 학습한다.

p(x1,…,xn)=∏t=1np(xt∣x<t),H(p,q)=H(p)+DKL(p ∥ q)p(x_1, \dots, x_n) = \prod_{t=1}^{n} p(x_t \mid x_{\lt t}), \qquad H(p, q) = H(p) + D_{\mathrm{KL}}(p \,\|\, q)

"오늘 날씨가 정말 ___." 빈칸에 올 낱말은 하나로 정해지지 않지만 아무것이나 오지도 않습니다. '좋다'는 흔하고 '파랗다'는 드뭅니다. 언어 모델⁠(language model)⁠은 앞의 토큰들이 주어졌을 때 다음 토큰의 조건부 확률⁠(conditional probability)⁠ 분포를 내놓는 함수입니다. 이것만으로 문장 전체의 확률도 정해집니다. 확률의 곱셈 규칙⁠(chain rule of probability)⁠을 거듭 쓰면 어떤 분포든

p(x1,…,xn)=p(x1) p(x2∣x1) p(x3∣x1,x2)⋯=∏t=1np(xt∣x<t)p(x_1, \dots, x_n) = p(x_1)\,p(x_2 \mid x_1)\,p(x_3 \mid x_1, x_2)\cdots = \prod_{t=1}^{n} p(x_t \mid x_{\lt t})

로 쪼개지기 때문입니다. 이것은 가정이 아니라 항등식입니다. 가정은 각 조건부 확률을 어떻게 계산하느냐에서 들어옵니다. n-그램⁠(n-gram)⁠은 바로 앞 n − 1개 토큰만 본다고 가정하고(마르코프 연쇄⁠(Markov chain)⁠의 가정), 순환 신경망⁠(recurrent neural network)⁠은 지금까지의 글을 고정된 크기의 벡터⁠(vector)⁠ 하나에 요약하며, 트랜스포머⁠(transformer)⁠는 정해진 문맥 창 안의 모든 토큰을 어텐션⁠(attention)⁠으로 직접 봅니다.

무엇을 최소화하는가. 모델 q의 학습 목표는 실제 글의 토큰마다 모델이 준 확률의 로그를 더한 값을 가장 크게 하는 것, 곧 최대 가능도⁠(likelihood)⁠입니다. 부호를 바꾸고 토큰 수 N으로 나누면 토큰당 평균⁠(mean)⁠ '놀람' −1N∑tlog⁡2q(xt∣x<t)-\frac1N\sum_t \log_2 q(x_t \mid x_{\lt t})가 되는데, 이것을 교차 엔트로피라 합니다. 어떤 문맥에서 실제로 다음 토큰이 나오는 분포를 p라 하면, 그 기댓값⁠(expected value)⁠은 정확히 두 부분으로 나뉩니다.

H(p,q)=−∑yp(y)log⁡2q(y)=−∑yp(y)log⁡2p(y)⏟H(p)+∑yp(y)log⁡2p(y)q(y)⏟DKL(p ∥ q)H(p, q) = -\sum_y p(y)\log_2 q(y) = \underbrace{-\sum_y p(y)\log_2 p(y)}_{H(p)} + \underbrace{\sum_y p(y)\log_2\frac{p(y)}{q(y)}}_{D_{\mathrm{KL}}(p\,\|\,q)}

첫 항은 글 자체의 불확실성인 엔트로피⁠(entropy)⁠라서 모델이 무엇을 하든 줄일 수 없습니다. 둘째 항 KL 발산⁠(KL divergence)⁠은 늘 0 이상이고 q = p일 때만 0입니다(깁스 부등식⁠, Gibbs' inequality⁠). 그러니 교차 엔트로피를 최소화하는 것은 KL을 줄여 q를 p에 맞추는 것과 정확히 같은 일입니다. 아래에서 p는 설명을 위해 정한 가상의 '참' 분포입니다. 실제로는 아무도 p를 모르고, 글에서 뽑힌 표본⁠(sample)⁠으로 교차 엔트로피를 추정할 뿐입니다. 모델의 분포 q(청록 막대 위의 노란 손잡이)를 끌어 보세요. 한 막대를 올리면 나머지는 합이 1이 되도록 같은 비율로 줄어듭니다. q = p로 맞추기 고르게

왼쪽: 회색 테두리가 참 분포 p, 청록 막대가 모델 q입니다. 오른쪽 막대: 아래 파랑이 H(p), 위 분홍이 KL(p‖q)이고, 둘을 쌓은 높이가 교차 엔트로피입니다.

지금 H(p) = 비트, KL = 비트, 교차 엔트로피 = 비트, 퍼플렉시티⁠(perplexity)⁠ = 입니다. q를 p에 딱 맞추면 KL이 0이 되어 교차 엔트로피가 엔트로피까지 내려오고, 그 아래로는 내려가지 않습니다. 고르게 두면 교차 엔트로피는 p와 상관없이 정확히 log⁡24=2\log_2 4 = 2비트입니다.

퍼플렉시티. 교차 엔트로피 H비트를 2H2^H로 바꾼 것이 퍼플렉시티입니다. k개 가운데 하나를 고르게 찍는 모델은 매번 log⁡2k\log_2 k비트만큼 놀라므로 퍼플렉시티가 정확히 k입니다. 그래서 퍼플렉시티 20은 '평균적으로 후보 20개 사이에서 고르게 헷갈리는 것과 같은 정도'로 읽습니다. 로그의 밑을 e로 쓰면(단위 나트) eHe^H가 되지만 값은 같습니다. 주의할 점이 있습니다. 토큰 하나가 담는 글의 양이 토크나이저⁠(tokenizer)⁠마다 다르므로, 토크나이저가 다른 모델끼리는 퍼플렉시티를 바로 비교할 수 없습니다(토큰화). 그럴 때는 글자당 또는 바이트당 비트로 바꿔 비교합니다.

섀넌의 맞히기 실험. 1951년 클로드 섀넌은 사람에게 영어 문장을 한 글자씩 맞히게 했습니다. 틀리면 맞을 때까지 다시 추측하게 하고, 몇 번 만에 맞혔는지 적었습니다. 앞 글자를 많이 볼수록 첫 추측이 맞는 일이 늘었습니다. 섀넌은 이 기록에서 앞의 100글자쯤을 아는 영어의 엔트로피에 아래 한계와 위 한계를 구해, 글자당 0.6비트와 1.3비트 사이라고 추정했습니다(알파벳 26자와 띄어쓰기를 고르게 찍으면 log⁡227≈4.75\log_2 27 \approx 4.75비트). 오늘날 언어 모델을 시험 글의 교차 엔트로피로 평가하는 것은 이 실험을 기계에게 시키는 셈입니다. 다만 기계는 순위 대신 확률 분포 전체를 내놓습니다. 아래는 열두 문장짜리 말뭉치⁠(corpus)⁠로 센 n-그램 모델이 시험 문장을 한 토큰씩 맞히는 모습입니다. 모델: , 시험 문장: .

위: 시험 문장. 지금 맞힐 토큰이 노란 칸입니다. 아래 막대: 토큰마다 놀람 −log₂ q(비트). 오른쪽: 이 문맥에서 모델의 추측 상위 5개와 확률(노란 테두리가 실제 토큰).

말뭉치에 '동생은 오늘'이라는 이어짐은 한 번도 없습니다. 그래서 바이그램은 '오늘'에 아주 작은 확률만 주어 5.7비트를 잃습니다(본 적 없는 쌍도 확률이 0이 되지 않도록 모든 횟수에 0.1을 더했습니다). 문맥을 둘로 늘린 트라이그램은 이 문장에서 오히려 나쁩니다. 문맥이 길수록 그 문맥을 말뭉치에서 본 적이 없을 가능성이 커지기 때문입니다. 반대로 말뭉치에 있던 문장으로 시험하면 트라이그램이 가장 좋아 보입니다. 이미 본 글로 모델을 평가하면 안 되는 까닭입니다(과적합⁠, overfitting⁠). 비슷한 낱말끼리 통계⁠(statistics)⁠를 나눠 쓰게 한 신경망⁠(neural network)⁠ 언어 모델(2003년 요슈아 벤지오 등)과 단어 임베딩⁠(word embedding)⁠이 이 희소성 문제를 누그러뜨렸습니다.

예측은 곧 압축입니다. 다음 토큰에 확률 q를 주는 모델이 있으면 산술 부호화⁠(arithmetic coding)⁠로 글 전체를 −log⁡2q(x1,…,xn)-\log_2 q(x_1, \dots, x_n)비트보다 많아야 2비트 긴 길이로 적을 수 있고, 받는 쪽도 같은 모델을 돌려 글을 정확히 되살립니다. 거꾸로 무손실 압축기가 있으면 부호 길이 ℓ(x)에서 q(x)=2−ℓ(x)q(x) = 2^{-\ell(x)}라는 확률 모델을 읽어 낼 수 있습니다. 부호가 어디서 끝나는지 따로 알려 주지 않아도 풀리는 부호(접두어 부호처럼)라면, 크래프트 부등식⁠(Kraft inequality)⁠에 따라 이 값들의 합이 1 이하이기 때문입니다. 그러니 교차 엔트로피를 줄이는 것과 글을 더 짧게 압축하는 것은 같은 목표이고, 그 한계가 원천 부호화 정리⁠(source coding theorem)⁠의 엔트로피입니다.

은닉 마르코프 모델⁠(hidden Markov model)⁠은 눈에 보이지 않는 상태(예: 품사⁠(part of speech)⁠)가 마르코프 연쇄로 바뀌고 각 상태가 낱말을 내놓는다고 보는 언어 모델입니다. 상태의 가짓수가 정해져 있어 과거 전체를 그 상태 하나로 요약합니다. 순환 신경망은 이 상태를 연속적인 벡터로 바꾼 것으로 볼 수 있고, 트랜스포머는 과거를 요약하지 않고 문맥 창 안의 토큰을 모두 들고 다닌다는 점에서 다릅니다.

다음 토큰 예측이 말해 주는 것과 말해 주지 않는 것. 학습 목표는 학습 자료의 분포를 흉내 내는 것뿐입니다. 자료에 흔한 오류는 모델에게도 확률이 높은 답이고, '사실인가'는 목표에 들어 있지 않습니다. 대화에 쓰는 모델은 여기에 사람의 선호로 다듬는 단계를 더합니다(인간 피드백 강화 학습⁠(reinforcement learning)⁠). 큰 모델이 이 단순한 목표만으로 번역, 요약, 코드 작성 같은 일을 상당히 해낸다는 것은 관찰된 사실이지만, 왜 그런지, 어디까지 가능한지에 대해 합의된 이론은 아직 없습니다. 모델 크기와 손실 사이의 경험적 관계는 규모의 법칙⁠(scaling laws)⁠에서 다룹니다.

1913년 안드레이 마르코프는 푸시킨의 『예브게니 오네긴』에서 모음과 자음이 이어지는 빈도를 세어 자기 이름이 붙은 연쇄를 글에 적용했고, 1948년 섀넌은 n-그램으로 영어를 흉내 낸 문장을 만들었습니다. 1970~80년대 IBM의 프레더릭 옐리넥 연구진은 음성 인식에 트라이그램을 써서 통계 언어 모델을 실용화했습니다. 2003년 벤지오 등의 신경망 언어 모델, 2010년 토마시 미콜로프의 순환 신경망 언어 모델을 거쳐, 2018년 이후 GPT 계열이 트랜스포머로 같은 목표를 큰 규모에서 학습시켰습니다.

이어지는 곳. 목표 함수⁠(function)⁠의 두 조각은 엔트로피와 KL 발산이고, 문맥을 아는 만큼 줄어드는 불확실성은 조건부 엔트로피⁠(conditional entropy)⁠로 잽니다. 마지막 층의 점수를 확률로 바꾸는 소프트맥스⁠(softmax)⁠와 교차 엔트로피는 한 쌍으로 쓰이며, 분류 문제의 로지스틱 회귀⁠(logistic regression)⁠가 같은 손실을 씁니다. 학습된 분포에서 실제로 글을 뽑는 규칙은 디코딩이 정하고, 손실이 모델과 자료의 크기에 따라 어떻게 줄어드는지는 규모의 법칙이 경험적으로 요약합니다. 낱말 빈도가 지프의 법칙⁠(Zipf's law)⁠처럼 치우쳐 있어 말뭉치를 아무리 키워도 처음 보는 문맥이 계속 나온다는 사실이 n-그램의 희소성 문제의 뿌리입니다. 2022년 이후 언어 모델에 일어난 일, 곧 선호 학습과 공개 가중치⁠(open weights)⁠ 모델, 긴 문맥, 검색과 도구, 추론 모델은 언어 모델의 발전사에 날짜순으로 정리되어 있습니다.

이 개념이 나오는 긴 글

확률 도박판에서 온 편지 1654년, 도중에 멈춘 내기의 판돈을 어떻게 나눌까? 두 수학자가 주고받은 편지에서 확률론이 태어났다. 그래프 이론 일곱 다리의 도시 쾨니히스베르크의 일곱 다리를 한 번씩만 건너 산책할 수 있을까? 오일러는 지도를 지우고 점과 선만 남겼다. 거리와 유사도 까마귀와 택시 까마귀는 곧장 날고 택시는 블록을 돌아간다. '얼마나 먼가'에는 답이 하나가 아니고, 어떤 거리를 고르느냐가 통계와 기계 학습의 답을 바꾼다. 계산 이론 기계가 풀 수 없는 문제 모든 수학 문제를 기계적으로 풀 수 있을까? 러셀의 역설에서 괴델과 튜링까지, 그 질문에 대한 답은 '아니오'였고, 그 증명이 컴퓨터를 낳았다. 계산언어학 말을 세는 기계 문법은 규칙일까, 확률일까? 파니니의 문법에서 촘스키의 위계, 섀넌의 영어 엔트로피, 오늘날의 언어 모델까지. 정보 이론과 압축 짧게 보내기 모스 부호는 왜 E를 점 하나로 보낼까? 섀넌의 엔트로피가 정한 압축의 한계와, 허프만 부호에서 JPEG까지 그 한계에 다가간 방법들. 신경망과 기계 학습 배우는 기계 예를 보여 주면 규칙을 스스로 찾는 기계. 1958년의 퍼셉트론에서 오늘의 심층 신경망까지, 그 밑바닥에는 미분과 연쇄법칙이 있다. 타입 이론과 범주론 증명은 프로그램이다 러셀의 역설을 막으려던 '타입'이 프로그램의 실수를 막는 장치가 되었다. 명제를 타입으로, 증명을 프로그램으로 읽으면 둘이 규칙 하나하나까지 맞아떨어진다. 오늘날 수학자들은 그 사실로 컴퓨터에게 증명을 검사받는다. 언어 모델 다음 단어를 맞히는 기계 다음 낱말을 짐작하는 일만으로 어디까지 갈 수 있을까? 마르코프의 글자 세기에서 섀넌의 추측 게임, 트랜스포머와 규모의 법칙, 사람의 선호까지. 밑바닥에는 확률의 곱셈 규칙과 로그 하나가 있고, 그 수학은 모델이 왜 그럴듯하게 틀리는지도 말해 준다. 반환과 동적 계획법 같은 계산, 다른 덧셈 가장 짧은 길, 길의 가짓수, 가장 그럴듯한 해석, 갈 수 있는지 없는지. 따로 태어난 알고리즘들이 사실은 한 계산이고, 달라지는 것은 더하기와 곱하기 자리에 무엇을 넣느냐뿐이다. 그렇게 바꿔 넣어도 되는 까닭은 분배법칙 하나다. 압축과 과학 압축하는 것이 이해하는 것이다 튀코 브라헤가 20년 동안 적은 행성의 위치를 케플러는 법칙 세 줄로 줄였다. 짧게 적는 일과 이해하는 일은 정말 같은 일일까? 오컴의 면도날을 비트로 재는 법, 과적합을 압축의 실패로 읽는 법, 그리고 그 말이 정리인 곳과 철학인 곳.

이 개념 위에 세워진 것

이 개념을 언급하는 페이지

이 페이지가 가리키는 개념