AI Curriculum

1. 기반 이해

완성분 85발췌분 25

LLM 동작 원리 — 토큰·컨텍스트·확률적 생성

이 덱을 끝내면 자기 문장이 몇 토큰인지 세고, 자기 업무 문서가 컨텍스트에 들어가는지 계산하고, 왜 같은 질문에 다른 답이 오는지 설명할 수 있다.

왜 이걸 알아야 하나

AI를 쓰다가 이런 일을 겪은 적이 있을 것이다.

  • 긴 문서를 붙여 넣었더니 "너무 깁니다" 라며 거절당했다
  • 어제 잘 되던 프롬프트를 오늘 똑같이 넣었는데 다른 답이 왔다
  • 대화가 길어지자 앞에서 말한 걸 잊어버렸다
  • 그럴듯한 출처를 대길래 찾아봤더니 그런 문서가 없었다

이 넷은 서로 다른 고장이 아니다. 전부 같은 한 가지 구조에서 나온다. 그 구조를 모르면 매번 "AI가 이상해요"로 끝나고, 알면 매번 대처가 나온다.

이 덱은 그 구조를 셋으로 나눠 본다 — 토큰 · 컨텍스트 · 확률. 이 셋이 위 네 가지 현상의 원인이다.


1. 토큰 — AI는 글자도 단어도 아닌 것으로 읽는다

한계: 컴퓨터는 글자를 모른다

컴퓨터는 숫자만 다룬다. 그래서 글을 넣으려면 먼저 숫자로 바꿔야 한다.

가장 단순한 방법은 글자 하나에 번호 하나를 주는 것이다. 그런데 그러면 문장이 너무 길어진다 — 긴 글일수록 계산량이 폭발한다. 반대로 단어 하나에 번호 하나를 주면? 세상의 단어는 끝없이 새로 생기고("갑분싸", "chatgpt하다"), 사전에 없는 단어가 나오면 아예 처리를 못 한다.

새 접근: 자주 붙어 다니는 조각으로 자른다

그래서 나온 절충이 토큰이다. 글자보다 크고 단어보다 작은, 자주 함께 등장하는 조각 단위로 자른다.

  • Hello thereHello + there (앞 공백까지 한 토큰에 붙는다)
  • 안녕하세요 + 녕하세요

규칙이 직관적이지 않다. 자연스러운 의미 단위가 아니라 통계적으로 자주 붙어 다닌 덩어리라서 그렇다. 그러니 토큰은 "글자 수"도 "단어 수"도 아니고, 눈으로 세어지지 않는다.

표준화: 한국어는 얼마나 비싼가

같은 뜻의 한국어·영어 문장 4쌍을 실제로 세어 본 결과다(측정일 2026-08-01, 재현 절차는 실습 핸드북에 있다).

세는 도구한국어영어한/영 배율
구세대 토크나이저 (cl100k_base)83토큰 / 100자42토큰 / 182자1.98배
현세대 토크나이저 (o200k_base)53토큰 / 100자41토큰 / 182자1.29배

읽을 것이 셋이다.

  1. 한국어가 비싸다. 같은 내용인데 토큰을 더 쓴다 → 같은 한도에 덜 들어가고, 같은 분량에 돈을 더 낸다.
  2. 그런데 배율이 고정이 아니다. 세는 도구가 바뀌자 2배에서 1.3배로 좁아졌다. "한국어는 영어의 2배"라고 외우면 낡는다.
  3. 그래서 토큰은 절대 단위가 아니다. 세는 도구에 딸린 단위다.

3번은 벤더 문서도 그대로 말한다. Anthropic 은 모델 세대가 바뀌며 토크나이저가 바뀌었을 때 이렇게 적었다 — "compared to models before Claude Opus 4.7, the same text produces roughly 30% more tokens." 같은 글이 모델에 따라 30% 더 많은 토큰이 된다(Anthropic 모델 문서, 접근 2026-08-01).

핵심: 토큰은 AI가 글을 읽는 단위이고, 눈으로는 안 세어지며, 한국어가 영어보다 비싸다. 다음 문제 — 그 토큰을 몇 개까지 넣을 수 있나?


2. 컨텍스트 — AI가 한 번에 볼 수 있는 창

한계: 기억이 아니라 창이다

여기서 사람들이 가장 크게 오해한다. AI는 대화를 "기억"하지 않는다.

매번 질문할 때마다, 지금까지의 대화 전체가 다시 통째로 모델에 들어간다. 모델은 그걸 처음 보는 것처럼 읽고 답한다. 그러니 이건 기억력이 아니라 한 번에 펼쳐 놓고 볼 수 있는 책상 크기에 가깝다. 그 크기가 컨텍스트 윈도우다.

책상에 다 못 올리면? 오래된 것부터 밀려난다. 그래서 긴 대화에서 앞을 잊는다. 고장이 아니라 책상이 꽉 찬 것이다.

새 접근: 창을 키운다

초기 모델은 이 창이 수천 토큰이었다. 지금은 이렇다 — 전부 벤더 공식 문서 기준, 확인일 2026-08-01.

모델컨텍스트 윈도우최대 출력
Claude Opus 5 / Sonnet 51,000,000 토큰128,000 토큰
Claude Haiku 4.5200,000 토큰64,000 토큰
GPT-5.61,050,000 토큰128,000 토큰
Gemini 3.6 Flash1,048,576 토큰65,536 토큰

표준화: 100만은 무한이 아니라 예산이다

"100만 토큰이면 무제한 아닌가?" 두 가지가 걸린다.

첫째, 한국어는 그 창을 더 빨리 채운다. 위 1장의 배율이 여기서 현금화된다 — 같은 100만 토큰이라도 한국어로는 영어보다 적은 내용이 들어간다.

둘째, 창의 크기와 활용도는 다르다. 창이 크다고 그 안의 모든 내용을 똑같이 잘 쓰는 것은 아니다. 100만 토큰짜리 책상에 서류를 가득 올려놓으면 사람도 가운데 있는 걸 놓친다.

그래서 실무의 요령은 창을 채우는 게 아니라 예산으로 다루는 것이다.

실무 규칙

컨텍스트 예산 3원칙

  1. 주제가 바뀌면 새 대화를 연다. 앞의 잡담이 계속 다시 들어가고 있다.
  2. 필요한 것만 넣는다. 100쪽 보고서 전체보다, 관련 있는 5쪽이 낫다.
  3. 긴 작업은 중간 정리를 남긴다. 대화가 밀려나기 전에 결론을 따로 적어 둔다.

핵심: 컨텍스트 윈도우는 기억이 아니라 한 번에 보는 창이고, 창이 커도 예산처럼 다뤄야 한다. 다음 문제 — 같은 걸 넣었는데 왜 답이 달라지나?


3. 확률 — 같은 질문에 다른 답이 나오는 이유

한계: 답을 찾는 게 아니라 이어 쓴다

AI는 데이터베이스에서 답을 찾아오지 않는다. 지금까지의 문장 다음에 어떤 토큰이 올 확률이 높은지를 계산해서, 그중 하나를 골라 붙인다. 그리고 그걸 반복한다.

"대한민국의 수도는" 다음에 「서울」이 올 확률이 압도적이니 「서울」이 나온다. 하지만 매번 1등만 고르면 글이 딱딱해지고 창의적인 요구를 못 받는다. 그래서 약간의 무작위성을 섞는다.

새 접근: 무작위성을 손잡이로 만든다

그 무작위성의 세기를 조절하는 값이 있다. Anthropic 문서의 설명이다.

"Amount of randomness injected into the response. ... Use temperature closer to 0.0 for analytical / multiple choice, and closer to 1.0 for creative and generative tasks."Anthropic Messages API 문서, 접근 2026-08-01

그런데 같은 문서에 이 문장이 이어진다. 이게 이 장에서 가장 중요한 한 줄이다.

"Note that even with temperature of 0.0, the results will not be fully deterministic." (무작위성을 0으로 두어도 결과가 완전히 결정적이지는 않다.)

표준화: 재현이 필요하면 답이 아니라 절차를 고정한다

그러니 "같은 프롬프트를 넣었는데 답이 달라요"는 고장 신고가 아니라 정상 동작 보고다. 설계가 그렇다.

여기서 실무 습관이 하나 갈린다.

  • 답을 저장해 두고 재사용한다 → 다음에 다시 돌리면 달라진다. 왜 달라졌는지도 모른다.
  • 프롬프트와 절차를 저장한다 → 결과가 조금 달라도 같은 품질이 나온다. 개선도 절차에 쌓인다.

핵심: AI는 확률로 다음 토큰을 고른다. 완전한 재현은 보장되지 않으니, 고정할 것은 답이 아니라 절차다. 다음 문제 — 확률로 고르면 없는 것도 만들어 내지 않나?


4. 사례 카드 — 없는 판례를 인용한 변호사

앞의 세 가지가 합쳐지면 환각이 된다. 확률로 이어 쓰다 보면 "그럴듯하지만 존재하지 않는 것"이 나온다. 실제 사건 하나로 본다.

과제

2022년, 뉴욕의 한 변호사가 항공사를 상대로 한 인신사고 소송을 맡았다. 상대가 각하를 신청했고, 이를 반박할 선례를 찾아야 했다.

접근

변호인은 ChatGPT로 서면을 작성했다. 결과물에는 판례 인용이 여럿 들어 있었다 — 사건명, 인용 부호가 붙은 판결문 발췌, 페이지 번호까지. 형식이 완벽했다.

그중 여러 건이 존재하지 않는 판례였다.

상대측이 "인용된 판례를 찾을 수 없다"고 법원에 알렸다. 여기서 두 번째 실패가 일어난다 — 변호인은 확인하는 대신, 그 가짜 판례의 발췌문을 다시 제출했다. 그것 역시 생성된 것이었다.

성과 — 실제로는 대가

2023년 6월 22일, 뉴욕 남부연방지방법원 P. Kevin Castel 판사는 변호사 2인과 소속 로펌에 5,000달러의 제재금을 부과했다. 더해서, 가짜 판결문의 저자로 이름이 도용된 실제 판사들에게 각각 서한을 보내라고 명령했다.

판결문의 이 문장을 그대로 옮긴다.

"Technological advances are commonplace and there is nothing inherently improper about using a reliable artificial intelligence tool for assistance. But existing rules impose a gatekeeping role on attorneys to ensure the accuracy of their filings."

(기술 발전은 흔한 일이며, 믿을 만한 AI 도구를 보조로 쓰는 것 자체에 부적절한 점은 없다. 다만 기존 규칙은 변호사에게 제출물의 정확성을 확인할 문지기 역할을 부과한다.)

Mata v. Avianca, Inc., 678 F.Supp.3d 443 (S.D.N.Y. 2023) · 판결문 전문, 접근 2026-08-01

왜 환각은 없어지지 않나

이게 패치로 고쳐질 결함이라면 기다리면 된다. 그런데 구조적이다.

2025년 OpenAI 연구진의 논문이 이유를 이렇게 정리했다.

"Like students facing hard exam questions, large language models sometimes guess when uncertain, producing plausible yet incorrect statements instead of admitting uncertainty."

(어려운 시험 문제를 마주한 학생처럼, 거대 언어 모델은 불확실할 때 때때로 찍는다 — 모른다고 인정하는 대신 그럴듯하지만 틀린 문장을 내놓는다.)

— Kalai, Nachum, Vempala, Zhang, 「Why Language Models Hallucinate」, arXiv:2509.04664 (2025-09-04, 접근 2026-08-01)

논문의 진단이 날카롭다. 대부분의 AI 성능 평가가 정답에 점수를 주고 "모릅니다"에는 0점을 준다. 그런 시험을 계속 치르면, 모르면 빈칸으로 두는 모델보다 찍는 모델이 항상 점수가 높다. 우리가 지금 쓰는 모델들은 그 시험을 이기고 살아남은 것들이다.


정리 — 한 장 요약

처음의 네 가지 현상으로 돌아간다.

겪은 일원인대처
긴 문서를 거절당했다컨텍스트 윈도우 한도 초과필요한 부분만 넣는다. 한국어는 더 빨리 찬다
같은 질문에 다른 답확률로 다음 토큰을 고른다답이 아니라 프롬프트·절차를 저장한다
긴 대화에서 앞을 잊었다기억이 아니라 창이다 — 밀려났다주제가 바뀌면 새 대화. 중간 결론을 따로 적는다
없는 출처를 댔다확률적 생성 + 찍기를 보상하는 평가항상 있다고 가정하고 확인 절차를 둔다

세 문장으로

  1. AI는 글을 토큰으로 읽고, 한국어가 영어보다 비싸다.
  2. AI는 기억하지 않고 에 펼쳐 놓고 본다 — 창은 예산이다.
  3. AI는 확률로 이어 쓴다 — 그래서 매번 다르고, 그래서 없는 것도 만든다.

강의가 끝난 뒤에 갈 곳

  • 이 페이지를 다시 연다 — 표의 숫자는 갱신된다
  • 더 깊이: 「컨텍스트 윈도우와 한계」 (창이 커도 왜 나빠지는가), 「토큰 경제」 (비용과 캐싱)
  • 바로 실전: 「AI 산출물 검증법」 — 이 덱이 "왜 검증이 필요한가"까지라면, 그 덱은 "어떻게"다
  • 실습 핸드북으로 직접 세어 보기 — 이 덱은 읽는 것만으로는 절반이다

선택 — 조금 더 들어가기

발췌 강의에서는 건너뛴다. 여기까지 안 와도 위의 세 가지는 온전하다. 다음 덱이 쉬워지는 정도의 보너스다.

임베딩 — 의미를 좌표로 바꾼다

토큰을 숫자로 바꾼다고 했는데, 그 숫자가 단순한 일련번호는 아니다. 의미가 가까운 것끼리 가까운 좌표를 갖도록 배치한다. 지도 위의 위치라고 생각하면 된다 — 「서울」과 「부산」은 가깝고, 「서울」과 「고구마」는 멀다.

이게 왜 유용한가. 검색이 글자 일치가 아니라 뜻 근접으로 돌 수 있다. "휴가 규정"으로 검색했는데 「연차 사용 지침」 문서가 나오는 것이 이 원리다. 나중에 「자료 주입과 RAG」 덱에서 다시 만난다.

어텐션 — 문장 안에서 서로를 쳐다본다

「그것을 회의 전에 보내 주세요」에서 「그것」이 뭔지 알려면 앞 문장을 봐야 한다. 사람은 자연스럽게 되돌아본다.

2017년에 나온 「Attention Is All You Need」 논문이 이 되돌아보기를 구조로 만들었다 — 트랜스포머는 "a new simple network architecture ... based solely on attention mechanisms" 라고 소개된다(arXiv:1706.03762, 접근 2026-08-01). 지금 우리가 쓰는 모델 대부분이 이 구조의 후손이다.

어텐션은 문장 안의 모든 단어가 동시에 서로를 쳐다보며 "누가 나와 관련 있나"를 계산하는 것이다. 이게 컨텍스트 윈도우가 커질수록 계산이 무거워지는 이유이기도 하다 — 서로 쳐다볼 상대가 늘어나니까.