개념 자료

LLM 작동 원리

AI 챗봇에 질문을 넣으면 몇 초 만에 매끄러운 문장이 돌아옵니다. 그 안에서는 생각보다 단순한 일이 아주 빠르게 되풀이됩니다. 글을 토큰으로 자르고, 숫자로 바꾸고, 다음에 올 토큰을 하나씩 고르는 일입니다. 이 흐름을 따라가면 시험에 나오는 토큰, 임베딩, 트랜스포머, temperature 같은 말이 한 줄로 이어집니다.

01

LLM은 다음에 올 말을 고른다

LLM은 대규모 언어 모델(Large Language Model)의 줄임말입니다. "대규모"는 두 가지가 크다는 뜻입니다. 학습에 쓴 글의 양, 그리고 모델 안에 들어 있는 숫자의 개수입니다. 이 숫자들을 가중치라고 부르는데, 5장에서 다시 봅니다.

LLM이 하는 일은 놀랄 만큼 하나뿐입니다. 지금까지의 글을 보고, 그다음에 올 토큰 하나를 고르는 일입니다. 토큰은 모델이 글을 읽고 쓰는 단위인데, 지금은 낱말 조각이라고 생각하면 됩니다. 휴대폰 자판이 다음 낱말을 추천해 주는 것과 비슷하지만, 훨씬 긴 글을 보고 훨씬 정교하게 고릅니다.

아래 그림에서 왼쪽 타일들은 입력한 글 "오늘 서울 날씨는"입니다. 뒤쪽 기둥들은 다음 자리에 올 수 있는 후보이고, 기둥 높이는 모델이 매긴 확률입니다. 한 단계씩 넘겨 보세요.

지금까지
오늘 서울 날씨 는
다음 후보
맑고 46%, 흐리고 22%, 비가 14%

입력: 오늘 서울 날씨는

입력한 글 뒤에 올 수 있는 토큰마다 확률이 매겨졌습니다. 가장 높은 "맑고"(46%)를 골라 붙입니다.

고른 토큰을 글 끝에 붙이면, 모델은 늘어난 글 전체를 다시 보고 다음 토큰을 고릅니다. 이걸 답이 끝날 때까지 되풀이합니다. 앞에서 쓴 결과가 다음 입력이 되는 이 방식을 자기회귀(autoregressive) 생성이라고 합니다. 챗봇 답이 한 번에 뜨지 않고 글자가 흘러나오듯 조금씩 화면에 찍히는 것도 이 때문입니다. 실제로 한 토큰씩 만들어지고 있습니다.

언제 멈출까요? 모델은 "여기서 끝"을 뜻하는 특별한 토큰도 후보로 갖고 있습니다. 그림의 마지막 단계처럼 이 토큰이 뽑히거나, 정해 둔 길이 한도에 닿으면 멈춥니다.

모델은 사실을 찾아보고 답하지 않습니다. 앞의 글에 이어질 가장 그럴듯한 토큰을 고를 뿐입니다. 그래서 모르는 내용을 물어도 그럴듯한 문장을 지어낼 수 있습니다. 이렇게 사실이 아닌 말을 사실처럼 하는 것을 환각이라고 합니다. 모델이 모르는 자료를 찾아 붙여 주는 RAG가 나온 이유이기도 합니다.

이렇게 엄청난 양의 데이터로 미리 학습시켜 두고, 요약·번역·질의응답처럼 여러 일에 두루 가져다 쓰는 큰 모델을 파운데이션 모델(기반 모델)이라고 부릅니다. LLM은 글을 다루는 파운데이션 모델입니다. 이미지나 소리까지 함께 다루는 모델은 멀티모달 모델이라고 합니다.

문제에 이런 표현이 나오면 → 이렇게 고른다

  • “지금까지의 글을 보고 다음에 올 말을 고른다”다음 토큰 예측
  • “만든 토큰을 입력에 붙여 이어 쓴다”자기회귀 생성
  • “대량의 데이터로 미리 학습해 여러 작업에 쓰는 모델”파운데이션 모델
  • “사실이 아닌 내용을 그럴듯하게 만든다”환각

그림에서는 토큰이 낱말처럼 보였습니다. 이해를 돕느라 단순하게 그린 것이고, 실제 토큰은 조금 다르게 생겼습니다.

02

글을 토큰으로 자르기

모델은 글자를 그대로 읽지 못합니다. 먼저 글을 작은 조각으로 자르고, 조각마다 정해진 번호로 바꿔서 받습니다. 이 조각이 토큰이고, 자르는 도구를 토크나이저라고 합니다. 모델은 글이 아니라 번호 목록을 받는 셈입니다.

토큰은 낱말 하나일 때도 있고, 낱말의 일부나 문장부호일 때도 있습니다. 자주 쓰이는 글자 묶음은 통째로 토큰 하나가 되고, 드문 낱말은 여러 조각으로 잘립니다. 이렇게 하면 처음 보는 낱말도 아는 조각을 이어 붙여 나타낼 수 있습니다. 아래 그림에서 문장을 바꿔 가며 잘라 보세요. 타일 아래 숫자가 모델이 실제로 받는 토큰 번호입니다(번호와 자르는 위치는 예시이고, 모델마다 다릅니다).

문장
토큰
Un | believ | able | ␣results | !

문장: "Unbelievable results!"

글자 21자가 토큰 5개가 됐습니다. 긴 단어는 자주 쓰이는 조각 여러 개로 나뉩니다.

"Unbelievable"은 한 낱말이지만 토큰 세 개로 잘렸습니다. 한국어 문장은 글자 수가 영어 문장의 절반쯤인데 토큰은 더 많이 나왔습니다. 많은 토크나이저가 영어 글을 더 많이 보고 만들어져서, 같은 뜻이라도 한국어가 토큰을 더 쓰는 경우가 흔합니다. 숫자는 자릿수대로 나뉘지 않고 불규칙하게 잘립니다. LLM이 큰 수의 계산이나 글자 수 세기에 약한 이유 중 하나입니다.

토큰 수가 정하는 세 가지

읽을 수 있는 양

모델이 한 번에 다루는 한도가 토큰 수로 정해져 있습니다. 7장에서 봅니다.

비용

많은 AI 서비스가 보낸 토큰(입력)과 받은 토큰(출력) 수로 요금을 매깁니다.

속도

답은 한 토큰씩 만들어지므로, 출력 토큰이 많을수록 오래 걸립니다.

토큰 수는 글자 수나 낱말 수와 같지 않습니다. 영어는 대략 낱말 하나가 토큰 1개 남짓이지만, 언어와 모델에 따라 달라집니다. "낱말 1,000개면 토큰도 1,000개"라는 식의 보기는 틀린 보기입니다.

문제에 이런 표현이 나오면 → 이렇게 고른다

  • “모델이 텍스트를 처리하는 단위”토큰
  • “텍스트를 조각으로 나누는 도구”토크나이저
  • “사용량에 따라 요금이 정해진다”입력·출력 토큰 수로 과금
  • “낱말 수와 토큰 수는 같다”틀린 보기

이제 모델이 받는 건 번호 목록입니다. 그런데 번호는 이름표일 뿐이라, 3022번과 3023번이 뜻도 가까운지는 번호만 봐서는 알 수 없습니다. 번호에 뜻을 담는 단계가 필요합니다.

광고

03

토큰에 뜻을 담는 숫자 (임베딩)

모델 안에는 커다란 표가 하나 있습니다. 토큰 번호마다 한 줄씩 있고, 한 줄에는 숫자가 수백에서 수천 개 들어 있습니다. 토큰 번호를 받으면 이 표에서 그 줄을 꺼내 옵니다. 이렇게 토큰을 숫자 목록으로 바꾸는 것을 임베딩(embedding)이라고 하고, 꺼낸 숫자 목록을 벡터라고 부릅니다.

표의 숫자는 처음에는 아무렇게나 정해져 있습니다. 5장의 학습을 거치면서, 비슷한 글 속에 자주 함께 나오는 토큰끼리 줄의 모양이 닮아 가도록 조금씩 고쳐집니다. 아래 그림은 표에서 두 낱말의 줄을 꺼내, 숫자 하나하나를 기둥 높이로 세운 것입니다. 실제 줄은 숫자가 훨씬 많지만 10개로 줄였습니다.

비교할 낱말
닮은 정도
0.93

표에서 두 낱말의 줄을 꺼내 숫자를 기둥으로 세웠습니다 (10칸으로 줄인 예시)

고양이와 강아지의 줄은 모양이 닮았습니다(닮은 정도 0.93). 둘 다 집에서 기르는 동물이라 비슷한 글 속에 자주 나옵니다.

고양이와 강아지는 기둥 모양이 거의 같습니다. 고양이와 자동차는 서로 다릅니다. 이 닮은 정도는 보통 코사인 유사도로 잽니다. 1에 가까울수록 닮았다는 뜻입니다. 기둥 칸 하나하나에 "동물 칸", "탈것 칸" 같은 뜻이 붙어 있지는 않습니다. 여러 칸의 숫자가 함께 뜻을 나타냅니다.

검색 증강 생성(RAG)에서도 임베딩이 나옵니다. 거기서는 문장이나 문단 전체를 벡터 하나로 바꾸는 전용 임베딩 모델을 써서, 질문과 뜻이 가까운 문서를 찾습니다. 원리는 같습니다. 뜻이 가까우면 숫자도 가깝습니다. 자세한 내용은 RAG 자료의 임베딩 장에 있습니다.

표에서 꺼낸 줄은 문장과 상관없이 늘 같습니다. "배가 아파서"의 배와 "배를 타고"의 배는 같은 줄에서 출발합니다. 문맥에 맞게 뜻을 바로잡는 일은 다음 장의 어텐션이 맡습니다.

문제에 이런 표현이 나오면 → 이렇게 고른다

  • “토큰을 숫자 벡터로 바꾼다”임베딩
  • “뜻이 비슷하면 벡터도 가깝다”의미적 유사성
  • “두 벡터의 닮은 정도”코사인 유사도

같은 "배"라도 앞뒤에 어떤 말이 오느냐에 따라 뜻이 달라집니다. 모델은 이 차이를 어떻게 알아챌까요?

Pro 전용

여기까지 무료로 읽을 수 있어요

나머지 5개 장은 Pro 구독자에게 열려 있어요. 장마다 3D 그림과 "문제에 이런 표현이 나오면" 정리가 이어지고, 마지막 장에서는 직접 풀어 보며 확인합니다.

  1. 04트랜스포머와 어텐션
  2. 05학습
  3. 06temperature·top-p
  4. 07컨텍스트 윈도우
  5. 08추론 파라미터 고르기

PasslyExam

개념을 읽었다면, 이제 시험 문제로 확인할 차례

PasslyExam은 자격증 시험 범위에 맞춰 만든 오리지널 연습문제와 해설, 실전 모의고사를 제공합니다. 왜 그 보기가 정답이고 비슷한 보기는 왜 틀리는지까지 해설로 짚습니다. 가입하면 매일 무료로 연습문제를 풀 수 있습니다.