Sentence Transformers v5.4: 멀티모달 임베딩 및 리랭커 모델

Hugging Face는 Sentence Transformers v5.4가 멀티모달 기능을 추가하여 텍스트, 이미지, 오디오, 비디오의 인코딩 및 비교를 위한 통합 API를 제공함으로써 임베딩 및 리랭킹 작업을 지원한다고 발표했습니다. 이를 통해 사용자가 새로운 API를 배울 필요 없이 크로스모달 검색, 시각적 문서 검색, 멀티모달 RAG 파이프라인을 지원하도록 라이브러리가 확장되었습니다.

설치

Sentence Transformers v5.4에서 멀티모달 모델을 사용하려면, pip를 통해 원하는 모달리티(이미지, 오디오, 비디오)에 대한 추가 의존성을 설치해야 합니다. VLM 기반 모델은 실제 사용을 위해 충분한 VRAM을 갖춘 GPU가 필요하다는 점에 유의하세요.

이미지 지원을 설치하려면 pip install -U "sentence-transformers[image]"를, 오디오 지원을 설치하려면 pip install -U "sentence-transformers[audio]"를, 비디오 지원을 설치하려면 pip install -U "sentence-transformers[video]"를 사용하세요. 필요에 따라 조합하여 설치할 수 있으며, 예를 들어 pip install -U "sentence-transformers[image,video,train]"와 같이 설치할 수 있습니다. Qwen3-VL-2B와 같은 VLM 기반 모델은 최소 약 8GB의 VRAM을 갖춘 GPU가 필요하며, 8B 변형의 경우 약 20GB가 필요할 수 있습니다. 로컬 GPU가 없는 경우, CPU 추론이 이러한 모델에 대해 극도로 느릴 수 있으므로 클라우드 GPU 서비스 또는 Google Colab을 고려하세요.

멀티모달 임베딩 모델

멀티모달 임베딩 모델은 서로 다른 모달리티의 입력을 공유된 임베딩 공간에 매핑하여 텍스트 전용 모델과 동일한 API를 사용하여 크로스모달 유사도 비교를 가능하게 합니다.

모델 로드

멀티모달 임베딩 모델을 로드하는 것은 SentenceTransformer("model_name\)를 사용하여 텍스트 전용 모델을 로드하는 것과 정확히 동일하며, 모델은 자동으로 지원되는 모달리티를 감지합니다. 일부 모델은 통합 풀 리퀘스트가 완료될 때까지 일시적으로 revision 인수를 요구할 수 있으며, 그 이후에는 더 이상 필요하지 않습니다.

이미지 인코딩

멀티모달 모델이 로드되면 model.encode()는 URL, 로컬 파일 경로, 또는 PIL Image 객체로 제공된 이미지와 함께 텍스트를 받아들입니다. 예를 들어, 두 이미지를 인코딩하면 Qwen/Qwen3-VL-Embedding-2B 모델에 대해 형태가 (2, 2048)인 임베딩이 반환됩니다.

크로스모달 유사도

텍스트와 이미지 임베딩은 동일한 공간에 존재하므로 직접 비교할 수 있지만, 모달리티 갭으로 인해 절대 유사도 점수는 일반적으로 동일 모달리티 내 비교보다 낮습니다. 그러나 상대적인 순서는 보존되므로 검색은 여전히 효과적입니다. 예를 들어, 이미지와 일치하는 텍스트 쿼리는 불일치한 쌍보다 더 높은 유사도 점수를 제공합니다.

쿼리와 문서 인코딩

검색 작업의 경우, encode_query()encode_document()를 사용하여 쿼리와 문서에 모델별 프롬프트를 자동으로 적용할 수 있습니다. 이러한 메서드는 프롬프트 선택을 처리하는 encode()의 얇은 래퍼이며, 동일한 입력 유형과 매개변수를 받아들입니다. 특수 프롬프트가 존재하지 않는 경우, 이들은 encode()와 동일하게 동작합니다.

멀티모달 리랭커 모델

멀티모달 리랭커 모델은 혼합 모달리티 쌍의 관련성을 점수로 매기며, 페어별 처리로 인해 계산 비용이 더 높지만 종종 임베딩 모델보다 품질이 뛰어납니다.

혼합 모달리티 문서 랭킹

rank() 메서드는 이미지, 텍스트, 결합된 텍스트-이미지 문서와 같은 혼합 모달리티를 지원하여 쿼리에 대한 문서의 점수를 매기고 순위를 정합니다. 예를 들어, 리랭커는 가장 관련성이 높은 이미지 문서를 올바르게 식별한 다음 결합된 텍스트-이미지 문서를 식별하며, 텍스트 전용 및 관련 없는 이미지 문서는 낮은 점수를 받습니다. 모달리티 지원은 modalities 속성과 supports() 메서드를 통해 확인할 수 있습니다.

쌍 점수 예측

predict()를 사용하여 텍스트-이미지 조합과 같은 특정 입력 쌍에 대한 원시 관련성 점수를 얻을 수 있으며, 이는 관련성을 나타내는 수치적 점수를 반환합니다.

검색 및 리랭크

일반적인 파이프라인은 대형 코퍼스에 대한 빠른 초기 검색을 위해 임베딩 모델을 사용한 다음, 리랭커를 사용하여 상위 결과를 정제하여 정확도를 향상시키는 것입니다. 코퍼스 임베딩을 한 번 사전 계산하여 효율적인 검색을 수행한 후, 초기 유사도 검색의 상위-k 후보에만 리랭커를 적용합니다.

입력 형식 및 구성

멀티모달 모델은 모달리티별로 다양한 입력 형식을 받아들이며, 전처리 및 모델 로드를 위한 구성 옵션을 제공합니다.

지원되는 입력 유형

텍스트 입력은 문자열입니다. 이미지는 PIL 객체, 파일 경로, URL, numpy 배열, 또는 토치 텐서를 받아들입니다. 오디오는 파일 경로, URL, numpy/토치 배열, arraysampling_rate를 갖는 딕셔너리, 또는 torchcodec.AudioDecoder 인스턴스를 받아들입니다. 비디오는 파일 경로, URL, numpy/토치 배열, arrayvideo_metadata를 갖는 딕셔너리, 또는 torchcodec.VideoDecoder 인스턴스를 받아들입니다. 멀티모달 입력은 모달리티 이름(텍스트, 이미지, 오디오, 비디오)을 값에 매핑하는 딕셔너리입니다. 메시지 입력은 rolecontent 키를 갖는 메시지 딕셔너리의 목록으로, 구조화된(타이핑된 또는 평평한 형식)을 지원합니다.

모달리티 지원 확인

support() 메서드를 사용하여 특정 모달리티 또는 모달리티 쌍을 확인하고, modalities 속성을 사용하여 지원되는 모달리티 목록을 확인할 수 있습니다. 예를 들어, model.supports("image\)는 시각 기능을 갖춘 모델에 대해 True를 반환합니다.

프로세서 및 모델 kwargs

processor_kwargs(AutoProcessor에 전달)와 model_kwargs(적절한 AutoModel 클래스에 전달)를 통해 이미지 해상도와 모델 정밀도를 제어할 수 있습니다. 예를 들어, processor_kwargsmin_pixelsmax_pixels를 설정하여 이미지 처리를 조정하고, model_kwargsattn_implementation 또는 torch_dtype을 지정할 수 있습니다. v5.4에서 tokenizer_kwargsprocessor_kwargs로 이름이 변경되었습니다(이전 이름은 여전히 허용되지만 더 이상 사용되지 않음).

지원되는 모델

Sentence Transformers v5.4는 다양한 멀티모달 임베딩 및 리랭커 모델, 새로운 텍스트 전용 리랭커, 그리고 지속적인 CLIP 모델 지원을 지원합니다.

지원되는 멀티모달 임베딩 모델

지원되는 임베딩 모델에는 Qwen/Qwen3-VL-Embedding-2B(2B 파라미터, 텍스트/이미지/비디오), Qwen/Qwen3-VL-Embedding-8B(8B), nvidia/llama-nemotron-embed-vl-1b-v2(1.7B, 텍스트/이미지), nvidia/omni-embed-nemotron-3b(4.7B, 텍스트/이미지), 텍스트/이미지/오디오/비디오를 다루는 LCO-Embedding 모델(5B 및 9B), BidirLM/BidirLM-Omni-2.5B-Embedding(2.5B, 텍스트/이미지/오디오), 그리고 0.1B에서 8B까지의 파라미터 범위를 갖는 다양한 BAAI/BGE-VL 모델(텍스트/이미지)이 포함됩니다. eagerworks/eager-embed-v1 및 nomic-ai/nomic-embed-multimodal-3b/7b와 같은 일부 모델은 특정 리비전(예: revision="refs/pr/2")이 필요하며, 텍스트/이미지/오디오/비디오를 위한 Haon-Chen/e5-omni 모델도 리비전이 필요합니다.

지원되는 멀티모달 리랭커 모델

지원되는 리랭커 모델에는 Qwen/Qwen3-VL-Reranker-2B(2B, 텍스트/이미지/비디오), Qwen/Qwen3-VL-Reranker-8B(8B), nvidia/llama-nemotron-rerank-vl-1b-v2(2B, 텍스트/이미지), 그리고 jinaai/jina-reranker-m0(2B, 텍스트/이미지)가 포함됩니다.

텍스트 전용 리랭커 모델(v5.4에서도 새로움)

v5.4의 새로운 텍스트 전용 리랭커에는 Qwen/Qwen3-Reranker-0.6B(0.6B), Qwen/Qwen3-Reranker-4B(4B), Qwen/Qwen3-Reranker-8B(8B), mixedbread-ai/mxbai-rerank-base-v2(0.5B), mixedbread-ai/mxbai-rerank-large-v2(2B), 그리고 일부에 리비전이 필요한 ContextualAI/ctxl-rerank-v2-instruct-multilingual 모델(1B, 3B, 6B)이 포함됩니다.

CLIP 모델

이전 CLIP 모델은 여전히 지원되며, sentence-transformers/clip-ViT-L-14(75.4% ImageNet 제로샷 top-1 정확도), sentence-transformers/clip-ViT-B-16(68.1%), sentence-transformers/clip-ViT-B-32(63.3%), 그리고 sentence-transformers/clip-ViT-B-32-multilingual-v1(다국어 텍스트 인코더, 50개 이상의 언어)이 포함됩니다.

추가 리소스

추가 학습을 위해서는 사용법, 사전 훈련된 모델, 설치에 대한 공식 문서를 참조하세요. 훈련 지침은 동반 블로그 포스트 "Training and Finetuning Multimodal Embedding & Reranker Models with Sentence Transformers" 및 임베딩, 리랭커, 스파스 인코더, 매트료시카, 정적 임베딩, 양자화 기술과 관련된 가이드에서 제공됩니다. 모델, 데이터셋, 그리고 v5.4 통합 컬렉션은 Hugging Face Hub를 통해 접근할 수 있습니다.

Sources

관련