"
회사에서 타 부서와 친목 도모 겸 워크샵을 했었는대 당시 발표했던 자료들을 기록한다.
인공지능과 친숙하지 않은 사람에게 설명하기 위한 자료로 기초적인 개념위주이며 표현을 최대한 쉽게 하도록 하였다.
"
오늘 소개할 이야기는 멀티모달 모델에 대한 것이다.
멀티모달모델은 서로 다른 형태(모드 또는 타입)의 다양한 데이터를 처리할 수 있는 모델이다.

데이터는 주로 그림, 텍스트(자연어), 음성, 연속형 데이터, 이산형 데이터 등 다양한 형태로 표현된다.
멀티모달 모델은 데이터 형식의 조합에 구애받지 않고 범용적으로 표현하는 개념이기 때문에, 연속형과 이산형 데이터를 함께 처리하는 모델 역시 멀티모달 모델에 포함된다.
최근에는 자연어 생성 AI의 인기가 크게 상승하면서, 그림과 텍스트 또는 음성과 텍스트를 결합한 멀티모달 모델이 널리 알려지고 있다.

여기서는 대표적인 조합인 Image + Text 멀티 모달 모델링을 살펴본다.
Multi-modal model for Image + Text
이미지와 텍스트는 모두 시각적 정보에 해당하지만, 컴퓨터(디지털) 환경에서는 이 두 데이터가 각각 다른 방식으로 표현되고 처리된다.
이미지
디지털 이미지 표현은 일반적으로 픽셀(pixel) 단위의 값으로 이루어진다. 컬러맵이 포함된 이미지의 경우, 가로와 세로, 그리고 색상(및 알파) 채널로 구성된 3차원 데이터 형태로 나타내며, 색상은 보통 RGB(Red, Green, Blue) 세 가지 색상값(+투명도), 256(8비트) 단계로 표현한다.
따라서 이러한 이미지는 벡터 값으로도 표현할 수 있다.

텍스트
반면에 디지털 세계에서 텍스트 표현은 보통 인코딩 값으로 표현되며 ASCII, UTF-8, Unicode 등의 인코딩 룰을 따라 표현된다.

즉, 이미지는 연속적인 값과 공간적 구조를 지니는 반면, 텍스트는 이산적인 값과 연속적인 구조를 가진다고 해석할 수 있다.

이처럼 상이한 데이터 형태를 동시에 다루는 모델이 이미지 + 텍스트 멀티 모달 모델이다.
이미지와 텍스트를 다루기 위한 모델링 기법은 여러가지 있지만 여기서는 구글의 Gemma3 모델을 다루기로 한다.

복기하기: Convolution(합성곱)
Gemma3 에서 이미지를 처리하는 “Image Projector” 는 기본적으로 합성곱 계층(Convolutional Layer)로 이루어져 있다.
합성곱은 본디 두 개의 함수(f, g)의 합성 형태 함수 (f*g)를 구하는 연산으로 대상 함수(f)와 또 다른 함수(g)를 반전하여 곱한 다음 적분한다.

이미지는 n차원의 배열로 표현하는 이산적 데이터임으로 이산 합성곱을 취하는데, 대상 함수(f)를 이미지 자체로 두고 다른 함수(g)를 커널(윈도우, 리셉티브 필드)로 생각하여 아웃풋을 구한다. 커널은 이미지를 순회하며 합성곱을 취하여 새로운 대상 픽셀을 계산한다.

사람같이 이해보기
컨볼루션 레이어는 기본적으로 동일한 크기의 커널이 이미지에 이동하면서 각 공간의 정보를 얻는다.
이것을 좀더 이해하기 위해 사람으로 비유하자면, 커널의 크기는 일종의 사람의 시야라고 할 수 있다. 좀 더 그럴듯한 비유를 보면 당신이 만약 망원경으로 어떤 풍경을 구경하다치자. 그 망원경의 크기는 원형이 아니고 사각형이라고 할 때, 당신은 그 공간을 훑고 지나가면서 구경을 할 것이다. 처음볼때는 그 공간에 대한 정보가 망원경의 크기 만큼 들어오지만 훝고 지나가면서 공간에 대한 정보가 조립되어 볼것이다.

여기서 블랙 박스가 순차적으로 열린다고 할때, 이 이미지가 "개구리" 라는 걸 깨닫는 그 순간, 당신은 어떤 위치에서 그 단서를 얻었는가? 아마도 생각해보면 얼굴쪽 위치가 제일 단서가 클 것이라고 생각한다.
Convolutional layer는 특정 크기의 커널을 활용해 공간적으로 스트라이드 단위로 이동하며 연산을 수행하는 과정이다.
따라서 이미지 내 공간적 특성을 추출하는 계층으로 이해할 수 있으며, 이를 통해 최종 출력에 필요한 특징 맵을 순차적으로 얻어낸다.

이미지에서 목적에 부합하는 중요한 정보에대해 필터가 더 민감하도록 조정된다.
이러한 합성곱 계층으로 구성된 모델이 어떤 이미지를 개구리인지 물고기인지 판단하는 모델이라면, 그 판단에 도움이 되는 쪽으로 커널이 변화 할 것이다.

복기하기: Attention
생성형 AI 모델의 핵심 구성 요소인 어텐션 레이어는 자연어 처리, 특히 연속적인 데이터 구조를 다루기 위해 고안된 개념이다. 이는 현재 대부분의 생성형 AI 모델의 기본 구조인 Transformer의 핵심 계층을 이루고 있다.
어텐션 레이어는 기본적으로 쿼리(query), 키(key), 벨류(value) 세 가지 주요 구성 요소로 구성되어 있다. 각 요소마다 독립적인 입력층이 존재하며, 이 입력층들이 모여 하나의 어텐션 레이어 블록을 형성한다.

https://en.wikipedia.org/wiki/Attention_(machine_learning)#/media/File:Attention-qkv.png
사람같이 이해보기
자연어 생성 메커니즘을 이해하기위해 문제 하나 풀어보자.
주어진 문장에서 빈칸에 들어갈 단어로 가장 알맞은 것은?

1번 문제에서 가장 적절한 단어를 선택할 때, “외출하기가 어렵다”는 문장을 통해 날씨가 매우 나빠서 외출이 힘들다는 점을 파악할 수 있다. 즉, “더워서”라는 답을 도출하기 위해 “날씨가 너무”와 “외출하기가 어렵다”라는 구문을 전후 문맥과 함께 비교 분석하였다.

이는 “더워서”라는 단어가 문장 내 위치를 기준으로 앞뒤 문맥을 모두 고려한 결과임을 의미한다.
이와 같은 방식이 바로 Masked Language Modeling(MLM) 기법으로, 문장의 앞과 뒤 문맥을 동시에 반영하는 양방향(Bidirectional) 자연어 학습 방법이다.
반면 2번 문제는 빈칸 이후의 어절이 없음으로 가장 적절한 단어를 도출 하기 위해 이전 문장으로 부터 만 보았다.
일반적으로 생각했을때, 가장 적절한 말은 "읽었다" 가 될 것이다.

이것은 단순히 이전 문장 집합으로 부터 도출된 결과임으로 단방향(Unidirectional) 자연어 학습 방법이며 지금의 생성형 모델의 대표적인 사전학습 방법이기도 하다.
그렇다면 2번 문제에서 몇가지 어절이 추가적으로 포함되어 있다고 생각해보자.

여전히 "읽었다"라는 말이 가능성이 높겠지만 앞에 문장이 추가 됨으로써 4번인 "정리했다"라는 단어도 가능성이 매우 증가하였다.
즉 가장 뒤에 “읽었다“ 혹은 “정리했다“ 어절은 앞의 어절들에 의해 크게 영향 받게 되었다.

어텐션으로 돌아와서, 생성형 모델은 보통 인코더가 없음으로 어텐션레이어의 키, 쿼리, 벨류는 같은 문장의 값을 사용한다.
여기서 X = “see that girl run”, x = “that” 일 때 x * X 형태의 배열곱이 진행 된다.

“that” 과 네 개의 단어 들 중 가장 관련도가 깊은 단어는 서로 배열 곱의 결과가 높은 값을 취하게 되며 이는 "that" 다음에 나올 단어들 중 "girl" 이라는 단어가 나올 가능성이 높다는 것을 의미한다.

현대의 자연어 생성형 AI 는 이러한 구조를 기본적으로 사용하며 사전학습에서 CLM 방식을 사용함으로 써 결과적으로 과거의 단어로 부터 현재의 가장 적절한 단어가 그 확률이 높도록 학습이 됨으로써 자연어를 생성하게 된다.
이러한 특성을 Autoregressive Language modeling이라고도 한다.

Gemma3 에서 둘러보기
Gemma3는 Image와 Text 두가지 형태를 동시에 다루기 위한 멀티모달 모델(4B 이상)로 기존 LLM에서 가능했던 Q&A나 요약, 번역 등 이미지와 동시에 기능을 수행할 수 있는 End-to-End Processing이 특징이다.

Image Projector
우리말로 투영기, 영사기 등의 의미를 갖는 Projector는 말 그대로 이미지를 텍스트 프롬프트 토큰 집합에 투영시키는 작업을 수행한다.
기본적으로 컨볼루셔널 레이어로 구성된 CNN 이며 (SigLip) CNN과 같이 특징 맵을 줄여가며 출력 값을 도출 한다.
출력 값의 영역은, 컨볼루셔널 레이어는 출력의 크기를 조절 할 수 있음으로, 항상 같은 크기의 벡터 값으로 축소 된다.
Language Model
기존 생성형 모델과 유사한 구조로, 어텐션 레이어를 기반으로 설계되었다. 다만, 기존에는 텍스트 임베딩 값만 입력으로 활용했던 반면, 이번에는 이미지 프로젝터의 출력 값을 임베딩 값의 일부 영역에 포함시켜 입력으로 사용한다.

즉, 이미지 입력이 주어지면 텍스트 영역 내에 이미지를 위한 공간을 사전에 할당한 뒤, 이미지를 프로젝터에 통과시켜 생성된 이미지 특징 맵(연속적인 구조)을 해당 공간에 투영하여, 이를 언어 모델의 입력 값으로 활용하는 방식이다.
사람같이 이해보기
예컨대 당신이 어떤 회의실에서 회의자료를 발표한다고 생각해보자.

회의실에는 프로젝터가 있고 당신은 당신의 발표자료를 프로젝터에 "투영" 시킨다.
프로젝터는 (일반적으로) 크기가 고정되어 있고 당신이 만든 발표자료의 크기가 어떻든, 일정한 크기로 고정된다.
이해를 돕기위해 프로젝터를 제외한 전후 배경이 아래라고 생각하면,

당신의 위치가 의자에 고정되어 있고 전후 배경을 텍스트라고 생각해보자.
이 텍스트영역은 우리가 고개를 얼마나 돌리느냐에 따라 길이가 다를것이다.
하지만 이미지의 경우 시야에 방해받지 않는다면, 절대적 크기자체는 달라지지 않는다.
Gemma3는 이렇게, 이미지가 있으면 고정된 크기 만큼 이미지 영역을 할당하고, CNN 기반인 모델에 통과시켜 이미지의 특징을 추출하고 입력 크기가 같으면 CNN의 모든 출력 크기는 동일하니 할당된 이미지영역에 투영시키는 것이다.

이러한 텍스트와 이미지가 합쳐진 벡터가 Attention layer기반의 언어 모델에 입력으로 사용되어 출력 텍스트를 생성하는 것이다.
'AI 이야기' 카테고리의 다른 글
| Text Generation Model (1) | 2026.04.18 |
|---|---|
| Convolutional Neural Network 기초 (1) | 2026.04.18 |
| 인공지능에 대한 이해 - 2 (1) | 2026.04.17 |
| 인공지능에 대한 이해 (0) | 2026.04.17 |