"
회사에서 타 부서와 친목 도모 겸 워크샵을 했었는대 당시 발표했던 자료들을 기록한다.
인공지능과 친숙하지 않은 사람에게 설명하기 위한 자료로 기초적인 개념위주이며 표현을 최대한 쉽게 하도록 하였다.
"
요즘 대부분의 사람들에게 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)의 관계성을 찾으려 함으로 q와 k를 행렬곱하고 (행렬곱 한 값이 높다면 q는 K와 가까워진다.)
q, k를 행렬곱한 벡터에 v를 행렬곱하여(q와 k를 행렬곱한 벡터는 v와 가까워진다.) query로 value를 찾기 쉽도록 유도한다.

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 |