뉴스에서, 광고에서, 회사 회의에서, 심지어 아이들 학교 가정통신문에서도 등장합니다. 그런데 막상 "그래서 인공지능이 뭐예요?"라고 물으면, 시원하게 대답하기가 참 어렵습니다. 뭔가 대단하고 복잡하고, 나랑은 좀 멀리 있는 것 같죠.
이 책은 바로 그 막막함을 풀어드리려고 썼습니다.
먼저 약속 하나 할게요. 이 책은 여러분에게 무언가를 외우게 하지 않습니다. 어려운 수식도, 알아들을 수 없는 영어 약자도 들이밀지 않을 거예요. 대신 여러분 머릿속에 그림 한 장을 그려드리는 게 목표입니다. 개념을 외우는 게 아니라 상상할 수 있게 되면, 그때 진짜로 이해한 거거든요.
그래서 우리는 한 아이를 따라가려고 합니다. 이름은 코리예요.
코리는 할머니의 작은 과일 가게를 돕는 평범한 아이입니다. 그런데 이 아이가 사과 단맛 맞히기에서 시작해 고양이 사진을 알아보고, 말을 알아듣는 기계를 만들고, 결국 챗GPT 같은 인공지능의 심장까지 들여다보게 되죠. 거창해 보이지만 걱정 마세요. 코리도 처음엔 사과 하나 제대로 못 골랐으니까요.
사실 인공지능을 이해하는 가장 좋은 방법이 이겁니다. 거대한 결과물부터 보면 겁이 나지만, 작은 출발점부터 한 걸음씩 따라가면 어느새 꼭대기에 닿아 있죠. 코리의 여정이 딱 그래요.
한 가지 더. 앨런 튜링이라는 수학자가 1950년에 재미있는 제안을 했습니다. "기계가 생각할 수 있는가?"라는 질문에 답하는 대신, 이렇게 바꾸자고요. "기계가 사람처럼 행동할 수 있다면, 생각한다고 쳐주자." 정의를 내리느라 골치 썩이지 말고 쓸모로 판단하자는 거였죠. 이 책도 같은 태도를 빌리려 합니다. 인공지능의 어려운 정의를 외우는 대신, 그것이 무엇을 어떻게 해내는지 그 쓸모를 하나씩 들여다볼 거예요.
자, 그럼 사과 가게로 가볼까요. 까다로운 손님 한 분이 코리를 기다리고 있거든요. 🍎
1장
인공지능은 마법이 아니에요
— 모든 것은 '데이터'에서 시작됩니다 —
까다로운 손님
토요일 아침, 「순자네 과일」 가게 앞이었습니다.
코리는 사과를 정리하다가 흠칫 멈췄어요. 단골 아주머니가 또 오셨거든요. 아주머니는 사과를 한참 들여다보고, 손으로 무게를 가늠하고, 코끝에 대고 향을 맡았습니다. 그러더니 코리를 보며 물었죠.
"학생, 이거 달아?"
코리는 등에 식은땀이 흘렀습니다. 솔직히 말하면, 코리는 사과만 봐서는 단지 신지 전혀 알 수가 없었거든요. 그냥 빨갛고 그럴듯한 걸 골라 건네면, 아주머니는 다음 날 어김없이 찾아와 한마디 하셨죠. "어제 그거, 시더라."
그때 가게 안쪽에서 할머니가 천천히 나오셨습니다. 사과를 딱 한 번 보시더니 이렇게 말씀하셨죠.
"그건 달아요. 옆에 이게 더 달고."
아주머니는 흡족하게 사과를 사 가셨습니다. 코리는 입이 떡 벌어졌어요. 할머니는 먹어보지도 않았는데 어떻게 아셨을까요? 손금이라도 보듯 사과를 읽어내는 그 능력이, 코리에겐 꼭 마법처럼 보였습니다.
그런데 말이죠. 이 "마법처럼 보이는 능력"의 정체를 파헤치는 것이, 사실 이 책 전체의 이야기입니다. 그리고 그 실마리를 풀기 전에, 250년 전으로 잠깐 시간 여행을 다녀올게요. 아주 비슷한 "마법"이 유럽을 발칵 뒤집어 놓은 적이 있거든요.
250년 전, 체스를 두는 기계
때는 1770년, 오스트리아의 궁정이었습니다.
볼프강 폰 켐펠렌이라는 발명가가 여제 마리아 테레지아 앞에 신기한 물건 하나를 가지고 나타났죠. 커다란 나무 상자 위에 오스만 제국의 옷을 입고 터번을 두른 인형이 앉아 있었습니다. 그리고 이 인형은 — 놀랍게도 — 스스로 체스를 두었습니다.
사람들은 경악했어요. 인형이 상대의 수를 읽고 말을 옮기고, 척척 이겼으니까요. 빈에서 내로라하는 체스 고수들이 덤볐지만 거의 다 무릎을 꿇었습니다. 이 기계는 '터크(Turk)'라는 이름으로 유럽 전역과 미국까지 순회하며 명성을 떨쳤고, 무려 나폴레옹과 벤저민 프랭클린 같은 거물들까지 꺾었다고 전해집니다.
250년 전에 인공지능이라니, 믿어지시나요?
물론 진실은 달랐습니다. 터크는 인공지능이 아니었어요. 그 커다란 상자 안에는 체스 실력이 뛰어난 사람이 숨어서 자석과 장치를 조작하고 있었습니다. 정교하게 설계된 속임수였던 거죠. 켐펠렌은 이 비밀을 죽을 때까지 입에 담지 않았습니다.
자, 여기서 우리가 챙겨갈 교훈이 있습니다. '생각하는 기계'처럼 보인다고 해서, 정말로 그 안에 마법이 든 건 아니라는 것. 뚜껑을 열어보면 반드시 그럴듯한 비밀이 들어 있습니다.
그렇다면 진짜 인공지능의 뚜껑을 열면, 그 안엔 뭐가 들어 있을까요? 숨은 사람? 아닙니다. 진짜 인공지능의 비밀은 훨씬 정직하고, 또 훨씬 놀라워요. 그 비밀의 이름은 바로 데이터입니다. 그리고 그 데이터는, 방금 우리가 본 할머니의 비법과 똑 닮아 있죠.
💡 한 줄 정리: 인공지능은 마법이 아니에요. 뚜껑을 열면 그 안엔 반드시 비밀이 있습니다. 그리고 진짜 인공지능의 비밀은 '숨은 사람'이 아니라 '데이터'죠.
할머니의 비밀 공책
가게 일이 끝난 저녁, 코리는 용기를 내어 할머니께 여쭤봤습니다.
"할머니는 사과가 단지 어떻게 그렇게 잘 아세요? 무슨 비법이라도 있어요?"
할머니는 빙긋 웃으며 서랍에서 낡은 공책 한 권을 꺼내셨어요. 표지가 닳고 닳은, 30년은 족히 되어 보이는 공책이었습니다. 코리는 무슨 대단한 주문이라도 적혀 있을 줄 알았죠. 그런데 펼쳐보니, 그저 사과 이야기가 빼곡할 뿐이었습니다.
6월 3일 — 진한 빨강, 230g, 향 진함 … 먹어보니: 아주 달다
6월 3일 — 연한 빨강, 170g, 향 약함 … 먹어보니: 시다
6월 4일 — 진한 빨강, 210g, 향 진함 … 먹어보니: 달다
6월 4일 — 초록빛, 160g, 향 약함 … 먹어보니: 시다
"이게… 다예요?"
"이게 다지. 30년 동안 사과를 보고, 먹어보고, 적었어. 수천 개를 말이야."
코리는 그제야 깨달았습니다. 할머니의 '신통력'은 마법이 아니라, 오랫동안 관찰하고 차곡차곡 쌓아온 기록이었던 거예요. 빨갛고 묵직하고 향이 진한 사과가 단 적이 많았다는 걸, 할머니는 머리가 아니라 경험으로 외우고 계셨던 겁니다.
이렇게 현실을 관찰해서 적어둔 사례들의 모음, 이것을 인공지능에서는 데이터(Data)라고 부릅니다. 어렵게 생각할 것 없어요. 할머니의 공책, 그게 바로 데이터예요.
그리고 사실 이건 250년 전 터크와도, 또 오늘날의 인공지능과도 묘하게 통합니다. 터크의 '지능'은 상자에 숨은 사람에게서 나왔지만, 진짜 인공지능의 '지능'은 바로 이 데이터, 즉 켜켜이 쌓인 경험의 기록에서 나오거든요. 숨은 사람 대신, 수천수만 개의 사례가 그 자리를 채우는 셈이죠.
기록이 곧 규칙은 아닙니다
그런데 여기서 코리는 곧바로 벽에 부딪힙니다.
공책을 아무리 노려봐도, 공책이 코리에게 "빨갛고 무거우면 달아!"라고 말해주지는 않았거든요. 기록은 그저 기록일 뿐, 거기 숨은 규칙을 콕 집어내는 건 또 다른 일이었습니다.
이게 의외로 중요한 지점이에요. 많은 분이 "데이터만 많으면 인공지능이 알아서 똑똑해지는 거 아냐?"라고 생각하시는데, 그렇지가 않습니다. 데이터는 재료일 뿐이에요. 산더미 같은 사과 기록이 있어도, 그 속에서 "단맛의 규칙"을 찾아내는 과정이 없으면 아무 일도 일어나지 않습니다. 냉장고에 식재료가 가득해도 요리를 하지 않으면 저녁이 차려지지 않는 것처럼요.
그렇다면 그 규칙은 대체 누가, 어떻게 찾아낼까요? 할머니는 30년이 걸렸습니다. 그런데 코리에게는 30년이 없어요. 당장 다음 주 토요일에 또 그 까다로운 손님이 올 테니까요.
바로 여기서, 코리의 진짜 모험이 시작됩니다. 코리는 30년 대신 며칠 만에 할머니의 감각을 따라잡는 방법을 찾아낼 거예요. 그 방법의 이름이 바로 — 다음 장에서 만날 — '기계가 배운다'는 개념입니다.
💡 한 줄 정리: 데이터는 '경험의 기록'이라는 재료예요. 하지만 쌓아두기만 해선 규칙이 저절로 튀어나오지 않습니다. 재료를 요리로 바꾸는 과정이 따로 필요하죠.
마법이 아니에요. 예전엔 사람이 규칙을 직접 짰어요. 머신러닝은 데이터와 답만 주면 컴퓨터가 스스로 규칙을 찾아냅니다 — 규칙이 ‘입력’에서 ‘결과’로 자리를 옮긴 게 핵심이에요.
1장을 마치며
이번 장에서 우리는 세 가지를 손에 쥐었습니다.
첫째, 인공지능은 마법이 아니라는 것. 250년 전 체스 기계 터크가 그랬듯, 대단해 보이는 것의 뚜껑을 열면 반드시 비밀이 있습니다. 둘째, 진짜 인공지능의 비밀은 데이터라는 것. 할머니의 30년 공책처럼, 현실을 관찰해 쌓은 경험의 기록이 그 출발점이죠. 셋째, 데이터만으론 부족하다는 것. 기록 속의 규칙을 찾아내는 과정이 있어야 비로소 '능력'이 됩니다.
다음 장에서 코리는 그 규칙을 직접 찾아 나섭니다. 처음엔 보기 좋게 틀리겠지만요. 사실 그 '틀림'이야말로 기계가 배우는 방식의 핵심이랍니다. 어떻게 틀리면서 똑똑해지는지, 함께 따라가 볼까요?
📌 이 장의 핵심
데이터: 현실을 관찰해 적어둔 경험의 기록 (예: 할머니의 사과 공책)
인공지능의 '지능'은 마법이 아니라 쌓인 데이터에서 나온다
단, 데이터는 재료일 뿐 — 그 속의 규칙을 찾는 과정이 따로 필요하다
2장
기계가 '배운다'는 것
— 틀리고, 고치고, 다시 — 그 반복이 곧 학습입니다 —
지난 장 끝에서 코리는 어려운 숙제를 떠안았습니다. 할머니의 공책(데이터)은 손에 넣었지만, 그 속의 '단맛 규칙'은 누가 찾아주지 않았으니까요. 할머니는 그 규칙을 몸에 익히는 데 30년이 걸렸습니다. 그런데 코리에게는 30년이 없어요. 당장 다음 토요일이면 그 까다로운 손님이 또 올 테니까요.
그래서 코리는 결심합니다. "내가 직접 규칙을 만들어보자!"
자, 지금부터가 진짜입니다. 코리가 규칙을 만들고, 보기 좋게 틀리고, 그 틀림을 발판 삼아 똑똑해지는 이 과정 전체가 — 바로 인공지능의 심장인 머신러닝이거든요. 한 걸음씩 따라가 볼게요.
첫 번째 실패
코리는 자신만만하게 첫 규칙을 세웠습니다.
"무거운 사과는 다 시다! 무거우면 물이 많아서 싱거울 거야."
그럴듯하죠? 코리도 그렇게 믿었습니다. 그래서 묵직한 230그램짜리 빨간 사과를 들고 당당하게 외쳤어요. "이건 무거우니까… 실 거예요!"
할머니가 그 사과를 쓱 잘라 한 조각 건네셨습니다. 그런데 웬걸, 꿀처럼 달았습니다. 코리 얼굴이 빨개졌죠. 첫 규칙이 보기 좋게 빗나간 겁니다.
여기서 코리에게 아주 중요한 질문이 떠오릅니다. "내 규칙이 도대체 얼마나 틀린 거지?"
그냥 "좀 틀렸네" 하고 넘어가면 다음에 뭘 고쳐야 할지 알 수가 없습니다. 그래서 코리는 틀린 정도를 숫자로 재기로 합니다.
이번 사과를 예로 들어볼까요. 코리는 "달 확률 10퍼센트"라고 봤는데 실제로는 꿀맛이었습니다. 완전히 빗나갔죠. 점수로 치면 큰 벌점입니다. 반대로 "달 확률 90퍼센트"라고 했는데 정말 달았다면? 거의 맞힌 거니 벌점이 0에 가깝겠죠.
이렇게 예측이 정답에서 얼마나 벗어났는지를 숫자로 계산하는 것, 이것이 인공지능에서 수학이 하는 일입니다. 수학은 코리에게 두 가지를 속삭여줘요. 하나, "네 예측이 정답에서 이만큼 벗어났어"라고 틀린 양을 알려주고, 둘, "다음엔 무게 말고 색깔이나 향을 더 봐"라고 고칠 방향을 알려줍니다.
어렵게 느껴지시나요? 사실 우리도 매일 이렇게 살아요. 요리할 때 "어, 좀 싱겁네(=틀린 양)" 하고 "소금을 더 넣자(=고칠 방향)" 하고 판단하잖아요. 수학은 그걸 감이 아니라 숫자로 정확히 해줄 뿐입니다.
💡 한 줄 정리: 수학은 "얼마나 틀렸나"와 "어느 쪽으로 고칠까"를 숫자로 알려주는 코치예요.
고치는 데도 순서가 있죠
수학 코치가 "이쪽으로 고쳐!"라고 알려준다고 해서, 그걸 언제 어떤 순서로 할지는 또 따로 정해야 합니다. 코리는 공책 뒷장에 자기만의 연습 순서를 적었어요.
① 사과의 색깔·무게·향을 본다
② 지금 내 규칙으로 "달다/시다"를 예측한다
③ 할머니가 잘라준 진짜 맛과 비교한다
④ 얼마나 틀렸는지 점수를 매긴다 (← 수학!)
⑤ 규칙을 아주 조금 고친다
⑥ 다음 사과로 다시 ①번부터
이렇게 문제를 풀기 위해 정해둔 단계별 절차를 알고리즘(Algorithm)이라고 합니다.
코리는 고개를 갸웃했어요. "이게 아까 그 수학이랑 뭐가 달라요?" 그러자 할머니가 부엌을 가리키며 말씀하셨죠.
"수학은 '소금을 얼마나 칠지 재는 법'이고, 알고리즘은 '국 끓이는 레시피 순서'야. 둘 다 필요하지만 서로 다른 거란다."
딱 맞는 비유죠. 수학이 '계산하는 원리'라면, 알고리즘은 '그 계산을 어떤 순서로 써먹을지 짠 작업 절차'입니다.
💡 한 줄 정리: 알고리즘은 수학을 '어떤 순서로' 쓸지 정해둔 작업 레시피예요.
며칠 뒤, 코리의 머릿속에 생긴 것
코리는 이 순서를 며칠 동안 수백 번 돌렸습니다. 예측하고, 틀리고, 점수 매기고, 규칙을 조금 고치고. 또 예측하고, 또 고치고.
그런데 어느 순간 신기한 일이 벌어졌어요. 사과를 척 보면 손이 먼저 반응하기 시작한 겁니다. "이건… 달겠는데?" 하는 감이 생긴 거죠. 처음엔 무게만 보던 코리가, 이제는 자기도 모르게 향을 가장 중요하게 보고 있었습니다.
코리는 그 감을 숫자로 적어봤어요.
단맛 점수 = 색깔 점수 × 0.4
+ 무게 점수 × 0.3
+ 향 점수 × 0.6
여기서 핵심은 저 0.4, 0.3, 0.6이라는 숫자입니다. 향에 붙은 0.6이 색깔의 0.4보다 크죠? 이건 코리가 "향을 색깔보다 더 믿게 됐다"는 뜻이에요. 며칠간의 연습이 이 숫자들 안에 고스란히 담긴 겁니다.
이렇게 무엇을 얼마나 중요하게 볼지 정하는, 학습으로 정해진 숫자를 파라미터(Parameter) 또는 가중치(Weight)라고 부릅니다. 그리고 이 숫자들이 모여 만들어진 '코리의 사과 판단 능력' 전체를 모델(Model)이라고 하죠.
생각해보면 놀라운 일이에요. 할머니의 30년 감각이 머릿속에 든 '모델'이었다면, 코리는 그것을 며칠 만에 숫자로 따라 만든 셈이니까요. 바로 이 '숫자로 만든 감각'이 인공지능의 정체입니다.
가중치 합산. 색·무게·향 같은 특징에 저마다 다른 중요도(가중치)를 곱해 하나로 합치면 ‘단맛 점수’가 나와요. 코리가 머릿속으로 하던 계산이 바로 이거예요.
🏷️ 이름표 — 회귀와 분류: 방금처럼 ‘단맛 점수 87’ 같은 연속된 숫자를 맞히는 걸 회귀(regression)라고 해요. 반대로 ‘달다 / 안 달다’처럼 어느 칸(범주)에 속하는지 맞히는 건 분류(classification)예요. 머신러닝이 푸는 문제는 대부분 이 둘 중 하나랍니다.
💡 한 줄 정리: 모델은 데이터에서 배운 규칙을 숫자로 굳혀놓은 결과물이에요. 파라미터(가중치)는 그 안에서 '무엇을 얼마나 중요하게 볼지' 정하는 숫자고요.
이 일에는 이미 이름이 있었습니다
코리가 한 일을 가만히 되짚어볼까요.
처음 — 공책(데이터)만 잔뜩 있었음
↓
중간 — 예측 → 틀림 → 점수 → 숫자(파라미터) 수정 → 다시 예측 …(수백 번 반복)
↓
지금 — 처음 보는 사과도 척척 맞히는 '능력'이 생김
사람이 "이럴 땐 이렇게 해"라고 규칙을 하나하나 짜준 게 아닙니다. 코리가 데이터를 보면서 스스로 숫자를 맞춰간 거죠. 바로 이것을 머신러닝(Machine Learning, 기계학습)이라고 합니다.
재미있는 건, 이 단어가 생각보다 오래됐다는 거예요. 1959년, IBM의 연구원 아서 사무엘이 체커(서양 장기 비슷한 보드게임)를 두는 프로그램을 만들면서 '머신러닝'이라는 말을 처음 썼습니다. 그가 만든 프로그램은 수천 번씩 대국을 거듭하며 스스로 전략을 다듬었고, 결국 놀랍게도 그것을 만든 사무엘 자신보다 체커를 더 잘 두게 됐죠.
이 일화가 머신러닝의 본질을 정확히 보여줍니다. 흔히 이렇게 요약하곤 해요. "프로그래머가 일일이 가르치지 않아도, 기계가 경험을 통해 스스로 더 나아지게 만드는 것." 코리가 사과로 한 일이 딱 그거였고, 60여 년 전 사무엘이 체커로 한 일도 똑같았습니다. 무대만 사과 가게에서 보드게임으로 바뀌었을 뿐이죠.
💡 한 줄 정리: 머신러닝은 규칙을 사람이 짜주는 게 아니라, 데이터(경험)를 보며 기계가 스스로 기준을 맞춰가는 것이에요.
진짜 손님 앞에서
다음 토요일이 왔습니다. 그 까다로운 아주머니가 또 오셨죠. 그런데 이번엔 할머니가 안 계셨어요. 코리 혼자입니다.
아주머니가 사과를 내밀며 물었습니다. "학생, 이거 달아?"
코리의 머릿속 모델이 슥 돌아갔어요.
색깔: 진한 빨강 / 무게: 220g / 향: 강함
→ 단맛 점수 계산 → "달 확률 87퍼센트!"
코리는 침을 꿀꺽 삼키고 말했습니다. "이건… 달아요. 제가 보장할게요."
여기서 두 단어를 챙겨갑시다. 아주머니가 던진 "이거 달아?"라는 질문, 이것을 쿼리(Query)라고 합니다. 모델에게 던지는 질문이나 요청을 말하죠. 그리고 코리의 모델이 그 질문에 슥 계산해서 답을 내놓은 과정, 이것을 추론(Inference)이라고 합니다.
꼭 구분해두면 좋은 게 있어요.
학습(Training) = 지난 며칠간 연습해서 모델을 만든 과정
추론(Inference) = 지금 손님 앞에서 그 모델로 답하는 과정
요리사로 치면, 학습은 "주방에서 수없이 연습하는 시간"이고, 추론은 "주문을 받고 실제로 요리를 내놓는 순간"입니다. 우리가 챗GPT에 질문을 던지고 답을 받는 것도, 사실은 이미 학습을 끝낸 거대한 모델에게 쿼리를 보내고 추론을 받는 일이에요. 코리의 사과 가게에서 벌어진 일과 구조가 똑같습니다.
…그래서 그 사과는 달았느냐고요? 다음 날 아주머니가 와서 한마디 하셨습니다. "어제 그거, 달더라." 코리는 속으로 주먹을 불끈 쥐었죠. 😄
확률로 답한다. AI는 ‘달다·안 달다’를 딱 잘라 말하지 않고 달 확률 87%처럼 자신감을 숫자로 내놓아요. 그중 가장 높은 쪽을 답으로 고르는 거죠.
💡 한 줄 정리: 쿼리는 모델에게 던지는 질문, 추론은 그 질문에 모델이 답을 계산해 내놓는 과정이에요. 학습은 '만들기', 추론은 '써먹기'죠.
그런데, 진짜 실력일까요?
그날 밤, 코리는 쉽게 잠들지 못했습니다. 갑자기 무서운 생각이 들었거든요.
"혹시 내가 공책에 있던 사과만 잘 맞히는 거면 어쩌지? 진짜 처음 보는 사과는 못 맞히면?"
사실 이건 우리가 시험공부할 때 늘 겪는 고민과 똑같습니다. 그래서 인공지능도 사람의 공부 방식을 그대로 빌려와요.
문제집을 풀 때, 문제와 정답을 보며 푸는 법을 익히죠. 이게 학습 데이터입니다. 모델의 파라미터를 바로 여기서 조정해요. 공부 중간에 모의고사를 봅니다. "이 부분이 약하네, 여길 더 보자" 하고 방향을 잡죠. 이게 검증 데이터입니다. 그리고 모든 준비가 끝난 뒤 보는 진짜 최종 시험 — 처음 보는 문제로 실력을 확인하는 이것이 테스트 데이터고요.
학습 데이터 → 모델을 직접 학습시킴 (문제집)
검증 데이터 → 학습 방법을 조정함 (모의고사)
테스트 데이터 → 마지막에 실력을 평가 (최종 시험)
여기서 제일 중요한 규칙이 하나 있습니다. 최종 시험 문제를 미리 보면 안 된다는 것. 시험지를 미리 외워서 100점을 받으면, 그건 실력이 아니라 그냥 암기잖아요. 인공지능도 똑같습니다.
데이터 3분할. 가장 큰 학습 데이터로 배우고, 검증 데이터로 방향을 점검하고, 테스트 데이터는 최종 시험처럼 꽁꽁 아껴 둬요. 미리 보면 ‘진짜 실력’을 알 수 없으니까요.
코리는 그래서 결심했어요. 공책의 사과를 두 묶음으로 나누기로요. 마음껏 연습할 사과들과, 절대 미리 안 보고 꽁꽁 아껴둘 '시험용' 사과들로 말이죠. 이 시험용 사과가 왜 그렇게 중요한지는, 다음 장에서 아주 뼈아픈 장면과 함께 다시 등장합니다.
💡 한 줄 정리: 학습(문제집) → 검증(모의고사) → 테스트(최종 시험). 시험 문제를 미리 외우면 진짜 실력이 아니에요.
2장을 마치며
이번 장에서 우리는 '기계가 배운다'는 말의 정체를 낱낱이 봤습니다. 그것은 거창한 마법이 아니라, 예측하고 → 틀리고 → 얼마나 틀렸는지 숫자로 재고(수학) → 정해진 순서로(알고리즘) → 판단 기준 숫자를 조금씩 고치는(파라미터) 과정의 반복이었어요. 그렇게 만들어진 능력 덩어리가 모델이고, 그 모델에 질문(쿼리)을 던져 답을 받는 게 추론이었죠. 이 모든 과정에 붙은 이름이 바로 머신러닝이었습니다.
그런데 코리의 야심은 여기서 멈추지 않습니다. 사과는 색·무게·향, 숫자 세 개로 끝났지만 — 이번엔 사진에 도전하려 하거든요. 고양이인지 강아지인지 사진만 보고 맞히는 것. 과연 사과 방식이 사진에도 통할까요? (미리 살짝 귀띔하자면, 여기서 코리는 또 한 번 보기 좋게 무너집니다. 그리고 그 무너짐에서 '딥러닝'이 태어나죠.)
📌 이 장의 핵심
수학: 얼마나 틀렸는지, 어디로 고칠지를 숫자로 알려주는 코치
알고리즘: 그 계산을 어떤 순서로 쓸지 정한 작업 절차
모델 / 파라미터(가중치): 배운 규칙을 굳힌 결과물 / 그 안의 중요도 숫자
머신러닝: 데이터로 스스로 기준을 맞춰가는 것 (1959년 아서 사무엘이 명명)
쿼리 / 추론: 모델에 던지는 질문 / 모델이 답을 계산하는 과정
학습·검증·테스트 데이터: 문제집 / 모의고사 / 최종 시험 (시험은 미리 보면 안 됨!)
3장
특징을 스스로 찾다
— 딥러닝은 어떻게 태어났을까요 —
코리는 사과 가게에서 꽤 우쭐해졌습니다. 이제 웬만한 사과는 척척 맞히니까요. 그러던 어느 날, 한 손님이 스마트폰을 보여주며 말했어요. "요즘은 사진만 찍으면 강아지인지 고양이인지 알려주는 앱도 있대요. 신기하죠?"
코리의 눈이 반짝였습니다. "사과 단맛도 맞히는데… 사진 보고 고양이 맞히는 것도 만들 수 있지 않을까?"
마침 할머니네 가게엔 고양이 '나비'가 살고, 옆 가게엔 강아지 '콩이'가 있었죠. 완벽한 연습 상대였습니다. 코리는 결심했어요. 사진만 보고 나비(고양이)인지 콩이(강아지)인지 맞히는 프로그램을 만들겠다고. "사과도 했는데 이쯤이야!"
그런데 이번엔 코리가 아주 크게 무너집니다. 그리고 바로 그 무너짐에서 — 오늘날 인공지능의 진짜 주인공인 딥러닝이 태어나죠.
두 번째 실패
코리는 2장에서 하던 대로, 종이에 고양이 규칙을 적기 시작했습니다.
규칙 ① 귀가 뾰족한 삼각형이면 → 고양이
규칙 ② 수염이 있으면 → 고양이
규칙 ③ 눈이 동그라면 → 고양이
사과에서 색깔·무게·향을 골랐던 것처럼, 이렇게 사람이 중요한 특징을 직접 골라 정해주는 일을 특징 공학(Feature Engineering)이라고 합니다. 말은 거창하지만, "뭘 보고 판단할지 사람이 미리 정해주는 것"이라고 생각하면 돼요.
코리는 자신만만하게 나비 사진을 넣었습니다. 정답! 그런데 그때부터 사진들이 코리를 괴롭히기 시작했어요.
나비가 옆을 보고 있어서 귀가 하나만 보입니다
나비가 앞발로 얼굴을 가렸어요
사진이 너무 어둡습니다
뒤에 빨래가 잔뜩 널려 있어 배경이 복잡해요
꼬리만 찍혔습니다
게다가 콩이(강아지)도 수염이 있잖아요! 규칙 ②가 콩이를 고양이라고 우깁니다
코리는 규칙을 고치고 또 고쳤습니다. "귀가 가려졌으면 눈을 보고… 근데 눈도 감았으면… 그땐 또…" 규칙이 100개를 넘어가자 코리는 머리를 감쌌어요. 세상 모든 고양이 사진의 경우를 사람이 손으로 다 적는 건 도저히 불가능했던 겁니다.
여기서 잠깐. 이건 코리만의 고민이 아니었어요. 사실 수많은 인공지능 연구자가 수십 년 동안 똑같은 벽에 부딪혔습니다. 사진, 음성, 언어처럼 변수가 폭발하는 데이터 앞에서는 사람이 특징을 일일이 골라주는 방식이 번번이 무릎을 꿇었거든요. "이 방법으론 안 되겠다"는 막막함, 그게 오랫동안 인공지능의 겨울을 만들었습니다.
💡 한 줄 정리: 사람이 특징을 일일이 골라주는 방식(특징 공학)은, 사진처럼 변수가 폭발하는 데이터 앞에서 한계에 부딪혀요.
발상의 전환: "특징도 네가 알아서 찾아!"
코리가 끙끙대는 걸 보던 할머니가 한마디 던지셨습니다.
"코리야, 네가 규칙을 다 정해주려니까 힘든 거 아니냐? 그냥 사진을 잔뜩 보여주고, 뭐가 중요한지 걔가 알아서 찾게 하면 안 되냐?"
코리는 머리를 한 대 맞은 것 같았습니다. 특징을 사람이 골라주는 게 아니라, 기계가 스스로 찾게 하자! 바로 이 발상의 전환이 딥러닝(Deep Learning)의 핵심입니다.
딥러닝은 사진을 한 방에 이해하지 않아요. 여러 단계를 거치며 조금씩 의미를 키워갑니다.
픽셀 (그냥 밝기 숫자들)
→ 선과 경계
→ 곡선·모서리
→ 눈·귀·털
→ 얼굴 구조
→ "고양이일 가능성!"
처음엔 125, 126, 130, 48, 52 … 그냥 숫자 덩어리였던 것이, 단계를 지날수록 점점 '의미'로 자라납니다. 이렇게 원본 데이터를 판단하기 좋은 형태로 스스로 바꿔가며 배우는 것을 표현 학습(Representation Learning)이라고 해요. 사람이 "여길 봐, 저길 봐" 짚어주지 않아도, 기계가 사진 수만 장을 보며 "아, 고양이는 이런 곡선과 이런 무늬가 있구나"를 스스로 알아내는 거죠.
그런데 이게 정말 될까요? 그냥 그럴듯한 아이디어로 끝나는 건 아닐까요? 그 의심에 쐐기를 박은 사건이 2012년에 일어납니다.
2012년, 딥러닝이 세상을 뒤집은 날
매년 'ImageNet(이미지넷)'이라는 사진 인식 대회가 열렸습니다. 수백만 장의 사진을 주고 "이게 고양이냐 개냐 자동차냐"를 맞히게 하는, 컴퓨터 비전의 올림픽 같은 대회였죠. 오랫동안 성적은 지지부진했습니다. 사람이 특징을 골라주는 방식의 한계 탓에, 오류율은 26퍼센트 언저리에서 좀처럼 내려가질 않았어요.
그런데 2012년, 캐나다 토론토 대학의 제프리 힌튼 교수와 그 제자들(알렉스 크리제브스키, 일리야 수츠케버)이 '알렉스넷(AlexNet)'이라는 깊은 신경망을 들고 나왔습니다. 이 모델은 특징을 사람이 골라주지 않고 스스로 찾는 방식이었죠. 결과는 충격적이었습니다. 오류율을 단숨에 26퍼센트에서 15.3퍼센트로 끌어내렸고, 2등을 무려 10퍼센트포인트 넘게 따돌렸습니다. 한 해에 이 정도 격차는 누구도 본 적이 없었어요.
이 사건 하나로 세상이 바뀌었습니다. "특징을 기계가 스스로 찾는다"는 딥러닝의 아이디어가 단순한 이론이 아니라 현실에서 압도적으로 통한다는 게 증명된 거죠. 오늘날의 챗GPT도, 그림 그리는 AI도, 이 2012년의 문을 통과해 나온 셈입니다.
재미있는 뒷이야기 하나. 이 대회에 쓰인 수백만 장의 사진 더미(ImageNet)는, 1장에서 만난 그 250년 전 '기계 터크'의 이름을 딴 아마존의 서비스로 만들어졌습니다. 전 세계 사람들이 사진 한 장 한 장에 "이건 고양이" "이건 개"라고 이름표를 붙여준 거죠. 결국 기계의 놀라운 학습 뒤에도 보이지 않는 사람들의 손길이 있었던 셈입니다. 터크의 그림자가 여기까지 이어진다니, 묘하지 않나요?
의미의 사다리. 깊은 신경망은 아래층에서 픽셀·선 같은 단순한 것을 보고, 위로 갈수록 눈·귀를 거쳐 ‘고양이’라는 추상적 개념까지 한 칸씩 쌓아 올려요.
🏷️ 이름표 — CNN: 방금 본 ‘픽셀 → 선 → 눈·귀 → 고양이’처럼 이미지를 작은 부분부터 점점 큰 패턴으로 알아보는 신경망을 CNN(합성곱 신경망)이라고 불러요. 주로 사진·영상에 쓰입니다. (이 책의 주인공은 ‘말을 배우는 기계’라 깊이 들어가진 않지만, 이름은 알아두면 좋아요!)
💡 한 줄 정리: 딥러닝은 중요한 특징까지 기계가 스스로 찾도록, 데이터를 여러 단계로 바꿔가며 배우는 방법이에요. 2012년 알렉스넷이 그 위력을 세상에 증명했죠.
공장의 조립 라인
방금 본 그 '단계 하나하나'를 레이어(Layer, 층)라고 부릅니다.
코리는 이걸 자동차 공장의 조립 라인으로 떠올렸어요.
1번 작업대(초기 레이어): 철판에서 선과 경계만 봅니다
2번 작업대(중간 레이어): 곡선·모서리·질감을 잡아냅니다
3번 작업대(깊은 레이어): 눈·귀·얼굴 구조를 알아봅니다
마지막 작업대(출력 레이어): "고양이!" 도장을 쾅 찍습니다
이 작업대(층)를 여러 개 깊게(deep) 쌓았다고 해서 이름이 '딥(deep)'러닝인 겁니다. 층이 깊을수록 더 복잡하고 미묘한 것까지 알아볼 수 있어요. 알렉스넷이 강했던 이유도 이전 모델들보다 층을 더 깊게 쌓았기 때문이었습니다.
그리고 작업대 하나에는 일꾼이 잔뜩 있어요. 이 작은 일꾼들을 뉴런(Neuron)이라고 합니다. 이름은 사람 뇌의 신경세포에서 따왔지만, 실제로는 그냥 작은 계산기라고 생각하면 됩니다. 너무 어렵게 받아들이지 마세요. 뉴런 한 명이 하는 일은 이게 전부거든요.
여러 입력을 받음
→ 각 입력에 가중치를 곱함
→ 다 더함
→ 편향을 더함
→ 활성화 함수를 통과
→ 다음 작업대로 넘김
레이어와 뉴런. 동그란 뉴런들이 층(레이어)을 이루고, 각 뉴런은 다음 층과 촘촘히 연결돼요. 정보는 입력층에서 은닉층을 거쳐 출력층으로 흘러갑니다.
💡 한 줄 정리: 레이어는 판단의 한 단계(작업대), 뉴런은 그 안의 작은 계산기(일꾼)예요. 작업대를 깊게 쌓아서 '딥'러닝이죠.
일꾼 한 명의 속마음: 가중치와 편향
뉴런 일꾼이 계산할 때 쓰는 숫자가 두 종류 있습니다. 둘 다 2장에서 만난 파라미터예요. (사과의 그 0.4, 0.6 기억나시죠?)
가중치 0.8, 0.6, 0.9는 "이 단서를 얼마나 믿느냐"를 말해줍니다. 보세요, 이 일꾼은 눈(0.9)을 가장 믿고, 수염(0.6)은 상대적으로 덜 믿네요. 똑똑하죠? 콩이(강아지)도 수염이 있으니까, 수염은 너무 믿으면 안 되거든요. 앞 장에서 규칙 ②가 콩이를 고양이로 착각했던 그 실수를, 이 가중치가 알아서 바로잡고 있는 셈입니다.
편향 -0.4는 "기본적으로 좀 까다롭게 보겠다"는 손잡이예요. 같은 단서라도 편향을 높이면 후하게, 낮추면 깐깐하게 판단하게 됩니다.
💡 한 줄 정리: 가중치는 각 단서를 얼마나 믿을지, 편향은 판단을 후하게/까다롭게 옮기는 손잡이예요.
그냥 더하고 곱하면 안 되는 이유: 활성화 함수
여기서 코리가 아주 날카로운 질문을 던집니다.
"근데 뉴런이 곱하고 더하기만 하면… 작업대를 백 개 쌓아도 결국 큰 곱셈·덧셈 한 번 아니에요?"
정확한 지적입니다! 곱셈과 덧셈만 반복하면, 아무리 깊게 쌓아도 결국 '직선' 같은 단순한 판단밖에 못 해요. 그런데 고양이냐 강아지냐는 직선 하나로 딱 갈리는 문제가 아니잖아요. 세상은 훨씬 꼬불꼬불하니까요.
그래서 뉴런 계산 끝에 신호를 한 번 비틀어주는 문지기를 세웁니다. 이것이 활성화 함수(Activation Function)예요. 이 문지기는 이렇게 말합니다. "이 신호는 통과! 이건 약하게! 이건 아예 막아!" 신호를 굽히고 비틀어주니까, 모델이 비로소 꼬불꼬불한 복잡한 경계도 그릴 수 있게 됩니다.
대표적인 문지기로 ReLU, Sigmoid, Tanh, GELU 같은 게 있어요. 이름은 그냥 문지기의 종류라고 생각하시면 됩니다. (참고로 앞서 만난 알렉스넷의 숨은 비결 중 하나가 바로 이 ReLU라는 문지기를 쓴 것이었고, 요즘 챗GPT 같은 큰 언어 모델은 GELU를 즐겨 씁니다.)
활성화 함수(문지기). 뉴런마다 작은 문지기가 있어 신호를 통과시키거나 차단해요. 가장 흔한 ReLU는 음수는 0으로 막고 양수는 그대로 흘려보냅니다.
💡 한 줄 정리: 활성화 함수는 신호를 통과/약화/차단하는 문지기예요. 덕분에 모델이 직선을 넘어 복잡한 패턴도 그릴 수 있죠.
3장을 마치며
이번 장에서 코리는 큰 벽을 만났고, 그 벽을 넘는 새로운 길을 발견했습니다. 사람이 특징을 일일이 정해주는 방식(특징 공학)이 사진 앞에서 무너지자, "특징도 기계가 스스로 찾게 하자"는 딥러닝의 발상이 등장했죠. 그 딥러닝은 작업대(레이어)를 깊게 쌓고, 그 안의 일꾼(뉴런)들이 가중치·편향으로 계산하고, 문지기(활성화 함수)로 신호를 비틀어 복잡한 판단을 해냅니다. 2012년 알렉스넷은 이 방식의 위력을 세상에 똑똑히 증명했고요.
그런데 여기엔 아직 큰 의문이 남아 있습니다. 이 수많은 가중치와 편향 숫자들 — 알렉스넷의 경우 그 수가 수천만 개에 달했는데 — 대체 누가, 어떻게 그 많은 숫자를 다 정해주는 걸까요? 설마 사람이 하나하나? 그럴 리가요. 다음 장에서는 기계가 그 수많은 숫자를 스스로 고쳐가며 똑똑해지는 놀라운 과정을 들여다봅니다. 그리고 거기서, 2장에 아껴두었던 '시험용 사과'가 아주 뼈아픈 모습으로 다시 등장하죠.
📌 이 장의 핵심
특징 공학: 사람이 중요한 특징을 직접 골라주는 것 (사진 앞에서 한계)
딥러닝 / 표현 학습: 특징까지 기계가 스스로 찾는, 여러 단계의 학습
레이어 / 뉴런: 판단의 한 단계(작업대) / 그 안의 작은 계산기(일꾼)
가중치 / 편향: 각 단서를 얼마나 믿을지 / 판단 기준선을 옮기는 손잡이
활성화 함수: 신호를 비틀어 복잡한 패턴을 가능하게 하는 문지기
2012 알렉스넷: 오류율 26%→15.3%, 딥러닝 혁명의 신호탄
4장
기계는 어떻게 배우는가
— 틀린 책임을 거꾸로 따져, 산을 내려가듯 —
지난 장 끝에서 우리는 묵직한 질문 하나를 남겨뒀습니다. 딥러닝 모델 안에는 가중치와 편향이 수천만 개씩 들어 있는데(알렉스넷만 해도 그랬죠), 대체 누가 그 많은 숫자를 다 정해주느냐는 거였어요.
답은 의외로 간단합니다. 아무도 정해주지 않습니다. 기계가 스스로 정해요. 단, 처음부터 잘하는 게 아니라 — 코리가 사과에서 그랬듯 — 마구 틀리면서, 그 틀림을 발판 삼아 조금씩 고쳐가죠. 이번 장은 그 '스스로 고쳐가는' 과정의 속을 들여다봅니다. 인공지능이 '배운다'는 말의 가장 깊은 곳이에요.
"얼마나 틀렸나"를 재는 점수판: 손실 함수
3장에서 코리는 고양이-강아지 분류기의 구조(레이어, 뉴런, 가중치)를 다 짰습니다. 그런데 한 가지가 마음에 걸렸어요. "이 가중치들, 처음엔 무슨 값으로 시작하지?"
답은 거의 무작위입니다. 그래서 막 만든 모델의 첫 예측은 엉망진창이에요.
모델: "콩이(강아지) 사진인데… 고양이 80퍼센트!"
정답: 강아지
코리는 한숨이 나왔지만, 사실 이게 바로 학습의 출발점입니다. 모델이 "내가 얼마나 틀렸지?"를 숫자로 재거든요. 2장에서 만난 그 수학이 여기서 다시 등장합니다. 이 틀린 정도를 재는 기준을 손실 함수(Loss Function)라고 해요.
정답이 '고양이'인데
강아지 70% / 고양이 20% → 정답 확률이 낮네 → 손실 큼 😖
고양이 95% / 강아지 3% → 정답 확률이 높네 → 손실 작음 😀
이름이 '손실'이라 어렵게 들리지만, 그냥 벌점 점수판이라고 생각하면 됩니다. 많이 틀리면 벌점이 크고, 잘 맞히면 벌점이 작아요. 그리고 학습의 목표는 단 하나, 이 벌점(손실)을 최대한 작게 만드는 것입니다. 손실이 줄어든다는 건 곧 점점 잘 맞힌다는 뜻이니까요.
💡 한 줄 정리: 손실 함수는 "지금 얼마나 틀렸나"를 재는 벌점 점수판이에요. 학습은 이 벌점을 줄여가는 게임이죠.
범인을 거꾸로 추적하기: 역전파
이제 진짜 어려운 문제가 남았습니다. 벌점이 크다는 건 알았어요. 그런데 모델 안엔 고칠 숫자가 수천만 개입니다. 그중 무엇을, 얼마나 고쳐야 벌점이 줄어들까요? 하나하나 다 건드려볼 수도 없는데 말이죠.
코리는 학교 조별 과제가 망했던 일을 떠올렸습니다. 발표가 폭망했을 때, 선생님이 결과부터 거꾸로 물으셨거든요. "발표가 문제였니? → 자료 정리가 문제였니? → 조사가 문제였니? → 주제 선정이 문제였니?" 이렇게 끝에서부터 되짚어 진짜 원인을 찾아갔죠.
신경망도 똑같이 합니다. 마지막 출력(틀린 답)에서 시작해, 앞쪽 작업대(레이어)로 거슬러 올라가며 "이 숫자가 그 오답에 얼마나 책임이 있나"를 하나하나 계산해요. 이렇게 오차의 책임을 뒤에서부터 거꾸로 추적하는 방법을 역전파(Backpropagation)라고 합니다.
신경망의 길고 추웠던 겨울
사실 이 역전파에는 드라마 같은 사연이 있습니다.
이야기는 1958년으로 거슬러 갑니다. 프랭크 로젠블랫이라는 학자가 '퍼셉트론(Perceptron)'이라는 걸 발표해요. 사람 뇌의 뉴런을 흉내 낸 최초의 학습 기계였죠. 입력에 가중치를 곱하고 더한 뒤 일정 기준을 넘으면 신호를 내보내는, 우리가 3장에서 본 뉴런과 똑 닮은 구조였습니다. 언론은 "생각하는 기계의 씨앗이 나왔다"며 들떴고, 사람들은 곧 인공지능 시대가 열릴 거라 믿었어요.
그런데 1969년, 마빈 민스키와 시모어 페퍼트라는 두 학자가 찬물을 끼얹습니다. 이들은 책 『퍼셉트론』에서, 당시의 단순한 퍼셉트론으로는 'XOR'이라는 아주 기초적인 문제조차 풀 수 없음을 수학으로 증명했어요. (XOR은 "둘이 서로 다를 때만 참"이라는 간단한 논리인데, 그 단순한 것조차 못 푼다니 충격이었죠.) 여러 층을 쌓으면 풀 수 있다는 건 알았지만, 그 여러 층을 학습시킬 방법을 아무도 찾지 못했습니다.
결과는 참혹했어요. 신경망 연구로 가던 관심과 연구비가 뚝 끊겼습니다. 이 길고 추운 침체기를, 사람들은 핵겨울에 빗대어 'AI 겨울(AI Winter)'이라고 부릅니다. 그렇게 10년이 넘게 흘렀어요.
그리고 1986년, 마침내 봄이 옵니다. 데이비드 럼멜하트, 제프리 힌튼, 로널드 윌리엄스 세 사람이 바로 이 역전파 알고리즘으로 여러 층의 신경망을 학습시키는 데 성공한 거예요. 권위 있는 학술지 《네이처》에 실린 이 방법이, 민스키가 못 박았던 "다층 신경망은 학습시킬 수 없다"는 벽을 정면으로 깨부쉈습니다.
여기서 익숙한 이름 하나, 눈치채셨나요? 바로 제프리 힌튼입니다. 3장에서 2012년 알렉스넷으로 딥러닝 혁명을 일으킨 그 사람이죠. 추운 겨울에 신경망을 포기하지 않고 붙들었던 그가, 1986년엔 역전파로 봄을 부르고, 2012년엔 알렉스넷으로 여름을 열어젖힌 겁니다. 한 사람의 끈기가 인공지능의 계절을 두 번이나 바꿨다니, 멋지지 않나요?
역전파. 예측이 정답과 얼마나 틀렸는지(오차)를 출력층에서 계산한 뒤, 그 오차를 화살표를 타고 앞쪽 층으로 거슬러 보내며 가중치를 조금씩 고쳐요.
💡 한 줄 정리: 역전파는 틀린 결과의 원인을 출력에서 거꾸로 추적해, 각 숫자가 오차에 얼마나 책임이 있는지 계산하는 방법이에요.
안개 낀 산을 내려가기: 경사하강법과 학습률
역전파가 "이 숫자를 이쪽 방향으로 고쳐!"라고 알려줬다고 합시다. 그럼 실제로 얼마나 움직여야 할까요? 그걸 정하는 것이 경사하강법(Gradient Descent)입니다.
코리는 안개 낀 산에 갇힌 모습을 떠올렸어요. 가장 낮은 골짜기로 내려가야 하는데, 한 치 앞도 안 보입니다. 할 수 있는 건 발밑의 기울기를 느끼고, 낮아지는 쪽으로 한 걸음씩 조심조심 내딛는 것뿐이죠.
지금 서 있는 위치 = 지금의 파라미터(가중치)
산의 높이 = 손실(벌점)
내려가는 방향 = 손실이 줄어드는 쪽 (역전파가 알려줍니다)
한 걸음의 크기 = 학습률(Learning Rate)
이 걸음 크기, 즉 학습률이 생각보다 아주 중요합니다.
너무 크면 → 한 번에 너무 멀리 뛰어 골짜기를 휙 건너뛰고 반대편 산으로 올라가 버려요
너무 작으면 → 평생 걸어도 골짜기에 못 닿습니다
적당하면 → 안정적으로 쭉 내려가 가장 낮은 곳에 도착하죠
결국 학습이란, 손실이라는 산에서 역전파로 방향을 잡고, 경사하강법으로 한 걸음씩 내려가는 일을 끝없이 반복하는 겁니다. 수천만 번을 반복하다 보면, 처음엔 무작위였던 숫자들이 어느새 사과를, 고양이를, 그리고 사람의 말을 척척 알아보는 '능력'으로 자라나는 거예요.
경사하강법. 전체 지형은 안개에 가려 안 보이지만, 발밑의 기울기만 보고 더 낮은 쪽으로 한 걸음씩 내려가요. 그렇게 오차가 가장 작은 최저점을 찾아갑니다.
💡 한 줄 정리: 경사하강법은 손실이 낮아지는 쪽으로 한 걸음씩 내려가는 것, 학습률은 그 한 걸음의 크기예요.
그런데 처음 보는 새 고양이 사진을 넣자, 모델이 갑자기 헛소리를 하기 시작합니다. 멀쩡한 고양이를 강아지라 하고, 강아지를 고양이라 하고.
연습용 사진 성적: 100점 🎉
처음 보는 사진 성적: 52점 😱
연습 100점, 실전 52점. 학습(연습) 정확도는 계속 오르지만, 검증(처음 보는 문제) 정확도는 어느 순간부터 오히려 떨어져요. 이렇게 둘이 벌어지는 게 과적합 — 답을 외워버린 거예요.
코리는 멍해졌습니다. "연습은 완벽했는데 왜?!" 그때 할머니가 2장에서 하셨던 말을 다시 꺼내셨어요.
"너, 연습 사진을 통째로 외워버린 거 아니냐?"
정확했습니다. 모델이 규칙을 이해한 게 아니라, 연습 사진 하나하나를 통째로 암기해버린 거예요. 시험 문제를 미리 외운 학생처럼요. 외운 문제(연습 사진)는 100점이지만, 숫자만 살짝 바뀐 새 문제(처음 보는 사진) 앞에선 와르르 무너지는 거죠.
이렇게 학습 데이터를 외워버려 새 데이터에 약해지는 현상을 과적합(Overfitting)이라고 합니다. 반대로, 외우는 게 아니라 처음 보는 데이터에도 통하는 진짜 규칙을 배우는 능력을 일반화(Generalization)라고 하죠. 좋은 모델의 목표는 언제나 일반화입니다.
이제 2장에서 코리가 왜 '시험용 사과'를 꽁꽁 아껴뒀는지 아시겠죠? 외웠는지 이해했는지는 처음 보는 걸로 시험해봐야만 들통나니까요. 만약 연습용 사과로만 평가했다면, 코리는 자기 모델이 100점짜리인 줄 착각한 채 손님 앞에서 망신을 당했을 겁니다. 그 한 끗의 차이를 '시험용 사과'가 막아준 거예요.
💡 한 줄 정리: 과적합은 연습 데이터를 외워 새 문제에 약해지는 것, 일반화는 처음 보는 데이터에도 통하는 진짜 실력이에요.
클수록 강하지만, 공짜는 아니에요
코리는 한 가지가 더 궁금해졌습니다. "숫자(파라미터)를 더 많이 넣으면 더 똑똑해지지 않을까?"
맞는 말입니다. 파라미터가 많을수록 더 복잡하고 미묘한 패턴까지 담을 수 있어요. 작은 모델은 "빨갛고 크면 사과" 정도지만, 거대한 모델은 옆모습·가려진 귀·어두운 사진·복잡한 배경을 한꺼번에 다룰 수 있죠. 잠시 뒤 만날 챗GPT 같은 큰 언어 모델의 파라미터가 어마어마하게 많은 이유가 바로 이겁니다.
하지만 공짜는 아닙니다. 파라미터가 많아지면 그만한 대가가 따라와요.
더 많은 데이터가 필요합니다
더 강력한(그리고 비싼) 컴퓨터가 필요합니다
학습하고 사용하는 비용이 커집니다
과적합 위험도 함께 커집니다 (외울 공간이 넓어지니까요)
데이터에 섞인 나쁜 편견이나 버릇까지 배워버릴 수 있습니다
그래서 무조건 크게 만드는 게 정답은 아니에요. 적당한 크기에, 좋은 데이터를 먹이는 것 — 이게 늘 핵심입니다. 이 균형의 문제는 책의 뒷부분, 거대한 언어 모델을 이야기할 때 다시 중요하게 등장할 거예요.
💡 한 줄 정리: 파라미터가 많을수록 복잡한 패턴을 담지만, 데이터·비용·과적합 위험도 함께 커져요. 무조건 크다고 좋은 건 아니죠.
4장을 마치며
이번 장에서 우리는 '기계가 배운다'는 말의 가장 깊은 속을 봤습니다. 무작위로 시작한 숫자들이, 벌점을 재고(손실 함수) → 그 책임을 거꾸로 추적하고(역전파) → 한 걸음씩 고쳐가는(경사하강법) 과정을 수천만 번 반복하며 능력으로 자라났죠. 그 길엔 길고 추운 겨울(퍼셉트론의 좌절)도 있었지만, 끈질긴 사람들이 역전파로 봄을 불러왔습니다. 또 우리는 '외우기(과적합)'와 '이해하기(일반화)'가 다르다는 것, 그리고 모델이 크다고 무조건 좋은 건 아니라는 것도 배웠고요.
여기까지가 1부와 2부, 즉 "기계가 데이터로 배운다"는 큰 그림입니다. 사과에서 시작해 고양이 사진까지 왔어요. 그런데 코리의 진짜 꿈은 아직 남아 있습니다. 바로 '말'을 알아듣고 글을 쓰는 기계예요. 사진은 그래도 픽셀이라는 숫자였는데, 사람의 '말'은 대체 어디서부터 숫자로 바꿔야 할까요? 다음 장, 3부의 문이 열립니다.
📌 이 장의 핵심
손실 함수: 지금 얼마나 틀렸나를 재는 벌점 점수판
역전파: 오차의 책임을 출력에서 거꾸로 추적하는 방법 (1986년 부활)
경사하강법 / 학습률: 손실 낮은 쪽으로 한 걸음씩 / 그 걸음의 크기
과적합 / 일반화: 연습을 외워 약해짐 / 처음 보는 데이터에도 통하는 실력
파라미터의 힘과 대가: 많을수록 강하지만 데이터·비용·과적합 위험도 커짐
AI 겨울: 1958 퍼셉트론 열광 → 1969 XOR 한계 → 1986 역전파로 부활
3부 — 말을 배우는 기계
5장
컴퓨터가 말을 읽는 법
— 글자를 숫자로, 뜻을 위치로 —
코리는 사과와 고양이를 정복하고 나니, 더 큰 꿈이 생겼습니다. 바로 손님이 말로 물어보면 글로 답해주는 AI비서를 만드는 것이었어요. "손님이 '사과 고르는 법 알려줘' 하면 줄줄 답해주는 거지!"
코리는 컴퓨터에 문장을 통째로 집어넣어 봤습니다.
"사과 고르는 법 알려줘"
그런데 컴퓨터는 멀뚱멀뚱, 아무것도 하지 못했어요. 코리는 깨달았습니다. 컴퓨터에게 이 문장은 그저 알 수 없는 그림 같은 것이라는 걸요. 생각해보면 당연합니다. 2부에서 컴퓨터가 다룬 건 늘 '숫자'였잖아요. 사과의 무게도 숫자, 고양이 사진의 픽셀도 숫자. 그런데 '말'은 대체 어디서부터 숫자로 바꿔야 할까요?
이 막막함을 푸는 것이 3부의 여정입니다. 그리고 그 끝에서 우리는 챗GPT의 심장과 마주하게 되죠.
컴퓨터는 글을 '조각'으로 읽습니다: 토큰
코리는 자기가 글을 읽는 방식을 가만히 떠올려 봤어요. 사실 우리도 문장을 한 글자씩 읽기보다는, 의미 덩어리로 끊어서 읽잖아요. "사과 / 고르는 / 법" 이렇게요.
컴퓨터도 비슷합니다. 문장을 통째로 보지 않고 작은 조각으로 잘라서 처리해요. 이 조각 하나를 토큰(Token)이라고 부릅니다.
이렇게 문장을 토큰으로 잘게 나누는 과정을 토큰화(Tokenization)라고 합니다. 드디어 첫 단추가 끼워졌어요. 글자라는 '그림'이, 컴퓨터가 다룰 수 있는 '숫자'로 바뀐 거죠.
토큰이 왜 중요할까요? 모델은 토큰 단위로 읽고, 토큰 단위로 씁니다. 게다가 — 이건 실용적인 정보인데 — 챗GPT 같은 서비스의 사용량과 비용도 보통 토큰 수로 계산돼요. 즉 말을 길게 시키거나 긴 문서를 넣을수록 토큰을 많이 먹는 셈이죠. 한글은 영어보다 토큰을 더 많이 쓰는 편이라, 같은 내용이라도 비용이 더 나오기도 합니다. AI를 본격적으로 쓸 때 알아두면 쓸모 있는 상식이에요.
토큰화. 모델은 글을 통째로 읽지 않아요. 문장을 토큰이라는 작은 조각으로 자르고, 각 조각에 고유 번호(ID)를 붙여 숫자로 바꿔 다룹니다.
💡 한 줄 정리: 토큰은 모델이 글을 읽고 쓰는 기본 조각이에요. 토큰화는 문장을 그 조각들로 잘라 번호를 매기는 일이고요.
뜻을 '위치'로 바꾸기: 임베딩
번호를 붙였지만, 코리는 곧 허전함을 느꼈습니다. "1532번(고양이)과 88번(는)이… 무슨 관계인지는 번호만 봐선 모르잖아? 번호가 가깝다고 뜻이 가까운 것도 아니고."
맞는 지적이에요. 그래서 토큰을 그냥 번호 하나가 아니라 여러 개의 숫자 묶음, 즉 좌표로 바꿉니다. 이것을 임베딩(Embedding)이라고 해요.
고양이 → [0.24, -0.71, 0.18, …]
강아지 → [0.22, -0.68, 0.21, …]
자동차 → [-0.43, 0.11, 0.76, …]
코리는 이걸 종이에 점을 찍어 '의미 지도'로 상상해 봤습니다. 이 지도에서는 뜻이 비슷한 것끼리 가까이 모여요.
고양이와 강아지는 바짝 붙어 있습니다 (둘 다 동물이니까)
고양이와 자동차는 멀리 떨어져 있고요
그런데 정말 놀라운 건 '방향'에도 의미가 담긴다는 점입니다. 이걸 세상에 똑똑히 보여준 사건이 있어요. 2013년, 구글의 토마스 미콜로프와 동료들이 '워드투벡(word2vec)'이라는 기술을 발표했는데, 여기서 거의 마술 같은 일이 벌어집니다.
왕(king) − 남자(man) + 여자(woman) = ?
컴퓨터가 이 계산의 답으로 여왕(queen)을 내놓은 거예요! 단어를 좌표로 바꿔놓았더니, "남자에서 여자로 가는 방향"과 "왕에서 여왕으로 가는 방향"이 거의 똑같았던 겁니다. 마치 의미 지도 위에 '성별을 바꾸는 화살표'가 있는 것처럼요. 비슷하게 '서울 → 한국'과 '도쿄 → 일본'도 닮은 방향을 가집니다.
이 사건이 중요한 이유가 있어요. 컴퓨터가 단어 뜻을 사전처럼 문장으로 외우는 게 아니라, 의미를 '위치와 방향'이라는 수학으로 다룰 수 있게 됐다는 뜻이거든요. 이 아이디어가 훗날 챗GPT 같은 거대한 언어 모델의 든든한 주춧돌이 됩니다.
의미의 지도.남자→왕과 여자→여왕의 화살표가 같은 방향·길이예요. 그래서 왕 − 남자 + 여자 ≈ 여왕 같은 계산이 가능합니다.
💡 한 줄 정리: 임베딩은 토큰의 뜻을 좌표로 바꾼 거예요. 비슷한 뜻은 지도에서 가까이 모이고, 단어 사이의 관계는 '방향'으로 표현되죠.
같은 단어인데 뜻이 다르네?: 컨텍스트
코리가 AI비서를 시험하다가 함정에 빠졌습니다. '은행'이라는 단어 때문이었어요.
"은행에서 돈을 찾았다" → 돈을 맡기는 곳 🏦 "강 은행에 앉아 쉬었다" → 강가의 둑 🌊
똑같은 '은행'인데 뜻이 정반대죠? 컴퓨터는 이걸 어떻게 구분할까요? 답은 의외로 간단합니다. 주변에 어떤 말이 있는지를 보는 거예요. 옆에 '돈을 찾았다'가 있으면 금융 기관, '강'이 있으면 강가의 둑으로 알아채는 거죠.
이렇게 모델이 지금 답을 만들 때 참고하는 주변 정보 전체를 컨텍스트(Context, 문맥)라고 합니다. 컨텍스트에는 생각보다 많은 게 들어가요.
지금 사용자가 던진 질문
그전까지 주고받은 대화 내용
첨부한 문서
검색해온 자료
그리고 모델이 방금 막 만들어낸 문장까지
우리도 대화할 때 똑같이 하잖아요. 친구가 갑자기 "그거 어떻게 됐어?"라고 물으면, 앞서 무슨 얘기를 했는지(=문맥)를 떠올려 '그거'가 뭔지 알아채죠. 컴퓨터에게 컨텍스트는 바로 그 '앞뒤 사정'인 셈입니다.
💡 한 줄 정리: 컨텍스트는 모델이 지금 답을 만들 때 참고하는 주변 정보예요. 같은 단어도 문맥에 따라 뜻이 달라지죠.
책상에는 한계가 있어요: 컨텍스트 윈도우
"그럼 컨텍스트를 무한정 많이 넣으면 더 똑똑해지겠네요?" 코리가 신나서 물었습니다.
아쉽지만 그렇지 않아요. 모델이 한 번에 펼쳐놓고 볼 수 있는 정보의 양에는 한계가 있습니다. 이 한계를 컨텍스트 윈도우(Context Window)라고 해요.
코리는 이걸 책상 크기로 이해했습니다.
작은 책상: 종이 몇 장만 겨우 펼칩니다
큰 책상: 책 여러 권을 동시에 펼쳐놓을 수 있죠
이 책상 크기도 토큰 수로 잽니다. 그리고 꼭 기억해야 할 게 하나 있어요.
컨텍스트 윈도우는 영원히 기억하는 공간이 아닙니다. 지금 작업하는 동안만 쓰는 '작업 책상'에 가까워요.
그래서 대화가 아주 길어지면, 맨 처음에 했던 이야기는 책상 밖으로 슬그머니 밀려나 더는 참고하지 못할 수도 있습니다. 챗GPT와 긴 대화를 나누다가 "아까 내가 처음에 뭐라고 했지?" 하고 물으면 가끔 모델이 헤매는 이유가 바로 이거예요. 책상 위 종이가 너무 많아지면 오래된 종이가 슬쩍 떨어져 나간 거죠.
요즘은 이 책상이 점점 커지는 추세이긴 합니다. 책 몇 권 분량을 한 번에 올려놓을 만큼요. 하지만 아무리 커져도 '무한'은 아니고, 또 '영구 기억'과는 다르다는 점 — 이건 책 마지막 장에서 다시 중요하게 짚을 거예요.
컨텍스트 윈도우. 모델이 한 번에 올려놓고 볼 수 있는 책상의 크기예요. 책상이 클수록 더 많은 토큰(종이)을 동시에 보며 앞뒤 맥락을 길게 기억합니다.
💡 한 줄 정리: 컨텍스트 윈도우는 모델이 한 번에 펼쳐볼 수 있는 정보의 크기(작업 책상)예요. 영구 기억이 아니라 임시 작업 공간이죠.
5장을 마치며
이번 장에서 우리는 컴퓨터가 '말'이라는 낯선 상대를 숫자로 바꾸는 첫 단계를 따라왔습니다. 문장을 조각으로 자르고(토큰화), 그 조각의 뜻을 좌표로 옮기고(임베딩), 주변 사정을 살피되(컨텍스트), 그 살필 수 있는 양엔 한계가 있다(컨텍스트 윈도우)는 것까지요. 특히 2013년 워드투벡의 '왕−남자+여자=여왕'은, 뜻이라는 추상적인 것을 수학으로 다룰 수 있음을 보여준 멋진 이정표였습니다.
그런데 여기엔 아직 결정적인 한 가지가 빠져 있어요. 문장 안에서 어떤 단어가 더 중요한지, "그녀"가 누구를 가리키는지를 알아채는 능력 말이에요. 예를 들어 "철수는 영희에게 책을 주었고, 그녀는 그것을 가방에 넣었다"에서 '그녀'가 영희라는 걸 컴퓨터는 어떻게 알까요? 다음 장에서 만날 어텐션과 트랜스포머가 바로 그 답입니다. 오늘날 모든 인공지능의 심장이라 불리는 그것이요.
📌 이 장의 핵심
토큰 / 토큰화: 모델이 글을 읽는 기본 조각 / 문장을 조각내 번호 붙이기
임베딩: 토큰의 뜻을 좌표로 바꾼 것 (비슷한 뜻은 가까이, 관계는 방향으로)
컨텍스트: 지금 답을 만들 때 참고하는 주변 정보 (같은 단어도 문맥 따라 달라짐)
컨텍스트 윈도우: 한 번에 펼쳐볼 수 있는 작업 책상 크기 (영구 기억 아님)
2013 워드투벡: '왕−남자+여자=여왕', 의미를 수학으로 다룬 이정표
6장
어텐션과 트랜스포머
— 오늘날 모든 AI의 심장 —
지난 장에서 우리는 컴퓨터가 말을 숫자로 바꾸는 법(토큰, 임베딩)을 배웠습니다. 그런데 마지막에 풀지 못한 수수께끼가 하나 있었죠.
"철수는 영희에게 책을 주었고, 그녀는 그것을 가방에 넣었다."
여기서 '그녀'는 누구고, '그것'은 무엇일까요? 사람인 우리는 1초 만에 압니다. 그녀는 영희, 그것은 책. 그런데 컴퓨터는 이걸 어떻게 알아챌까요? 이 질문의 답이 바로 오늘날 모든 인공지능의 심장이라 불리는 어텐션과 트랜스포머입니다. 이번 장이 3부의 정점이에요.
"그녀"가 누구인지 어떻게 알까: 어텐션
잠깐, 우리 자신에게 먼저 물어볼까요. 우리는 '그녀'가 영희라는 걸 어떻게 알았을까요?
문장을 다시 천천히 읽어보세요. '그녀'라는 단어에 닿는 순간, 우리 눈이 자기도 모르게 앞쪽 '영희'로 되돌아갑니다. 철수도 아니고, 책도 아니고, 딱 '영희'한테요. 우리 머릿속은 지금 보는 단어를 이해하려고, 문장 속 다른 단어들 중 어디가 가장 중요한지를 순식간에 따지고 있는 겁니다.
바로 이것이 어텐션(Attention, 주목)이에요. 지금 보는 단어를 이해하기 위해, 문장 속 어디를 더 중요하게 볼지 계산하는 것. 거창한 기술처럼 들리지만, 사실은 우리가 글을 읽을 때 늘 하는 일을 숫자로 옮긴 것뿐입니다.
그런데 트랜스포머의 진짜 묘수는 한 발 더 나아갑니다. 문장 안의 모든 단어(토큰)가, 다른 모든 단어를 동시에 둘러보게 한 거예요. 이걸 셀프 어텐션(Self-Attention)이라고 합니다. '스스로(self)' 문장 안을 서로서로 살핀다는 뜻이죠.
'그녀' 토큰이 → 철수? 영희? 책? 가방? 하나씩 둘러봄
→ '영희'에 가장 높은 점수를 줌 ✅
'그것' 토큰이 → 둘러본 뒤 → '책'에 가장 높은 점수 ✅
이 방식의 강력함은, 멀리 떨어진 단어 사이의 관계도 한눈에 잡아낸다는 데 있어요. '그녀'와 '영희'가 문장에서 꽤 떨어져 있어도, 셀프 어텐션은 둘을 곧장 연결해버립니다. 문장이 아무리 길어져도, 모든 단어가 서로를 직접 마주 보니까요.
어텐션(주목). ‘그녀’가 문장 속 어느 단어를 가리키는지 판단하려고 모든 단어를 살펴봐요. 이때 정답인 ‘영희’로 가장 굵은(강한) 주목의 화살표가 향합니다.
💡 한 줄 정리: 어텐션은 지금 단어를 이해할 때 어디를 더 볼지 계산하는 것, 셀프 어텐션은 문장 속 모든 토큰이 서로를 둘러보며 관계를 잡는 거예요.
한 단어씩 읽던 시절
어텐션이 왜 그렇게 혁명적이었는지 알려면, 그 이전에 컴퓨터가 글을 어떻게 읽었는지를 잠깐 봐야 합니다.
예전 방식은 사람이 책을 소리 내어 읽듯, 단어를 하나씩 순서대로 처리했어요. 첫 단어를 읽고, 기억하고, 다음 단어를 읽고, 또 기억하고… 이런 식이었죠. 문제가 두 가지였습니다. 하나, 느렸어요. 한 번에 한 단어씩이니 긴 문장은 한참 걸렸죠. 둘, 잘 잊어버렸어요. 문장이 길어지면 앞부분 내용이 가물가물해져서, 멀리 떨어진 단어의 관계를 놓치곤 했습니다. 긴 문장 끝에서 "그래서 맨 앞 주어가 뭐였더라?" 하는 거죠.
코리는 이걸 이렇게 비유했어요. "한 줄짜리 손전등으로 캄캄한 방을 한 칸씩 비추며 더듬는 거랑 비슷하네요. 끝에 가면 처음 본 걸 까먹고요." 정확한 비유입니다.
그런데 어텐션은 손전등이 아니라 방 전체에 불을 확 켜는 방식이에요. 모든 단어를 한꺼번에 환하게 비춰놓고, 어느 것이 어느 것과 관계있는지 동시에 살피는 거죠. 느리지도, 잊어버리지도 않습니다.
💡 한 줄 정리: 예전엔 단어를 하나씩 순서대로 읽어 느리고 잘 잊었지만, 어텐션은 문장 전체를 한 번에 환히 비춰 관계를 동시에 파악해요.
좋은 재료를 하나로 조립한 설계도: 트랜스포머
자, 코리의 손에는 이제 좋은 부품들이 다 모였습니다. 토큰화, 임베딩, 그리고 방금 배운 어텐션까지. 하나하나는 알겠는데, 이걸 어떻게 조립해야 똑똑한 AI비서가 될까요?
그 조립의 정답이 2017년에 세상에 나왔습니다. 구글 연구진 여덟 명이 발표한 한 편의 논문이었어요. 제목이 아주 당돌했습니다. 「Attention Is All You Need(필요한 건 어텐션뿐)」. 마치 비틀스 노래 제목 같은 이 선언적인 제목 그대로, 이들은 그동안 복잡하게 쓰던 옛 방식(한 단어씩 읽는 구조)을 전부 걷어내고 오직 어텐션만으로 새 구조를 만들어버렸습니다.
이 새 구조의 이름이 바로 트랜스포머(Transformer)예요. 어텐션을 중심으로 부품들을 짜 맞춘 신경망 설계도죠.
트랜스포머가 단숨에 왕좌에 오른 이유는 분명했습니다.
문장 속 여러 단어의 관계를 동시에 계산합니다 → 엄청나게 빠릅니다 ⚡
멀리 떨어진 단어의 관계도 잘 잡아냅니다 → 긴 글도 잘 이해해요
구조가 단순하고 병렬 처리가 쉬워서 → 아주 크게 키우기 좋습니다
마지막 항목이 특히 중요합니다. '크게 키우기 좋다'는 성질 덕분에, 사람들은 트랜스포머를 점점 더 거대하게 불려 나갔어요. 그리고 그 끝에서 — 우리가 매일 쓰는 챗GPT, 클로드, 제미나이 같은 모델들이 태어납니다. 사실 챗GPT의 이름 'GPT'에서 마지막 글자 T가 바로 트랜스포머(Transformer)예요. 2017년의 이 논문이 없었다면, 오늘날의 AI 붐도 없었을 거예요.
재미있는 뒷이야기 하나. 이 역사적인 논문을 쓴 여덟 명의 저자는, 몇 년 지나지 않아 모두 구글을 떠났다고 해요. 각자 새로운 AI 회사를 차리거나 옮겨 갔죠. 한 편의 논문이 한 시대를 열고, 그 저자들이 뿔뿔이 흩어져 또 다른 시대를 만들어가는 모습 — 인공지능의 역사가 지금도 이렇게 빠르게 쓰이고 있는 겁니다.
트랜스포머 조립.토큰·임베딩·어텐션·정리층 같은 부품을 정해진 설계대로 쌓아 올리면 하나의 트랜스포머 블록이 돼요. 이 블록을 여러 번 반복해 거대한 모델을 만듭니다.
💡 한 줄 정리: 트랜스포머는 어텐션을 중심으로 짠 신경망 설계도예요. 2017년 「Attention Is All You Need」에서 나와, 오늘날 챗GPT·클로드의 뼈대가 됐죠. (GPT의 'T'가 바로 트랜스포머!)
6장을 마치며
이번 장에서 우리는 오늘날 인공지능의 심장에 닿았습니다. 사람이 글을 읽을 때 자연스럽게 핵심 단어로 눈이 가는 그 동작을 숫자로 옮긴 것이 어텐션이었고, 문장 속 모든 단어가 서로를 동시에 둘러보게 한 것이 셀프 어텐션이었어요. 그리고 이 어텐션을 중심으로 부품을 조립한 설계도가 트랜스포머, 2017년에 등장해 모든 걸 바꾼 그 구조였습니다.
이제 컴퓨터는 사람의 말을 토큰으로 자르고(5장), 뜻을 좌표로 옮기고(5장), 어떤 단어가 중요한지 어텐션으로 파악하는(6장) 능력까지 갖췄습니다. 읽고 이해하는 준비가 끝난 거예요.
그런데 마지막 퍼즐 한 조각이 남았습니다. 읽고 이해하는 것과, 한 글자 한 글자 답을 써 내려가는 것은 또 다른 문제거든요. 챗GPT는 대체 어떻게 그 긴 답변을 만들어낼까요? 다음 장, 4부의 문을 열면 — 좀 허무하면서도 놀라운 비밀이 기다리고 있습니다.
📌 이 장의 핵심
어텐션: 지금 단어를 이해할 때 문장 속 어디를 더 중요하게 볼지 계산하는 것
셀프 어텐션: 문장 속 모든 토큰이 서로를 둘러보며 관계를 잡는 방식
(이전 방식의 한계): 단어를 하나씩 순서대로 읽어 느리고, 긴 문장을 잘 잊음
트랜스포머: 어텐션을 중심으로 짠 신경망 설계도 (동시 처리 → 빠르고, 키우기 좋음)
2017 「Attention Is All You Need」: 트랜스포머의 탄생, 챗GPT·클로드의 뿌리 (GPT의 T)
4부 — 문장을 짓는 기계
7장
문장을 짓는 기계
— 알고 보면 거대한 '끝말잇기' —
3부의 긴 여정 끝에, 드디어 코리의 AI비서가 완성됐습니다. 컴퓨터가 말을 토큰으로 자르고(5장), 뜻을 좌표로 옮기고(5장), 어떤 단어가 중요한지 어텐션으로 파악하는(6장) — 읽고 이해하는 준비가 모두 끝난 거죠.
코리는 떨리는 손으로 첫 질문을 입력했습니다.
"사과 고르는 법 알려줘"
화면의 커서가 깜빡깜빡하더니 — 글자가 한 글자씩 또르륵 나타나기 시작했어요.
"단 사과를 고르려면, 먼저 색이 진하고 향이 강한 것을…"
코리는 입을 떡 벌렸습니다. "오, 진짜 글을 쓴다!" 그런데 곧 궁금해졌어요. 이 AI비서는 답을 머릿속에 통째로 떠올리고 쓰는 걸까요, 아니면 다른 방식일까요? 이번 장에서 밝혀질 그 비밀은 좀 허무하면서도 놀랍습니다.
충격적인 비밀: 다음 토큰 예측
코리가 알아낸 진실은 의외로 단순했습니다. 이 똑똑해 보이는 AI가 하는 일은, 사실 딱 한 가지였어요.
"다음에 올 토큰(조각)을 맞히는 것." 그게 전부입니다.
예를 들어 이런 문장이 들어왔다고 해볼게요.
"대한민국의 수도는 ___"
모델은 빈칸에 올 다음 토큰의 확률을 계산합니다.
서울: 98%
부산: 1%
도쿄: 0.1%
기타: 0.9%
그리고 가장 그럴듯한 하나를 골라 붙입니다. → "서울". 이제 문장이 이렇게 늘어났죠.
"대한민국의 수도는 서울"
여기서 끝이 아니에요. 모델은 이 늘어난 문장을 다시 입력으로 넣고, 또 그다음 토큰을 예측합니다. 이걸 문장이 끝날 때까지 반복하는 거예요.
지금까지의 글
→ 다음 토큰 확률 계산
→ 하나 선택
→ 글 뒤에 붙이기
→ 다시 다음 토큰 계산… (끝까지 반복!)
코리는 좀 허탈했습니다. "이거… 겨우 끝말잇기잖아요?" 맞아요, 본질만 보면 정교한 끝말잇기가 분명하거든요. 챗GPT가 그 길고 똑똑한 답변을 쓰는 것도, 사실은 이 '다음 한 조각 맞히기'를 수백 번 반복하는 것일 뿐이에요.
그런데 바로 여기에, 인공지능 역사상 가장 놀라운 반전이 숨어 있습니다.
생성 루프. 모델은 다음 단어 하나(‘서울’)를 예측하고, 그 단어를 문장에 붙인 뒤 전체를 다시 입력으로 넣어요. 이 되먹임을 반복하며 한 단어씩 문장을 써 내려갑니다.
💡 한 줄 정리: 언어 모델은 정교한 '다음 토큰 예측기'예요. 한 조각씩 골라 붙이길 반복해 긴 문장을 지어내죠.
작은 일을 거대하게: GPT의 몸집 불리기
"겨우 끝말잇기"가 어떻게 사람처럼 글을 쓰고, 번역하고, 코딩까지 하게 됐을까요? 답은 한 단어로 요약됩니다. 규모. 이 단순한 일을 상상도 못 할 만큼 거대하게 키웠더니, 놀라운 능력들이 저절로 솟아났거든요.
이 '몸집 불리기'의 역사가 바로 GPT 이야기입니다.
GPT-1 (2018년): 매개변수(파라미터) 약 1억 1,700만 개. 가능성을 보여준 첫걸음이었어요.
GPT-2 (2019년): 약 15억 개. 한 해 만에 10배 넘게 커졌습니다. 글솜씨가 부쩍 자연스러워졌죠.
GPT-3 (2020년): 무려 약 1,750억 개. GPT-2의 100배가 넘는 규모였어요.
여기서 매개변수란, 4장에서 배운 그 '가중치' 숫자들입니다. 사과 모델이 0.4, 0.6 같은 숫자 몇 개였다면, GPT-3는 그런 숫자를 1,750억 개나 품은 셈이죠. 상상이 잘 안 되시죠? 1초에 하나씩 센다고 해도 5천 년이 넘게 걸리는 양입니다.
그런데 놀라운 건 숫자 자체가 아니라, 이렇게 키웠더니 벌어진 일이에요. 누가 따로 가르치지도 않았는데, GPT-3는 갑자기 번역을 하고, 간단한 코딩을 하고, 예시 몇 개만 보여주면 새로운 문제를 척척 풀기 시작했습니다. 작은 모델에는 없던 능력이, 몸집이 어느 선을 넘자 느닷없이 나타난 거죠. 이렇게 규모가 커질 때 예고 없이 튀어나오는 능력을 창발성(Emergence)이라고 부릅니다.
창발성은 사실 우리 주변에도 있어요. 물 분자 하나하나는 젖지도 출렁이지도 않지만, 어마어마하게 모이면 '파도'라는 새로운 성질이 생기잖아요. 개미 한 마리는 단순하지만, 수만 마리가 모이면 정교한 개미굴을 짓고요. '다음 토큰 맞히기'라는 단순한 일도, 거대하게 모이자 '지능'처럼 보이는 능력으로 창발한 겁니다.
그리고 2022년 11월, 오픈AI는 이 거대한 모델을 누구나 대화하듯 쓸 수 있게 다듬어 세상에 내놓습니다. 바로 챗GPT예요. 출시 닷새 만에 사용자 100만 명을 넘기며, 인공지능을 연구실 밖 모든 사람의 일상으로 끌어냈죠. 이듬해 나온 GPT-4는 한층 더 똑똑해져서, 변호사 시험이나 의사 면허 시험 같은 어려운 시험에서도 상위권 성적을 냈습니다.
모델의 성장. 매개변수가 1억에서 1,750억으로 커지면서 모델은 점점 거대해졌어요. 어느 크기를 넘자 번역·추론 같은 능력이 갑자기 출현(창발)했습니다.
💡 한 줄 정리: '다음 토큰 맞히기'를 거대한 규모로 키우자, 가르치지 않은 능력이 느닷없이 솟아났어요. 이것이 창발성이고, 그 결정체가 챗GPT입니다.
왜 매번 답이 조금씩 다를까: 확률과 온도
코리는 재미있는 걸 발견했습니다. 똑같은 질문을 두 번 했는데, 답이 살짝 달랐던 거예요. 처음엔 "색이 진한 사과를…", 두 번째는 "향이 강한 사과를…". "어? 같은 질문인데 왜 답이 달라요?"
비밀은 앞에서 본 그 확률에 있습니다. 모델은 다음 토큰을 딱 하나로 정해두지 않아요. 후보마다 확률을 매겨두죠.
"오늘 날씨가 참 ___"
좋다: 40%
맑다: 25%
춥다: 15%
이상하다: 10%
기타: 10%
여기서 매번 1등(좋다)만 고를 수도 있고, 가끔은 2등이나 3등도 골라볼 수 있어요. 이 '얼마나 모험적으로 고를까'를 조절하는 손잡이를 온도(Temperature)라고 합니다.
낮은 온도 🧊 → 확률 높은 후보 위주로 안전하게. 일관되고 정확하지만, 좀 뻔할 수 있어요.
높은 온도 🔥 → 확률 낮은 후보도 과감하게. 다양하고 창의적이지만, 가끔 엉뚱하거나 틀리죠.
그래서 쓰임에 따라 손잡이를 돌립니다. 보고서·요약·번역처럼 정확해야 하는 일에는 낮은 온도를, 시·소설·아이디어 짜내기처럼 창의가 필요한 일에는 좀 더 높은 온도를 쓰는 식이에요. 같은 질문에도 챗GPT의 답이 매번 미묘하게 다른 건, 바로 이 확률과 온도 때문입니다. 사람도 기분과 상황에 따라 같은 질문에 조금씩 다르게 답하잖아요. 어찌 보면 꽤 사람다운 면이죠.
온도(temperature). 온도가 낮으면 가장 유력한 후보 하나에 확률이 쏠려 답이 또박또박해져요. 높으면 후보들이 고르게 퍼져 더 다양하고 자유분방한 답이 나옵니다.
💡 한 줄 정리: 모델은 다음 토큰을 확률로 고르고, 온도는 그 선택을 얼마나 안정적으로/모험적으로 할지 정하는 손잡이예요.
7장을 마치며
이번 장에서 우리는 챗GPT가 글을 '쓰는' 비밀을 파헤쳤습니다. 그것은 거창한 창작이 아니라, '다음 한 조각을 확률로 맞혀 붙이는' 끝말잇기의 반복이었어요. 다만 이 단순한 일을 거대한 규모로 키우자, 가르치지 않은 능력이 느닷없이 솟아나는 창발성이 나타났고, 그 결정체가 바로 챗GPT였습니다. 그리고 온도라는 손잡이로 답변의 분위기를 조절할 수 있다는 것도 배웠죠.
이렇게 코리는 말을 알아듣고, 문장을 지어내는 기계의 큰 그림을 거의 다 그렸어요. 그런데 이 똑똑해 보이는 기계에도 빈틈이 있답니다. 가끔은 모르는 걸 아는 척 당당하게 지어내기도 하거든요. 다음 장에서, AI가 왜 그런 실수를 하는지 — 그리고 우리가 어떻게 슬기롭게 함께 살아갈지 — 들여다봅니다.
7장 끝에서 작은 사건이 하나 있었습니다. 손님이 "이 사과 품종이 뭐예요?"라고 묻자, 코리의 AI비서가 한 치의 망설임도 없이 이렇게 답했죠.
"네! 이건 '황금꿀사과 3호'라는 희귀 품종입니다!"
코리는 갸웃했습니다. 그런 품종은 들어본 적도 없었거든요. 찾아보니 세상에 없는 품종이었어요. AI비서가 너무도 당당하게 지어낸 겁니다. "아니, 모르면 모른다고 하면 되잖아. 왜 이렇게 자신 있게 거짓말을 하지?"
이 질문이 이번 장의 시작입니다. 우리가 매일 쓰는 똑똑한 AI에게도, 반드시 알고 써야 할 약점이 있거든요.
AI가 당당하게 지어내는 이유: 환각
답은 사실 7장에 이미 있었습니다. 우리가 잠시 잊었을 뿐이죠.
기억하시나요? 언어 모델은 사실을 검색하는 기계가 아닙니다. "문맥상 자연스러운 다음 토큰"을 확률로 만들어내는 기계예요. 그러니 "이 사과 품종은 ___"이라는 문장 뒤에, 언어 모델은 그저 그럴듯해 보이는 단어를 채워 넣은 겁니다. 그게 진짜인지 아닌지는 따지지 않고요. '황금꿀사과 3호'는 진짜 품종 이름처럼 들리니까 골라버린 거죠.
이렇게 AI가 틀린 내용을 그럴듯하게, 그것도 아주 자신 있게 지어내는 현상을 환각(Hallucination)이라고 부릅니다. 사람이 헛것을 보는 것에 빗댄 표현이에요. 환각은 이런 모습으로 나타납니다. 있지도 않은 책이나 논문을 만들어내고, 틀린 날짜를 당당히 말하고, 존재하지 않는 법 조항을 대고, 가짜 출처(링크)를 지어내죠.
가짜 판례를 믿었다가 벌금을 문 변호사
이게 단순한 해프닝이 아니라는 걸 보여준 실제 사건이 있습니다. 2023년, 미국의 한 30년 경력 변호사가 항공사를 상대로 한 소송을 준비하면서 챗GPT에게 비슷한 판례를 찾아달라고 했어요. 챗GPT는 척척 여러 건의 판례를 제시했고, 변호사는 그걸 그대로 법원에 제출했습니다.
그런데 문제가 터졌어요. 그 판례들이 전부 챗GPT가 지어낸 가짜였던 겁니다. 세상에 존재하지 않는 사건들이었죠. 더 놀라운 건, 변호사가 불안한 마음에 챗GPT에게 "이 판례들 진짜 맞아?"라고 거듭 물었는데도 챗GPT가 끝까지 "맞다"고 우겼다는 사실입니다. 결국 이 변호사와 동료는 각각 5천 달러(약 650만 원)의 벌금을 물고 크게 망신을 당했어요.
여기서 우리가 배울 점은 분명합니다. AI의 기본 목표는 "항상 진실만 말하기"가 아니라 "문맥상 그럴듯한 다음 토큰 고르기"예요. 그래서 모르는 것일수록 더 위험합니다. 모른다는 자각 없이, 그냥 그럴듯한 걸 채워버리니까요. 심지어 "맞아?"라고 물으면 또 그럴듯하게 "맞다"고 답하기까지 하죠.
그럼 어떻게 해야 할까요? 코리가 내린 결론은 이겁니다.
중요한 정보는 AI의 말만 믿지 말고, 반드시 따로 확인하기. 원문 찾아보기, 공식 문서 확인하기, 검색해서 출처 비교하기.
그래서 AI에게 답을 맡길 땐, 믿을 만한 자료를 함께 쥐여주고 "여기서 찾아 답해"라고 부탁하면 거짓말이 크게 줄어듭니다. (그 구체적인 방법은 이 시리즈의 다음 권들에서 본격적으로 다뤄요.)
환각(hallucination). AI는 모르는 것도 자신만만하게 지어내 사실처럼 말하기도 해요. ‘진짜냐’고 되물어도 없는 판례를 끝까지 우기니, 중요한 정보는 꼭 확인해야 합니다.
💡 한 줄 정리: 환각은 AI가 틀린 걸 그럴듯하게 지어내는 현상이에요. AI는 진실 기계가 아니라 확률 생성기이니, 중요한 건 꼭 따로 확인해야 합니다.
책상과 일기장은 다릅니다: 컨텍스트와 장기 기억
코리를 헷갈리게 한 게 하나 더 있었습니다. 긴 대화를 나누다 보면, AI비서가 맨 처음 했던 이야기를 까먹곤 했어요. "아까 내가 좋아한다고 한 사과가 뭐였지?" 하고 물으면 가끔 헤맸죠. (5장의 그 '작업 책상', 컨텍스트 윈도우 기억하시죠? 오래된 종이는 책상 밖으로 밀려나니까요.)
그런데 또 어떤 AI는, 며칠 뒤에 다시 와도 코리의 이름과 취향을 기억하더라고요. "어? 얘는 어떻게 기억하지?"
여기서 두 가지를 꼭 구분해야 합니다.
컨텍스트 🪑 = 지금 책상 위에 펼쳐놓은 자료. 일시적이라, 대화가 길어지면 오래된 건 밀려납니다. 지금 이 작업만을 위한 공간이죠.
장기 기억 📓 = 사용자의 이름·취향·중요한 정보를 따로 일기장에 적어뒀다가, 다음에 다시 꺼내 쓰는 기능.
그리고 모든 AI가 장기 기억을 가진 건 아니라는 점도 알아두세요. 기억하는 것처럼 보여도, 사실은 그때그때 책상 위에 관련 자료를 다시 올려주는 것일 수도 있거든요.
컨텍스트는 "지금 책상 위에 펼친 자료", 장기 기억은 "따로 보관해 둔 일기장"입니다.
이 구분이 왜 중요할까요? AI가 무언가를 "기억하는" 듯 보일 때, 그게 진짜 저장된 기억인지 아니면 지금 잠깐 책상에 올라온 임시 정보인지 알아야, 우리가 AI를 제대로 신뢰하고 또 적절히 의심할 수 있기 때문입니다.
💡 한 줄 정리: 컨텍스트는 지금 펼쳐놓은 임시 작업 자료(곧 밀려남), 장기 기억은 따로 저장해 다시 꺼내 쓰는 별도 일기장이에요.
AI는 먹인 데이터를 닮습니다: 한계와 윤리
코리는 문득 무서운 생각이 들었습니다. "내 AI비서는 결국 내가 보여준 데이터로 배운 거잖아. 만약 그 데이터가 나쁜 거였으면…?"
정확한 직관입니다. AI는 자기가 학습한 데이터를 그대로 닮아요. 좋은 데이터를 먹으면 좋은 판단을, 편향된 데이터를 먹으면 편향된 판단을 합니다. 흔히 "쓰레기를 넣으면 쓰레기가 나온다(Garbage In, Garbage Out)"고 표현하죠.
우리나라에도 이 교훈을 뼈아프게 남긴 사건이 있었습니다. 2020년 말에 나온 '이루다'라는 AI 챗봇 이야기예요. 20대 여대생 콘셉트의 이 챗봇은 자연스러운 대화로 큰 인기를 끌어, 2주 만에 사용자가 75만 명에 이르렀습니다. 그런데 곧 심각한 문제들이 드러났어요.
첫째, 차별과 혐오 발언이었습니다. 이루다는 특정 소수자 집단을 향해 차별적인 말을 내뱉었어요. 누가 그렇게 가르친 걸까요? 아무도 일부러 가르치지 않았습니다. 다만 이루다가 학습한 방대한 대화 데이터 속에 그런 편견이 섞여 있었고, AI는 그걸 고스란히 따라 한 거예요. AI는 데이터에 담긴 우리 사회의 그림자까지 닮는다는 걸 보여준 사건이었죠.
둘째, 개인정보 문제였습니다. 이루다를 만든 회사는 자신들의 다른 앱에서 모은 실제 연인들의 카카오톡 대화를 충분한 동의 절차 없이 학습 데이터로 가져다 썼어요. 게다가 그 안에 든 이름이나 전화번호 같은 민감한 정보를 제대로 지우지도 않았고요. 결국 정부 기관의 조사가 시작됐고, 이루다는 출시 3주 만에 서비스를 멈춰야 했습니다.
이 사건은 우리에게 세 가지를 가르쳐 줍니다. 하나, AI는 먹인 데이터를 닮으므로, 어떤 데이터로 가르치느냐가 정말 중요하다. 둘, 그 데이터에 담긴 사람들의 권리(개인정보)를 존중해야 한다. 셋, 그리고 가장 중요한 것 — 무엇이 잘못되든 최종 책임은 AI가 아니라 그것을 만들고 쓰는 사람에게 있다. 가짜 판례를 낸 변호사가 "챗GPT가 그랬어요"라고 변명할 수 없었던 것처럼요.
AI는 점점 더 똑똑해지고 있습니다. 하지만 똑똑한 것과 옳은 것은 다릅니다. 그 사이의 간격을 메우는 일은, 결국 우리 사람의 몫이에요.
데이터라는 거울. AI는 학습한 데이터를 거울처럼 그대로 비춰요. 좋은 데이터는 좋은 결과로, 편향된 데이터는 편향된 결과로 이어지니 무엇을 먹이느냐가 중요합니다.
💡 한 줄 정리: AI는 학습한 데이터를 그대로 닮아요. 그래서 좋은 데이터와 사람들의 권리 존중이 중요하고, 최종 책임은 언제나 사람에게 있습니다.
8장을 마치며
이번 장에서 우리는 똑똑한 AI의 그림자를 정면으로 마주했습니다. AI는 모르는 것도 그럴듯하게 지어내고(환각), 그래서 중요한 건 사람이 꼭 확인해야 했죠. 또 AI가 "기억하는" 듯 보여도 그게 임시 책상(컨텍스트)인지 진짜 일기장(장기 기억)인지 구분할 줄 알아야 했고요. 무엇보다, AI는 먹인 데이터를 닮기에 — 좋은 데이터와 사람의 권리, 그리고 사람의 책임이 그 어느 때보다 중요하다는 것을 배웠습니다.
📌 이 장의 핵심
환각: AI가 틀린 내용을 그럴듯하게, 당당하게 지어내는 현상 (꼭 따로 확인!)
자료 기반 응답: 믿을 만한 자료를 보여주고 답하게 하면 환각이 줄어들지만, 마지막 확인은 언제나 사람의 몫
컨텍스트 vs 장기 기억: 임시 작업 책상 vs 따로 저장한 일기장
AI는 데이터를 닮는다: 편향된 데이터 → 편향된 AI ('이루다' 사건의 교훈)
책임은 사람에게: 좋은 데이터, 개인정보 존중, 그리고 최종 책임은 늘 사람의 몫
🗺️ 1권을 마치며 — 큰 그림이 완성됐어요
데이터로 배우는 기계(머신러닝)부터, 스스로 특징을 찾는 신경망까지 따라왔어요.
컴퓨터가 말을 조각내고(토큰), 뜻을 위치로 바꾸고(임베딩), 서로 주목하며(어텐션) 문장을 짓는 큰 그림을 그렸죠.
그리고 그 똑똑한 기계도 완벽하진 않다는 것까지 — 지도를 손에 넣었습니다.
여기까지가 AI의 지도예요. 그런데 코리는 문득 궁금해졌습니다. "어텐션이 단어끼리 '주목한다'는 게, 도대체 기계 안에서 정확히 어떻게 일어나는 걸까?"
지도를 다 그렸으니, 이제 엔진의 뚜껑을 열어볼 차례예요. 2권 〈LLM 엔진 해부〉에서, 우리가 맛본 토큰·임베딩·어텐션이 숫자 속에서 어떻게 살아 움직이는지 한 단계씩 분해합니다. 🍎 → ⚙️
코리 AI 시리즈 · 2권 〈LLM의 작동과 활용〉
LLM은 어떻게 작동할까?
챗봇이 글을 쓰는 진짜 원리부터, RAG·에이전트로 직접 만드는 법까지 — 엔진을 뜯고, 그 엔진으로 제품을 만듭니다.
엔진 8개 장 · 코리와 함께 · 그림과 실습
Overview
큰 그림 먼저 — 한 문장을 끝까지 따라갑니다
1부에서 코리는 AI의 지도를 완성했습니다. 데이터로 배우는 기계, 스스로 특징을 찾는 신경망, 단어끼리 주목하는 어텐션까지 — 멀리서 전체 지형을 내려다봤죠. 그런데 지도를 손에 쥐니 오히려 더 궁금한 게 생겼어요.
시험 기간이 다가오자 학교 단체 채팅방이 들끓었습니다. “도서관 시험 기간엔 몇 시까지야?” 누군가 물으면 “열 시 아니야?” “아닌데, 아홉 시인 거 같은데” “공지 어디 있어?” — 같은 질문이 매일 올라오고, 답은 매번 달랐어요. 코리는 공지 게시판을 뒤져 정확한 시간을 찾아 올렸지만, 다음 날이면 또 누군가 같은 질문을 했죠. “이거… 챗봇이 대신 답해 주면 되잖아?” 코리에게 목표가 생긴 순간이었어요. 바로 학교 도서관 챗봇을 직접 만드는 것. 공지에 적힌 정보를 연결하면, “시험 기간엔 몇 시까지 열어요?” 같은 질문에 척척 답하는 녀석이요.
그런데 막상 만들려니 막막했어요. 매일 챗GPT를 쓰면서도 정작 그 속은 한 번도 들여다본 적이 없었거든요. 1부에서 어텐션이 단어끼리 ‘주목한다’는 건 배웠는데, 그게 기계 안에서 정확히 어떻게 일어나는지는 여전히 안개 속이었죠. 그래서 코리는 마음먹습니다. 대충 가져다 쓰지 말고, 엔진부터 끝까지 뜯어 보자.
🧵 2부는 두 걸음으로 갑니다
먼저 엔진을 분해해 속속들이 이해하고(1~5장), 그다음 그 부품들로 진짜 챗봇을 조립합니다(6~8장). 챗GPT가 한 문장을 받아 다음 단어 하나를 뱉기까지, 그 안에서 벌어지는 일을 부품 하나하나 손으로 만지면서요.
🎯 이 글을 다 읽고 나면
· ChatGPT나 Claude 같은 대규모 언어 모델(Large Language Model, 줄여서 LLM)이 “생각”하는 게 아니라 무엇을 하는지 설명할 수 있어요.
· AI가 글을 만들어내는 과정을 8단계로 따라갈 수 있어요.
· 뉴스나 논문에서 어텐션, 토큰, 트랜스포머 같은 말을 봐도 “아, 그거!” 하게 됩니다.
미리 알아둘 것 — 어려운 수학은 거의 없어요. “숫자 여러 개를 한 줄로 적은 것”과 “지도 위의 점(좌표)” 정도면 충분합니다. 영어 용어는 이 분야의 공용어라서, 한국어 뜻과 함께 그대로 익혀두면 나중에 진짜 자료를 볼 때 도움이 됩니다.
사용법 — 전체는 8개 장으로 이뤄집니다. 엔진을 뜯어 보는 1~5장과, 그 부품으로 챗봇을 만드는 6~8장이에요. 각 장 끝의 ✋ 직접 해 보기를 꼭 손으로 해 보세요. 맨 뒤에는 용어 사전과 해설 답안이 있습니다.
📍 우리의 예문 — 한 문장을 끝까지 따라갑니다
이 교재에는 하나의 예문이 처음부터 끝까지 따라옵니다. 단계마다 “지금 이 문장이 어떻게 변했는지”를 같이 추적하면, 흩어진 개념들이 하나로 꿰어져요.
“내가 어제 본 고양이가 잤다.”
이 문장이 8단계를 거치며 어떻게 변신하는지, 챕터마다 📍 박스로 추적합니다.
큰 그림. 글이 숫자가 되어 어텐션·FFN 층을 N번 통과한 뒤, 단어 하나를 뱉습니다. 그 단어를 붙이고 이 과정을 반복해 문장이 자라요.
🎯
큰 그림을 먼저 손에 쥐고, 이제 이 한 문장을 8단계 파이프라인에 넣어 끝까지 따라갑니다. 부품을 다 이해할 때쯤이면, 코리의 도서관 챗봇을 조립할 준비도 함께 끝나 있을 거예요.
Chapter 1
글이 숫자가 되고, 의미를 얻기까지
챗봇을 만들려면, 먼저 그 챗봇이 사람의 말을 어떻게 ‘받아들이는지’부터 알아야겠죠. 그래서 코리가 가장 먼저 들여다본 곳은 엔진의 입구였습니다.
코리는 빈 화면에 첫 질문을 타이핑해 봤어요.
⌨️
“도서관 몇 시까지 열어요?”
엔터를 눌렀지만 아무 일도 일어나지 않았습니다. 당연하죠 — 아직 엔진이 없으니까요. 그런데 코리는 문득 궁금해졌어요. 만약 엔진이 있었다면, 이 열 글자짜리 문장이 기계 안에서 가장 먼저 어떤 모습으로 바뀌었을까? 글자가 대체 어떻게 기계 안으로 들어가는가 — 거기서부터 한 단계씩 따라갑니다.
들어가며: AI는 사실 ‘맞히기 게임’ 챔피언이다
챗봇에게 “오늘 기분이 좀 우울해”라고 쓰면, 챗봇은 위로의 문장을 술술 써 내려갑니다. 마치 사람처럼요. 그래서 많은 사람이 “이 AI가 내 말을 이해하고, 머릿속으로 생각한 다음, 답을 만드는구나” 하고 생각해요.
그런데 진짜 속을 들여다보면 조금 다릅니다. 1부에서 “정교한 끝말잇기”라고 배웠죠? 이제 그 끝말잇기가 정확히 어떤 순서로 돌아가는지, 부품 단위로 열어 볼 거예요. LLM이 하는 일은 사실 딱 하나예요.
🎮
“지금까지 나온 글 다음에, 가장 그럴듯한 다음 단어는 무엇일까?” — 이걸 미친 듯이 빠르고 정확하게 맞히는 것.
단어 하나를 맞히면 문장 끝에 붙이고, 다시 “그럼 그다음 단어는?”을 맞힙니다. 수백 번 반복하면 문단 하나가 완성돼요. 우리가 보는 긴 답변은 결국 단어 하나하나를 차례로 맞힌 결과입니다. 앞으로 나올 복잡한 장치들은 전부 이 게임을 잘하려고 만든 도구예요. 길을 잃을 것 같으면 이 한 문장을 떠올리면 됩니다.
LLM은 Large Language Model, 여는 글에서 만난 ‘대규모 언어 모델’이에요. 그리고 요즘 LLM은 거의 다 트랜스포머(transformer)라는 같은 설계도로 만들어요. 이 설계도 하나만 이해하면 GPT든 Claude든 큰 그림이 잡힙니다.
코리는 고개를 끄덕였어요. “그러니까 내 챗봇도 결국 이 맞히기 게임을 잘하면 되는 거네. 그럼 ‘도서관 몇 시까지 열어요?’라는 문장이 처음 들어오면 어떻게 되는 거지?” 바로 그 첫 단계가 토큰화입니다.
01토큰화 — 글을 숫자로 쪼개기
1부 5장에서 “문장을 조각으로 자르고 번호를 붙인다”고 배웠어요. 그때는 ‘이런 게 있구나’ 정도였다면, 지금부터는 왜 그렇게 자르는지, 자르는 방식이 왜 중요한지까지 한 겹 더 들어갑니다.
가장 먼저 알아야 할 충격적인 사실. AI는 글자를 직접 읽지 못합니다. 다룰 수 있는 건 오직 숫자뿐이에요. 그래서 글을 주기 전에 먼저 숫자로 번역해야 합니다. 이 작업이 토큰화(tokenization)예요.
🔑 토큰(token)AI가 글을 다룰 때 쓰는 ‘한 조각’. 글자를 잘게 나눈 부품이라고 생각하면 됩니다.
재미있는 건 단어를 통째로가 아니라 자주 쓰이는 조각 단위로 나눈다는 점이에요. 레고 블록처럼요. tokenization → tokenization, 재미있었다 → 재미있었다.
코리는 자기 질문을 직접 쪼개 봤어요. “도서관 몇 시까지 열어요?”가 도서관몇시까지열어요? 처럼 일곱 조각이 되고, 각 조각에 번호가 붙는다고 생각하니 신기했습니다. 사람 눈에는 열 글자짜리 짧은 질문인데, 기계 눈에는 숫자 일곱 개짜리 목록인 거죠.
왜 조각으로? 단어 전체를 외우면 사전이 너무 커지고, 글자 하나하나면 너무 작아 비효율적이라, 그 중간인 조각(subword)을 씁니다. 그리고 AI는 조각을 번호로만 다뤄요.
📍 우리 예문 추적
“내가 어제 본 고양이가 잤다”는 이렇게 쪼개집니다(예시):
내 812 · 가 31 · 어제 4490 · 본 673 · 고양이 9102 · 가 31 · 잤 7720 · 다 15
→ AI 눈에는 이제 글자가 아니라 [812, 31, 4490, 673, 9102, 31, 7720, 15] 라는 숫자 목록입니다. 가가 두 번 나오니 같은 번호 31이 두 번 등장한 것에 주목!
왜 조각으로 나눌까요? 단어 전체를 외우면 사전이 너무 커지고, 글자 하나하나면 너무 작아 비효율적이라, 그 중간인 조각(subword)을 씁니다. 그리고 AI는 조각을 번호로만 다뤄요.
🍓 “strawberry에 r이 몇 개?” 미스터리예전 AI들이 이 쉬운 질문을 자주 틀렸어요. 셈을 못 해서가 아닙니다. AI 눈에 strawberry는 글자가 아니라 strawberry 같은 숫자 덩어리 몇 개로 보이거든요. 글자를 본 적이 없으니 글자 수 세기가 어려웠던 거죠.
🔍 더 깊이모델 계열마다 토큰화가 조금씩 달라요. GPT 계열은 BPE(Byte Pair Encoding), LLaMA 계열은 SentencePiece를 주로 씁니다. 토큰을 어떻게 자르느냐는 속도와 외국어 처리 능력에도 영향을 줍니다.
✏️
토큰화 = 글을 ‘AI가 읽을 수 있는 숫자 조각들’로 번역하는 첫 단계.
02임베딩 — 숫자에 ‘의미’ 입히기
이제 문장은 [812, 31, 4490, ...] 번호 목록이 됐어요. 그런데 9102라는 번호 자체엔 아무 의미가 없습니다. 그냥 사전 9102번째 칸이라는 뜻일 뿐이죠. 그래서 각 번호를 의미가 담긴 좌표로 바꿔 줍니다. 이게 임베딩(embedding)이에요.
🔑 벡터(vector)숫자 여러 개를 한 줄로 적은 목록(예: [0.2, -1.5, 0.8, ...]). 지도 위의 한 점을 가리키는 ‘좌표’라고 생각하면 쉬워요. AI의 ‘의미 지도’는 수천 차원이라 숫자도 수천 개랍니다.
AI 안에는 거대한 변환표가 있어서, 번호가 들어오면 그에 해당하는 좌표를 찾아 꺼내 씁니다. 이 지도의 신기한 점은 뜻이 비슷한 단어끼리 가까이 모인다는 거예요.
🍎 사과 가게, 다시 만나다코리는 1부에서 사과 가게를 떠올렸습니다. 할머니 공책에서 사과마다 색·무게·향이라는 숫자 세 개로 표현했던 것처럼, 여기서도 단어 하나를 숫자 수천 개짜리 좌표로 표현하는 거잖아요. 차이가 있다면 사과의 색·무게·향은 사람이 정했지만, 임베딩 좌표는 기계가 스스로 만들었다는 점이에요. “특징을 기계가 알아서 찾는다” — 1부에서 배운 바로 그 딥러닝의 원리가 여기서도 쓰이고 있었습니다.
의미의 지도(2D 단순화).man→king과 woman→queen의 화살표 방향·길이가 거의 같죠? 그래서 king − man + woman ≈ queen 같은 계산이 됩니다.
누가 입력한 게 아니라 AI가 방대한 글을 학습하며 스스로 만든 지도예요. 비슷한 뜻을 가까이 두는 게 다음 단어 맞히기에 유리했기 때문에 자연스럽게 그렇게 정리됐습니다.
📍 우리 예문 추적고양이(9102) 좌표는 강아지·동물·털 근처에, 잤(7720)은 자다·졸다·눕다 근처에 자리잡습니다. 이제 각 조각은 단순한 번호가 아니라 의미를 가진 점이 되었어요.
✏️
임베딩 = 의미 없는 토큰 번호를, ‘의미 지도 위의 좌표’로 바꿔 주는 단계.
✋ 직접 해 보기 (1장)
토큰 조각 내기 — unhappiness, running, 재미있었다를 의미 있는 조각으로 나눠 보고, 왜 그렇게 나눴는지 한 줄로 적어 보세요.
글자 vs 토큰 — strawberry의 글자 수와, strawberry로 봤을 때의 토큰 수를 각각 세어 보세요.
의미 지도 계산 — 위 그림 규칙대로 빈칸을 채워 보세요. Tokyo − Japan + France ≈ ( ? )(힌트: France의 수도 자리)
🔖 1장 끝“글 → 숫자 조각 → 의미 좌표”의 흐름을 잡았어요. 코리의 “도서관 몇 시까지 열어요?”도 이제 의미를 품은 좌표 일곱 개가 됐습니다. 하지만 아직 이 좌표들은 서로의 존재를 모르는 낱개 점일 뿐이에요. ‘도서관’이 ‘열다’와 무슨 관계인지, ‘몇 시’가 어디에 걸리는지는 다음 단계에서 비로소 밝혀집니다.
Interlude · 더하기
트랜스포머 이전 — 기억하며 한 단어씩 읽던 기계
엔진을 더 살펴보기 전에, 코리는 잠깐 옛날 엔진을 구경하기로 했어요. 지금 것이 얼마나 대단한지, 어떻게 개선된 것인지 궁금했거든요.
트랜스포머가 등장한 2017년 이전엔, 컴퓨터가 문장을 어떻게 읽었을까요? 옛날 방식과 그 한계를 알면, 다음 장의 어텐션이 왜 ‘혁명’이라 불리는지 확 와닿습니다.
★RNN — 한 단어씩, 요약 메모를 안고
가장 널리 쓰이던 방식이 RNN(순환신경망)이에요. 사람이 글을 읽듯 한 단어씩 차례로 읽되, 지금까지 읽은 내용을 ‘요약 메모’ 하나에 담아 다음 단어로 넘깁니다.
🔑 RNN(순환신경망)한 단어 읽기 → 요약 메모 갱신 → 다음 단어로 넘기기. 이걸 문장 끝까지 반복해요. 메모 한 칸에 ‘여기까지 읽은 내용’이 압축돼 담깁니다.
RNN의 작동. 단어를 하나씩 읽으며 ‘메모’를 갱신해 다음으로 넘깁니다. 그런데 뒤로 갈수록 맨 앞 단어의 기억은 흐려지고, 한 단어를 끝내야 다음으로 가니 느려요.
그런데 RNN엔 두 가지 큰 한계가 있었어요.
🔍 한계 ① — 까먹는다 (장기 의존성)긴 문장을 ‘요약 메모 한 칸’에 다 욱여넣다 보니, 뒤로 갈수록 앞쪽 내용이 흐려집니다. 긴 문장 끝에서 “그래서 주어가 누구였더라?”를 잊는 거죠.
🔍 한계 ② — 느리다 (순차 처리)반드시 한 단어를 끝내야 다음 단어를 볼 수 있어요. 여러 단어를 동시에(병렬로) 처리할 수 없으니, 글이 길수록 느려집니다.
★LSTM — 잊을 건 잊고, 적어 둘 건 적어 두고
이 ‘까먹는’ 문제를 줄이려 나온 게 LSTM이에요. 핵심은 메모장을 똑똑하게 관리하는 ‘문(게이트)’입니다.
🔑 LSTM의 게이트메모장을 관리하는 세 개의 문 — 잊을 건 지우고(망각 게이트), 중요한 건 새로 적고(입력 게이트), 필요할 때 꺼내 쓰기(출력 게이트). 덕분에 RNN보다 훨씬 멀리까지 기억해요.
LSTM은 RNN보다 크게 나아졌지만, ‘한 단어씩 순서대로’라는 점은 그대로였어요. 아주 긴 글에선 여전히 버거웠죠.
📍 우리 예문 추적“내가 어제 본 고양이가 잤다”에서, RNN·LSTM은 잤을 처리할 때쯤 맨 앞 내가의 기억이 희미해질 수 있어요. ‘누가 잤지?’를 멀리 있는 고양이와 곧바로 잇기가 어려운 겁니다.
그래서 2017년, 누군가 이렇게 생각했어요. “한 단어씩 줄줄이 넘기지 말고, 멀리 떨어진 단어라도 필요하면 한 번에 직접 연결하면 어떨까?” 이 아이디어가 바로 다음 장의 주인공 — 어텐션입니다.
⏮️
RNN·LSTM = 한 단어씩 ‘기억 메모’를 안고 읽기. 길면 까먹고(장기 의존성), 느린(순차 처리) 게 한계였고 — 그 둘을 단번에 푼 것이 다음 장의 어텐션이에요.
🔖 더하기 끝트랜스포머 이전의 기계는 한 단어씩 줄줄이 읽으며 요약 메모를 넘기는 방식이었어요. 문장이 길어지면 앞을 까먹고(RNN), 메모장을 똑똑하게 관리해도 순서대로라는 벽은 넘지 못했죠(LSTM). 코리의 챗봇 질문 “도서관 몇 시까지 열어요?”처럼 짧은 문장이야 괜찮겠지만, 도서관 규정 문서 전체를 읽혀야 한다면? 옛날 방식으로는 벅찼을 거예요. 다음 장에서 만날 어텐션은, 멀리 떨어진 단어도 한 번에 직접 연결하는 전혀 다른 접근입니다.
Chapter 2
순서를 알고, 단어끼리 대화하기
코리가 1부에서부터 가장 궁금해하던 부품 차례입니다. 단어들이 서로 ‘주목’한다는 바로 그 장치요.
03위치 정보 — 단어의 순서 알려주기
각 단어가 의미 좌표를 갖게 됐지만, 한 가지가 빠졌습니다. 순서예요. “개가 사람을 물었다 🐶😱”와 “사람이 개를 물었다 😱🐶”는 단어는 같아도 뜻이 정반대죠. 그런데 곧 배울 어텐션은 단어의 순서를 기본적으로 모릅니다. 단어를 한 봉지에 쏟아부어 보는 것에 가깝거든요.
코리는 자기 챗봇을 떠올렸어요. 도서관 몇 시까지 열어요?에서 몇 시와 열다의 순서가 뒤바뀌면 전혀 다른 질문이 될 수도 있잖아요. 순서를 모르는 건 꽤 큰 문제였습니다.
그래서 각 단어에 “너는 몇 번째 자리야”라는 정보를 새겨 넣습니다. 이게 위치 인코딩(positional encoding), 줄 서서 받는 번호표 같은 거예요.
📍 우리 예문 추적“내가 어제 본 고양이가 잤다”에서 내는 1번, 고양이는 5번, 잤은 7번 자리표를 받습니다. 덕분에 AI는 잤이 끝쪽에, 고양이가 그 앞에 있다는 걸 알아요. 다음 단계에서 이 순서가 결정적으로 쓰입니다.
🔍 더 깊이 — 요즘 방식 RoPE요즘 모델(LLaMA·Mistral·Gemma 등)은 위치를 ‘더하는’ 대신 단어 좌표를 시계 바늘처럼 회전시키는 RoPE를 씁니다. 1번 자리는 조금, 100번 자리는 많이 회전. 두 단어를 비교할 때 회전 각도의 차이가 곧 둘 사이 ‘거리’를 알려줘요.
💡 실전 팁: AI는 글의 모든 부분을 똑같이 잘 보지 않는다긴 글을 주면 AI는 맨 앞과 맨 뒤는 잘 기억하지만 가운데는 흐릿하게 처리하는 경향이 있어요(“lost in the middle”). 그래서 긴 부탁을 할 땐 중요한 내용을 앞쪽에 두거나, 핵심을 맨 끝에 한 번 더 적으면 결과가 좋아집니다.
✏️
위치 인코딩 = 단어마다 ‘몇 번째 자리인지’ 번호표를 붙여 순서를 알려 주는 단계.
04어텐션 — 단어끼리 대화하기 ⭐
드디어 트랜스포머의 심장입니다. 이름 그대로 “각 단어가 다른 어떤 단어에 주목(attention)해야 하는지”를 정해요. 우리 예문 “내가 어제 본 고양이가 잤다”에서, 잤을 처리할 때 AI는 누가 잤는지 알아야 합니다. 정답은 고양이죠.
이를 위해 각 단어는 세 역할을 맡습니다 — Q, K, V.
🔑 Q · K · V — 도서관에서 책 찾기 비유
· Q (Query, 질문) = “나는 이런 걸 찾고 있어.” → 내가 던지는 검색어
· K (Key, 이름표) = “나는 이런 걸 가진 사람이야.” → 각자의 명찰·색인
· V (Value, 알맹이) = 잘 맞았을 때 실제로 건네주는 정보
잤이 “나는 동사야, 주어 찾아!”라는 질문(Q)을 던지면, 다른 단어들이 이름표(K)를 보여줘요. 고양이의 이름표는 “나는 주어 명사”라 딱 맞고, 어제는 “시간을 나타내는 말”이라 안 맞죠. 그래서 점수가 갈립니다. 이 점수를 softmax로 합이 100%인 비중으로 바꾼 결과:
softmax 결과.고양이가 82%로 압도적이라, 잤의 새 의미는 주로 고양이의 정보로 채워집니다. → “몇 칸 앞 고양이가 자는 주인공”이라고 알아내는 거예요.
코리는 무릎을 쳤어요. 자기 챗봇으로 바꿔 생각해 보니 바로 이해가 됐거든요. 도서관 몇 시까지 열어요?에서 몇 시가 질문(Q)을 던지면, 열의 이름표(K)가 딱 맞아 높은 점수를 받을 거예요. 열이 건네주는 정보(V)는 ‘영업 시간’이 되는 거고요. “이래서 챗봇이 ‘몇 시’랑 ‘열다’를 연결할 수 있는 거구나!”
🔑 softmax(소프트맥스)들쭉날쭉한 점수들을, 합이 100%가 되는 비중으로 깔끔하게 바꾸는 도구. 큰 점수엔 큰 비중, 작은 점수엔 작은 비중.
미래는 못 본다 (causal masking). GPT 계열은 글을 왼쪽→오른쪽으로 한 단어씩 만들어서, 어떤 단어를 처리할 때 아직 안 나온 뒷 단어는 볼 수 없어요. 시험에서 뒷장을 미리 못 보는 것과 같죠. 그래서 주목 표는 아래처럼 ‘계단(삼각형)’ 모양이 됩니다.
causal mask. 각 단어(행)는 자기와 그 앞 단어들(왼쪽 아래 삼각형)만 볼 수 있어요. 오른쪽 위(미래)는 가려져 0이 됩니다. 그래야 “다음 단어 예측”이 진짜 예측이 되니까요.
🔍 더 깊이 — induction head글에 “A B … A” 패턴이 있으면, 두 번째 A를 본 순간 “아까 A 다음에 B가 왔지!” 하며 B를 따라 적는 어텐션이 있어요. 예시 몇 개만 보여줘도 AI가 패턴을 이어가는 능력(맥락 속 학습, in-context learning)의 비밀 중 하나입니다.
✏️
어텐션 = 각 단어가 ‘누구 말을 얼마나 들을지’ 정해 관련 정보를 끌어오는, 트랜스포머의 핵심 장치.
✋ 직접 해 보기 (2장)
순서가 의미다 — 카드 개사람물었다로 서로 다른 두 문장을 만들고, 뜻이 어떻게 달라지는지 적어 보세요.
어텐션 점수 예상 — “민수는 영희에게 그녀의 가방을 건넸다”에서 그녀는 민수와 영희 중 누구에게 더 높은 점수를 줄까요?
softmax 감 — 점수가 고양이=10, 어제=2, 본=1이면 누가 가장 큰 비중을 가져갈까요? (정확한 % 계산은 5장 코드에서!)
🔖 2장 끝단어들이 번호표를 받아 순서를 알게 되고(위치 인코딩), Q·K·V로 서로에게 질문을 던져 관계를 잡아내는(어텐션) 과정까지 왔어요. 코리의 챗봇도 이제 ‘몇 시’와 ‘열다’를 연결할 수 있게 됐습니다. 그런데 어텐션 하나로는 한 가지 관계만 봐요. 언어에는 문법, 시간, 대상 같은 관계가 동시에 얽혀 있잖아요. 다음 장에서 이 문제를 푸는 ‘여러 개의 눈’이 등장합니다.
Chapter 3
여러 관점으로 보고, 혼자 생각 정리하기
부품 하나를 열었더니, 그 안에 또 부품이 있었습니다. 코리는 멈추지 않고 한 겹 더 들어갑니다.
05멀티헤드 어텐션 — 여러 관점으로 동시에
어텐션 하나는 한 가지 관계만 봅니다. 그런데 언어엔 주어-동사 일치, 대명사 참조, 장거리 연결, 어순 등 여러 관계가 동시에 있죠. 그래서 어텐션을 여러 개 동시에 돌립니다. 이게 멀티헤드 어텐션, 병렬 장치 하나하나가 head(헤드)예요.
📍 코리의 예문코리는 자기 챗봇 질문 "도서관 몇 시까지 열어요?"를 떠올려 봤어요. 이 짧은 문장 안에도 ‘몇 시 — 열다’의 시간 관계, ‘도서관 — 열다’의 주어-동사 관계, ‘까지’가 만드는 범위 관계가 동시에 들어 있잖아요. 어텐션 하나로는 이걸 한꺼번에 못 잡으니, 여러 헤드가 각자 하나씩 맡는 거구나 — 코리는 고개를 끄덕였습니다.
여러 전문가의 회의. 같은 단어를 문법·위치·시간 담당이 각자의 관점으로 본 뒤 결과를 합칩니다. 어떤 헤드가 무슨 역할을 할지는 사람이 정해주지 않아요 — 학습 중 저절로 전문 분야가 나뉩니다.
흔한 오해. 각 헤드가 단어를 잘라 한 조각씩 갖는 게 아닙니다. 각 헤드는 단어 좌표 전체를 보되 자기 방식으로 요약해서 봐요. 같은 단어의 다른 ‘조각’이 아니라 다른 ‘관점’인 거죠. 큰 모델은 수천 개의 관점으로 문장을 동시에 분석합니다.
🔍 더 깊이 — KV 캐시와 GQAAI가 글을 한 단어씩 만들 때 이미 처리한 단어들의 K·V를 메모리에 저장(KV cache)해 매번 다시 계산하지 않습니다. 헤드가 많으면 이 메모리가 커져서, 요즘은 GQA(Grouped-Query Attention)로 여러 Q 헤드가 같은 K·V를 공유해 메모리를 아껴요.
✏️
멀티헤드 어텐션 = 여러 관점(헤드)으로 동시에 분석해, 다양한 관계를 한꺼번에 잡아내는 방식.
06FFN — 혼자 생각 정리하고, 지식 꺼내기
어텐션이 단어들끼리 대화하는 단계라면, FFN(Feed-Forward Network)은 각 단어가 혼자 조용히 생각을 정리하는 단계예요. 여기선 단어끼리 정보를 주고받지 않습니다. 세 단계로 일해요: 펼치기 → 굽히기 → 압축하기.
‘굽히기’가 핵심. 곧게 펴는 연산만 쌓으면 100층도 결국 1층과 똑같아져요(곧은 막대를 이어도 곧은 막대). 중간에 꺾을 수 있어야 복잡한 언어 규칙을 표현합니다. ReLU는 “음수는 0, 양수는 그대로”인 가장 단순한 꺾기예요.
🔑 비선형성(non-linearity)네트워크가 ‘곧은 선 하나’로 납작해지는 걸 막아주는, ‘꺾는’ 함수. 요즘은 SwiGLU·GELU 같은 부드러운 함수를 씁니다.
FFN은 AI의 ‘지식 창고’이기도 합니다. 모델 숫자(weight)의 상당수가 여기 들어 있고, 특정 부분이 ‘에펠탑’이나 ‘과거형 동사’ 같은 특정 지식과 연결돼 있어요.
📍 우리 예문 추적고양이 조각이 FFN을 지날 때, 저장된 ‘고양이는 동물, 털이 있음, 야옹’ 같은 지식이 함께 끌려 나옵니다. 잤은 ‘과거에 일어난 일, 휴식’ 정보를 끌어오죠. 어텐션이 관계를 봤다면, FFN은 각 단어에 지식을 더합니다.
🔍 더 깊이 — 모델의 지식을 ‘수술’할 수 있다고?“파리는 프랑스 수도” 같은 사실은 FFN 숫자들에 저장돼 있어요. ROME 같은 기술로 그 숫자만 콕 집어 고치면, 재학습 없이 “에펠탑은 로마에 있다”로 바꿀 수 있습니다. 지식이 ‘어딘가 적혀 있다’는 증거죠. — 또, 최신 초대형 모델 일부는 FFN을 여러 개 두고 단어마다 일부만 쓰는 MoE(Mixture of Experts)로 속도를 아낍니다.
✏️
FFN = 각 단어가 혼자 생각을 가공하는 단계이자, AI 지식 대부분이 저장된 창고.
✋ 직접 해보기 (3장)
두 개의 눈 — “동생이 형의 자전거를 빌렸다”를 ① 문법 헤드, ② 누가-무엇을(대상) 헤드 관점에서 각각 “이 헤드는 뭘 볼까?” 한 가지씩 적어보세요.
선형의 함정 — “곧은 막대 100개를 이어도 곧은 막대”라는 비유를, FFN에 ‘굽히기’가 없으면 왜 문제인지로 연결해 한 문장으로 설명해 보세요.
🔖 3장 끝여러 관점으로 동시에 살피는 멀티헤드 어텐션, 그리고 혼자 조용히 지식을 꺼내 정리하는 FFN까지, 한 층의 부품을 모두 열어 봤어요. 진짜 모델은 이 층을 수십~수백 번 쌓습니다. 그런데 그렇게 깊이 쌓으면 숫자가 폭주하거나 앞쪽 정보가 사라지지 않을까요? 다음 장에서 그 문제를 막는 안전장치를 만나고, 드디어 단어 하나가 튀어나오는 순간까지 갑니다.
Chapter 4
깊이 쌓고, 드디어 단어를 뱉다
이제 코리는 엔진의 마지막 칸 앞에 도달했어요. 그 많은 계산이 끝나고, 드디어 단어 하나가 튀어나오는 곳이에요.
07잔차 흐름과 정규화 — 깊이 쌓아도 무너지지 않게
어텐션과 FFN 한 묶음(층)을 수십~수백 번 쌓으면 문제가 생겨요. 두 안전장치가 이걸 해결합니다.
안전장치 ① 잔차 연결 — 덮어쓰지 말고 더하기
각 층의 결과는 이전 정보를 지우지 않고 그 위에 더해집니다. 즉 새 좌표 = 이전 좌표 + 이번 층이 알아낸 것. 원본 위에 포스트잇을 계속 붙이는 셈이에요. 이 흘러가는 정보의 줄기를 잔차 흐름(residual stream)이라 부릅니다.
정보의 지름길. 어텐션·FFN 결과를 줄기에 더하기(+)만 합니다. 덮어쓰지 않으니 맨 처음 입력도 끝까지 살아남고, 100층 모델도 학습이 가능해져요. (이 아이디어는 이미지 인식용 ResNet에서 왔습니다.)
📍 우리 예문 추적고양이의 의미는 한 번에 완성되지 않아요. 1층에서 ‘명사구나’, 5층쯤 ‘주어구나’, 더 깊은 층에서 ‘잤다의 주인공이구나’를 차곡차곡 덧붙여 갑니다.
안전장치 ② 층 정규화 — 숫자 폭주 막기
수십 번 덧셈을 거치면 숫자가 폭주하거나 0으로 쪼그라들기 쉬워요. 그래서 단계 사이에 숫자를 적당한 범위로 되돌리는 장치를 둡니다. 층 정규화(layer normalization), 자동 볼륨 조절기 같은 거예요.
🔍 더 깊이요즘 모델은 정규화를 각 단계 앞에 두고(pre-norm), 더 간단·빠른 RMSNorm을 많이 씁니다.
✏️
잔차 연결(정보의 지름길) + 정규화(숫자 안정화) 덕분에, 수백 층짜리 깊은 AI도 학습이 가능해진다.
08다음 단어 예측 — 드디어 단어 하나가 나온다
긴 여정 끝에 AI는 마지막 단어 자리에서 최종 좌표 하나를 얻습니다. 이 좌표는 사전의 모든 후보 단어마다 점수 하나씩으로 변환돼요. 이 원시 점수를 logits(로짓)이라 하고, softmax가 이걸 확률로 바꿔 줍니다.
📍 우리 예문 추적 + 🎛️ 직접 만져보기
“내가 어제 본 고양이가 잤” 까지 처리한 AI는 그다음 단어의 확률을 매깁니다. 아래는 온도(temperature) 0.8일 때의 확률 분포예요. 슬라이더를 움직이면 같은 점수라도 분포가 달라지는 걸 직접 볼 수 있어요.
“…고양이가 잤” 다음 단어 확률온도 0.8
온도 0.8일 때 1등 다는 91.8%, 그 뒤로 어 4.6%, 고 2.4%, 으 0.8%, 네 0.4% 순이에요. 온도를 낮추면 1등 ‘다’가 더욱 압도적이 되어 답이 일관되고, 높이면 ‘어·고’ 같은 다른 후보의 비중이 커져 다양해집니다.
🔑 temperature(온도)AI의 ‘창의성 다이얼’. 낮으면 가장 확실한 답만 골라 정확·일관(모범생), 높으면 덜 확실한 후보도 가끔 골라 다양·창의적(때론 엉뚱).
단어 하나를 고르면 문장 끝에 붙이고 처음부터 다시 시작합니다. ‘끝’ 신호가 나오거나 길이 제한에 닿을 때까지 반복하면, 한 단어씩 쌓여 긴 답변이 완성돼요.
📍 우리 예문 추적코리는 자기 챗봇을 상상해 봤어요. 누군가 “도서관 몇 시까지 열어요?”라고 물으면, 엔진이 한 바퀴 돌아 첫 토큰 평일을 뱉고, 그걸 붙여서 다시 돌아 은을 뱉고, 또 돌아 밤을 뱉고… 이걸 반복하면 “평일은 밤 10시까지 운영해요”라는 답이 한 글자씩 자라나는 거죠. 1장에서 빈 화면만 바라보던 그 챗봇에, 지금 엔진이 한 대 들어갔습니다.
👀
이제 보이시나요? 챗봇의 긴 답변은 마법이 아니라, 이 8단계를 한 단어마다 반복한 결과일 뿐입니다.
🤖 잠깐, 그럼 챗봇의 ‘예의’는 어디서 왔지?LLM이 처음 배우는 건 오직 “다음 단어 맞히기”뿐이에요(base model). 이 상태로는 대화 예절·안전을 모릅니다. 그 위에 사후 학습(post-training)으로 “친절·안전·도움 되게 답하기”를 따로 가르쳐요. 우리가 쓰는 챗봇은 이 둘을 모두 거친 결과입니다.
🔍 더 깊이 — speculative decoding작고 빠른 모델이 다음 몇 단어를 미리 추측하고, 크고 똑똑한 모델이 그 추측을 한꺼번에 검토하는 방식. 품질은 그대로면서 속도가 훨씬 빨라집니다.
✏️
다음 단어 예측 = 후보마다 확률을 매기고 하나를 골라 붙이는 일. 이걸 반복해 문장이 완성된다 — 이게 LLM의 전부다.
✋ 직접 해 보기 (4장)
쌓기 vs 덮어쓰기 — 0.5에서 +0.3, +0.4, +0.2를 차례로 더하고(잔차), 너무 커지지 않게 결과를 절반으로 줄여 보세요(정규화 흉내).
온도 실험 — 위 그래프에서 온도가 0.8일 때 ‘다’는 91.8%예요. 온도를 아주 낮추면(0.1) ‘다’의 비중은 어떻게 될지, 아주 높이면(2.0) 어떻게 될지 각각 예상해 보세요.
루프 추적 — “내가 어제 본 고양이가 잤다” 다음에 올 그럴듯한 두 단어를 직접 예측해 보세요.
🔖 4장 끝잔차 연결로 정보가 끝까지 살아남게 하고, 정규화로 숫자 폭주를 막고, 마침내 확률로 다음 단어 하나를 골라 붙이는 데까지 왔어요. 코리의 챗봇 엔진에 이제 모든 부품이 들어갔습니다. 그런데 GPT와 Claude는 같은 부품을 쓸까요, 다른 부품을 쓸까요? 다음 장에서 유명한 모델들을 나란히 놓고 비교해 봅니다.
Chapter 5
모델마다 뭐가 다를까, 그리고 앞으로
엔진을 한 바퀴 다 돌아본 코리에게, 마지막 궁금증 하나가 남았습니다. 토큰화부터 어텐션, FFN, 다음 단어 예측까지 트랜스포머 속을 다 뜯어봤는데 — 그렇다면 세상에 나와 있는 그 많은 AI들은 대체 뭐가 다른 걸까? "그럼 GPT랑 Claude는, 또 Gemini는 뭐가 다른 거지?" 코리가 혼잣말을 했습니다.
09그래서 GPT, Claude, Gemini는 뭐가 다를까?
여기까지 왔다면 트랜스포머 한 바퀴를 완주한 거예요. 유명한 AI들은 다 다른 회사에서 만들었는데, 내부까지 다를까요? 놀랍게도 큰 뼈대는 거의 같습니다. 토큰화 → 임베딩 → 위치 → (어텐션 + FFN) 쌓기 → 다음 단어 예측. 1~4장에서 우리가 하나하나 열어 본 바로 그 순서예요. 그럼 다른 건 뭘까요? 주로 세 가지입니다.
무엇이 다른가
비유로 말하면
학습한 글과 규모
어떤 책으로, 얼마나 많이 공부했는가
설정(층·헤드·크기)
엔진 크기, 부품 개수 같은 사양
사후 학습(post-training)
어떤 예절과 성격으로 다듬어졌는가
🚗 비유: 같은 설계도, 다른 자동차다들 비슷한 설계도(트랜스포머)로 만들지만, 어떤 연료로 달리는지·엔진을 얼마나 크게 했는지·어떻게 튜닝했는지가 달라요. 그래서 성격과 잘하는 일이 조금씩 다릅니다. 겉모습과 승차감은 제각각이지만, 뚜껑을 열어 보면 심장은 같은 계열의 엔진인 셈이죠.
🔑 용어 · 사후 학습(post-training)방대한 글로 다음 단어를 예측하도록 기본기를 익힌 뒤(사전 학습), "이렇게 답하면 좋아요/이건 곤란해요" 같은 사람의 피드백으로 성격과 예절을 다듬는 마무리 단계예요. 같은 뼈대라도 이 튜닝에 따라 말투와 태도가 달라집니다.
흥미롭게도 2023~2025년 사이 뛰어난 모델들이 비슷한 부품 조합으로 수렴했어요(RoPE, RMSNorm, SwiGLU, GQA 등 — 3장 '더 깊이' 박스에서 만난 친구들이죠). 마치 여러 자동차 회사가 결국 비슷한 연비 좋은 엔진 설계로 모여든 것과 비슷합니다. 이건 한 번에 뚝딱 발명된 게 아니라, 2017년 원조 설계 위에 약 5년 동안 조금씩 쌓아 올린 결과예요.
🧵 맥락 잇기1부에서 "정교한 끝말잇기"라고 불렀던 그 능력 — 다음에 올 말을 확률로 고르는 일 — 을 떠올려 보세요. GPT든 Claude든 Gemini든, 결국 다들 이 끝말잇기를 하고 있어요. 다른 건 어떤 책으로 연습했고, 얼마나 큰 두뇌를 가졌고, 어떤 성격으로 다듬어졌느냐일 뿐입니다.
한 걸음 더: 앞으로는 어디로 갈까
옛날엔 분야마다 다른 AI를 썼어요(이미지 따로, 언어 따로, 소리 따로). 지금은 트랜스포머 한 종류가 언어·이미지·소리·영상까지 거의 다 흡수했습니다. 하나의 설계도가 이렇게 많은 걸 삼킨 건 놀라운 일이에요. 앞으로 더 많은 모델이 이 멀티모달 방향으로 갈 겁니다.
물론 트랜스포머가 영원하리란 보장은 없어요. Mamba처럼 어텐션 없이도 아주 긴 글을 빠르게 처리하는 새로운 구조가 유망한 대안으로 떠오르고 있거든요. 하지만 우리가 배운 핵심 문제들 — 글을 숫자로 바꾸고, 의미를 잡고, 다음 단어를 고르는 일 — 은 어떤 구조가 와도 어떤 식으로든 풀어야 할 숙제로 남습니다. 그러니 오늘 배운 큰 그림은 유행을 타지 않아요.
🔬 더 깊이 · Mamba가 뭐길래어텐션은 모든 토큰이 모든 토큰을 살피기 때문에 글이 길어질수록 비용이 급격히 늘어요. Mamba 같은 '상태 공간 모델(SSM)'은 이 부분을 다르게 설계해, 아주 긴 문서에서 더 빠르게 움직일 수 있는 후보로 주목받습니다. 아직 트랜스포머를 완전히 대체하진 않았지만, "어텐션이 유일한 정답은 아닐 수 있다"는 신호예요.
코리가 여기까지 온 길
코리는 잠시 멈추고 여기까지 온 길을 되돌아봤습니다. 1장에서 빈 화면에 도서관 몇 시까지 열어요?를 타이핑하던 때가 떠올랐어요. 그때는 그 열 글자가 기계 안에서 어떻게 되는지 하나도 몰랐는데, 이제는 토큰으로 쪼개지고, 좌표(임베딩)를 얻고, 위치를 받고, 어텐션으로 서로를 살피고, FFN에서 지식을 꺼내고, 잔차로 쌓이고, 마침내 다음 단어 하나가 튀어나오는 그 전 과정이 머릿속에 그려졌습니다. 엔진의 뚜껑을 다 열어 본 거예요.
🎉
이제 최신 AI 뉴스나 논문에서 이 단어들을 만나도, "아, 그건 이 부분 이야기구나" 하고 큰 그림 안에 놓을 수 있습니다. 축하해요!
⚙️ → 🛠️ 엔진을 알았으니, 이제 만들 차례여기까지가 엔진 해부예요. 토큰·임베딩·어텐션·생성까지 AI가 글을 만들어내는 과정을 다 봤습니다. 그런데 엔진을 안다고 곧바로 '쓸 만한 제품'이 되는 건 아니죠. 이제부터(응용편) 이 엔진에 오픈북(RAG)과 손발(에이전트)을 달아, '우리 학교 도서관 챗봇' 같은 진짜 제품을 함께 만듭니다.
🔖 5장 끝GPT, Claude, Gemini 모두 같은 트랜스포머 뼈대 위에 서 있고, 다른 건 학습 데이터·규모·사후 학습이라는 세 가지 '조율'이었어요. 그리고 트랜스포머가 영원하리란 보장은 없지만, 우리가 배운 핵심 문제들은 어떤 구조가 와도 남습니다. 코리의 엔진 해부가 끝났어요. 이제 이 엔진에 오픈북(RAG)과 손발(에이전트)을 달아, 진짜 도서관 챗봇을 만들러 갑니다.
Chapter 6 · 활용
AI에게 ‘오픈북 시험’을 허락하기 — RAG
엔진을 다 뜯어본 코리는, 이제 처음의 약속을 지킬 때가 됐다고 느꼈습니다. 1~5장 내내 부품을 익힌 건 결국 이걸 위해서였죠 — 그토록 만들고 싶던 학교 도서관 챗봇을, 드디어 조립할 차례입니다.
🏫 새 프로젝트 — ‘우리 학교 도서관 챗봇’앞 장들에서 엔진(모델 한 대가 다음 단어를 맞히는 법)을 다 뜯어봤어요. 이제 그 엔진으로 진짜 쓸 만한 것을 만들 차례입니다. 6·7장 내내 우리는 “우리 학교 도서관 챗봇” 하나를 같이 완성할 거예요. 학생이 “시험 기간엔 몇 시까지 해요?”라고 물으면 정확히 답하는 챗봇이요.
01왜 똑똑한 AI가 우리 학교 일을 모를까?
도서관 운영시간을 그냥 챗봇에 물어보면 어떻게 될까요? 십중팔구 그럴듯하게 지어냅니다(환각). 이유는 앞에서 배운 그대로예요. 모델은 학습할 때 본 글에서 다음 단어를 맞히도록 만들어졌습니다. 그러니 학습 이후에 생긴 일이나 우리 학교 내부 문서는 애초에 본 적이 없죠.
해결책은 의외로 단순합니다. 시험에 비유하면 —
🔑 RAG (Retrieval-Augmented Generation, 검색 증강 생성)모델이 답하기 전에, 질문과 관련 있는 자료를 찾아서(검색) 같이 넣어주는 방법. ‘닫힌 책 시험’을 ‘오픈북 시험’으로 바꾸는 것과 같아요.
📖
닫힌 책 시험: 머릿속 기억만으로 답 → 모르면 지어냄 오픈북 시험(RAG): 관련 페이지를 펴서 보고 답 → 정확하고 출처도 댈 수 있음
RAG 한 바퀴. 질문을 좌표로 바꿔 벡터 DB에서 의미가 가까운 자료를 찾고(검색), 그걸 질문과 함께 모델에 넣어(증강) 답을 생성합니다. 그래서 Retrieval-Augmented Generation이에요.
02핵심 질문 — ‘관련 있는’ 자료를 어떻게 찾지?
오픈북도 결국 맞는 페이지를 빨리 펴야 소용이 있죠. 그런데 학생은 “밤늦게까지 공부하려는데 도서관 언제 닫아요?”라고 묻고, 규정 문서엔 “평일 운영시간: 09:00–22:00”이라고만 적혀 있어요. 글자가 하나도 안 겹칩니다. 단순 단어 찾기(Ctrl+F)로는 못 찾아요.
여기서 앞서 배운 임베딩이 다시 등장합니다! 기억하죠? 임베딩은 글을 의미 좌표로 바꾸고, 뜻이 비슷하면 좌표가 가까이 모인다고요. “언제 닫아요?”와 “운영시간 22:00”은 글자는 달라도 의미 좌표가 가깝습니다.
🔑 벡터 검색 · 벡터 DB모든 문서 조각을 미리 임베딩(좌표)으로 바꿔 벡터 DB라는 창고에 저장해 둬요. 질문이 들어오면 질문도 좌표로 바꿔, 가장 가까운 좌표의 조각들을 꺼냅니다. ‘글자 일치’가 아니라 ‘의미 근접’으로 찾는 거예요.
‘글자’가 아니라 ‘의미’로 찾기. 질문(파란 점) 주위에 좌표가 가까운 조각들(초록)이 진짜 관련 자료예요. ‘운영시간 22:00’은 ‘언제 닫아?’와 글자가 안 겹쳐도 가깝습니다. 멀리 있는 ‘회원 가입’은 무시돼요.
🛠️ 도서관 챗봇에 적용① 도서관 규정·공지·FAQ를 잘게 쪼개 전부 임베딩 → 벡터 DB에 저장. ② 학생 질문이 오면 질문을 임베딩 → 가장 가까운 조각 3개를 꺼냄(예: ‘운영시간’ 조항). ③ 그 조각 + 질문을 함께 모델에 넣음 → “평일은 밤 10시까지 운영해요. (출처: 도서관 이용 규정 3조)”
🍿 옆길 — 사실 ‘추천 시스템’도 똑같은 원리예요유튜브·넷플릭스가 “이거 좋아할 듯?” 하는 것도 임베딩입니다. 영상·사람을 좌표로 만들면, 네 좌표와 가까운 영상 = 네가 좋아할 영상이거든요. RAG가 “질문과 가까운 문서”를 찾는다면, 추천은 “너와 가까운 아이템”을 찾는 것. 같은 임베딩, 다른 용도일 뿐입니다.
💡 실전 팁 — RAG는 ‘환각 백신’모델이 지어내는 가장 큰 이유는 모르는데 아는 척하기 때문이에요. 관련 자료를 손에 쥐여주면 지어낼 필요가 줄고, 출처까지 보여줄 수 있어 신뢰도가 확 올라갑니다. 단, 넣어준 자료 자체가 틀리면 답도 틀려요 — 좋은 자료가 좋은 답을 만듭니다.
🔍 더 깊이실제로는 문서를 의미 단위로 자르는 청킹(chunking), 단어 검색과 의미 검색을 섞는 하이브리드 검색, 1차로 많이 뽑은 뒤 다시 추려내는 재순위(rerank) 같은 기술로 ‘맞는 페이지’를 더 잘 찾습니다.
✏️
RAG = 답하기 전에 ‘의미가 가까운 자료’를 임베딩으로 찾아 같이 넣어주는 것. 모름·환각을 줄이고 출처를 댈 수 있게 한다.
🔍 더 깊이 — “검색이 잘 됐는지” 어떻게 알까RAG는 만들면 끝이 아니에요. ‘질문 + 정답’ 쌍을 미리 여러 개 만들어 두고, 시스템이 그 답을 제대로 찾아오는지 반복해서 채점해야 합니다. 이런 기준 평가 세트가 없으면 “고쳤더니 정말 나아졌는지”를 알 수 없어요 — 모의고사 없이 수능 보러 가는 셈이죠.
💡 실전 팁 — 글·이미지·소리를 같은 지도에임베딩은 글에만 쓰는 게 아니에요. CLIP 같은 모델은 글과 이미지를 같은 좌표계에 놓아서 “해변 위의 개”라는 문장으로 그에 맞는 사진을 찾아냅니다. 노래 몇 초만 듣고 곡을 맞히는 샤잠도 같은 원리(소리 임베딩)예요 — 의미가 가까우면 가까이, 글이든 그림이든 소리든.
✋ 직접 해보기 (6장)
닫힌 책 vs 오픈북 — 우리 반에서만 통하는 사실(예: 담임 선생님 성함)을 일반 챗봇이 맞힐 수 있을까요? 못 맞힌다면, RAG로 무엇을 ‘쥐여주면’ 될지 한 줄로 적어보세요.
의미로 찾기 — “문 언제 닫아?”와 의미가 가까운 문장 2개, 먼 문장 2개를 적어보세요. 글자가 겹치지 않아도 가까울 수 있다는 걸 확인!
추천 연결 — 내가 좋아하는 노래 1곡의 ‘좌표 이웃’으로 어떤 노래가 추천될지 상상해 적어보세요. 무엇이 ‘가깝다’의 기준이 될까요?
🔖 6장 끝엔진만으로는 우리 학교 일을 몰랐던 챗봇에, 오픈북(RAG)을 달았어요. 도서관 규정을 임베딩으로 바꿔 벡터 DB에 넣고, 학생 질문과 의미가 가까운 조각을 찾아 함께 건네주는 것 — 그게 전부였습니다. 이제 코리의 챗봇은 “평일은 밤 10시까지요”라고 정확히, 출처까지 대며 답할 수 있어요. 그런데 코리는 또 욕심이 생겼습니다. 답만 하는 게 아니라 직접 뭔가를 해 주는 챗봇은 안 될까? 다음 장에서 엔진에 ‘손발’을 달아 봅니다.
Chapter 7 · 활용
두뇌에 손발 달기 — 에이전트와 도구 사용
오픈북을 쥔 코리의 챗봇은 똑똑해졌지만, 아직 ‘말’밖에 못 합니다. 이번엔 손발을 달아 줄 차례예요.
6장에서 챗봇에게 ‘오픈북’을 줬어요. 그런데 도서관 챗봇이 이런 부탁을 받으면 어떨까요? “내가 빌린 책 언제까지 반납이야? 연체되면 얼마야?” 이건 책을 펴서 읽는다고 풀리지 않습니다. 내 대출 기록을 조회하고, 연체일 × 100원을 계산해야 하죠.
문제는, LLM은 앞에서 봤듯 다음 단어를 맞히는 기계일 뿐이라 계산도 약하고, 실시간 조회는 아예 못 합니다. 해결책은? 두뇌(LLM)에 손발(도구)을 달아 주는 것이에요.
도구 호출 — 모델이 “이거 좀 해 줘”라고 말한다
핵심 아이디어는 놀랍도록 단순합니다. 모델이 직접 계산하거나 조회하는 게 아니라, “계산기야, 3×100 해 줘” 또는 “대출DB야, 김민수 기록 줘”라고 ‘말’만 합니다. 그러면 바깥 프로그램이 실제로 실행해서 결과를 다시 모델에게 건네줘요. 모델은 그 결과를 받아 자연스러운 문장으로 답합니다.
🔑 도구 호출 (tool use · function calling)모델이 “어떤 도구를, 어떤 입력으로 쓸지”를 정해 요청하면, 시스템이 그 도구(계산기·검색·날씨 API·코드 실행 등)를 실행하고 결과를 모델에 되돌려 줍니다. 모델은 ‘무엇을 할지’만 결정하고, 실제 실행은 ‘진짜 도구’가 해요.
모델은 ‘지시’, 도구는 ‘실행’. LLM은 계산을 직접 하지 않고 “계산기를 이렇게 써 달라”고 요청만 합니다. 진짜 계산은 계산기가 하고, 그 결과(300)를 받아 모델이 문장으로 답해요. 검색·날씨·코드 실행도 똑같은 방식입니다.
🤔 RAG도 사실 ‘도구 하나’였어요RAG의 ‘벡터 검색’도 결국 모델이 부르는 도구의 한 종류입니다. 즉 RAG는 “검색 도구만 쓰는 특수한 경우”인 셈. 도구를 검색 하나로 한정하지 않고 여러 개 쥐여 주면, 훨씬 많은 일을 하는 ‘에이전트’가 됩니다.
에이전트 — 생각하고, 행동하고, 관찰하기
도구가 여러 개면 모델은 “지금 어떤 도구를 써야 하지?”를 스스로 판단해야 해요. 한 번에 안 끝나면 생각 → 행동(도구) → 관찰(결과) → 다시 생각을 반복합니다. 이렇게 스스로 도구를 골라 가며 목표를 이루는 LLM을 에이전트(agent)라 불러요. 이 반복 패턴은 ReAct라는 이름으로 유명합니다.
생각→행동→관찰의 반복(ReAct). 한 방에 못 풀면 도구를 쓰고(행동) 결과를 보고(관찰) 다시 궁리합니다(생각). 충분한 정보가 모이면 그제야 최종 답을 내요. 앞서 배운 ‘다음 단어 예측 루프’가 ‘행동하는 루프’로 커진 셈입니다.
🔍 더 깊이 — LangChain · LangGraphRAG·도구·기억(메모리)·여러 단계 흐름을 매번 직접 코딩하면 번거로워요. LangChain·LangGraph는 이런 부품들을 레고처럼 조립하게 해 주는 도구(라이브러리)입니다. “검색 → 모델 → 도구 → 답” 같은 파이프라인을 빠르게 만들 수 있죠. 핵심 개념(검색·도구·루프)을 알면, 이런 도구는 거들 뿐이에요.
💡 실전 팁 — 강력한 만큼 조심도구를 쓰면 AI가 실제로 행동하므로, 잘못된 도구를 부르거나(예: 엉뚱한 삭제), 답을 못 내고 무한 반복에 빠질 수 있어요. 그래서 위험한 행동은 사람이 확인하고, 반복 횟수에 제한을 둡니다. ‘똑똑함’과 ‘권한’은 따로 떼어 줘야 안전해요.
🦾
도구 호출 = 모델이 ‘무엇을 할지’ 말하면 진짜 도구가 실행해 결과를 돌려주는 것. 에이전트 = 그 도구들을 생각→행동→관찰로 스스로 골라 쓰는 LLM.
🔍 더 깊이 — 에이전트의 두 가지 기억똑똑한 에이전트는 두 종류의 기억을 써요. 단기 기억은 지금 대화와 방금 한 행동을 적어 둔 ‘작업 메모장’(컨텍스트 윈도우), 장기 기억은 여러 번의 대화에 걸친 기록을 외부 저장고(벡터 DB)에 넣어 뒀다 꺼내는 ‘파일 캐비닛’이에요. 6장의 RAG가 바로 이 장기 기억을 꺼내 쓰는 방법이죠.
🔍 더 깊이 — 계획하고, 반성하기고수 에이전트는 곧바로 행동하지 않아요. 먼저 큰 목표를 작은 할 일로 쪼개 계획을 세우고(planning), 한 단계 끝낼 때마다 결과를 보고 계획을 고쳐 갑니다. 더 나아가 자기 답을 스스로 채점하고 다시 쓰는 반성(reflection)까지 하면 훨씬 똑똑해져요 — 실제로 반성을 빼면 성능이 크게 떨어진답니다.
🤝 도구가 너무 많으면? — 여러 전문가로 나눈다도구가 수십 개가 되면 한 에이전트가 “뭘 써야 하지?” 고르기 벅차져요. 그래서 멀티 에이전트를 씁니다 — 감독(수퍼바이저)이 ‘검색 담당’·‘코딩 담당’·‘메시지 담당’ 같은 전문 에이전트에게 일을 나눠 맡기는 회사 조직처럼요. 각자 자기 도구·기억·계획을 갖고 협업합니다.
✋ 직접 해 보기 (7장)
도구 설계 — ‘급식 메뉴 챗봇’에게 도구 2개를 쥐여 준다면? (예: 오늘 날짜 가져오기, 급식표 조회) 각 도구의 입력·출력을 한 줄씩 적어 보세요.
루프 추적 — “내일 우산 챙겨야 해?”를 ‘생각→행동→관찰→답’ 4단계로 직접 써 보세요. 어떤 도구가 필요할까요?
RAG vs 에이전트 — ‘작년 교칙이 뭐였지?’와 ‘지금 몇 시야?’ 중 RAG로 풀 일과 도구(에이전트)로 풀 일을 나눠 보세요.
🔖 7장 끝오픈북(RAG)만 들고 있던 코리의 챗봇에, 이제 손발(도구)까지 달았어요. 대출 기록을 조회하고 연체료를 계산하는 것처럼, 답만 하는 게 아니라 직접 행동하는 에이전트가 된 거죠. 그런데 코리의 머릿속엔 마지막 물음이 남아 있습니다. “RAG도 배웠고 에이전트도 배웠는데, 실제로 만들 때 뭘 어떻게 골라 쓰지?” 다음 장에서 지금까지 배운 모든 부품을 한자리에 놓고 정리합니다.
Chapter 8 · 활용
골라 쓰기 — 프롬프트 vs RAG vs 파인튜닝
엔진도, 오픈북도, 손발도 갖춘 코리 앞에 이제 선택의 문제가 남았습니다. 6·7장에서 ‘오픈북(RAG)’과 ‘손발(도구·에이전트)’을 손에 넣었어요. 그런데 막상 무언가를 만들려고 하면 진짜 고민은 이겁니다. “내 문제엔 셋 중 뭘 써야 하지?” 도서관 챗봇을 떠올리며 세 가지 큰 선택지를 비교해 봅시다.
세 가지 방법, 한눈에
똑똑한 신입 직원(=이미 학습된 LLM)을 떠올리면 셋의 차이가 선명해져요.
✍️ 프롬프트 (prompting) — 말을 잘 거는 것모델은 그대로 두고, 지시와 예시(입력)만 잘 줍니다. “신입에게 좋은 지시서를 써 주는 것”과 같아요. 예시 몇 개를 같이 주면 패턴을 따라 하죠(few-shot) — 앞서 본 induction head가 바로 이걸 가능하게 한 장치예요.
📚 RAG — 자료를 쥐여 주는 것모델도 그대로, 대신 관련 자료를 찾아 함께 넣어 줍니다(6장). “책상에 참고자료를 펴 주는 오픈북”이죠. 최신·내부 지식에 강합니다.
🏋️ 파인튜닝 (fine-tuning) — 다시 가르치는 것이미 학습된 모델을 추가 데이터로 더 훈련해, 특정 말투·형식·전문성을 몸에 배게 합니다. “신입을 우리 회사 스타일로 재교육”하는 셈. 효과는 깊지만 데이터·비용이 듭니다.
방법
무엇을 바꾸나
비유
언제 쓰나
비용·난이도
✍️ 프롬프트
모델은 그대로, 입력(지시·예시)만
지시서 잘 써주기
빠른 시도, 말투·형식 살짝 조정
가장 싸고 즉시
📚 RAG
외부 자료를 찾아 함께 입력
오픈북(자료 펴주기)
최신·내부 지식, 출처가 필요할 때
중간(검색 시스템 필요)
🏋️ 파인튜닝
모델 가중치 자체를 추가 학습
신입 재교육
고유 말투·형식·전문성을 늘 일정하게
비쌈(데이터·학습 필요)
그래서 뭘 골라야 할까?
핵심 규칙은 하나예요. 싸고 빠른 것부터. 대부분의 문제는 프롬프트만 잘 써도 풀리고, 안 되면 RAG, 그래도 안 되면 파인튜닝으로 갑니다.
‘싸고 빠른 것부터’ 사다리. 위에서 막히면 한 칸씩 내려갑니다. 많은 문제가 ①에서 끝나고, 대부분 ①+②(프롬프트+RAG)면 충분해요. ③ 파인튜닝은 정말 필요할 때만.
🛠️ 도서관 챗봇이라면· 프롬프트: “항상 존댓말로, 3문장 이내로 답해” 한 줄로 말투 교정 · RAG: 규정·공지 최신본을 검색해 정확한 시간·연체료 답변 · 파인튜닝: 우리 학교 특유의 안내 말투를 대량 예시로 체화(보통 여기까진 불필요)
🤝 셋은 경쟁이 아니라 ‘조합’현실의 AI 앱은 셋을 같이 씁니다. 프롬프트로 시작 → 부족하면 RAG로 지식 보강 → 그래도 부족하면 파인튜닝. 예컨대 “파인튜닝으로 말투를 잡고, RAG로 최신 사실을 채우고, 프롬프트로 그날그날 지시”처럼요.
🔍 더 깊이 — 경량 파인튜닝(LoRA)모델 전체를 다시 훈련하면 매우 비싸서, 요즘은 일부 작은 부품만 바꾸는 LoRA 같은 경량 파인튜닝으로 비용을 확 낮춰요. 그래도 데이터 준비가 필요해, 현실에선 대부분 프롬프트+RAG로 충분합니다.
💡 실전 팁 — 비싼 것부터 하지 마세요“성능이 아쉬우면 파인튜닝!”이라 생각하기 쉽지만, 많은 경우 프롬프트를 더 잘 쓰거나 RAG 자료를 정리하는 것만으로 해결됩니다. 가장 싸고 빠른 수단을 먼저 끝까지 짜내 보세요.
🧭
프롬프트 = 말 잘 걸기 · RAG = 자료 쥐여 주기 · 파인튜닝 = 다시 가르치기. 싸고 빠른 것부터, 막히면 한 칸씩 — 그리고 필요하면 조합한다.
🔍 더 깊이 — “단계별로 생각해 봐” 한 마디의 힘프롬프트에 예시를 주는 것(few-shot) 말고도, “차근차근 단계별로 생각해 봐”라고 덧붙이는 기법이 있어요(chain-of-thought). 시험에서 ‘풀이 과정을 쓰라’고 하면 정답률이 오르듯, AI도 생각을 잘게 나누면 각 단계에 더 공들여 복잡한 문제를 더 잘 풉니다.
🧱 파인튜닝의 승패 = 데이터 품질파인튜닝은 ‘방법’보다 ‘재료(데이터)’가 먼저예요. LoRA로 비용을 줄여도 넣는 예시가 엉터리면 결과도 엉터리(좋은 데이터가 좋은 결과). 그래서 파인튜닝을 고르기 전에 “양질의 데이터셋을 모을 수 있나?”를 꼭 먼저 점검해야 합니다.
✋ 직접 해 보기 (8장)
분류하기 — ① “더 친근한 말투로 바꿔 줘” ② “어제 올라온 공지를 반영해 줘” ③ “늘 법률 문서 같은 전문 말투로” — 각각 프롬프트·RAG·파인튜닝 중 무엇이 맞을까요?
순서 정하기 — 급식 챗봇이 가끔 틀린 메뉴를 말합니다. 가장 먼저 시도할 방법은? 왜 그렇게 골랐나요?
조합 설계 — 도서관 챗봇에 세 가지를 어떻게 함께 쓸지 한 문장으로 적어 보세요.
🔖 8장 끝 — 방법을 골라 조립하다프롬프트는 말 잘 걸기, RAG는 자료 쥐여 주기, 파인튜닝은 다시 가르치기. 셋 중 하나를 고르는 게 아니라 싸고 빠른 것부터 시도하고, 막히면 한 칸씩 내려가며 필요하면 조합하는 거예요. 코리는 이 사다리로 도서관 챗봇의 설계를 마무리했습니다.
🏁 응용편 완주! 코리는 여는 글에서 단체 채팅방의 반복되는 질문을 보며 “챗봇이 대신 답해 주면 되잖아?”라고 떠올렸어요. 그 막연한 아이디어가 이제 구체적인 설계도가 됐습니다. 엔진을 뜯어 이해하고(1~5장), 오픈북으로 정확한 정보를 쥐여 주고(6장), 손발로 직접 행동하게 하고(7장), 상황에 맞는 방법을 골라 조합하는 것(8장)까지 — 코리의 도서관 챗봇은 완성됐어요. 이제 여러분도 ‘AI로 무엇을, 어떻게 만들지’ 스스로 설계할 수 있습니다.
Epilogue · 닫는 글
AI의 내일, 그리고 코리
2016년 알파고, 2022년 챗GPT, 그리고 오늘. AI는 눈 깜짝할 사이에 발전해 왔고, 지금 이 순간에도 새로워지고 있어요. 하지만 괜찮습니다 — 여러분은 이제 ‘배우는 법’을 알거든요. 그림을 그렸으니, 이제 만들 차례입니다.
이 책을 쓰게 된 계기
사실 이 책에는 시작이 된 두 사람이 있었어요. 한 분은 비전공자로 인공지능 대학원에 진학했다가, 첫 학기에 쏟아지는 용어와 수식 앞에서 길을 잃은 분이었습니다. 머신러닝, 딥러닝, 트랜스포머, 어텐션 — 수업마다 조각은 배우는데, 그 조각들이 어디서 와서 어디로 이어지는지 전체 그림이 좀처럼 그려지지 않았다고 해요.
다른 한 분은 회사에서 “생성형 AI 도입해야 한다”는 말에, 이번엔 챗GPT, 다음엔 클로드, 그다음엔 또 새로운 도구를 매번 처음부터 쫓아다니느라 지친 분이었습니다. 도구가 바뀔 때마다 다시 초보가 되는 거예요.
두 분의 고민은 달라 보이지만 뿌리는 같았습니다. 기초와 큰 흐름을 한 번도 처음부터 끝까지 이어서 본 적이 없다는 것. 용어 사전은 많고 도구별 튜토리얼은 넘치는데, 데이터가 뭔지부터 챗GPT가 왜 그렇게 답하는지까지를 하나의 이야기로 꿰어 주는 지도가 없었어요. 그래서 이 책이 그 지도가 되려고 했습니다.
🗺️ 두 파트의 여정, 한 호흡으로
1부에서 데이터로 배우는 AI의 큰 그림을 그리고(머신러닝) → 2부에서 글을 조각내 다음 단어를 확률로 맞히는 엔진(토큰·어텐션·트랜스포머)을 뜯어본 뒤, 거기에 오픈북(RAG)과 손발(에이전트)을 달아 쓸모를 갖췄습니다. 흩어져 보이던 조각들이 이제 하나로 꿰어지죠.
이 큰 그림이 손에 있으면 달라지는 것이 있어요. 새 도구가 나와도 “아, 이건 어텐션 쪽을 바꾼 거구나” “이건 RAG를 개선한 거네” 하고 자기 지도 위에 놓을 수 있습니다. 매번 처음부터 배우는 게 아니라, 이미 가진 그림에 한 조각을 붙이는 것이니까요. 대학원에서 수식을 만나도 “이 수식이 하려는 일이 뭔지”를 이미 알고 있으니 겁이 줄어들고, 회사에서 어떤 AI를 도입할지 고를 때도 유행이 아니라 원리에 기반해 자신에게 맞는 도구를 선택할 수 있어요.
설계할 수 있으면 만들 수 있다
그리고 지금, 한 가지 더 말씀드리고 싶은 게 있어요. 여러분이 이 책에서 익힌 건 ‘이해’만이 아닙니다. 8장에서 프롬프트·RAG·파인튜닝을 골라 조합하는 법까지 배웠잖아요. 그건 곧 설계예요. “이 문제엔 RAG가 맞겠다, 프롬프트는 이렇게 쓰자” — 이런 판단을 내릴 수 있다면, 실제로 만드는 일은 생각보다 가까이 있습니다.
요즘은 코드를 한 줄도 모르는 사람이 AI에게 “이런 앱 만들어 줘”라고 말하면 진짜 만들어지는 시대예요. 바이브 코딩(vibe coding)이라고 불리는 이 방식은, AI가 코드를 대신 짜 주니 사람은 무엇을 만들지 설계하는 일에 집중하면 됩니다. 그런데 무엇을 만들지 설계하려면 결국 AI가 어떻게 작동하는지 알아야 하잖아요. 여러분이 이 책에서 해 온 바로 그 일이에요.
🎯
코드를 직접 쓰든, AI에게 시키든 — 설계할 줄 아는 사람에게 도구는 언제나 따라옵니다. 코리가 도서관 챗봇을 설계할 수 있게 된 것처럼, 여러분도 이제 자기만의 문제를 AI로 풀 수 있는 설계 능력을 갖췄어요.
진짜 이해했다는 증거, 그리고 사람의 몫
어떤 것을 남에게 쉽게 설명할 수 있을 때, 그게 바로 진짜 이해한 거예요. 오늘 저녁 가족에게 이렇게 말해 볼 수 있다면 — “AI? 그거 사실 거대한 정교한 끝말잇기인데, 거기에 오픈북이랑 손발을 달아준 거야” — 이 책은 제 몫을 다한 셈입니다.
그리고, 사람의 몫. AI는 점점 똑똑해지지만 똑똑한 것과 옳은 것은 다릅니다. 답을 한 번 더 확인하는 신중함, 좋은 데이터와 사람의 권리를 존중하는 태도, 그리고 모든 일의 최종 책임 — 이건 아무리 거대한 AI도 대신해 주지 못하는, 영원히 우리 사람의 몫이에요.
🍎 코리에게서“사과 단맛 하나 제대로 못 맞히던 제가, 이제 AI로 무언가를 설계할 수 있게 됐어요. 여러분도 할 수 있어요. 큰 그림을 그리고, 부품을 익히고, 조합하고 — 그게 전부였거든요. 이제 만들러 가 볼까요?”
🎉
외우지 말고, 그림을 그리세요 — 들어가는 말의 그 약속으로 시작해 여기까지 왔습니다. 🍎 → ⚙️ → 🚀 그림은 완성됐어요. 이제, 여러분이 만들 차례입니다. 축하합니다!
Appendix
부록 — 용어 사전 · 점검 · 해설
여기까지 코리와 함께 엔진을 뜯어보고, 그 부품으로 도서관 챗봇까지 조립했다. 이 부록은 지나온 길을 한눈에 되짚는 지도다. 먼저 핵심 용어를 한 줄 뜻으로 모았고, 그다음 스스로 점검하는 문제, 마지막으로 그 해설을 담았다. 막히는 개념이 나오면 언제든 이 페이지로 돌아오면 된다.
🎯
용어는 외우는 게 아니라 연결하는 것이다. 토큰 → 임베딩 → 어텐션 → logits → temperature로 이어지는 흐름이 머릿속에 그려지면, 이 표의 낱말들은 그 흐름 위의 정거장이 된다.
01핵심 용어 사전
1부에서 그린 AI의 지도와 2부에서 뜯어본 엔진의 부품들을 한 줄씩 정리했다. ‘정교한 끝말잇기’, ‘사과 가게’ 같은 비유가 어디에 해당하는지 떠올리며 읽어 보자.
용어
한 줄 뜻
LLM
대규모 언어 모델. 엄청난 양의 글을 학습한, 언어를 다루는 거대 프로그램
트랜스포머
요즘 LLM을 만드는 기본 부품. 층층이 쌓아 모델 구성
토큰 / 토큰화
글을 잘게 나눈 한 조각 / 글을 토큰들로 쪼개는 과정
임베딩
토큰 번호를 ‘의미 좌표’로 바꾼 것
벡터
숫자 여러 개를 한 줄로 적은 목록. ‘좌표’로 이해
위치 인코딩
각 단어에 ‘몇 번째 자리’인지 알려 주는 장치
어텐션
각 단어가 다른 어떤 단어에 주목할지 정하는 핵심 메커니즘
Q · K · V
질문(찾는 것) · 이름표(가진 것) · 알맹이(전달할 정보)
softmax
점수들을 합이 100%인 확률·비중으로 바꾸는 도구
멀티헤드
여러 관점(헤드)으로 어텐션을 동시에 돌리는 방식
FFN
각 단어가 혼자 정보를 가공하는 단계이자 지식 창고
비선형성
AI가 복잡한 규칙을 배우게 해 주는 ‘꺾는’ 함수(예: ReLU)
잔차 연결
결과를 덮어쓰지 않고 더해, 정보에 지름길을 내는 장치
정규화
숫자가 폭주/붕괴하지 않게 범위를 맞추는 안전장치
logits
다음 단어 후보마다 매겨진 원시 점수(확률 되기 전)
temperature
답의 다양성·창의성을 조절하는 다이얼
base / post-training
다음 단어만 배운 기본 모델 / 그 위에 예절·안전을 더하는 학습
창발성
규모가 커질 때 가르치지 않은 능력이 예고 없이 나타나는 현상
환각
AI가 틀린 내용을 그럴듯하게, 당당하게 지어내는 현상
과적합 / 일반화
학습 데이터를 외워 새 데이터에 약해짐 / 처음 보는 데이터에도 통하는 실력
손실 함수
지금 얼마나 틀렸나를 재는 벌점 점수판
RAG
답하기 전에 관련 자료를 검색해 함께 넣어 주는 방법(검색 증강 생성)
벡터 검색 / 벡터 DB
의미 좌표가 가까운 자료를 찾는 검색 / 그 좌표들을 저장한 창고
추천 시스템
‘너와 좌표가 가까운 아이템’을 찾아 추천 — RAG와 같은 임베딩 원리
도구 호출 (function calling)
모델이 계산기·검색 같은 도구를 ‘요청’하면 시스템이 실행해 결과를 돌려줌
에이전트 / ReAct
도구를 스스로 골라 쓰는 LLM / 생각→행동→관찰을 반복하는 방식
LangChain · LangGraph
RAG·도구·기억을 레고처럼 조립해 AI 앱을 만드는 도구(라이브러리)
프롬프트 / few-shot
모델에 주는 지시문 / 예시 몇 개를 같이 줘 패턴을 따라 하게 하는 법
파인튜닝 (LoRA)
모델을 추가 데이터로 더 훈련해 말투·형식을 체화 / 일부만 바꾸는 경량 방식
🧵 맥락 잇기
표의 아래쪽 절반(RAG·벡터 검색·도구 호출·에이전트·파인튜닝)은 코리가 도서관 챗봇을 조립하며 실제로 쓴 부품들이다. 위쪽 절반이 ‘엔진 내부’라면, 아래쪽 절반은 그 엔진을 우리 문제에 붙이는 ‘외부 배선’인 셈이다.
02스스로 점검하기
정답을 바로 넘겨보기 전에, 코리가 된 셈 치고 한 문제씩 소리 내어 답해 보자. 막히면 그 개념이 다시 볼 지점이다.
1. 챗봇이 하는 일을 한 문장으로 설명해 보세요. (힌트: 게임 하나)
2. AI가 strawberry의 r 개수를 자주 틀렸던 이유는?
3. king − man + woman ≈ queen이 가능한 건 임베딩의 어떤 성질 때문일까요?
4. “개가 사람을 물었다”와 “사람이 개를 물었다”를 AI가 구별하려면 무엇이 필요할까요?
5. 어텐션에서 Q, K, V는 각각 무슨 역할인가요? (도서관 비유로)
6. FFN의 ‘굽히기(비선형)’가 없으면 왜 곤란할까요?
7. temperature를 높이면 답은 어떻게 달라질까요?
8. GPT와 Claude는 뼈대가 같다는데, 무엇이 다를까요? (세 가지)
9. RAG는 한 문장으로 무엇인가요? 환각을 왜 줄여 줄까요?
10. ‘도구 호출’과 ‘에이전트’의 차이를 한 줄로 설명해 보세요.
11. 프롬프트·RAG·파인튜닝은 보통 어떤 순서로 시도하나요? 그 이유는?
03점검 문항 해설 답안
정답을 맞혔는지보다, 왜 그런지 스스로 말로 풀 수 있는지가 더 중요하다. 표현이 조금 달라도 흐름이 맞으면 충분하다.
1. “지금까지의 글 다음에 올, 가장 그럴듯한 다음 단어를 맞히는 일”을 반복하는 것. 긴 답변도 단어를 하나씩 이어 붙인 결과예요.
2. AI는 글자가 아니라 토큰(숫자 덩어리)으로 처리하기 때문. 글자 단위로 나눈 적이 없어 글자 수 세기가 어려웠어요.
3. 임베딩이 단어를 의미 좌표(벡터)로 표현하고, 그 좌표에 방향·거리 같은 의미 구조가 담겨 있기 때문. 그래서 더하고 빼는 계산이 의미상으로도 말이 됩니다.
4.위치(순서) 정보. 어텐션만으론 순서를 모르므로 위치 인코딩(번호표)으로 누가 먼저인지 알려줘야 해요.
5.Q=찾는 것, K=각 단어가 내세우는 특징, V=잘 맞았을 때 건네주는 정보. 검색어(Q)로 색인(K)을 비교해 잘 맞는 책의 내용(V)을 더 많이 가져오는 것과 같습니다.
6. 비선형이 없으면 아무리 층을 쌓아도 한 층(곧은 선)과 똑같아져 복잡한 규칙을 표현 못 해요. ‘굽히기’가 있어야 곡선 같은 패턴을 배웁니다.
7. 덜 확실한 후보도 가끔 뽑혀 더 다양·창의적(때론 엉뚱)으로 느껴집니다. 낮추면 가장 확실한 답만 골라 일관·보수적이 되고요.
8. ① 학습 데이터와 규모, ② 설정(층·헤드·크기), ③ 사후 학습 방식. 뼈대는 같지만 이 셋이 달라 성격이 갈립니다.
9. 답하기 전에 관련 자료를 ‘의미가 가까운지’로 찾아 함께 넣어 주는 것(검색 증강 생성). 모델이 모르는 걸 지어내는 대신 자료를 보고 답하므로 환각이 줄고 출처도 댈 수 있어요.
10. 도구 호출은 모델이 도구 하나를 ‘써 달라’고 요청하는 단일 동작이고, 에이전트는 여러 도구를 생각→행동→관찰로 스스로 골라 가며 반복해 목표를 이루는 것.
11. 보통 프롬프트 → RAG → 파인튜닝 순. 싸고 빠른 것부터 시도하기 때문이에요. 많은 문제가 프롬프트만 잘 써도 풀리고, 대부분 프롬프트+RAG면 충분합니다.
🔖 부록 끝
용어 사전은 흐름의 지도, 점검 문제는 그 흐름을 스스로 걸어 보는 연습, 해설은 되짚는 이정표다. 여기까지 왔다면 코리처럼 엔진의 부품 이름을 대고, 그 부품이 도서관 챗봇 어디에 들어가는지 말할 수 있을 것이다. 막히는 낱말이 생길 때마다 이 페이지로 돌아오자.