Hugging Face가 vdr-2b-multi-v1 다국어 시각적 문서 검색 모델을 출시했습니다

Hugging Face는 vdr-2b-multi-v1를 도입했는데, 이는 문서 페이지 스크린샷을 밀집 단일 벡터 표현으로 인코딩하는 시각적 문서 검색을 위한 다국어 임베딩 모델입니다. 이 접근 방식은 OCR, 데이터 추출 파이프라인, 또는 수동 청킹 없이 시각적으로 풍부한 문서를 검색하고 쿼리할 수 있게 합니다.

주요 모델 기능

vdr-2b-multi-v1은 이전 시각적 검색 방법에 비해 여러 기술적 장점을 제공합니다:

  • 다국어 지원: 이 모델은 이탈리아어, 스페인어, 영어, 프랑스어, 독일어로 훈련되어 교차 언어 검색을 가능하게 합니다(예: 이탈리아어 쿼리로 독일어 문서 검색).
  • 효율성과 속도: 영어 전용 버전인 vdr-2b-v1은 2560 대신 768개의 이미지 패치를 사용함으로써 기본 모델에 비해 추론 속도가 3배 빠르고 VRAM 사용량이 크게 감소합니다.
  • Matryoshka 표현 학습(MRL): 이 모델은 가변 벡터 크기를 지원하며, 사용자는 벡터 차원을 3배 줄여도 임베딩 품질의 98%를 유지하여 저장 및 검색 속도를 최적화할 수 있습니다.
  • OCR 프리 검색: 스크린샷을 직접 인코딩함으로써 이 모델은 전통적인 텍스트 추출 파이프라인의 복잡성을 우회합니다.

vdr-multilingual-train 데이터셋

다국어 멀티모달 데이터셋의 부족 문제를 해결하기 위해 Hugging Face는 vdr-multilingual-train 데이터셋을 출시했습니다. 이는 시각적 문서 검색을 위한 가장 큰 오픈소스 다국어 합성 데이터셋으로, 500,000개의 고품질 샘플을 포함합니다.

데이터 생성 파이프라인

  1. 데이터 수집: 주제 기반 검색을 통해 공개 인터넷에서 약 50,000개의 다국어 문서가 스크랩되었습니다. 다양성을 보장하기 위해 문서 레이아웃 분석 모델을 사용하여 페이지를 텍스트 전용, 시각 전용, 또는 혼합으로 분류했습니다.
  2. 합성 쿼리 생성: Gemini 1.5 Pro와 Qwen2-VL-72B를 사용하여 쿼리가 생성되었습니다. 모델에는 특정 질문과 일반적인 질문을 모두 생성하도록 임무가 부여되어 훈련에 사용되는 특정 질문의 강도를 향상시켰습니다.
  3. 정제 및 필터링: 쿼리는 올바른 언어, 적절한 형식, 그리고 grounding 문구(예: "Figure 1에 따르면))의 제거를 보장하기 위해 정제 과정을 거쳤습니다.
  4. 하드 네거티브 채굴: 검색 정확도를 높이기 위해 voyage-3 임베딩 모델을 사용하여 하드 네거티브를 채굴했습니다. 쿼리와 관련된 광범위한 질문이 인덱스의 상위 100 결과에 나타나면 해당 쿼리는 "좋은" 것으로 간주되었습니다.

성능 및 평가

vdr-2b-multi-v1은 ViDoRe 벤치마크와 사용자 정의 다국어 테스트 세트에서 평가되었습니다. 이 모델은 기본 모델(dse-qwen2-2b-mrl-v1)에 비해 특히 비영어 시각 전용 및 혼합 페이지 유형에서 상당한 성능 향상을 보여줍니다.

벤치마크 결과 (NDCG@5)

다국어 모델은 테스트된 모든 언어에서 기본 모델보다 평균 2.2% 더 높은 성능을 보였습니다. 주목할 만한 개선 사항은 다음과 같습니다:

  • 독일어(시각 전용): 기본 모델 대비 +6.33% 향상.
  • 이탈리아어(혼합): +2% 향상.
  • 스페인어(시각 전용): +1.4% 향상.

교차 언어 성능

이 모델은 효과적인 교차 언어 검색 기능을 보여줍니다. 독일어 평가 세트를 이탈리아어 번역으로 쿼리한 테스트에서, 이 모델은 모든 문서 유형에 걸쳐 기본 모델보다 평균 2.3% 향상된 성능을 보였습니다.

구현 및 통합

이 모델들은 SentenceTransformersLlamaIndex를 통해 표준 머신러닝 워크플로와 호환됩니다.

LlamaIndex 사용자의 경우, llama-index-embeddings-huggingface 패키지를 통해 통합이 처리됩니다.

SentenceTransformers의 경우, 이 모델은 CUDA 장치에서 최적화된 성능을 위해 torch_dtype=torch.bfloat16flash_attention_2를 지원합니다.

Sources