AI 이야기

Text Generation Model

lottopotato 2026. 4. 18. 22:03

"

회사에서 타 부서와 친목 도모 겸 워크샵을 했었는대 당시 발표했던 자료들을 기록한다.

인공지능과 친숙하지 않은 사람에게 설명하기 위한 자료로 기초적인 개념위주이며 표현을 최대한 쉽게 하도록 하였다.

"

 

요즘 대부분의 사람들에게 AI가 무엇이냐 물어본다면 ChatGPT 를 말할것이다. 

사실 ChatGPT 라는 이름 자체가 기술적인 용어라기 보단 상업적인 용어인대 GPT를 기초 모델로 하는 대화형 모델 서비스라고 이해 하는게 적당하다.

 

이러한 요즘 대부분의 텍스트형 챗봇 모델은 생성형 모델이라고 하며 더 포괄적인 의미론 Large Language Model 이라고도 한다.

오늘날의 대형 언어 모델은 Attention layer를 기반으로 하는 모델이며 엄청난 수의 데이터를 학습하는 아주 큰 모델 을 일컫는다.

 

우리는 이 생성형 모델이 논리적으로 어떻게 텍스트를 생성하는지 알아볼것이다.

 

Attention Layer

어텐션 레이어는 기본적으로 3개의 구성요소인 query, key, value로 이루어져 있다.

각각의 쿼리, , 벨류에 대한 입력층이 있으며 이러한 입력층이 하나로 모인 블록이 어텐션 레이어이다.

 

쿼리, 키, 벨류가 뭐임?

쿼리, 키, 벨류를 가장 적절히 설명할 수 있는 방법은 Dictionary(또는 Object) 데이터 타입을 떠올리면 좋을것 같다.

 

Dictionary는 일반적으로 키와 벨류로 엮인 데이터 형태를 말한다.

여기서 "홍길동" 이라는 값을 가져오려면 myObject.name 으로 가져올 수 있다. "홍길동"은 특정 벨류(값)이며 "name"은 특정 키 값이다. 즉 어떤 벨류를 얻기위해 우리는 특정 키값으로 참조하여 가져온다.

 

여기서 만약 당신이 이런 특정 키 값을 모르는 상태라고 해보자.

단순하게 접근해서 대충 이름을 가져올거니까 왠지 이름일 것 같은 키 값을 입력해본다.

MyObject.title, MyObject.pretext, MYobject.name, ...

 

여기서 "title", "pretext", "name" 등의 키워드는 곧 하나의 쿼리(질의)로 볼 수 있다.

질의를 통해 특정 벨류를 찾아가는 과정을 거치다 "name" 이라는 키워드로 "홍길동"을 가져 올 수 있다는 것을 깨닫는다.

즉, 쿼리를 통해 벨류를 얻는 과정에서 쿼리는 실제 키 값과 가까워진다(혹은 가까워져야 한다).

 

특정 벨류를 찾기 위한 쿼리는 특정 키와 가까워지고 특정 키는 특정 벨류를 얻을 수 있는 정보이다.

 

 

AI 분야에서 무언가 관계성을 찾으려 할 때 행렬곱은 자주 사용한다(아무튼 그렇다고 치자).

q(query)K(key)의 관계성을 찾으려 함으로 qk를 행렬곱하고 (행렬곱 한 값이 높다면 qK와 가까워진다.)

q, k를 행렬곱 벡터에 v를 행렬곱하여(qk를 행렬곱 벡터는 v와 가까워진다.) queryvalue를 찾기 쉽도록 유도한다.

 

 

Self Attention, Cross Attention

쿼리, , 벨류에 어떤 값이 들어가냐에 따라 크게 Self Attention, Cross Attention 으로 구분하고 이러한 Attention Layer가 몇 개 모인 모듈을 Attention Block(or Module)이라고 한다.

 

Self Attention은 같은 문장이 각각 쿼리, , 벨류에 입력으로 사용되며 Cross Attention은 문장A가 쿼리에 사용되고 나머지 문장 B는 키와 벨류에으로 사용된다.

 

Transformer

Transformer는 이러한 Attention Block들이 모여서 만들어진 모델 구조이다.

Transformer는 크게 인코더, 디코더로 구분 할 수 있고 Self Attention 으로만 구성되어 있는 부분을 인코더, Cross Attention도 있는 구조가 디코더라고 할 수 있다.

 

 

Text Generation

이러한 생성형 모델에서 텍스트 생성은 각 시간마다 생성된다. 여기서 시간이란 개념은 실제 문장을 소리내거나 쓰여지는 순서에 대한 실제 시간이라고 생각해도 무방하다.

예를 들어 나는 사과를 좋아해라는 문장에서 사과라는 단어는 나는이라는 문구에 뒤에 등장한다.

이 문장이 만약 생성형 모델의 결과라면 역시, “사과라는 단어는 나는이라는 문구로 부터 얻는다.

여기서 좋아해라는 문구는 사과라는 단어가 얻어질 당시 모델 입장에서 알 수 없다. 이러한 단방향 순서 확률적 특성을 자동회귀라고 한다.

 

 

Greedy search

자동회귀성을 그대로 적용하여 텍스트를 생성하는 가장 단순한 알고리즘으로 각 t시점에서 가장 높은 확률 값을 갖는 단어를 선택하여 텍스트를 생성한다.

 

 

끝으로..

AI와 관련되지 않은 분들에게 설명을 어떻게 하면 쉽게 할 수 있을지 고민이 있었다.

그러다 보니 뭔가 띄엄띄엄 설명이 넘어가게 되었다.. 나름 비유를 하며 설명했는대 이해 하기 쉬웠던건지 모르겠다.

'AI 이야기' 카테고리의 다른 글

Multi Modal Model  (1) 2026.04.21
Convolutional Neural Network 기초  (1) 2026.04.18
인공지능에 대한 이해 - 2  (1) 2026.04.17
인공지능에 대한 이해  (0) 2026.04.17