Multi-Modal Model
멀티모달 모델은 이미지, 텍스트, 오디오와 같은 여러 데이터 유형을 단일 네트워크에서 처리합니다. 융합 방법, 모델 유형, 코드를 살펴봅니다.
멀티모달 모델이라고도 쓰는 다중 모달 모델은 이미지, 텍스트, 오디오, 비디오, 깊이 맵, 센서 판독값 등 두 가지 이상의 데이터 유형 또는 모달리티를 입력으로 받으며, 경우에 따라 두 가지 이상의 모달리티를 출력하기도 하는 단일 기계 학습 (ML) 모델입니다. 여러 모달리티를 함께 처리하므로 각 모달리티를 다른 모달리티의 맥락으로 활용할 수 있습니다. 예를 들어 사진에 관해 음성으로 질문에 답하거나, 문장이 설명하는 비디오 프레임을 찾거나, 카메라와 레이더 데이터에서 보행자를 감지할 수 있습니다. 음성 인식기가 텍스트 전용 챗봇에 입력을 전달하는 방식처럼 개별 단일 모달 모델을 연결한 파이프라인은 각 모델의 최종 출력으로만 모달리티 간 정보를 전달합니다. 반면 다중 모달 모델은 모달리티 간의 관계를 학습합니다.
다중 모달 모델의 작동 방식#
먼저 각 모달리티는 이미지용 비전 트랜스포머 (ViT), 텍스트용 토크나이저와 임베딩 레이어처럼 해당 모달리티에 적합한 인코더를 거쳐 벡터로 변환됩니다. 그런 다음 모델은 벡터를 융합하고 결합된 표현을 바탕으로 텍스트, 레이블, 박스 또는 동작을 예측합니다. 융합이 일어나는 위치에 따라 주요 설계 유형이 구분됩니다.
- 초기 융합: 입력을 첫 레이어 이전 또는 첫 레이어에서 결합합니다. 정합된 센서 데이터는 추가 이미지 채널로 쌓을 수 있으며, Ultralytics YOLO26은 이를 기본적으로 지원합니다. 데이터셋 YAML에서
channels키를 설정하면 RGB와 열화상 또는 깊이 밴드를 하나의 다중 채널 TIFF로 저장한 데이터처럼 채널이 3개를 초과하는 이미지로 감지 모델을 학습할 수 있습니다. 10채널 COCO8-Multispectral 데이터셋이 이러한 예입니다. - 중간 융합: 각 모달리티를 따로 인코딩한 후, 일반적으로 어텐션을 통해 중간 단계에서 특징을 결합합니다. DeepMind의 Flamingo는 고정된 언어 모델에 교차 어텐션 레이어를 삽입하여 텍스트 토큰이 이미지 특징을 참조할 수 있게 합니다. 또한 많은 비전 언어 모델 (VLM)은 이미지 특징을 "시각 토큰"으로 투영하며, 대규모 언어 모델 (LLM)은 프롬프트와 함께 이 토큰을 읽습니다.
- 후기 융합: 별도의 모델이 예측을 수행한 다음 마지막 단계에서 예측을 결합합니다. 센서 하나가 고장 나더라도 안정적으로 동작하지만, 모달리티 간 상호작용을 학습할 수는 없습니다.
- 공동 임베딩: 인코더는 모든 모달리티를 하나의 공유 벡터 공간에 매핑하며, 일치하는 쌍이 서로 가까이 위치하도록 대조 학습으로 학습합니다. CLIP은 이미지와 텍스트를 정렬하며, Meta의 ImageBind는 이미지와 짝을 이룬 데이터만 사용하여 이미지, 텍스트, 오디오, 깊이, 열화상, 모션 센서 데이터의 6개 모달리티로 임베딩 공간을 확장합니다.
데이터와 작업이 적합한 설계를 결정하는 주요 요인입니다.
비전-언어 트랜스포머인 ViLT는 간결한 초기 융합 사례입니다. 이미지를 패치로 나누고 질문의 단어와 함께 임베딩한 다음, 결합된 시퀀스 전체에 단일 트랜스포머를 적용합니다. 다음 예제에서는 Hugging Face Transformers를 통해 시각 질의응답 (VQA)에 맞게 미세 조정한 ViLT 체크포인트를 사용합니다.
import requests
import torch
from PIL import Image
from transformers import ViltForQuestionAnswering, ViltProcessor
# ViLT embeds image patches and question tokens into one sequence for a single transformer
processor = ViltProcessor.from_pretrained("dandelin/vilt-b32-finetuned-vqa")
model = ViltForQuestionAnswering.from_pretrained("dandelin/vilt-b32-finetuned-vqa")
image = Image.open(requests.get("https://ultralytics.com/images/bus.jpg", stream=True).raw)
# Ask different questions about the same image; each answer is one of the model's 3,129 answer classes
for question in ["What vehicle is this?", "What color is the bus?", "How many people are there?"]:
inputs = processor(image, question, return_tensors="pt")
with torch.no_grad():
logits = model(**inputs).logits
answer = model.config.id2label[logits.argmax(-1).item()]
print(f"{question} {answer}")모델은 동일한 이미지에서 bus과 blue and white에 올바르게 답하고, 수를 세는 질문에는 3라고 답합니다. 하지만 사진에는 네 사람이 있으며 그중 두 명은 가장자리에 걸쳐 잘려 있습니다. 계수는 비전 언어 모델의 흔한 약점입니다.
다중 모달 모델의 유형#
- 비전 언어 모델: 이미지와 텍스트를 읽어 캡션을 작성하고, 질문에 답하고, 문서를 읽거나, 프롬프트에서 지정한 객체를 찾습니다. 이 작업을 그라운딩이라고 합니다. VLM 벤치마크 결과는 실제 탐지 데이터셋에서 이러한 모델이 객체를 얼마나 정확하게 찾는지 비교합니다.
- 네이티브 멀티모달 어시스턴트: 2024년 출시된 OpenAI의 GPT-4o는 텍스트, 비전, 오디오를 통합해 종단 간 단일 네트워크로 학습되었습니다. Google은 Gemini 모델을 처음부터 멀티모달로 설계했으므로, 하나의 모델이 동일한 프롬프트에서 텍스트, 이미지, 오디오, 동영상 조합을 입력으로 받을 수 있습니다.
- 오디오 언어 모델: 음성 또는 사운드와 텍스트를 결합해 전사, 번역, 음성 대화를 지원합니다.
- 비전-언어-행동 모델: VLM을 확장해 로봇 모터 명령을 출력하므로, 로봇이 "사과를 그릇에 넣으세요"와 같은 지시를 따를 수 있습니다.
- 센서 융합 인지: 자율주행차는 카메라, 라이다, 레이더 입력을 하나의 모델에 융합하여 3D 공간에서 객체를 감지하고 추적합니다.
다중 모달 모델과 관련 용어 비교#
- 멀티모달 AI: 단일 모달 모델을 연결하는 시스템을 포함해 여러 데이터 유형을 처리하는 더 광범위한 AI 분야입니다. 다중 모달 모델은 이 분야에 속하는 단일 모델입니다.
- 다중 모달 학습: 대조 정렬 및 교차 모달 사전 학습과 같이 다중 모달 모델을 만드는 학습 방법입니다.
- 센서 융합: 여러 센서의 판독값을 결합하는 방식으로, 학습 모델 대신 칼만 필터와 같은 고전적 추정기를 사용하는 경우가 많습니다.
- 파운데이션 모델: 여러 다운스트림 작업을 위해 사전 학습된 대규모 모델입니다. 최근의 파운데이션 모델 중 상당수는 다중 모달이지만, 텍스트 전용 LLM처럼 하나의 모달리티만 처리하는 모델도 있습니다.
과제#
다중 모달 모델은 캡션이 달린 이미지나 전사된 오디오처럼 짝을 이룬 대량의 데이터가 필요하며, 추론 시 눈부심으로 카메라가 제대로 보지 못하는 경우처럼 모달리티가 누락되거나 노이즈가 있는 상황에도 대처해야 합니다. 모든 이미지가 LLM의 컨텍스트에 수백 또는 수천 개의 토큰을 추가하므로 이미지와 비디오 입력에는 많은 비용이 듭니다. 모델이 더 쉬운 모달리티에 의존하고 어려운 모달리티를 무시할 수도 있습니다. 초기 VQA 모델은 질문의 패턴만으로 답하는 경우가 많았습니다. 이에 VQA v2 벤치마크는 각 질문을 서로 다른 답을 유도하는 유사한 이미지 두 장과 짝지어 데이터셋의 이미지-질문 쌍을 대략 두 배로 늘렸습니다.










