에이스(생성형 AI)의 정체를 밝혀드립니다
이 글은 「생성형 AI로 시작하는 데이터 분석」 9회 연재 중 2회입니다. 전체 목차 보기
안녕하세요, 헬로데이터사이언스 나성호입니다.
지난 1회차에서는 인공지능이 매뉴얼만 겨우 따르던 ‘신입사원’에서 시키지 않은 일까지 알아서 척척 해내는 ‘에이스’가 되기까지의 과정을 살펴봤습니다. 그리고 글 마지막에는 “아무리 에이스라도 검토 없이 그냥 믿고 쓰면 안되고, 최종 결재는 사람이 해야 한다”는 이야기를 드렸습니다. 오늘은 그 이유를 이해하기 위한 첫 번째 단추를 소개하겠습니다. 생성형 AI는 대체 어떤 원리로 답변을 만들어내는지부터 살펴보겠습니다.
결론부터 말씀드리면, 이 에이스의 정체는 초강력 자동완성기입니다.
스마트폰 자동완성과 다를 바 없습니다
여러분은 스마트폰으로 문자를 보낼 때 키보드에서 다음 단어를 추천해주는 기능을 써보신 적 있죠? “오늘 저녁에”라고 치면 “뭐”, “약속”, “시간” 같은 단어들이 후보로 뜹니다. 그중 하나를 누르면 문장이 이어지니 훨씬 빠르게 입력할 수 있죠.
생성형 AI가 답을 만드는 원리도 본질적으로 이와 같습니다. 다만 스마트폰 자동완성은 내가 최근에 쓴 몇 개의 단어만 보고 추천하지만, 생성형 AI는 수십억 개의 문서를 학습했기 때문에 훨씬 정교하게 “다음에 올 가능성이 가장 높은 조각”을 계산합니다.
강의 자료에 나온 예시를 하나 보여드리겠습니다. “고객 이탈 원인 후보는”까지 입력했을 때, 생성형 AI 내부에서는 다음에 올 말의 확률을 이렇게 계산합니다.
| 다음 후보 | 확률 |
|---|---|
| 채널 | 32% |
| 나이 | 21% |
| 접속 | 12% |
| 로그인 | 9% |
| 기타 | 26% |
생성형 AI는 (정확하게 말하면 LLM1은) 이 후보들 중에서 다음 조각을 골라 이어붙입니다. 그리고 “고객 이탈 원인 후보는 채널”까지 만들어진 문장을 다시 보고, 또 다음 조각들의 확률을 계산하는 거죠. 이 과정을 계속 반복하면서 한 글자씩, 또는 한 단어씩 추가하는 방식으로 문장을 완성해 나가는 겁니다.
사실 이해를 돕기 위해 단순화한 부분이 하나 있습니다. 지금까지는 마치 확률이 가장 높은 후보 하나만 기계적으로 고르는 것처럼 설명했는데, 이런 방식(그리디 디코딩)도 실제로 쓰이긴 합니다. 다만 우리가 흔히 사용하는 ChatGPT나 Claude 같은 서비스는 대부분 확률이 높은 후보들 중에서 약간의 무작위성을 섞어서 고르는 샘플링 방식을 기본으로 씁니다. 그래서 같은 질문을 여러 번 반복해서 입력해도 답변이 조금씩 달라집니다. 그런 경험, 다들 해보셨을 겁니다.
여기서 꼭 기억하셔야 할 게 있습니다. 생성형 AI는 정답을 알고 고르는 게 아니라, LLM이 학습한 패턴에서 가장 확률이 높은 조각을 이어 붙이는 것이라는 겁니다. 그래서 생성형 AI가 작성한 답변에는 사실이 아닌 내용(환각)이 나타날 수 있다는 것을 인정해야 합니다. 환각에 관한 내용은 3회차에서 본격적으로 다루도록 하겠습니다.
토큰, AI가 세상을 쪼개는 단위
생성형 AI가 답변을 작성하는 과정에서 “다음에 올 가능성이 가장 높은 조각”이라는 표현을 사용했는데요. 이 조각을 전문 용어로 토큰(Token)이라고 부릅니다. 생성형 AI는 우리가 입력한 문장을 통째로 이해하지 않습니다. 먼저 문장을 토큰이라는 단위로 잘게 쪼갭니다. 이 토큰들의 목록을 사전이라고 하는데, 최신 LLM이 쓰는 사전의 크기는 20만 개 정도 됩니다.2
초기 언어 모델은 토큰을 단어나 형태소3 정도로 나눴습니다. 그런데 최근 대규모 언어 모델에서 사용하는 토큰은 조금 다릅니다. 자주 함께 등장하는 문자열 조각을 토큰으로 삼습니다. 그래서 토큰 하나가 꼭 의미를 가진 단어가 아닐 수도 있습니다.
그런데 영어와 한글은 토큰으로 쪼개지는 방식이 꽤 다릅니다.
| 구분 | 영어 | 한글 |
|---|---|---|
| 기본 특징 | 공백으로 단어 경계가 명확함 | 조사, 어미가 단어에 붙어 있음 |
| 토큰 수 | 상대적으로 적은 편 | 상대적으로 많은 편 |
| 예시 문장 | Transformer is a type of deep learning. |
트랜스포머는 딥러닝의 한 종류다. |
같은 뜻을 담은 두 문장을 아래 각주에서 언급한 o200k_base 토크나이저로 실제로 쪼개보면 차이가 확연합니다. 영어 문장은 Transformer/is/a/type/of/deep/learning/.로 8개 토큰입니다. 워낙 자주 등장하는 단어라 Transformer 전체가 토큰 하나에 배정되어 있죠. 반면 한글 문장은 트/랜/스/포/머/는/딥/러/닝/의/한/종류/다/.처럼 대부분 음절 단위로 흩어집니다. 게다가 딥은 한 음절이 다시 두 조각으로 쪼개져서, 눈에 보이는 조각은 14개인데 실제로는 15개 토큰입니다. 같은 의미를 담은 문장인데 한글이 영어의 약 2배가 되는 셈이죠.
이게 비용과도 연결됩니다. 대부분의 생성형 AI 서비스는 토큰 단위로 처리량을 계산하고 이용요금을 매기거든요. 그래서 실무에서 비용을 아끼려면 코드 주석이나 가이드라인을 영어로 써두는 편이 유리할 수 있습니다.
프롬프트 — 에이스에게 일을 지시하는 방법
생성형 AI에게 어떤 일을 시킬 때 우리가 입력하는 문장을 프롬프트(Prompt)라고 부릅니다. 신입사원에게 일을 시킬 때도 “이거 좀 해줘” 한마디보다 “이런 목적으로, 이런 형식으로, 이런 조건에 맞춰서 해줘”라고 구체적으로 말해줄 때 우리가 원하는 결과물을 얻을 확률이 높아지죠. 프롬프트도 마찬가지입니다.
중요한 건, 생성형 AI가 프롬프트 없이는 우리 의도를 절대 알아차릴 수 없다는 점입니다. ChatGPT 대화창에 아무것도 입력하지 않은 채 모니터만 뚫어지게 쳐다보고 있어봐야, ChatGPT는 어떠한 답변도 내놓지 않잖아요? 프롬프트는 우리가 일을 시키는 시작점이라고 보시면 됩니다.
그런데 프롬프트에 필요한 정보가 빠져 있으면, 생성형 AI는 그 빈틈을 자기 마음대로 채워 넣습니다. 앞에서 제시했던 토큰별 확률표를 떠올려 보시기 바랍니다. 생성형 AI는 모자란 정보를 사용자에게 되묻지 않습니다. 그냥 그 상황에서 확률이 가장 높은 “그럴듯한” 토큰을 골라버립니다.
그래서 우리는 프롬프트를 명확하게 작성하는 법을 배워야 합니다. 원하는 결과가 나오도록 프롬프트를 설계하고 다듬는 일을 프롬프트 엔지니어링이라고 부릅니다. 물론 처음부터 긴 프롬프트를 완성하기는 어렵습니다. 가벼운 프롬프트로 시작해서 답변을 확인하고, 필요한 내용을 단계별로 덧붙여가며 다듬으면 됩니다. 프롬프트에 무엇을 담아야 하는지는 5회차에서, 대화를 이어가며 다듬는 방법은 6회차에서 실습과 함께 다루겠습니다.
문맥 — 에이스가 지금 기억하고 있는 것
마지막으로 하나만 더 짚고 가겠습니다. 생성형 AI가 다음에 올 토큰을 예측할 때 한 번에 참고하는 입력 전체를 문맥(Context)이라고 합니다. 지금 내가 입력한 프롬프트뿐만 아니라, 이전에 나누었던 대화 내용과 첨부한 파일, 그리고 ChatGPT 같은 서비스가 미리 심어둔 지침(시스템 프롬프트)까지 전부 문맥에 포함됩니다.
문제는 이 문맥에 한계가 있다는 겁니다. 생성형 AI가 한 번에 참고할 수 있는 문맥의 크기를 문맥 창(Context Window)이라고 부르는데, 대화가 너무 길어지면 예전에 나눈 이야기는 이 문맥 창을 벗어나 생성형 AI가 더 이상 기억하지 못하게 됩니다. (사실 유료 플랜과 무료 플랜의 답변 차이는 사용할 수 있는 모델이 다르다는 점과 함께, 문맥 창의 크기도 한몫합니다.)
신입사원한테 아침에 지시했던 내용을 오후 늦은 시간에 “아까 말한 거 있잖아”라며 뭉뚱그려 물어보면 헷갈려 하는 것과 비슷합니다. 생성형 AI에게 중요한 내용은 매번 명확하게 다시 짚어주시는 게 안전합니다. 그래도 너무 걱정하실 필요는 없습니다. 최근에 제공되는 서비스들은 문맥 창이 꽤 커져서 초창기와 달리 기억을 꽤 하는 편입니다.
오늘 이야기 정리
정리하면 이렇습니다. 생성형 AI는 우리가 입력한 문장(프롬프트)을 토큰이라는 조각으로 쪼갠 뒤, 지금까지의 문맥을 참고하여 다음에 올 가장 확률 높은 토큰을 계속 이어 붙이는 방식으로 답변을 작성합니다. 생성형 AI의 답변을 우리가 원하는 방향으로 끌고 갈 수 있는 가장 강력한 수단은 바로 프롬프트입니다.
이 원리를 알고 나면 자연스럽게 드는 질문이 하나 있습니다. “그럼 확률로 찍은 답이 항상 맞는 건 아니지 않나?” 정확히 맞습니다. 다음 3회차에서는 이 ‘확률 찍기’가 어떻게 그럴듯한 거짓말, 즉 환각으로 이어지는지, 그래서 이 똑똑한 에이스에게 너무 의지하면 오히려 우리의 두뇌가 게을러진다는 실제 연구 결과까지 함께 살펴보겠습니다. 감사합니다.
-
LLM은 대규모 언어 모델(Large Language Model)의 줄임말입니다. 방대한 텍스트를 학습해서 다음에 올 조각의 확률을 계산하는 인공신경망을 가리키며, 우리가 흔히 쓰는 ChatGPT·Claude 같은 생성형 AI 서비스가 바로 이 LLM을 기반으로 만들어졌습니다. ↩
-
OpenAI의 GPT-4o가 사용하는 o200k_base 토크나이저 기준으로 200,019개의 토큰이 사전에 등록되어 있습니다. OpenAI tiktoken 저장소 ↩
-
형태소는 의미를 가진 최소 단위를 말합니다. 예를 들어 ‘가방’을 ‘가’와 ‘방’으로 나눌 수 없으므로 ‘가방’이 형태소가 됩니다. ↩
Comments