일반적인 컴퓨터 비전 모델은 주로 인간의 시각 인식을 모방하는 데 중점을 둡니다. jina-embeddings-v4는 이미지와 텍스트 처리를 결합하여 사람들이 시각적으로 제시된 정보를 어떻게 읽고 해석하는지 이해하는 다른 접근 방식을 취합니다. 단순히 텍스트를 디지털화하는 OCR 프로그램과는 달리 인포그래픽, 차트, 다이어그램 및 표와 같은 복잡한 시각 자료를 실제로 구문 분석합니다. 여기서 텍스트와 시각적 요소 모두 의미론적 의미를 전달합니다. 우리는 이것들을 "시각적으로 풍부한 문서"라고 부릅니다.

OCR 및 텍스트 向量模型만 사용했다면 중요한 정보를 놓쳤을 것입니다. 이미지-캡션 쌍에 대해 훈련된 기존의 向量模型을 사용했다면 텍스트의 의미를 추출할 수 없었을 것입니다. 그리고 표와 같은 경우 텍스트가 무엇을 의미하는지 알아야 하고 텍스트 요소 간의 공간적 관계를 처리해야 제대로 처리할 수 있습니다. 시각적으로 인식하는 방식으로 처리해야 하며, 이것이 바로 시각적 문서 검색이라고 불리는 이유입니다.

그러나 사물을 이해하려면 볼 수 있어야 하며, 이는 向量模型에서도 마찬가지입니다. 이미지 품질이 중요합니다.

이미지 품질 차이는 다양한 원인에서 발생할 수 있습니다. 사진이 초점이 맞지 않거나, 조명 상태가 좋지 않거나, 움직임으로 인해 흐릿해지거나, 손실 압축 알고리즘이 세부 정보를 손상시킬 수 있습니다. 그러나 시각적으로 풍부한 문서는 일반적으로 디지털 "출생"됩니다. 스크린샷, 프레젠테이션 슬라이드, 광택있는 PDF와 같은 것들로 구성됩니다. 이는 일부 프레젠테이션 또는 게시 프로세스에 의해 이미지로 렌더링된 데이터입니다. 때로는 실제 종이 페이지를 스캔한 것이지만, 능숙하게 제작된 경우 이러한 이미지는 실제 장면 사진에서 흔히 발생하는 문제로 고통받지 않습니다.

시각적으로 풍부한 문서의 경우 주요 입력 품질 문제는 이미지 해상도입니다. 너무 작으면 검색에 필요한 정보가 손실됩니다. 하지만 너무 크면 정확한 처리를 저해하는 가짜 세부 정보로 모델이 넘쳐납니다. jina-embeddings-v4에 입력을 적절하게 조정하면 비용을 절약하고 검색 결과를 향상시킬 수 있습니다.
이 기사에서는 jina-embeddings-v4가 이미지를 처리하는 방법과 이미지 해상도가 시각적으로 풍부한 문서를 검색하는 능력에 미치는 영향에 대해 살펴봅니다. Hugging Face의 JinaVDR 리포지토리에 코드를 제공하여 결과를 재현하거나 이 기사의 아이디어를 직접 적용하려는 경우 자신의 데이터를 테스트할 수 있습니다.
tag시각적 언어 모델
jina-embeddings-v4는 Qwen2.5-VL-3B-Instruct
VLM을 확장한 시각적 언어 모델(VLM)입니다. 이미지 임베딩에 대한 이러한 접근 방식은 단일 모드 이미지 또는 텍스트 모델 및 jina-clip-v2와 같은 CLIP 스타일 모델과는 다릅니다.
그림 5는 jina-embeddings-v4 모델 아키텍처의 개략도입니다. 백본 모델은 기존의 변환기 기반 向量模型과 유사하지만 이중 출력 모드를 지원합니다. 디코더의 마지막 레이어를 평균 풀링하여 생성된 단일 벡터(밀집 벡터) 임베딩과 입력과 동일한 크기의 투영 레이어에 의해 생성된 다중 벡터(후기 상호 작용) 출력이 있습니다.
텍스트의 경우 입력은 기존의 텍스트 向量模型과 동일합니다. 텍스트는 토큰화되고 토큰은 검색 테이블에서 벡터를 대체하여 대체됩니다. 이러한 토큰 벡터는 모델에 대한 입력으로 함께 사용됩니다.
VLM의 혁신은 이미지 처리 방식에 있습니다. 기존의 이미지 向量模型이 텍스트 向量模型에 연결되어 있지만 평균 풀링으로 이미지 임베딩을 생성하는 대신 마지막 레이어가 토큰 벡터의 시퀀스인 것처럼 텍스트 向量模型에 대한 입력이 됩니다.

이는 큰 이미지가 임베딩 모델에 긴 텍스트와 동일한 문제를 일으킨다는 것을 의미합니다. 입력이 길어질수록 계산 비용과 인코딩 시간이 늘어나고 종종 유익하지 않은 임베딩이 생성됩니다. 작은 이미지는 반대 문제가 있습니다. 너무 많은 정보가 하나의 패치에 담겨 있으면 임베딩 프로세스에서 감쇠되어 단일 벡터 임베딩에서 손실되고, 다중 벡터 임베딩의 경우 일치 강도를 줄입니다. 모델에 제공되는 정보의 양과 관련 정보를 정확하게 추출하는 능력 사이에는 절충점이 있습니다.
그러나 텍스트는 크기를 조정할 수 없지만 이미지는 크기를 조정할 수 있습니다.
tagjina-embeddings-v4의 이미지 전처리
jina-embeddings-v4에 이미지를 제출하면 28x28 픽셀 크기의 패치로 분할됩니다. 즉, 패치 수는 이미지 크기에 거의 비례합니다. Jina API를 사용하는 경우 지원되는 최대 크기는 602,112 픽셀이지만 다운로드하면 모델 코드에서 사용자가 설정할 수 있는 매개변수입니다.
VLM 아키텍처는 모델이 지원할 수 있는 28x28 이미지 패치 수가 지원할 수 있는 텍스트 토큰 수와 동일하다는 것을 의미합니다. 이는 이미지 크기에 대한 절대적인 상한선을 약 2천만 픽셀로 설정합니다.

tag이미지 해상도 실험
ViDoRe v1 및 v2 스위트와 JinaVDR 벤치마크 스위트의 일부를 사용하여 jina-embeddings-v4로 다양한 이미지 해상도를 평가했으며, 단일 벡터와 다중 벡터 출력을 모두 살펴보았습니다. 모델의 max_pixels
매개변수를 최대 19,267,584 픽셀(즉, 5,376x3,584) 범위의 값으로 조정하면 다양한 이미지 해상도에서 벡터 모델이 생성됩니다. 이미지가 max_pixels
값보다 이미 작으면 변경되지 않습니다.
tagViDoRe v1
표 1은 개별 ViDoRe v1 벤치마크에 대한 5가지 해상도의 단일 벡터(dense vector) 임베딩 검색 결과를 보고합니다(평균 nDCG@5 점수). ViDoRe v1의 이미지 중 9,633,792 픽셀보다 큰 이미지가 없으므로 해당 값까지만 보고합니다.

Benchmark Dataset | 301,056 px | 602,112 px | 1,204,224 px | 2,408,448 px | 4,816,896 px | 9,633,792 px |
---|---|---|---|---|---|---|
Max embedding vector size in tokens | 384 | 768 | 1,536 | 3,072 | 6,144 | 12,288 |
arxivqa_test_subsampled |
0.83487 | 0.84529 | 0.84537 | 0.83785 | 0.83439 | 0.83469 |
docvqa_test_subsampled |
0.47366 | 0.50715 | 0.52421 | 0.51075 | 0.50287 | 0.50258 |
infovqa_test_subsampled |
0.84404 | 0.87510 | 0.87890 | 0.87978 | 0.87672 | 0.87710 |
shiftproject_test |
0.77524 | 0.81494 | 0.83988 | 0.84427 | 0.84127 | 0.84196 |
syntheticDocQA_artificial_intelligence_test |
0.93809 | 0.96786 | 0.96655 | 0.97155 | 0.97024 | 0.97024 |
syntheticDocQA_energy_test |
0.86865 | 0.89540 | 0.89847 | 0.91172 | 0.91286 | 0.91286 |
syntheticDocQA_government_reports_test |
0.91708 | 0.93417 | 0.93865 | 0.92309 | 0.91609 | 0.91609 |
syntheticDocQA_healthcare_industry_test |
0.93865 | 0.96428 | 0.96024 | 0.96542 | 0.95417 | 0.95286 |
tabfquad_test_subsampled |
0.94298 | 0.94853 | 0.94502 | 0.94505 | 0.94505 | 0.94612 |
tatdqa_test |
0.58622 | 0.64832 | 0.65867 | 0.65985 | 0.65395 | 0.65498 |
AVERAGE | 0.81195 | 0.84010 | 0.84560 | 0.84493 | 0.84076 | 0.84095 |
표 1에서 최고 해상도가 최고는 아니라는 것을 알 수 있습니다. 9.6 메가픽셀은 테스트에서 가장 좋은 해상도보다 낮은 성능을 보였으며, 4.8 메가픽셀보다 큰 이미지가 없는 테스트에서는 크기 조정이 없었기 때문에 동일한 점수를 얻었습니다. 평균적으로 가장 좋은 성능을 보인 것은 1.2 메가픽셀이었고, 다양한 벤치마크에서 가장 좋은 점수를 많이 받은 해상도는 2.4 메가픽셀이었습니다.
각 벤치마크에서 가장 좋은 점수를 가져와 평균을 내면 0.84905가 됩니다. 이는 1.2 메가픽셀 점수보다 0.345% 더 나은 정도입니다.
표 2에 표시된 것처럼 다중 벡터 임베딩을 사용하면 검색 점수가 훨씬 높아집니다. 다중 벡터 매칭은 일반적으로 단일 벡터 매칭보다 성능이 더 좋습니다. 그러나 해상도에 따른 성능은 거의 동일합니다.
Benchmark Dataset | 301,056 px | 602,112 px | 1,204,224 px | 2,408,448 px | 4,816,896 px | 9,633,792 px |
---|---|---|---|---|---|---|
Max embedding vector size in tokens | 384 | 768 | 1,536 | 3,072 | 6,144 | 12,288 |
arxivqa_test_subsampled |
0.87456 | 0.88881 | 0.88736 | 0.88531 | 0.88899 | 0.89052 |
docvqa_test_subsampled |
0.55344 | 0.61284 | 0.61123 | 0.59941 | 0.59087 | 0.59229 |
infovqa_test_subsampled |
0.88777 | 0.92646 | 0.93376 | 0.94007 | 0.93459 | 0.93533 |
shiftproject_test |
0.86224 | 0.90563 | 0.93547 | 0.92847 | 0.92240 | 0.92240 |
syntheticDocQA_artificial_intelligence_test |
0.99631 | 0.99131 | 0.99500 | 0.99262 | 0.99262 | 0.99262 |
syntheticDocQA_energy_test |
0.95216 | 0.96524 | 0.96524 | 0.96893 | 0.96762 | 0.96762 |
syntheticDocQA_government_reports_test |
0.95934 | 0.97085 | 0.97524 | 0.98024 | 0.96655 | 0.96655 |
syntheticDocQA_healthcare_industry_test |
0.97893 | 0.97893 | 0.99631 | 0.98524 | 0.98393 | 0.98393 |
tabfquad_test_subsampled |
0.95386 | 0.95732 | 0.95611 | 0.95379 | 0.95379 | 0.95379 |
tatdqa_test |
0.70547 | 0.78534 | 0.79516 | 0.80422 | 0.80552 | 0.80727 |
AVERAGE | 0.87241 | 0.89827 | 0.90509 | 0.90383 | 0.90069 | 0.90123 |
단일 벡터 임베딩과 마찬가지로 1.2 메가픽셀 해상도가 가장 높은 평균 점수를 보이고, 2.4 메가픽셀이 가장 많은 개별 데이터 세트에서 가장 좋은 점수를 보인 해상도입니다. 모든 벤치마크에서 가장 좋은 점수의 평균은 0.90853이고, 1.2 메가픽셀 해상도의 평균 점수는 0.344% 낮으며, 이는 단일 벡터의 경우와 거의 동일합니다.
tagViDoRe v2
ViDoRe v2는 ViDoRe v1보다 훨씬 더 자세하고 다채로운 이미지를 사용하므로 최적의 해상도가 더 높을 가능성이 높습니다.

표 3의 결과와 함께 ViDoRe v2 벤치마크 스위트에서 jina-embeddings-v4의 다중 벡터 임베딩을 테스트했습니다. 단일 벡터 결과는 유사하지만 점수가 낮으므로 여기서는 생략합니다.
Benchmark Dataset | 150,528 px | 301,056 px | 602,112 px | 1,204,224 px | 2,408,448 px | 4,816,896 px | 9,633,792 px |
---|---|---|---|---|---|---|---|
Max embedding vector size in tokens | 192 | 384 | 768 | 1,536 | 3,072 | 6,144 | 12,288 |
esg_reports_v2 |
0.40444 | 0.54013 | 0.52005 | 0.51916 | 0.49953 | 0.52664 | 0.51442 |
biomedical_lectures_v2 |
0.58760 | 0.60479 | 0.6184 | 0.60748 | 0.60748 | 0.60748 | 0.60748 |
economics_reports_v2 |
0.47666 | 0.50399 | 0.54216 | 0.54998 | 0.54998 | 0.54998 | 0.54998 |
esg_reports_human_labeled_v2 |
0.42171 | 0.56940 | 0.61227 | 0.57307 | 0.61108 | 0.63858 | 0.64921 |
AVERAGE | 0.47260 | 0.55458 | 0.57322 | 0.56242 | 0.56702 | 0.58067 | 0.58027 |
이 경우 평균적으로 가장 좋은 성능을 보이는 것은 4.8 메가픽셀 해상도이며, 9.6 메가픽셀에서의 평균 성능은 거의 동일합니다. 그럼에도 불구하고 4개의 벤치마크 중 3개에서는 가장 높은 해상도가 더 낮은 해상도보다 성능이 나빴으며, 한 테스트에서는 4.8 메가픽셀보다 큰 이미지가 없었습니다.
tag고해상도 벤치마크
ViDoRe v1과 ViDoRe v2는 유사한 기본 해상도의 이미지로 구성되어 있으므로 처리하기 어려운 매우 고해상도 이미지가 포함된 JinaVDR 스위트에서 2개의 벤치마크를 가져와 동일한 다중 벡터 임베딩 테스트를 수행했습니다.
하나는 17세기에서 20세기까지의 독일 신문을 고해상도로 스캔한 europeana-de-news
벤치마크이고, 다른 하나는 주로 디지털 시대 이전의 인쇄된 지도를 매우 고해상도로 스캔한 wikimedia-commons-maps
벤치마크입니다.

wikimedia-commons-maps
에 포함되어 있습니다. (오른쪽) Hamburger Nachrichten 신문의 1819년 4월 26일자 1면이며, europeana-de-news
에 포함되어 있고 4324x4738 픽셀로 스캔되었습니다.표 4에서 볼 수 있듯이 결과는 매우 다양합니다.
벤치마크 데이터 세트 | 301,056 px | 602,112 px | 1,204,224 px | 2,408,448 px | 4,816,896 px | 9,633,792 px | 19,267,584 px |
---|---|---|---|---|---|---|---|
토큰 단위의 최대 임베딩 벡터 크기 | 384 | 768 | 1,536 | 3,072 | 6,144 | 12,288 | 24,576 |
europeana-de-news |
0.46319 | 0.59457 | 0.66802 | 0.66550 | 0.66407 | 0.63948 | 0.65208 |
wikimedia-commons-maps |
0.23671 | 0.34421 | 0.42835 | 0.52268 | 0.53464 | 0.53464 | 0.53588 |
평균 | 0.34995 | 0.46939 | 0.54819 | 0.59409 | 0.59936 | 0.58706 | 0.59398 |
신문 데이터는 지도 데이터와 동일한 해상도를 필요로 하지 않는다는 것을 명확히 알 수 있습니다. 이는 지도 속 텍스트가 전체 이미지 크기에 비해 매우 작고 검색이 작동하려면 실제로 읽을 수 있어야 하기 때문일 가능성이 큽니다. 신문 스캔 크기가 최적 크기보다 클 경우 성능이 변동되고 저하됩니다.
평균은 둘 다에 대해 최적이 아니며, 이는 문제를 해결할 수 있는 올바른 해상도가 하나가 아님을 시사합니다. 바로 그 발견이 다음 작업을 수행하도록 동기를 부여했습니다.
tag다중 해상도 向量模型
jina-embeddings-v4의 VLM 아키텍처는 이미지의 개별 패치를 텍스트 詞元과 동일하게 취급하므로 고해상도 패치를 저해상도 패치로 보강하는 것이 쉽습니다. 이는 모델이 지원하는 최대값 내에 있는 한 입력 데이터가 더 많다는 의미일 뿐입니다. 저해상도가 고해상도보다 더 나은 의미 체계를 제공하는 경우 이를 포함하고 최적 해상도가 무엇인지 걱정할 필요가 없습니다.
이 가설을 테스트하기 위해 세 가지 해상도 조합을 살펴보았습니다.
Mix 1 | Mix 2 | Mix 3 | |
---|---|---|---|
총 詞元의 최대 수 | 2,880 | 5,234 | 12,096 |
해상도 | 150,528 px<br>301,056 px<br>602,112 px<br>1,204,224 px | 50,000 px<br>90,000 px<br>160,000 px<br>250,000 px<br>360,000 px<br>490,000 px<br>602,112 px<br>900,000 px<br>1,204,224 px | 150,528 px<br>301,056 px<br>602,112 px<br>1,204,224 px<br>2,408,448 px<br>4,816,896 px |
즉, Mix 1을 테스트했을 때 각 이미지의 크기를 150,528 px, 301,056 px, 602,112 px, 1,204,224 px의 네 가지 해상도로 조정한 다음 각각을 개별적으로 다중 벡터 임베딩으로 처리한 후 쿼리 일치를 수행하기 전에 결과를 연결했습니다. Mix 2 및 Mix 3도 마찬가지이지만 해상도가 다릅니다. ViDoRe v2 벤치마크에서 세 가지 조합을 모두 시도했으며, 표 6에 요약되어 있습니다.
벤치마크 데이터 세트 | 최고 단일 해상도 | Mix 1 | Mix 2 | Mix 3 |
---|---|---|---|---|
토큰 단위의 최대 임베딩 벡터 크기 | — | 2,880 | 5,234 | 12,096 |
esg_reports_v2 |
0.54013 | 0.58354 | 0.59252 | 0.56567 |
biomedical_lectures_v2 |
0.61840 | 0.61678 | 0.61714 | 0.61638 |
economics_reports_v2 |
0.54998 | 0.54997 | 0.55534 | 0.55049 |
esg_reports_human_labeled_v2 |
0.64921 | 0.67726 | 0.68057 | 0.66734 |
평균 | 0.58943 | 0.60689 | 0.61139 | 0.59997 |
모든 ViDoRe v2 벤치마크에서 Mix 2는 Mix 1과 Mix 3보다 성능이 뛰어나며, 이는 더 높은 해상도를 추가하는 것보다 더 다양한 해상도를 사용하는 것이 더 나은 결과를 생성한다는 것을 시사합니다. 4개의 벤치마크 중 2개에서 모든 해상도 혼합이 최고 단일 해상도보다 성능이 뛰어나고 나머지 2개에서는 Mix 1만 성능이 저하되지만 큰 차이는 아닙니다.
이러한 결과는 모든 데이터에 대해 단일 최적 해상도 혼합은 없지만 최적의 솔루션을 찾기 위해 올바른 해상도 혼합을 식별하는 것이 올바른 방향임을 보여줍니다.
tag결론
시각적으로 풍부한 자료를 처리할 때 jina-embeddings-v4의 경우 이미지 해상도가 상당히 중요합니다. 중요한 문제 중 하나는 텍스트 크기를 읽을 수 있도록 조정해야 한다는 것입니다. 여러분이 읽을 수 없는 것을 AI도 읽을 수 없으며, 텍스트가 중요한 경우 읽을 수 있어야 합니다.
그러나 해상도가 너무 높으면 임베딩 모델이 이미지 패치를 일관된 전체로 조립하기가 어려워집니다. 또한 비용이 많이 듭니다. 해상도가 높을수록 더 많은 처리가 필요하고 다중 벡터 임베딩의 경우 더 많은 저장 공간이 필요하며 일치 속도가 느려집니다.
다중 해상도를 사용하고 모든 출력에 대해 후기 상호 작용 스타일 점수 매기기를 함께 적용하는 것은 다양한 크기의 시각적으로 풍부한 이미지를 처리하는 좋은 방법입니다. 그러나 이는 처리 및 저장 비용을 증가시키고 매우 큰 해상도와 마찬가지로 검색 속도를 늦춥니다.
신경망 검색을 개선하기 위해 이러한 통찰력을 운영할 수 있는 방법을 모색하고 있습니다. 모델의 단점을 조사하고 개선 방법을 고안하기 위해 교육 및 테스트 데이터를 지속적으로 다양화하려고 노력하고 있습니다. 여기에 설명된 것과 같은 해상도 및 다중 해상도 기술이 다양한 유형의 자료에 미치는 영향을 조사하고 있습니다.
또한 여기에 설명된 것과 같은 다중 해상도 기술이 이미지의 노이즈 영향을 완화하고 더 강력한 검색을 생성하는지 확인하기 위해 실험을 수행하고 있습니다.
또한 각 이미지에 대한 최적 해상도를 미리 자동으로 결정할 수 있습니다. 최적의 해상도를 안정적으로 감지할 수 있다면 전체 결과를 개선하는 동시에 사용자를 위한 매개변수를 하나 더 제거하여 임베딩에 대한 접근성과 사용성을 높일 수 있습니다.