WeMM-Embedding: 2B 모델로 8B 베이스라인을 넘어선 범용 멀티모달 임베딩에 대한 연구

WeMM-Embedding 소개

검색창 하나로 텍스트와 영상을 함께 찾는다는 것

사진첩에서 "작년 여름 바닷가"를 찾을 때 우리는 파일명을 기억해 내지 않습니다. 장면을 떠올리고, 그 장면과 가장 비슷해 보이는 것을 눈으로 고릅니다. 검색 시스템이 이 일을 대신하려면 사진과 문장을 같은 기준으로 잴 수 있어야 하는데, 이러한 역할을 하는 것이 바로 임베딩(embedding)입니다. (:pytorch::kr: 임베딩에 대한 자세한 내용은 다음 글을 참고해주세요: 머신러닝 분야의 임베딩에 대한 상세한 가이드 (The Full Guide to Embeddings in Machine Learning))

WeMM-Embedding은 Tencent의 WeChat Vision 팀이 공개한 범용 멀티모달 임베딩(universal multimodal embedding) 모델군으로, 텍스트와 이미지, 영상, 시각 문서(visual document), 그리고 이들이 임의로 뒤섞인 입력까지 하나의 조밀한 벡터 공간에 담는 것을 목표로 합니다. 이 연구는 서로 다른 형태의 콘텐츠를 공통의 표현 공간에 두어 검색, 추천, 분류, 에이전트 시스템이 같은 벡터로 동작하게 만드는 문제를 다루며, 대규모 정렬과 정제라는 2단계 학습 전략을 제안합니다. 모델은 2B, 4B, 9B의 세 가지 규모로 공개되었고, 가중치와 코드가 Apache 2.0 라이선스로 함께 공개되었습니다.

기존 접근법과 각각의 한계

멀티모달 임베딩의 출발점은 CLIP 계열의 듀얼 인코더입니다. 이미지 인코더와 텍스트 인코더를 따로 두고 대규모 쌍 데이터로 두 공간을 맞추는 방식은 교차 모달 정렬이 실제로 학습된다는 것을 보여 주었습니다. 다만 모달별로 인코딩 경로가 분리되어 있다는 구조적 성질 때문에, 여러 모달이 한 입력 안에 섞인 경우를 자연스럽게 다루지 못합니다. 텍스트와 이미지가 번갈아 나오는 문서, 이미지와 문장을 함께 주는 합성 질의(composed query), 자막이 붙은 영상이 모두 여기에 해당합니다.

두 번째 흐름은 사전 학습된 시각 인코더를 텍스트 인코더의 시각 토크나이저로 붙여 임의의 조합을 다루도록 확장한 접근입니다. 듀얼 인코더보다 다룰 수 있는 입력의 폭은 넓어졌지만, 멀티모달 임베딩이 감당해야 할 과제와 입력 구성이 계속 늘어나는 상황에서 인코더 기반 방식의 일반성에는 여전히 한계가 있었습니다.

세 번째 흐름이 멀티모달 대규모 언어 모델(MLLM, Multimodal Large Language Model)을 임베딩 모델로 전환하는 방식입니다. VLM2Vec처럼 MLLM의 은닉 상태를 범용 임베딩으로 쓰고 쌍 데이터로 대조 학습(contrastive learning)을 이어 가면, 텍스트와 이미지, 영상이 임의로 섞인 입력을 백본이 원래부터 처리할 수 있다는 이점이 그대로 따라옵니다. 최근에는 대규모 쌍 데이터 합성과 지식 증류(knowledge distillation)가 더해지면서 이 계열이 범용 멀티모달 표현 학습의 주류가 되었습니다.

이 연구의 접근

WeMM-Embedding은 세 번째 흐름 위에 서 있되, 학습을 성격이 다른 두 단계로 쪼갠 것이 핵심입니다. 1단계에서는 수억 건 규모의 이질적인 쌍 데이터로 넓은 커버리지와 초기 표현 공간을 만들고, 2단계에서는 그 십분의 일 크기로 추린 정제 데이터에 더 촘촘한 관련도 감독(relevance supervision)과 규모를 가로지르는 지식 전이를 얹어 세밀한 매칭 능력을 끌어올립니다. 넓게 학습한 뒤 좁게 다듬는 순서라, 커버리지를 잃지 않으면서 관련도 모델링만 개선할 수 있습니다.

연구팀이 보고한 결과부터 미리 말하면, 가장 작은 2B 모델이 MMEB-v2에서 77.9 점을 기록해 기존 최상위 8B 오픈소스 베이스라인을 앞질렀고, 9B 모델은 80.6 점으로 공식 리더보드 1위에 올랐습니다. 여기에 WeChat 사내 26개 과제 벤치마크와 14건의 온라인 A/B 테스트 결과가 함께 실려 있어, 공개 벤치마크 점수가 실제 서비스에서도 유지되는지를 확인할 수 있습니다.

데이터 구축

이질적인 과제를 하나의 쌍 형식으로

멀티모달 임베딩 학습의 첫 난관은 데이터의 모양이 제각각이라는 점입니다. 분류는 라벨을 맞히는 문제이고, 검색은 후보 중에서 고르는 문제이며, 질의응답은 답을 생성하는 문제라 감독 신호의 형태가 서로 다릅니다. 연구팀은 이 모두를 소스 하나를 후보들과 견주는 문제로 다시 쓸 수 있다고 보고, 학습 예제를 다음의 통일된 쌍 형식으로 표현합니다.

z_{i} = \left(I_{i},\, q_{i},\, c_{i},\, \mathcal{N}_{i},\, y_{i}\right)

여기서 I_i 는 선택적인 과제별 지시문, q_i 는 소스, c_i 는 짝이 되는 타깃, \mathcal{N}_i 는 명시적인 하드 네거티브(hard negative) 집합, y_i 는 등급이 매겨진 관련도 점수입니다. q_ic_i 는 각각 텍스트일 수도, 이미지나 영상일 수도, 이들이 뒤섞인 형태일 수도 있습니다. 지시문 I_i 는 입력 모달이 비슷한 과제들을 구분해 주는 역할을 하는데, 같은 이미지와 텍스트 쌍이라도 캡션을 찾으라는 것인지 같은 상품을 찾으라는 것인지에 따라 정답이 달라지기 때문입니다.

이 형식 덕분에 서로 다른 과제의 예제들이 하나의 멀티태스크 학습 파이프라인에 들어가면서도 원래의 감독 신호를 잃지 않습니다. 배치 안의 다른 예제의 타깃은 인배치 네거티브(in-batch negative)로 쓰이고, 분류처럼 타깃 공간을 공유하는 과제에서 같은 타깃이 반복되어 생기는 거짓 네거티브는 뒤에서 설명할 마스킹으로 걸러집니다.

대규모 데이터의 여섯 갈래

학습 데이터는 공개 데이터셋과 웹 스케일의 약한 감독 자료를 기반으로 하고, 여기에 과제 지향 합성 데이터와 사내 수집분이 더해져 수억 건 규모를 이룹니다. 구성은 다음과 같이 여섯 갈래로 나뉩니다.

  • 약한 감독 쌍(Weakly Supervised Pairs): 웹에서 자연스럽게 함께 나타난 이미지와 텍스트, 영상과 텍스트 쌍입니다. 명시적인 시각 묘사가 아니라 우연한 대응 관계라서 감독은 거칠지만 다루는 시각 콘텐츠의 폭이 넓습니다.
  • 캡션 쌍(Caption Pairs): 이미지와 영상에 그 내용을 실제로 묘사한 캡션을 붙인 쌍입니다. 개체와 속성, 관계, 공간 맥락, 행동, 사건까지 짧은 요약부터 상세 묘사에 이르는 범위를 다루며, 약한 감독 쌍보다 직접적이고 세밀한 대응을 제공합니다.
  • 검색 쌍(Retrieval Pairs): 질의와 관련 후보를 잇는 예제로, 단일 모달과 교차 모달 매칭에서 시작해 합성 질의, 추론(reasoning), 지시 따르기, 긴 문맥, 공간 그라운딩, 시점 국소화, 에이전트 관련 검색까지 확장됩니다.
  • 분류 쌍(Classification Pairs): 분류 데이터셋을 소스와 라벨의 쌍으로 다시 쓴 것으로, 타깃은 클래스 이름이거나 해당 범주를 자연어로 풀어 쓴 설명입니다. 객체, 장면, 행동 인식 과제가 여기에 들어갑니다.
  • 멀티모달 질의응답 쌍(Multimodal Question-Answer Pairs): 시각 인지, 관계와 공간 이해, 광학 문자 인식(OCR), 지식 집약적 이해, 추론, 문서 및 차트 이해, 사건 이해를 아우르는 질문과 답 쌍입니다.
  • 등급 관련도 쌍(Graded Relevance Pairs): 사람이 여러 단계의 관련도를 직접 매긴 쌍입니다. 맞다, 아니다의 이분법을 넘어선 정도의 차이를 담고 있어 순위 학습에 쓰입니다.

정제 데이터셋: 리샘플링, 품질 정제, 하드 네거티브

대규모 수집분과 별도로, 연구팀은 그 십분의 일 정도 크기의 정제 데이터셋(curated dataset)을 따로 구축했습니다. 넓게 긁어모은 데이터는 도메인과 과제를 두루 덮지만 의미 분포가 흔한 패턴 쪽으로 쏠려 있기 때문입니다.

첫 단계는 시맨틱 ID(Semantic ID) 기반 리샘플링(resampling)입니다. 각 소스와 타깃 쌍에서 직렬화한 토큰 수가 더 긴 쪽을 WeMM-Embedding의 중간 체크포인트로 인코딩한 뒤, 그 표현에 3단계 잔차 k-평균 양자화기(RQ-KMeans, Residual K-Means)를 학습시켜 세 개짜리 이산 식별자를 얻습니다. 그리고 각 코드북 단계의 할당 밀도를 리샘플링의 기준으로 씁니다. 붐비는 코드에 걸린 예제는 낮은 비율로, 한산한 코드에 걸린 예제는 높은 비율로 남기는 방식입니다. 시맨틱 ID 위에 균일 분포를 강제하지는 않고, 흔한 의미 패턴에 반복 노출되는 정도만 낮춥니다.

두 번째 단계는 멀티모달 대규모 언어 모델을 쓴 품질 정제입니다. 모델이 과제 맥락에 비추어 각 쌍이 의도한 매칭 관계를 반영하는지 판정하고 어긋난 예제를 걸러냅니다. 텍스트 필드도 필요하면 손보는데, 웹에서 온 약한 감독 쌍의 설명문에 사실 오류가 있으면 원래의 대체 텍스트(alt-text) 문체와 상세함의 수준은 유지한 채 사실관계만 고칩니다.

세 번째 단계는 하드 네거티브 구축입니다. 방식은 타깃 모달에 따라 갈립니다: 텍스트 타깃은 멀티모달 대규모 언어 모델이 소스와 정답을 보고 그럴듯하지만 틀린 후보를 생성하고, 이미지와 영상 타깃은 WeMM-Embedding의 중간 체크포인트로 과제별 후보 풀에서 의미상 비슷한 것을 검색해 옵니다. 이렇게 캐낸 후보 집합 중 일부에는 리랭킹 모델(reranking model)이 관련도 점수를 매겨, 판별하기 어려운 후보들 사이에 더 촘촘한 감독을 남깁니다.

모델링과 학습 전략

<embedding> 토큰으로 표현 뽑아내기

WeMM-Embedding은 Qwen3.5 아키텍처 위에 세워졌습니다. 백본이 이질적이고 뒤섞인 멀티모달 입력을 원래부터 지원하므로, 텍스트와 이미지, 영상의 임의 조합을 하나의 조밀한 표현으로 인코딩할 수 있습니다.

표현을 추출하는 방식은 마지막 토큰 풀링(last-token pooling)입니다. 입력 시퀀스 끝에 전용 <embedding> 토큰을 덧붙이고, 그 토큰의 마지막 레이어 은닉 상태를 출력 표현으로 씁니다. 텍스트 조각은 백본의 토크나이저와 임베딩 레이어를 거쳐, 시각 조각은 백본의 시각 처리 파이프라인을 거쳐 토큰이 되고, 원래 입력 순서대로 배열된 뒤 <embedding> 토큰이 맨 끝에 붙습니다. 최종 표현은 L2 정규화를 거칩니다.

\mathbf{e}_{\mathcal{D}} = \frac{\mathbf{h}_{\mathrm{emb}}}{\left\|\mathbf{h}_{\mathrm{emb}}\right\|_{2}}

여기서 흥미로운 설계가 하나 나옵니다. <embedding> 토큰은 인과 어텐션 마스크(causal attention mask) 아래에서 앞의 모든 내용에 주의를 기울이는데, 같은 인과 구조를 이용하면 시퀀스의 여러 위치에 토큰을 여러 개 꽂을 수 있습니다. 예를 들어 영상 뒤에 음성 인식(ASR) 전사가 이어지는 입력이라면, 영상 토큰 바로 뒤에 하나, 시퀀스 맨 끝에 하나를 두어 영상만의 표현과 영상 및 텍스트 결합 표현을 한 번의 순전파로 동시에 얻을 수 있습니다. 모달 요구사항이 다른 여러 하위 서비스가 같은 추론 비용을 나눠 쓰는 셈입니다.

마트료시카 표현 학습으로 차원을 고르게 하기

WeMM-Embedding은 마트료시카 표현 학습(MRL, Matryoshka Representation Learning)으로 출력 차원을 유연하게 고를 수 있습니다. 최종 은닉 상태 \mathbf{h}_{\mathrm{emb}} \in \mathbb{R}^{D} 가 주어지면, 앞쪽 d 개 차원만 남기고 다시 L2 정규화하여 d \leq D 인 임베딩을 얻습니다.

\mathbf{e}_{\mathcal{D}}^{(d)} = \frac{\mathbf{h}_{\mathrm{emb},1:d}}{\left\|\mathbf{h}_{\mathrm{emb},1:d}\right\|_{2}}, \qquad d \in \mathcal{D}_{\mathrm{MRL}}

추론 시점에는 지원되는 모든 차원의 임베딩을 한 번의 순전파에서 앞부분 자르기와 재정규화만으로 얻을 수 있습니다. 벡터 데이터베이스의 저장 비용과 검색 지연을 낮춰야 하는 쪽에서는 이 성질이 실용적으로 중요합니다.

1단계: 대규모 멀티모달 정렬

1단계는 수억 건의 소스와 타깃 쌍으로 범용 임베딩 공간을 세우는 단계입니다. 각 배치는 하나의 데이터 소스에서만 구성하고, 과제가 다른 배치들을 학습 내내 번갈아 섞습니다.

대조 학습과 중복 인지 마스킹

표준 쌍 데이터는 InfoNCE 목적 함수로 소스와 타깃의 정렬을 최적화합니다. 각 소스에 대해 짝이 되는 타깃이 정답이 되고, 같은 배치의 다른 예제들의 타깃이 인배치 네거티브가 됩니다. 명시적 하드 네거티브가 있으면 같은 네거티브 풀에 합쳐집니다.

문제는 이 구성이 충돌을 일으킬 수 있다는 점입니다. 서로 다른 예제가 사실상 같은 소스나 타깃을 담고 있으면, 정답이어야 할 것을 네거티브로 밀어내는 학습 신호가 들어갑니다. 연구팀은 손실을 계산하기 전에 쌍의 양쪽 모두에 중복 인지 마스킹(duplicate-aware masking)을 적용합니다.

M_{i,j,c} = \begin{cases} 0, & \text{if } j \neq i \text{ and } s(q_{i},q_{j}) > \tau_{\mathrm{dup}}, \text{ or if } s(c_{i}^{+},c) > \tau_{\mathrm{dup}}, \\ 1, & \text{otherwise}, \end{cases}

\tau_{\mathrm{dup}} 은 거의 같은 표현을 판정하는 유사도 임계값입니다. 소스 쪽 마스킹은 거의 같은 소스에 딸린 후보 전부를 제외하고, 타깃 쪽 마스킹은 현재 정답과 지나치게 비슷한 후보를 제외합니다. 후자는 인배치 타깃과 명시적 하드 네거티브 양쪽에 모두 적용됩니다.

등급 관련도 학습

대규모 수집분의 일부에는 사람이 매긴 이산 관련도 등급이 붙어 있습니다. 아이템 대 아이템 검색이나 추천처럼 쌍마다 관련된 정도가 다른 상황에서 유용한 신호인데, 이를 평범한 정답 쌍으로 취급하면 등급 구조가 통째로 버려집니다. 그래서 연구팀은 점수 격차로 가중치를 준 CoSENT 계열 목적 함수를 씁니다. 쌍별 유사도의 상대 순서를 최적화하고, 관련도 격차가 큰 비교에 더 큰 비중을 둡니다. 두 예제 ij 의 가중치는 다음과 같이 정의됩니다.

w_{ij} = \max\left(\left|y_{i}-y_{j}\right|, \epsilon\right)

이 목적 함수는 관련도 등급이 높은 쌍이 더 높은 유사도를 받도록 유도하며, 라벨이 같은 쌍에는 순서 제약을 걸지 않습니다.

MRL은 대조 학습과 등급 관련도 학습 양쪽에 적용됩니다. 각 배치에서 해당 감독에 맞는 목적 함수를 지원되는 모든 임베딩 차원에서 독립적으로 계산한 뒤, 차원별 가중치 \alpha_d 로 합칩니다.

\mathcal{L}_{X}^{\mathrm{MRL}} = \sum_{d \in \mathcal{D}_{\mathrm{MRL}}} \alpha_{d} \mathcal{L}_{X}^{(d)}, \qquad X \in \left\{\mathrm{CL}, \mathrm{Rel}\right\}

2단계: 정제 데이터 미세조정과 증류

1단계로 넓은 정렬이 끝나면, 2단계는 정제 데이터셋 위에서 계속 학습합니다. 대조 학습과 등급 관련도 목적 함수는 그대로 쓰면서, 리랭킹 모델과 더 큰 임베딩 교사 모델이 감독을 보탭니다.

리랭커 감독과 그 한계

연구팀은 전용 멀티모달 리랭커를 따로 학습시켜, 질의별 후보 집합에 대한 세밀한 순서 감독을 제공합니다. 등급 관련도 학습에서 쓴 점수 격차 가중 CoSENT 형식을 그대로 가져오되, 사람이 매긴 관련도 등급 대신 리랭커 점수를 쓰고 같은 질의에 딸린 후보들 사이에서만 비교를 만듭니다.

\mathcal{L}_{\mathrm{Rank}} = \frac{1}{B}\sum_{b=1}^{B}\log\left[1+\sum_{(i,j)\in\widehat{\mathcal{P}}_{b}}\omega_{b,ij}\exp\left(\gamma\left[s(q_{b},c_{b,j})-s(q_{b},c_{b,i})\right]\right)\right]

연구팀은 이 기법의 효과를 제한적으로 보고했습니다. 논문에 따르면 자사 임베딩 모델이 검색해 온 후보를 리랭킹하는 것이 멀티모달 과제 전반에서 일관되게 성능을 올려 주지는 않았고, 선행 연구인 Qwen3-VL-Embedding의 보고와 비슷하게 제한된 일부 과제에서만 안정적인 이득이 관찰되었습니다. 그래서 리랭커 감독은 신뢰할 만한 개선이 나오는 설정에만 제한적으로 적용했습니다.

임베딩 증류

더 넓은 범위를 덮는 교사 감독을 얻기 위해, 같은 WeMM-Embedding 계열의 더 큰 모델에서 증류를 수행합니다. 리랭커 감독이 과제별 모델과 미리 만들어 둔 후보 집합에 의존하는 것과 달리, 임베딩 증류는 교사가 만들어 내는 배치 단위 소스와 타깃 유사도 분포에서 온라인으로 소프트 타깃을 얻습니다. 추가 오프라인 관련도 주석이 필요 없고 이질적인 배치 유형 전반에 적용할 수 있다는 것이 장점입니다.

목적 함수는 양방향입니다. 소스에서 타깃으로 가는 방향과 타깃에서 소스로 오는 방향의 유사도 분포를 각각 맞춥니다.

\mathcal{L}_{\mathrm{Emb}} = \frac{1}{2B}\sum_{i=1}^{B}\left[D_{\mathrm{KL}}\left(\mathbf{P}_{T,i}^{q\rightarrow c}\,\|\,\mathbf{P}_{S,i}^{q\rightarrow c}\right)+D_{\mathrm{KL}}\left(\mathbf{P}_{T,i}^{c\rightarrow q}\,\|\,\mathbf{P}_{S,i}^{c\rightarrow q}\right)\right]

표준 대조 학습의 원핫 감독과 달리 교사 분포는 후보들 사이의 상대적 유사도 차이를 그대로 담고 있어, 의미 관계를 옮기는 데 더 부드럽고 구조화된 목표를 제공합니다. 연구팀은 이 감독이 특히 소형 변형에 값어치가 크며 성능 향상에 상당 부분 기여했다고 밝혔습니다.

2B와 4B 변형의 교사는 파라미터를 고정한 9B WeMM-Embedding입니다. 9B에는 더 큰 교사가 없으므로, 대신 서로 보완적인 데이터 혼합과 학습 설정으로 여러 개의 특화된 2단계 변형을 만든 뒤 TIES-Merging 방식의 모델 병합으로 최종 9B 모델을 얻습니다.

실험 결과

평가는 MMEB 벤치마크 계열, Gemini Embedding 2 보고서가 다룬 교차 모달 검색 모음, 그리고 WeChat 실서비스에서 도출한 사내 벤치마크까지 세 축으로 이뤄집니다.

MMEB-v2: 이미지, 영상, 시각 문서

MMEB-v2(Massive Multimodal Embedding Benchmark)는 이미지와 영상, 시각 문서에 걸친 78개 데이터셋으로 분류, 질의응답, 검색, 시각 그라운딩을 평가합니다. 이미지와 영상 과제는 Hit@1, 시각 문서 과제는 NDCG@5를 씁니다. 주요 결과는 다음과 같습니다.

모델 크기 AVG Image Video VisDoc
VLM2Vec-V2 2B 59.3 64.9 34.9 69.2
Qwen3-VL-Embedding 2B 73.2 75.0 61.9 79.2
DME-Small† 2B 74.8 75.9 65.6 79.9
WeMM-Embedding 2B 77.9 79.6 70.8 80.7
WeMM-Embedding 4B 79.2 80.8 72.1 82.0
Qwen3-VL-Embedding 8B 77.8 80.1 67.1 82.4
DME-Medium† 9B 78.4 79.8 70.8 82.0
WeMM-Embedding 9B 80.6 81.9 74.3 83.3
Seed-1.6-Embedding⋆ 비공개 76.9 78.0 67.7 82.2
QQMM-embed-v4† 비공개 78.3 82.0 67.4 80.9
Octen-VL-Large⋆ 비공개 80.1 81.9 76.0 80.5
DME-Large† 비공개 80.2 81.1 74.4 83.4

(†는 가중치나 공개 추론 엔드포인트 없이 리더보드에 제출된 비공개 모델, ⋆는 파라미터 수를 밝히지 않은 상용 모델입니다.)

2B 변형은 종합 77.9 점으로 Qwen3-VL-Embedding-2B와 같은 2B 규모의 DME-Small을 각각 4.7 점, 3.1 점 앞섰고, 규모가 네 배인 Qwen3-VL-Embedding-8B의 77.8 점도 근소하게 넘어섰습니다. 4B는 79.2 점으로 비교 대상인 8B에서 9B 사이 베이스라인을 모두 앞질렀고, 9B는 80.6 점으로 2026년 8월 24일 기준 공식 MMEB 리더보드 1위에 올랐습니다.

오픈소스 베이스라인과의 격차가 가장 크게 벌어진 영역은 영상입니다. 2B의 영상 점수 70.8 은 같은 규모의 Qwen3-VL-Embedding-2B보다 8.9 점 높고, 9B의 74.3 은 Qwen3-VL-Embedding-8B와 견주면 7.2 점 차이가 납니다.

다만 종합 1위가 모든 영역의 1위를 뜻하지는 않습니다. 논문의 전체 표를 열한 개 세부 항목까지 펼쳐 보면, 9B가 1위를 차지한 항목은 이미지 검색(81.7) 하나뿐입니다. 나머지 열 개는 파라미터 수를 밝히지 않은 세 모델이 나눠 가집니다: 이미지 종합과 분류, 시각 그라운딩은 QQMM-embed-v4가, 이미지 질의응답과 영상 종합, 영상 질의응답, 영상 검색은 Octen-VL-Large가, 영상 분류와 시점 검색, 시각 문서는 DME-Large가 앞섭니다. 영상 종합만 놓고 보면 Octen-VL-Large의 76.0 이 9B의 74.3 보다 1.7 점 높습니다.

파라미터 수를 공개한 모델로 범위를 좁혀도 예외가 셋 남습니다. 이미지 분류는 IFM-TTE-8B가 76.7 로 9B의 76.2 를 앞서고, 영상 분류는 DME-Medium이 87.7 로 9B의 87.4 보다 높으며, 시점 검색은 자사 4B가 58.6 으로 9B의 58.5 를 근소하게 넘습니다. 마지막 항목은 규모를 키운다고 모든 과제가 함께 좋아지지는 않는다는 사례이기도 합니다. 결국 9B의 종합 1위는 어느 한 영역을 압도해서가 아니라 열한 항목 어디에서도 크게 뒤지지 않는 균형에서 나온 결과입니다.

MMEB-v3: 텍스트와 에이전트 과제

MMEB-v3는 복잡한 텍스트 검색과 에이전트 중심 과제, 오디오 평가, MCMR 이미지 검색까지 범위를 넓힌 190개 과제 벤치마크입니다. 새로 추가된 53개 텍스트 과제는 추론 검색, 지시 따르기, 긴 문맥 검색, 다중 조건 검색, 일반 검색을 다루고, 47개 에이전트 과제는 도구, GUI, 기억 검색을 다룹니다.

모델 크기 V3-All Text Agent MCMR Audio
Omni-Embed-Nemotron 3B 43.5 39.2 36.5 26.1 36.5
Qwen3-VL-Embedding 2B 50.9 39.2 39.3 42.0 0.0
WeMM-Embedding 2B 56.0 45.3 45.1 42.5 0.0
WeMM-Embedding 4B 58.2 47.9 49.0 41.9 0.0
E5-Omni 7B 47.1 26.9 36.7 41.1 43.0
Tianmu-Emb-Uni 8B 53.3 43.6 39.4 38.8 38.9
Qwen3-VL-Embedding 8B 53.5 42.5 38.4 38.0 0.0
WeMM-Embedding 9B 59.5 48.8 51.0 49.3 0.0

2B 변형이 V3-All 56.0 점으로 비교 대상 전체를 앞섰고, 텍스트와 에이전트 그룹에서도 각각 45.3 점, 45.1 점으로 최고점을 기록했습니다. 4B와 9B는 V3-All 58.2 점과 59.5 점으로 격차를 더 벌립니다.

Audio 열이 모두 0.0 인 것은 성능 문제가 아니라 지원 범위의 문제입니다. WeMM-Embedding은 현재 오디오 입력을 받지 않으며, V3-All을 계산할 때 미지원 과제에는 0점이 배정되는 규칙에 따라 11개 오디오 과제가 모두 0점으로 들어갔습니다. 오디오까지 지원하는 E5-Omni나 Omni-Embed-Nemotron이 그 열에서 점수를 얻고도 종합에서 뒤처졌다는 것은, 나머지 179개 과제의 격차가 그만큼 컸습니다.

12개 교차 모달 검색 벤치마크

세 번째 축은 텍스트와 시각 콘텐츠의 의미 정렬을 재는 12개 공개 벤치마크입니다. Gemini Embedding 2, Amazon Nova MME, Voyage Multimodal 3.5의 수치는 Gemini Embedding 2 기술 보고서에 실린 값을 그대로 가져왔고, Qwen3-VL-Embedding과 WeMM-Embedding은 연구팀이 직접 측정해 공개한 값입니다.

과제군 Gemini Embedding 2† Amazon Nova MME† Voyage MM 3.5† Qwen3-VL-Emb 8B WeMM 2B WeMM 9B
Text→Image (Recall@1 평균) 83.8 74.7 77.8 79.4 81.5 83.6
Image→Text (Recall@1 평균) 91.2 80.3 83.8 86.6 89.6 90.3
Text→Video (NDCG@10 평균) 63.1 54.0 49.9 64.6 70.4 72.9
ViDoRe V2 (NDCG@10) 64.9 60.6 65.5 62.8 61.4 66.3
AVG (12개 데이터셋) 79.5 70.2 71.8 76.7 79.8 81.7

2B가 12개 과제 평균 79.8 점으로 비교 대상 오픈소스 모델을 모두 앞서면서 선도적인 상용 모델과도 견줄 만한 수준에 올랐고, 4B와 9B는 80.8 점과 81.7 점으로 더 올라갑니다. 다만 항목별로 보면 우열이 갈립니다. 영상 검색은 2B조차 Gemini Embedding 2를 7.3 점 앞서지만, 텍스트와 이미지를 오가는 두 방향은 9B도 Gemini Embedding 2에 근소하게 뒤집니다(각각 0.2 점, 0.9 점). 문서 검색인 ViDoRe V2는 2B가 61.4 점으로 비교 대상 중 가장 낮은 반면 9B는 66.3 점으로 가장 높아, 이 항목에서는 규모에 따른 차이가 큽니다.

사내 벤치마크와 실서비스 배포

WeChat 실서비스에서 도출한 26개 과제 사내 벤치마크는 분류, 검색, 교차 도메인 콘텐츠 매칭, 문서 관련도, 영상 관련도의 다섯 범주로 이뤄집니다.

모델 크기 AVG 분류 검색 교차 도메인 문서 관련도 영상 관련도
Qwen3-VL-Embedding 2B 60.9 60.1 51.9 55.5 75.5 64.9
WeMM-Embedding 2B 72.0 72.6 65.5 73.7 86.4 68.8

평균 11.1 점 차이이고, 다섯 범주 모두에서 앞섭니다. 특히 교차 도메인 콘텐츠 매칭이 55.5 점에서 73.7 점으로 18.2 점 올랐습니다. 사내 데이터로 학습한 모델이 사내 벤치마크에서 유리한 것은 감안해야 하지만, 격차의 크기는 짚어 둘 만합니다.

오프라인 평가 너머에서, WeMM-Embedding은 WeChat 공식 계정과 채널, 전자상거래 콘텐츠를 아우르는 추천 시스템에 대규모로 배포되었습니다. 텍스트와 커버 이미지, 영상 프레임에서 나온 상호 보완적인 신호를 결합한 표현이 후보 검색, 랭킹 피처 구성, 사용자 시퀀스 모델링, 교차 도메인 콘텐츠 이해까지 추천 파이프라인의 여러 단계에서 쓰이고, 이 표현에서 파생된 시맨틱 ID가 색인과 시퀀스 모델링을 위한 간결한 이산 피처를 제공합니다. 연구팀은 지금까지 14건의 온라인 A/B 테스트에서 일관된 개선을 얻었고 해당 개선을 프로덕션에 반영했다고 밝혔습니다. 특히 롱테일 콘텐츠와 갓 발행된 콘텐츠에서 이득이 두드러졌다고 합니다.

WeChat 검색에도 배포되어 채널 영상, 공식 계정 글, 모멘트를 아우르는 의미 검색을 지원합니다.

추가 분석

차원을 줄이면 무엇을 잃는가

MRL로 얻은 중첩 표현이 차원을 줄일 때 성능을 얼마나 유지하는지도 함께 측정되었습니다. 연구팀은 2B 모델을 64차원부터 2,048차원까지 평가하고, 각 평가 그룹마다 2,048차원 결과 대비 유지되는 성능의 비율을 보고했습니다.

이미지와 영상 과제는 차원이 줄어도 거의 같은 궤적을 그립니다. 256차원에서 두 과제 모두 2,048차원 성능의 98.7\% 를 유지하고, 512차원에서는 각각 99.2\%98.8\% 로 올라갑니다. 시각 문서 과제는 차원 축소에 더 민감한데, 연구팀은 시각 문서의 정보 밀도가 높다는 점, 특히 조밀한 텍스트 내용을 그 이유로 추정합니다.

과제 유형별로 보면 민감도의 순서가 뚜렷합니다. 분류가 가장 둔감하고, 질의응답이 중간 정도로 떨어지며, 검색이 가장 크게 영향을 받습니다. 특히 64차원과 128차원에서 검색의 손실이 큽니다. 다만 256차원에 이르면 세 과제군 모두 각자의 전체 차원 성능 대비 97\% 이상을 유지하고, 차원을 더 늘려서 얻는 이득은 점점 작아집니다. 저장 비용과 검색 지연이 중요한 쪽이라면 256차원이나 512차원이 실용적인 선택지가 되는 셈입니다.

1단계 설계에서 무엇이 중요했는가

연구팀은 2B 모델로 소규모 제거 연구(ablation study)를 수행해 1단계의 설계 선택을 점검했습니다.

1단계 설정 AVG Image Video VisDoc
전체 설정 71.9 76.1 59.1 75.3
과제별 지시문 제거 71.1 75.7 58.2 73.8
과제 일관 배치 제거 68.5 71.5 56.3 73.1
중복 인지 마스킹 제거 71.4 75.3 58.6 75.1

가장 큰 영향을 준 것은 과제 일관 배치(task-consistent batching)입니다. 이를 혼합 샘플링으로 바꾸면 종합 점수가 3.4 점 떨어지는데, 하나의 과제와 후보 공간으로 배치를 구성해야 인배치 네거티브가 유용한 신호가 됩니다. 서로 다른 과제의 타깃이 한 배치에 섞이면 구별하기가 너무 쉬워져 학습 신호가 약해집니다.

과제별 지시문을 빼면 0.8 점이 떨어지고, 가장 크게 나빠지는 곳은 시각 문서 과제(75.3 \to 73.8)입니다. 명시적 지시문이 이질적인 과제들 사이에서 과제 고유의 매칭 목표를 잡아 준다고 연구팀은 해석합니다. 중복 인지 마스킹 제거는 0.5 점 하락으로 영향이 가장 작지만, 분류처럼 라벨이 반복되는 과제에 통일된 대조 목적 함수를 맞추는 역할을 합니다.

2단계 전략의 누적 효과

2단계에서 도입한 전략들을 하나씩 쌓아 가며 측정한 결과는 다음과 같습니다.

누적 설정 AVG Image Video VisDoc
1단계 체크포인트 75.7 77.7 67.5 78.9
+ 정제 데이터 76.6 78.9 69.2 78.5
+ 리랭커 감독 76.7 78.8 69.4 79.1
+ 임베딩 교사 증류 77.6 79.4 70.0 80.4
+ 시각 입력 예산 확대 (최종) 77.9 79.6 70.8 80.7

전체 개선 폭은 2.2 점입니다. 정제 데이터가 이미지와 영상에서 뚜렷한 이득을 주고(+0.9), 리랭커 감독은 +0.1 로 가장 작으며 그나마도 시각 문서에서 가장 크게 나타납니다. 앞서 연구팀이 리랭커 감독의 효과가 일부 과제에 한정된다고 밝힌 것과 이 수치가 맞물립니다. 임베딩 교사 증류는 +0.9 로 세 영역 모두에서 개선을 주었고, 마지막으로 고해상도 입력과 더 조밀한 영상 프레임 샘플링으로 시각 입력 예산을 늘리자 +0.3 이 더해졌으며 영상에서 특히 두드러졌습니다.

설치 및 사용 방법

모델은 Hugging Face에 2B, 4B, 9B 세 가지가 공개되어 있습니다. 각각 같은 규모의 Qwen3.5 백본에 대응하고, 기본 출력 차원과 지원하는 마트료시카 차원이 조금씩 다릅니다.

모델 백본 기본 차원 지원 차원
WeMM-Embedding-2B Qwen3.5-2B 2,048 64, 128, 256, 512, 1024, 2048
WeMM-Embedding-4B Qwen3.5-4B 2,560 64, 128, 256, 512, 1024, 2560
WeMM-Embedding-9B Qwen3.5-9B 4,096 64, 128, 256, 512, 1024, 2048, 4096

저장소를 받아 의존성을 설치합니다. 전처리 동작이 버전에 따라 달라질 수 있어 저장소는 transformers==5.2.0 을 권장합니다.

git clone https://github.com/Tencent/WeMM-Embedding
cd WeMM-Embedding
pip install -r requirements.txt

저장소를 받지 않고 모델만 쓸 경우, 모델 카드가 명시한 의존성은 다음과 같습니다.

pip install torch transformers==5.2.0 "qwen-vl-utils[decord]==0.0.14" \
  "sentence-transformers>=5.7.0" "accelerate>=1.1.0"

transformers 로 텍스트, 이미지, 영상 임베딩을 각각 추출하는 예제입니다. --dimension 을 빼면 전체 차원이 나옵니다.

python examples/transformers_inference.py \
  --model /path/to/WeMM-Embedding-2B \
  --image /path/to/image.jpg \
  --video /path/to/video.mp4 \
  --dimension 2048

sentence-transformers 로도 바로 불러올 수 있고, 이 경우 로컬 경로 대신 tencent/WeMM-Embedding-2B 같은 Hugging Face 모델 id를 그대로 써도 됩니다.

python examples/sentence_transformers_inference.py \
  --model tencent/WeMM-Embedding-2B \
  --image /path/to/image.jpg \
  --video /path/to/video.mp4 \
  --dimension 2048

서빙은 vLLM 0.27.0 과 SGLang 0.5.9 에서 검증되었습니다.

MODEL_PATH=/path/to/WeMM-Embedding-2B
vllm serve "$MODEL_PATH" \
  --runner pooling \
  --chat-template "$MODEL_PATH/embedding_chat_template.jinja"

마트료시카 임베딩은 별도 API 없이 앞부분을 자르고 다시 정규화하면 됩니다.

embedding = torch.nn.functional.normalize(embedding[..., :d], dim=-1)

저장소에는 재현용 평가 코드도 함께 들어 있습니다. mmeb_v3_eval/ 은 공식 VLM2Vec 파이프라인에 다중 노드 다중 GPU 추론과 wemm_embedding 백본, 공개 모델에 맞춘 데이터셋 지시문, 64프레임 영상 샘플링을 더한 최소 차이의 포크입니다.

한계와 남는 질문

가장 분명한 한계는 오디오입니다. WeMM-Embedding은 현재 오디오 입력을 지원하지 않으며, MMEB-v3의 11개 오디오 과제에서 0점을 받습니다. 옴니 모달을 표방하는 경쟁 모델들이 오디오를 이미 다루고 있다는 점을 감안하면, 연구팀이 향후 과제로 옴니 모달 입력 확장, 모델군의 추가 규모 확대, 데이터 큐레이션과 세밀한 관련도 감독의 개선 세 가지를 꼽으면서 옴니 모달을 첫머리에 올린 것은 자연스러운 순서로 보입니다.

한국어를 다루려는 쪽에서 먼저 확인할 부분은 언어 범위입니다. 세 모델의 Hugging Face 카드가 선언한 언어는 중국어와 영어뿐이고, 기술 보고서에도 한국어 평가는 없습니다. 다중 언어 검색 과제인 MCMR(MERIT 기반)에서 9B가 49.3 점으로 비교 대상 중 가장 높기는 하지만 언어별 분해 결과는 공개되지 않았으므로, 한국어 검색에 쓰려면 자체 데이터로 직접 재어 보는 편이 안전합니다. 백본인 Qwen3.5가 다국어 모델이라 어느 정도는 동작할 가능성이 있지만, 그것은 이 보고서가 보증한 범위가 아닙니다.

리랭커 감독의 제한적 효과도 정직하게 남아 있는 부분입니다. 누적 분석에서 이 항목이 더한 것은 0.1 점이었고, 연구팀 스스로 안정적인 이득이 일부 과제에서만 관찰되었다고 밝혔습니다. 임베딩 모델이 이미 검색해 온 후보를 같은 계열의 리랭커로 다시 줄 세우는 것이 왜 멀티모달 전반으로 일반화되지 않는지는 이 보고서가 답하지 않고 남겨 둔 질문입니다.

9B 모델을 얻는 방식도 다른 두 규모와 다릅니다. 2B와 4B는 9B를 교사로 삼아 증류로 끌어올렸지만, 9B에는 더 큰 교사가 없어 여러 특화 변형을 병합하는 우회로를 택했습니다. 규모를 더 키울 때 이 방식이 계속 통할지, 아니면 교사 없이도 되는 다른 감독이 필요한지는 앞으로의 확장에서 확인될 부분입니다.

재현 가능성 측면에서는 가중치와 추론 코드, MMEB-v3 평가 코드가 Apache 2.0으로 열린 반면, 수억 건 규모의 학습 데이터와 정제 파이프라인, 리랭커 모델 자체는 공개되지 않았습니다. 사내 벤치마크의 26개 과제와 14건의 A/B 테스트 역시 외부에서 검증할 수 없는 값입니다. 기술 보고서 장르에서 흔한 경계이긴 하지만, 결과를 읽을 때 감안할 부분입니다.

그럼에도 이 보고서가 남기는 실질적인 값어치는 분명합니다. 2B라는 크기에서 8B급 성능을 끌어낸 경로가 새로운 아키텍처가 아니라 데이터를 고르는 방법과 감독 신호를 설계하는 방법이었다는 점, 그리고 그 경로가 리더보드뿐 아니라 수억 명이 쓰는 서비스의 A/B 테스트에서도 재현되었다는 점입니다. 멀티모달 임베딩을 실제로 배포해야 하는 쪽에서는 256차원에서 98.7\% 를 유지한다는 수치 하나만으로도 저장 비용 계산이 달라질 수 있습니다.

:scroll: WeMM-Embedding: WeChat Multi-Modal Embedding Technical Report 논문

:github: WeMM-Embedding GitHub 저장소

:hugs: WeMM-Embedding 모델 모음 (Hugging Face)

더 읽어보기




이 글은 GPT 모델로 정리한 초안을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 댓글로 알려주시기를 부탁드립니다. :hugs:

논문의 주장이나 벤치마크에 대한 의견, 직접 재현해보신 결과가 있다면 :pytorch:파이토치 한국 사용자 모임:south_korea: 회원들을 위해 댓글로 공유해주세요! :folded_hands: