4P by GN⁺ | ★ favorite | 댓글 1개
  • Voyage AI가 공개한 voyage-multimodal-3는 텍스트와 이미지가 섞인 지식베이스를 하나의 임베딩 모델로 검색하려는 RAG·의미 검색용 모델임
  • PDF, 슬라이드, 표, 그림, 문서 스크린샷처럼 레이아웃 정보가 중요한 자료를 문서 파싱 없이 벡터화할 수 있다는 점이 핵심 차별점임
  • CLIP 계열 모델의 혼합 모달리티 검색 한계를 줄이기 위해 텍스트와 시각 정보를 같은 Transformer 인코더에서 처리하며, 모달리티가 섞인 입력의 문맥 관계를 보존함
  • 20개 멀티모달 검색 데이터셋에서 다음으로 성능이 좋은 멀티모달 임베딩 모델보다 평균 19.63% 높은 검색 정확도를 보였고, 34개 텍스트 검색 데이터셋에서도 OpenAI v3 large를 앞섬
  • 스크린샷 비율이 높아질수록 CLIP 기반 모델은 품질이 떨어졌지만 voyage-multimodal-3는 전 구간에서 성능 저하가 작아, 화면 캡처 기반 검색 파이프라인에 실용적임

voyage-multimodal-3가 겨냥하는 사용처

  • voyage-multimodal-3는 Voyage AI의 첫 멀티모달 임베딩 모델로, 시각 자료와 텍스트가 함께 많은 지식베이스의 RAG와 의미 검색을 목표로 함
  • 입력 대상은 텍스트와 콘텐츠가 많은 이미지이며, 대표 예시는 다음과 같음
    • 텍스트 스크린샷
    • 그림과 표
    • PDF 스크린샷
    • 슬라이드 덱
    • 기타 문서 이미지
  • 생성된 벡터는 텍스트 의미뿐 아니라 글꼴 크기, 텍스트 위치, 여백 같은 시각 특징도 반영함
  • 복잡한 레이아웃이나 그림·사진이 섞인 문서는 휴리스틱 기반 파싱에서 정확도 문제가 생길 수 있어, 모델은 원본 화면을 바로 검색용 벡터로 만드는 접근을 취함
  • 기능 예시는 sample notebook에서 확인할 수 있음

CLIP 계열과 다른 임베딩 방식

  • Amazon Titan Multimodal G1, Google Vertex AI multimodal, Cohere multimodal v3 같은 기존 멀티모달 임베딩 모델은 OpenAI CLIP 기반 구조를 사용함
  • CLIP 계열 구조는 서로 다른 모달리티를 독립 네트워크로 처리함
    • 이미지는 vision tower를 통해 벡터화됨
    • 텍스트는 text tower를 통해 벡터화됨
    • 이 구조에서는 텍스트와 이미지가 섞인 입력을 한 번에 처리하기 어려움
  • voyage-multimodal-3는 두 모달리티를 같은 Transformer 인코더 안에서 직접 벡터화함
    • 텍스트와 시각 특징이 별도 구성요소가 아니라 통합 표현의 일부로 다뤄짐
    • 최신 비전-언어 모델의 아키텍처를 생성이 아니라 벡터화에 적용한 형태임
  • 덕분에 섞인 텍스트와 이미지, 문서 스크린샷, 복잡한 PDF, 주석이 있는 이미지에서 시각 정보와 텍스트 정보의 문맥 관계를 함께 벡터에 담을 수 있음

스크린샷이 섞인 검색에서 드러난 차이

  • CLIP 유사 모델은 모달리티 갭(modality gap) 때문에 혼합 모달리티 검색에서 성능이 낮아질 수 있음
  • 예시에서 “I address you, members of the Seventy-Seventh Congress…”라는 텍스트 조각과 가장 가까운 벡터는 해당 스크린샷이 아니라 다른 텍스트였음
  • 이런 현상은 텍스트 벡터가 관련 이미지보다 관련 없는 같은 모달리티 항목에 더 가까워지는 검색 편향으로 이어짐
  • Voyage AI는 PyTorch 문서로 정량 실험을 구성함
    • 동일한 내용을 가진 문서 세트를 일반 텍스트 문자열과 스크린샷으로 각각 만듦
    • 텍스트 기반 문서 일부와 나머지 문서의 스크린샷을 섞어 혼합 모달리티 데이터셋을 구성함
    • 스크린샷 비율은 0%부터 100%까지 다르게 설정함
    • 각 모델은 코사인 유사도로 상위 10개 결과를 검색하고 NDCG@10으로 평가됨
  • CLIP 기반 모델은 스크린샷 비율이 90%까지 늘어날수록 검색 품질이 낮아졌고, 모든 텍스트를 이미지로 바꾼 경우에도 성능이 낮았음
  • voyage-multimodal-3는 모든 비율에서 가장 높은 성능을 보였고, 전반적인 성능 저하도 거의 없었음
  • 이 결과는 스크린샷 안의 의미 정보를 벡터에 담는 능력과, 모든 입력 모달리티를 같은 백본으로 처리하는 접근의 견고함을 보여줌

평가 데이터셋과 비교 대상

  • 멀티모달 평가는 3개 작업, 총 20개 데이터셋에서 진행됨
    • 표/그림 검색: charxiv, mmtab-test, ChartQA, Chartve, FintabnetQA, PlotQA
    • 문서 스크린샷 검색: ViDoRe benchmark의 Energy, Healthcare Industry, Artificial Intelligence, Government Report, InfoVQA, DocVQA, ArxivQA, TabFQuad, TAT-DQA, Shift Project
    • 텍스트-사진 검색: meme-cap, mm-imdb, winoground, docci
  • 표준 텍스트 검색 평가는 법률, 금융, 대화, 코드, 웹, 기술 등 6개 도메인 34개 데이터셋에서 진행됨
  • 모든 데이터셋에서 쿼리는 텍스트이며, 문서는 그림, 사진, 텍스트, 문서 스크린샷 또는 이들의 조합일 수 있음
  • 멀티모달 작업의 비교 모델은 다음과 같음
  • 표준 텍스트 검색에서는 OpenAI v3 large (text-embeddings-3-large), Cohere multimodal/English 1 v3, voyage-3와 비교함
  • Cohere multimodal v3는 순수 텍스트에서 Cohere English v3 (embed-english-v3.0)를 text tower로 사용하므로, 차트에서는 혼동을 줄이기 위해 “Cohere multimodal v3” 라벨만 사용함

검색 정확도 결과

  • voyage-multimodal-3는 20개 멀티모달 검색 데이터셋 전체에서 다음으로 성능이 좋은 멀티모달 임베딩 모델보다 평균 19.63% 높은 검색 정확도를 기록함
  • 표/그림 검색에서는 OpenAI CLIP large, Amazon Titan Multimodal G1, Cohere multimodal v3, SigLIP So400M, ColQwen2 v0.1 대비 각각 41.44%, 45.00%, 43.37%, 20.66%, 6.14% 앞섬
  • 문서 스크린샷 검색에서는 같은 비교 모델 대비 각각 26.54%, 37.68%, 25.84%, 35.62%, 0.98% 높은 성능을 보임
  • 텍스트-사진 검색에서는 같은 비교 모델 대비 각각 6.55%, 5.16%, 5.86%, 3.42%, 10.34% 앞섬
  • 표준 텍스트 검색에서는 OpenAI v3 large보다 5.13%, Cohere multimodal/English 1 v3보다 13.70% 높은 성능을 냄
  • 순수 텍스트 문서 검색 정확도는 voyage-3보다 0.05% 높아 두 모델이 거의 비슷한 수준임
  • 전체 평가 결과는 스프레드시트에 공개되어 있음

사용 시작과 제공 자료

  • voyage-multimodal-3는 공개 당일부터 사용할 수 있음
  • 2억 토큰은 무료임
  • 시작 자료는 sample notebookdocs에서 제공됨
  • 파인튜닝 임베딩 모델에 관심 있는 사용자는 contact@voyageai.com으로 연락할 수 있음

댓글과 토론

Hacker News 의견들
  • 핵심 관찰은 단순하고 직관적임: 모든 CLIP 계열 모델은 모달리티 간 간격(modality gap) 때문에 혼합 모달리티 검색에서 성능이 좋지 않음
    예를 들어 “I address you, members of the Seventy-Seventh Congress…”라는 문장에 가장 가까운 벡터가 해당 스크린샷이 아니라 다른 텍스트가 되는 식임. 그래서 임베딩 공간에서 텍스트 벡터가 관련 이미지보다 관련 없는 텍스트에 더 가까워져, 검색 결과가 같은 모달리티 쪽으로 치우침

    • 이 인용은 중요하지만, 단독으로 보면 이들이 그 문제를 해결했다고 주장하는지 분명하지 않음. 새 모델인 voyage-multimodal-3가 모달리티를 넘나드는 연결된 개념을 식별한다고 말하는 듯함
      시각적으로 표현되든 텍스트로 표현되든 같은 아이디어를 군집화할 수 있는 잠재 공간이 있다면 꽤 멋진 일임. 다만 이 벤치마크는 멀티모달 임베딩을 꽤 좁게 보는 방식이라고 생각함. 관련 텍스트 이미지와 텍스트 임베딩이 가까운 건 편리하지만, “rabbit”과 토끼 사진처럼 다른 시각적 표현의 관련성까지 확장된다고 보긴 어려움. 문서 이미지 색인이라는 좁은 목표라면 다른 기법들도 꽤 잘 동작할 수 있을 것 같음. 텍스트 매체를 넘어선 멀티모달 개념 표현 벤치마크 데이터셋이 새로 나오기 좋은 기회로 보임
    • 이 문제는 두 모달리티 사이의 큰 잠재 공간 간격이 생기지 않게 하는 multimodal mixup으로 풀고 있을 수도 있음: https://arxiv.org/abs/2203.03897
  • 이 분야에 관심이 있다면, 내부적으로 ColPali를 투명하게 사용하는 우리 프로젝트도 후보에 넣어볼 만함
    https://github.com/tjmlabs/ColiVara
    이쪽의 주요 벤치마크는 Vidore 리더보드이고, VoyageAI가 더 열린 오픈소스 구현들과 비교해 어느 정도인지 보고 싶음

  • 뭔가 놓치고 있는 것 같음. “네이티브 멀티모달”인 어떤 LLM이라면 어떤 식으로든 멀티모달 임베딩을 포함해야 하는 것 아닌가 싶음
    예를 들어 Google의 Gemini 블로그 글은, 기존 멀티모달 모델은 서로 다른 모달리티용 구성요소를 따로 학습한 뒤 이어 붙였지만 Gemini는 처음부터 여러 모달리티로 사전학습했고 추가 멀티모달 데이터로 미세조정했다고 설명함. 그래서 모든 종류의 입력을 처음부터 자연스럽게 이해하고 추론한다고 주장함

    • Gemini 같은 LLM, 더 넓게는 인과적 언어 모델은 다음 토큰 예측으로 학습되기 때문에, 출력 토큰 임베딩을 풀링해서 얻은 벡터는 실제 임베딩 모델에서 얻는 것에 비해 RAG나 의미 검색에 그다지 유용하지 않음
      여기서 구분할 점은 토큰 임베딩과 임베딩 모델이 출력하는 벡터/임베딩은 관련은 있지만 별개의 개념이라는 것임. 토큰마다 하나씩 있는 많은 토큰 임베딩은 트랜스포머를 지나며 문맥화되고, 임베딩 모델은 긴 텍스트·사진·문서 스크린샷 같은 입력 데이터 하나당 하나의 벡터를 출력함
    • LLM 임베딩에는 많은 개념의 중첩 표현이 들어 있어서 다음 토큰을 예측할 수는 있지만, 대조 학습으로 사전학습된 임베딩 모델보다 성능이 좋지는 않음
    • 다른 답변이 명확하지 않았다면 여기서 “임베딩”을 “내 AI 모델의 어떤 층이 만들어내는 목록” 정도로 바꿔 생각하면 됨
      정확히는 조금 더 구체적인 개념이지만, 이 맥락에서는 맞음. 멀티모달 LLM을 포함한 LLM에도 임베딩은 있지만, 그것들은 비슷한 문서를 찾도록 학습된 임베딩이 아니라 텍스트 생성을 통해 학습된 임베딩임
  • 꽤 인상적으로 보임. 제시된 평가에 대한 비판적 관점이 궁금함
    비영어 텍스트는 어떨지도 궁금함. 다른 상용 모델처럼 API로만 제공되는 모델이라고 이해하면 맞는지?

    • 맞음, Voyage 모델은 API 전용임
      다국어 관련 내용을 적었는데 틀렸어서 지움. 참고로 Voyage에는 별도의 law, code, finance 모델도 있음. [1] 참고
      어쨌든 결과는 정말 흥미로움
      [1]: https://docs.voyageai.com/docs/embeddings
  • 모델이 상용 독점이고 API 전용이라는 점은 아쉬움

    • 직원들에게 급여를 줘야 하는 게 슬픈 일인가?
  • API 전용 모델이라면 사양하겠음. 그래도 축하는 함

    • 두 부분 모두 동의함. 물론 사람들에게 돈을 받으려는 것 말고도 API에만 집중할 만한 분명한 이유들은 있겠지만, 다른 선택지를 제공하지 않는다는 사실만으로도 개인적으로는 고려하지 않을 것 같음
  • 꽤 흥미로워 보임. 여러 데이터 타입, 예를 들어 이미지와 오디오를 LLM에 통합하는 프레임워크인 AnyModal을 작업해 왔음: https://github.com/ritabratamaiti/AnyModal
    voyage-multimodal-3는 멀티모달 LLM 개발에 꽤 유망해 보이지만, 그게 의도된 사용 사례인지는 잘 모르겠음

  • 전통적인 Python API에서는 Voyage 엔진이 텍스트 블록을 토큰화하고 문자열을 출력함. 이 모델은 이미지를 공간 안에서 벡터화하는 방식으로 그 일을 하는 것처럼 보임
    youapple 같은 단어는 하나의 토큰이 되고, pikachu 같은 더 복잡한 용어는 pik-a-chu처럼 나뉠 수 있음
    [1]: https://docs.voyageai.com/docs/tokenization

  • 멀티모달 임베딩을 보는 방식이 흥미로움. 입력이 한 모달리티에서 다른 모달리티로 점점 이동할 때의 비율에 따라 성능 변화를 측정함
    https://i0.wp.com/blog.voyageai.com/wp-content/uploads/2024/...

  • Colab에서는 점곱 값 0.428과 0.498을 측정하고 이를 “유사도 값이 꽤 높다”고 설명함. 이게 정말 높은 값인지 의문임
    0.4 임계값으로 데이터를 자신 있게 라벨링하는 시스템을 설계할 수 있을까?

    • 원시 유사도 점수도 중요하긴 하지만, 보통 더 중요한 건 다른 문서들과 비교했을 때의 상대적 점수
      노트북 예시에서는 그 값들이 상대적으로 가장 높았음. 왜 불명확하거나 혼란스러울 수 있는지 이해되고, 수정하겠음
    • 원시 출력값 자체는 대체로 중요하지 않음. 중요한 건 출력 분포 안에서의 위치임
    • 코사인 유사도의 0.4는 시그모이드 임계값의 0.4와 같지 않음
      거의 동일한 중복 데이터가 아닌 실제 데이터에서 코사인 유사도 0.4는 꽤 괜찮은 값임