전문 지식은 필요 없지만, AI를 '어느 정도' 이해하고 싶은 당신께
챗GPT에게 말을 걸면 마치 사람처럼 자연스럽게 대답합니다. 이런 대화는 어떻게 가능한 걸까요?
챗GPT가 우리 말을 어떻게 받아들이고, 또 어떻게 답장을 만들어내는지를 이해하는 데 꼭 필요한 3가지 개념을 소개합니다: 바로 프롬프트(Prompt), 토큰(Token), 파인튜닝(Fine-tuning)입니다.
챗GPT와 같은 LLM에게 우리가 건네는 모든 대화는 모델에게 내리는 일종의 ‘명령어'라고 볼 수 있습니다. 무엇을 해야 할지 알려주는 역할이지요.
'강아지는 왜 이렇게 사람을 좋아해?'
'캔 뚜껑을 따는 너구리를 그려 줘.'
이처럼 우리가 챗GPT에게 텍스트로 입력하는 문장을 프롬프트(Prompt)라고 부릅니다. 그럼, 프롬프트는 목적만 간결하게 전달하면 되는 걸까요?
그렇지 않습니다. 프롬프트에 사용한 말투, 명령 방식, 맥락에 따라 LLM의 답변이 크게 달라집니다. 지시를 잘 내리는 장군이 군대를 올바르게 이끌듯이, 같은 LLM이라도 누가 어떻게 명령을 내리느냐에 따라 활용도가 다르지요.
프롬프트를 효과적으로 설계해 LLM의 성능을 끌어올리는 기술을 ‘프롬프트 엔지니어링(Prompt Engineering)’이라고 부르는데요. 말 그대로, LLM이라는 시스템을 다루는 공학(engineering)이라고 볼 수 있습니다.
LLM은 우리가 하는 말을 어떻게 이해하는 걸까요? 겉보기에는 문장 자체를 알아듣는 듯 보이지만, 사실 LLM은 우리가 보낸 문장, 즉 프롬프트를 ‘토큰(Token)’이라는 단위로 잘게 나눠서 이해합니다.
예를 들어 '사과는 빨갛다'라는 문장이 있다면, LLM은 이 문장을 '사과', '는', '빨갛', '다'처럼 작은 언어 단위로 쪼개고, 이를 토큰이라고 부릅니다. 단어 하나가 여러 토큰으로 나뉘기도 하고, 또 짧은 단어는 하나의 토큰이 되기도 하지요.
LLM은 이 토큰들을 다시 자신이 이해할 수 있는 숫자로 변환해 계산합니다. 비록 사람처럼 말하지만, 실제로는 모든 작업을 숫자 기반으로 이해하고 처리하는 컴퓨터 모델이기 때문이지요.
이때 아무렇게나 숫자를 붙이는 대신, 단어의 의미와 쓰임새를 반영한 숫자 묶음, 즉 '벡터(Vector)'로 변환됩니다. 예를 들어 ‘커피’와 ‘카페’처럼 비슷한 문맥에서 자주 등장하는 단어들은 벡터 값도 서로 비슷하게 나타납니다. 이렇게 토큰을 벡터로 바꾸는 과정을 ‘임베딩(Embedding)’이라고 부릅니다..
간단히 말하면, 프롬프트를 입력받은 LLM은 문장을 토큰으로 쪼갠 후, 자신이 이해할 수 있도록 각 토큰을 의미가 담긴 숫자 묶음인 벡터로 바꾸는 절차, 즉 임베딩을 거칩니다. 예시를 살펴볼까요?
1. 사용자가 '커피가 유명한 나라를 알려 줘'라고 프롬프트를 입력
2. LLM은 ["커피", "가", "유명", "한", "나라", "를", "알려", "줘"]와 같이 문장을 토큰으로 쪼갬
3. 다시 이 토큰을 [0.23, -1.54, 2.89, …]와 같은 벡터로 변환 (이 과정을 임베딩이라 부름)
*이해를 돕기 위한 예시일 뿐, 실제 토큰 분리 방식이나 벡터값은 다를 수 있어요!
LLM은 기본적으로 아주 똘똘합니다. 질문에 답하고, 글을 쓰고, 번역도 잘할 수 있지요. 하지만 ‘특정한 역할’이나 ‘특정한 지식’을 요구하는 상황에서는 한계가 생깁니다.
의학 상담용, 법률 문서 요약용, 온라인 쇼핑몰 고객 응대용 챗봇과 같이 특수한 임무를 맡기 위해서는 추가로 특정 데이터를 주고 다시 학습시키는 과정이 필요한데요. 이 과정을 ‘파인튜닝(Fine-tuning)’이라고 합니다.
'미세 조정'이라는 이름에서 알 수 있듯이, 파인튜닝은 기존 GPT 모델을 특정 목적이나 분야에 맞게 추가 데이터로 다시 학습시키는 과정인데요. 이것저것 두루두루 잘하는 재간둥이 같은 GPT가 파인튜닝을 거치면 특정 분야의 전문가가 됩니다. 예시를 살펴볼까요?
예시 1: 브런치스토리 고객 상담용 챗봇
브런치스토리에서 GPT를 활용해 CS 챗봇을 만들고 싶다고 가정해 보겠습니다.
지금 챗GPT에게 브런치스토리의 상세한 이용약관이나 공지사항을 물어보면 정확한 대답을 얻기가 어렵습니다. 하지만 브런치스토리의 이용약관, 자주 묻는 질문, 응대 가이드 등을 모아, 그 데이터를 학습시키는 파인튜닝 과정을 거치면 우리는 GPT를 브런치스토리 전용 CS 담당자로 만들 수 있습니다.
예시 2: 민속촌 놀이를 위한 맞춤 말투 GPT
이번엔 민속촌에서 GPT를 활용해 놀이형 콘텐츠를 만든다고 상상해 볼까요?
관람객이 “이곳에 귀신이 나온다던데 사실인가요?”라고 물었을 때, GPT에게 조선 시대 말투와 인물 설정을 익히도록 파인튜닝을 해두면 이렇게 답할 수 있습니다:
“허허, 그런 말씀 마소. 이 고을엔 귀신을 내쫓는 팥이 잔뜩 있소!”
이처럼 단순 정보 전달을 넘어 분위기와 말맛까지 살리는 GPT를 만들 수 있습니다.
하지만 헷갈리면 안 됩니다. 파인튜닝을 거쳤다고 해서 GPT가 전보다 더 똑똑해지는 건 아닙니다. 정해진 목적에 더 잘 맞도록 조정되었을 뿐이지요. AI에게 데이터는 교과서와 같다고 했는데요. 파인튜닝은 교양 과목을 배운 뒤 전공 서적을 통해 특정 분야 전문가를 만드는 과정입니다. 지능은 그대로인 동일한 인물이지만, 좀 더 특화된 분야가 생긴다고 볼 수 있습니다.
그렇다면 모든 분야의 질문에 다 답할 수 있는 LLM 하나만 만들면 되는 게 아닐까, 생각할 수도 있는데요. 겉보기엔 편해 보이겠지만, 온갖 정보를 모두 끌어안게 되면 LLM은 지나치게 커지고 복잡해집니다. 속도는 느려지고 비용은 높아지며, 응답도 불안정해질 수 있지요. 파인튜닝은 이런 문제를 해결해 줍니다.
[키워드 정리]
• 토큰: GPT가 문장을 쪼개 이해하는 최소 단위
• 벡터: 토큰의 의미와 단어 간 관계를 수치로 나타낸 숫자 묶음
• 임베딩: 토큰을 벡터로 바꾸는 과정
• 프롬프트: 우리가 GPT에게 텍스트 형태로 던지는 질문, 명령, 입력
• 파인튜닝: 추가 데이터를 사용해 GPT에게 새로운 역할이나 전문 지식을 학습시키는 과정
챗GPT가 우리에게 답변을 주기까지 어떤 과정을 거치는지, 그리고 GPT가 특정 분야에 특화되도록 어떻게 학습할 수 있는지를 살펴보았습니다. GPT가 Generative Pre-trained Transformer(생성하는, 사전 학습된 트랜스포머 구조)의 약자라고 했는데요. 도대체 T에 해당하는 '트랜스포머 구조'란 무엇일까요?
다음 글에서는 트랜스포머 구조가 무엇인지, 그리고 어떻게 LLM이 사람처럼 자연스러운 대화를 할 수 있는지를 살펴보겠습니다.
전문적인 지식까지는 아니어도, AI를 어느 정도 이해하고 싶으시다면 다음 주 글도 기대해 주세요!
먀. AI 뉴스레터를 구독하시면 매주 재밌는 AI 이야기를 받아보실 수 있어요!