본문으로 건너뛰기
실습하기

생성형 AI가 프롬프트를 이해하는 원리

앞서 소개한 것처럼, AI는 함수(Function)입니다. 다만 수학 시간에 배운 f(x) = 3x + 2와 같은 단순한 함수가 아닌, f(수 없이 많은 변수) = 광범위한 출력 경우의 수와 같이 평범한 사람이 이해하기 어려울 정도로 복잡한 함수입니다.

사람의 지능이 로부터 발현되는 것과 같이, AI의 지능은 복잡한 함수들로 구성된 모델로부터 나옵니다. AI 모델은 데이터를 학습해 사람의 뇌와 유사한 뉴런(뇌의 신경세포)을 만들고, 이를 바탕으로 주어진 문제를 해결합니다.

최근 출시된 생성형 AI의 뉴런은 트랜스포머(Transformer)라는 모델을 활용합니다. 트랜스포머는 입력받은 프롬프트를 단어와 토큰과 같은 하위 단위로 나누어 분석하고, 이를 바탕으로 다음 단어를 확률적으로 예측해 문장을 생성합니다.

AI가 프롬프트를 이해하는 과정은 크게 4단계로 나눌 수 있습니다.


1. 토큰화(Tokenization)

토큰은 문장을 단어, 구두점, 숫자 등으로 나눈 작은 단위를 의미합니다. AI가 프롬프트 "고양이는 나무 위에 올라갔다"를 입력받으면, AI는 이 문장을 토큰으로 나눕니다.

토큰화된 문장 예시
고양이 / 는 / 나무 / 위 / 에 / 올라갔다

각각의 토큰은 AI가 학습한 데이터에서 의미를 찾아내고, 문장의 문맥을 파악하는 것을 돕습니다. 토큰은 AI 모델마다 조금씩 다르게 정의될 수 있으나, 일반적으로 아래와 같이 정의됩니다.


영문 토큰화

영문 토큰화는 주로 공백이나 구두점(punctuation, 마침표와 같이 문장에 사용하는 기호)을 기준으로 단어를 분리합니다.

예시: "The quick brown fox jumps over the lazy dog."

이 문장을 토큰화하면 다음과 같이 10개의 토큰으로 분리할 수 있습니다.

  • The
  • quick
  • brown
  • fox
  • jumps
  • over
  • the
  • lazy
  • dog
  • .

여기서 각 단어와 구두점이 하나의 토큰이 됩니다.

하나의 단어도 접두사, 패턴, 접미사에 따라 여러 토큰으로 분리될 수 있습니다. 예를 들어, "unconcious"라는 단어는 un(반대를 나타내는 접두사), conc(영어 단어에 자주 나타나는 패턴), ious(영어 단어에 자주 나타나는 접미사)라는 하위 요소로 분리되어 3개의 토큰으로 인식될 수 있습니다.


한글 토큰화

한글의 토큰화는 조금 더 복잡합니다. 한글은 조사와 어미 변형이 많기 때문에, 주로 단어 단위 토큰화보다는 형태소(언어에서 의미를 갖는 최소 단위) 기준 토큰화를 사용합니다.

예시: "나는 도서관에서 책을 읽고 있었다."

이 문장을 토큰화하면 다음과 같이 11개의 토큰으로 분리될 수 있습니다.

  • 나(명사)
  • 는(조사)
  • 도서관(명사)
  • 에서(조사)
  • 책(명사)
  • 을(조사)
  • 읽(동사 어근)
  • 고(연결 어미)
  • 있(동사 어근)
  • 었(과거 시제어미)
  • 다(종결 어미)

일반적으로 동일한 단어수의 문장이라도, 한글은 영문보다 2배 이상의 토큰을 사용합니다.

토큰을 처리하는 방식은 AI 모델에 따라, 처리하는 글자의 종류에 따라 다릅니다. 챗GPT는 일반적으로 1-4개 알파벳 당 1개의 토큰을 할당하고, 한글은 형태소 단위로 토큰화합니다.

참고: 챗GPT와 같은 대부분의 텍스트 생성 AI는 입력 및 출력된 토큰 수를 바탕으로 비용을 청구합니다. 따라서 불필요한 토큰을 줄이는 것이 중요합니다.


2. 임베딩(Embedding)

토큰화된 단어들은 숫자 벡터로 변환됩니다. 예를 들어, 고양이라는 단어는 다음과 같은 벡터(Vector, 단어나 문장을 숫자로 표현한 것)로 변환될 수 있습니다.

고양이의 벡터 값
[0.11, 0.34, 0.56, ...]

비슷한 의미를 가진 단어들은 비슷한 벡터 값을 가집니다. 예를 들어, 강아지의 벡터 값은 다음과 같이 비슷하게 변환될 수 있습니다.

강아지의 벡터 값
[0.12, 0.84, 0.32, ...]

이렇게 비슷한 벡터 값을 가진 단어들은 벡터 공간에서 가깝게 위치합니다.


3. 문맥 이해

AI는 토큰화된 단어들의 벡터 값을 바탕으로 문장의 문맥을 이해합니다. 예를 들어, 고양이나무라는 단어가 함께 나오면, AI는 이 두 단어가 어떤 관계를 가지는지 파악합니다.

여기에는 문장의 각 단어가 문장 내 다른 단어들과 어떻게 연결되는지 계산하는 어텐션 메커니즘(Attention Mechanism)을 사용합니다. 어텐션 메커니즘은 문장의 각 단어가 다른 단어들과 어떻게 연결되는지 계산하여, 중요한 단어에 더 높은 가중치를 부여합니다.

인공지능 신경망 모델 중 하나인 트랜스포머(Transformer) 모델은 어텐션 메커니즘을 활용해 모든 단어들 간의 관계를 동시에 파악합니다. 예를 들어, 고양이나무가 어떻게 상호작용하는지를 이해하고, 고양이올라갔다는 동작을 수행하는 주체임을 파악합니다.

챗GPT는 트랜스포머 모델을 기반으로 어텐션 메커니즘을 통해 프롬프트의 문맥을 이해합니다.


4. 답변 생성

AI는 입력된 벡터를 바탕으로 첫 번째 단어를 예측합니다. 이 과정에서 AI는 사전 학습한 언어 모델을 활용해 주어진 문맥에서 가장 적합한 단어를 선택합니다. 예를 들어, "고양이"라는 단어가 첫 번째로 예측되어 답변에 포함될 수 있습니다.

첫 번째 단어가 예측된 후, AI는 이 단어를 문맥에 포함시켜 다음 단어를 예측합니다. 이 과정은 답변이 끝날 때까지 반복되며, AI는 매번 새로운 단어를 생성할 때마다 현재까지 생성된 단어를 바탕으로 다음 단어를 예측해 생성합니다.

  • 고양이는 다음에 올 단어를 예측할 때, 작은을 선택

  • 고양이는 작은 다음에 올 단어를 예측할 때, 동물로를 선택

AI는 프롬프트에 맞춰 자연스러운 문장이 완성될 때까지 단어를 계속 생성합니다.

생성된 답변 예시
고양이는 작은 동물로, 주로 집에서 키우는 애완동물입니다.

실습

프롬프트 예제를 보내고 AI의 답변을 비교해 보세요.