은서파 2025. 6. 1. 12:57

이번 포스트에서는 Model의 multimodality에 대해 살펴보자.

 

Multimodality API

 

Multimodality란?

인간이 무언가를 인식하는 방법은 단순히 텍스트 뿐만은 아니라 시각, 청각, 텍스트 등 다양하다. 우리가 학습하는 방식과 경험을 multimodal이라고 한다.

초창기의 모델은 단일 modality를 처리하도록 제작되었으나 최근의 모델들은 인간처럼 multi modal을 지원하기 시작했다. 예를 들어 OpenAI의 GPT-4o, Google의 Vertex AI Gemini 1.5, Anthropic의 Claude3, 오픈 소스 제품인 Llama3.2, LLaVA 및 BakLLaVA는 텍스트 이미지, 오디오 및 비디오를 포함한 여러 입력을 수용하고 이러한 입력을 통합하여 텍스트 응답을 생성할 수 있다.

하지만 모든 미디어 타입을 다 지원하지는 않기 때문에 모델의 특성을 확인하고 사용해야 한다.

 

Gemma3는 image를 받아들인다.

 

qwen3는 image를 받아들이지 못한다.

 

사용 예

사용 방밥은 간단하다. 단지 user message를 구성하면서 media에 대한 정보를 전달하면 된다.

multi modal을 처리하기 위해서 UserMessage의 Media를 사용한다. 출처: spring.io

 

@Test
void multiModalTest() throws Exception {
  try {
    Resource res = new ClassPathResource("/static/img/multimodal.test.png");
    String result = aiService.multiModal("이 그림에  대해서 설명해줘.", MimeTypeUtils.IMAGE_PNG, res);
    
    //Resource res = new ClassPathResource("/static/img/101.mp4");
    //String result = aiService.multiModal("이 비디오에  대해서 설명해줘.", MimeType.valueOf("video/mp4"), res);
    
    log.debug("result: {}", result);
  } catch (Exception e) {
    e.printStackTrace();
  }
}