kangnlp

논문 리뷰

논문 리뷰: Conan-Embedding-v2 — LLM을 처음부터 학습시켜 텍스트 임베딩 SOTA를 달성하다

32분 읽기

Conan-Embedding-v2: Training an LLM from Scratch for Text Embeddings 리뷰

기존 LLM을 LoRA로 미세조정하는 대신, 임베딩에 최적화된 1.4B LLM을 처음부터 훈련해 MTEB English/Chinese 모두에서 SOTA를 달성한 논문.

논문 정보

항목내용
제목Conan-Embedding-v2: Training an LLM from Scratch for Text Embeddings
저자Shiyu Li, Yang Tang, Ruijie Liu, Shi-Zhe Chen, Xi Chen (Tencent)
학회/저널EMNLP 2025 Main
논문 링크ACL Anthology

1. 들어가며

텍스트 임베딩(Text Embedding)은 검색, 추천, 분류 등 NLP의 거의 모든 다운스트림 태스크의 기반이 되는 기술이다. BERT 시대에는 Sentence-BERT 류의 모델이 이 역할을 맡았고, LLM 시대로 넘어오면서 Mistral-7B 같은 대형 모델을 LoRA로 미세조정하는 방식이 주류가 됐다. NV-Embed-v2, bge-en-icl, gte-Qwen2-7B-instruct 같은 모델들이 이 접근법으로 좋은 성과를 냈다.

그런데 이 방식에는 근본적인 문제가 두 가지 있다. 첫째, 베이스 LLM이 학습한 데이터와 임베딩 모델이 필요로 하는 데이터 사이에 **데이터 갭(data gap)**이 존재한다. 둘째, LLM은 인과적 마스크(causal mask)로 다음 토큰을 예측하는 반면, 임베딩 모델은 양방향 마스크(bidirectional mask)로 문장 전체를 이해해야 한다는 **훈련 갭(training gap)**이 존재한다. LoRA가 이 갭을 완전히 메울 수 있을까? Conan-embedding-v2의 저자들은 "아니다"라고 답하며, 아예 임베딩에 맞춤화된 LLM을 처음부터 만드는 길을 택했다.

결과부터 말하면, 파라미터 수가 고작 1.4B에 불과한 이 모델이 7B급 모델들을 제치고 MTEB English와 Chinese 벤치마크 모두에서 1위를 차지했다(2025년 5월 19일 기준). 이 논문이 어떻게 이걸 해냈는지 뜯어보자.


2. 기존 연구의 한계

2.1 LLM 기반 임베딩 모델

최근 LLM 기반 임베딩 연구는 크게 세 갈래로 진행돼 왔다. e5-mistral-7b-instruct(Wang et al., 2023)는 합성 데이터를 활용해 적은 학습 스텝으로 높은 성능을 끌어냈고, NV-Embed(Lee et al., 2024)는 잠재 어텐션 레이어(latent attention layer)를 도입하고 인과적 어텐션 인코딩을 제거하는 방식으로 표현력을 높였다. bge-en-icl(Li et al., 2024a)은 LLM의 인컨텍스트 학습 능력을 활용한 퓨샷 학습으로 임베딩 품질을 올렸고, NV-Retriever(Moreira et al., 2024)는 긍정 관련성 점수를 이용한 마이닝으로 거짓 부정(false negative) 제거에 집중했다.

공통점은 기존에 훈련된 LLM(보통 Mistral-7B)을 가져다가 LoRA로 파인튜닝한다는 것이다. 이 접근의 근본적 한계는 베이스 모델의 능력에 종속된다는 점, 그리고 LoRA가 전체 파라미터의 일부만 업데이트하므로 개선 폭에 본질적인 한계가 있다는 점이다(Biderman et al., 2024).

2.2 교차 언어 정보 검색

다국어 텍스트 임베딩에서도 진전이 있었다. M3-Embedding(Chen et al., 2024b)과 mE5(Wang et al., 2024a)는 대조 학습과 지식 증류를 통해 다국어 처리 효율을 높였고, LECCR(Wang et al., 2024b)은 멀티모달 LLM으로 언어·모달리티 간 의미 격차를 줄였다. 하지만 대부분의 연구가 다국어 코퍼스로 직접 파인튜닝하거나 단순 번역 병렬 코퍼스를 활용하는 데 그치면서, 언어 간 본질적 관계를 활용한 표현 통합에는 소홀했다.


3. 핵심 아이디어

Conan-embedding-v2의 접근은 명쾌하다. 기존 LLM을 빌려 쓰는 대신 임베딩 태스크를 염두에 두고 LLM을 처음부터 설계·훈련하자는 것이다. 이렇게 하면 데이터 갭과 훈련 갭을 모두 원천적으로 해소할 수 있다.

데이터 측면에서는 LLM 사전훈련 단계부터 뉴스, QA, 다국어 쌍 데이터를 투입해 임베딩에 유리한 표현을 학습시킨다. 훈련 측면에서는 인과적 마스크에서 양방향 마스크로의 전환을 갑자기 하는 대신 **소프트 마스크(soft mask)**로 점진적으로 전환하는 메커니즘을 도입했다. 여기에 26개 언어 간 교차 검색이 가능한 **교차 언어 검색 데이터셋(CLR)**과, 학습 도중 실시간으로 어려운 부정 예시를 교체하는 **동적 하드 네거티브 마이닝(DHNM)**이 더해진다.

전체 파인튜닝(full fine-tuning)이 LoRA보다 못한 이유가 바로 이 훈련 갭 때문이었는데, 소프트 마스크가 이 문제를 해결하면서 전체 파인튜닝의 잠재력을 비로소 끌어낼 수 있게 된 것이다.


4. 제안 방법 (Method)

4.1 전체 파이프라인

Conan-embedding-v2의 학습은 네 단계로 이루어진다: (1) LLM 사전훈련, (2) LLM SFT, (3) 임베딩 약지도 학습(weakly-supervised training), (4) 임베딩 지도 학습(supervised training).

Figure 2: Overview of Conan-embedding-v2
Figure 2: Overview of Conan-embedding-v2

Figure 2: Conan-embedding-v2의 전체 파이프라인. LLM 학습(단계 1, 2)에서 임베딩 데이터를 추가하고, 약지도 학습(단계 3)에서 소프트 마스크로 LLM-임베딩 갭을 연결하며, 지도 학습(단계 4)에서 교차 언어 검색 데이터셋과 동적 하드 네거티브 마이닝을 적용한다. (원논문)

Figure 2를 보면 각 단계에서 데이터 포맷과 손실 함수가 달라지는 것을 확인할 수 있다. 특히 LLM 학습 단계에서 이미 쌍 데이터(query-positive)를 instruction-input-output 형태로 투입해 임베딩 태스크와의 데이터 갭을 줄이는 점이 눈에 띈다. 중앙의 소프트 마스크 시각화에서는 인과적 마스크(상삼각이 전부 0)가 소프트 마스크를 거쳐 양방향 마스크(모든 값이 1)로 점진적으로 변하는 과정이 잘 표현돼 있다.

4.2 모델 아키텍처

Kaplan et al.(2020)의 스케일링 법칙 연구에 따르면, 고정된 파라미터 예산에서 트랜스포머 레이어를 7개 이상 늘려도 테스트 손실이 거의 변하지 않는다. 이 관찰에 기반해 레이어는 8개로 줄이고, 대신 히든 차원을 3584로 키우는 전략을 택했다. 결과적으로 1.4B 파라미터로 gte-Qwen2-7B-instruct(7.6B)와 동일한 임베딩 차원(3584)을 유지하면서도 모델 크기는 1/5로 줄인 셈이다.

구체적 스펙은 다음과 같다:

  • 어텐션 헤드 32개, KV 헤드 8개 (GQA 적용)
  • FFN 중간 차원 8192
  • 최대 컨텍스트 윈도우 32,768 토큰
  • 어휘 크기 150,000 (약 40만 다국어 코퍼스에서 학습한 자체 토크나이저)

4.3 LLM 학습

LLM 사전훈련에서는 약 3조(3T) 토큰의 일반 데이터를 사용하되, 뉴스, QA, 웹페이지 데이터에 가중치를 줬다. 데이터 필터링은 InternLM2(Cai et al., 2024)와 동일한 방식을 적용했다. SFT 단계에서는 약 6억 건의 쌍 데이터를 instruction-input-output 형태로 학습시켰다.

이 과정이 단순한 LLM 학습과 다른 이유는, 이후 임베딩 훈련에 쓸 쌍 데이터를 사전훈련 때부터 노출시킨다는 점이다. LLM이 이미 쌍 관계를 이해한 상태에서 임베딩 학습으로 넘어가니, 데이터 갭이 크게 줄어든다.

4.4 임베딩 학습

약지도 학습 단계에서는 LLM SFT와 동일한 데이터를 사용하지만, 데이터 포맷과 손실 함수가 다르다. Instruction + input이 쿼리, output이 긍정 패시지가 되고, 데이터 품질 보장을 위해 gte-Qwen2-7B-instruct로 점수를 매겨 0.4 미만은 제거한다. 손실 함수로는 인배치 네거티브 샘플링을 적용한 InfoNCE 손실을 사용한다:

L=logexp(sim(xi,yi+)/τ)jexp(sim(xi,yj)/τ)\mathcal{L} = -\log \frac{\exp(\text{sim}(x_i, y_i^+) / \tau)}{\sum_j \exp(\text{sim}(x_i, y_j) / \tau)}

여기서 xix_i는 쿼리, yi+y_i^+는 긍정 패시지, yjy_j는 배치 내 다른 샘플의 패시지(부정 예시로 간주)다.

지도 학습 단계에서는 태스크별로 세분화하여 학습한다. 검색(retrieval), 교차 언어 검색(cross-lingual retrieval), 분류(classification), 의미 유사도(STS) 네 카테고리로 나뉘며, 검색·분류 태스크는 InfoNCE 손실, STS 태스크는 CoSENT 손실을 사용한다:

LCoSENT=log(1+Ordereλ(xk,xlxi,xj)/τ)\mathcal{L}_{\text{CoSENT}} = \log \left(1 + \sum_{\text{Order}} e^{\lambda(\langle x_k, x_l \rangle - \langle x_i, x_j \rangle) / \tau}\right)

여기서 Order는 sim(i,j)>sim(k,l)\text{sim}(i,j) > \text{sim}(k,l)인 쌍을 의미하고, xk,xl\langle x_k, x_l \rangle은 코사인 유사도, τ\tau는 스케일 온도 파라미터다. CoSENT는 교차 엔트로피 손실보다 STS 태스크에서 약간 더 좋은 성능을 보인다고 알려져 있다(Su, 2022).

4.5 소프트 마스크 (Soft Mask)

이 논문에서 가장 독창적인 기여 중 하나다. LLM의 인과적 마스크와 임베딩 모델의 양방향 마스크 사이에는 두 가지 핵심적 차이가 있다:

  1. 어텐션 가중치 문제: 인과적 마스크에서 상삼각 영역의 어텐션 가중치는 순전파에서 전혀 사용되지 않는다. 양방향 마스크로 갑자기 전환하면, 이 가중치들이 학습 없이 활성화되면서 불안정한 학습이 발생한다.
  2. 랭크(rank) 문제: 인과적 마스크는 풀랭크(full-rank)라서 표현력이 강한 반면, 양방향 마스크는 랭크가 항상 1이다. 갑작스러운 전환 시 초반에 빠르게 수렴하지만 곧 지역 최솟값(local minima)에 갇혀 추가 최적화가 어려워진다.

소프트 마스크는 스케줄링 함수 α(t)\alpha(t)를 도입해 이 전환을 점진적으로 수행한다:

Mij=min(1,α(t)lilj),i<jM_{ij} = \min\left(1, \alpha(t) \cdot \frac{l - i}{l - j}\right), \quad i < j

여기서 i<ji < j는 상삼각 영역을 의미하고, ll은 학습 시퀀스 길이다. α(t)=t/τ\alpha(t) = t/\tau (선형 함수)로, tt는 현재 스텝, τ\tau는 총 스텝 수다. 이 수식의 동작을 직관적으로 설명하면, 앞쪽 열의 값이 먼저 1에 도달하고 뒤쪽 열은 천천히 따라간다. 앞에서부터 읽어나가는 방향으로 가중치가 점차 줄어드는 패턴과도 부합하는 설계다.

이 접근의 장점은 명확하다. 랭크가 NN에서 서서히 1로 감소하면서 모델이 점진적으로 양방향 표현을 학습할 수 있고, 동시에 상삼각 어텐션 가중치도 자연스럽게 활성화된다. Appendix C에서 논의하겠지만, 선형 함수가 가속/감속 이차 함수보다 일관되게 좋은 결과를 보였다.

4.6 교차 언어 검색 데이터셋 (CLR)

기존 다국어 임베딩 연구가 번역 병렬 코퍼스에 주로 의존한 반면, 이 논문은 **교차 언어 검색(cross-lingual retrieval)**이라는 태스크를 직접 구성한다. 기존 검색 데이터셋의 쿼리 부분만 Qwen2.5-7B로 다른 언어로 번역해서, 예를 들어 MSMARCO의 영어 쿼리를 중국어로 번역하면 "중국어 쿼리 → 영어 패시지" 교차 언어 검색 데이터가 만들어진다. 이 방식으로 26개 언어 간 교차 검색 데이터 약 1천만 쌍을 생성했다.

이 아이디어가 실제로 효과가 있는지 t-SNE로 확인한 결과가 인상적이다:

Figure 3: t-SNE embedding distribution
Figure 3: t-SNE embedding distribution

Figure 3: 교차 언어 검색 데이터셋 학습 전후의 임베딩 분포 비교. (원논문)

왼쪽(Vanilla)에서는 영어, 일본어, 독일어, 프랑스어, 중국어, 스페인어 6개 언어의 임베딩이 완전히 분리된 클러스터를 형성하고 있다. 오른쪽(CLR 적용 후)에서는 모든 언어의 임베딩이 하나의 통합된 분포로 섞여 있다. 이건 단순히 같은 의미의 문장이 같은 공간에 놓인다는 것을 넘어서, 모델이 언어와 무관하게 의미 기반으로 표현을 조직하게 됐다는 증거다. Multilingual Amazon Reviews Corpus(MTEB 평가에 포함되지 않는 데이터)를 사용한 검증이라는 점에서 일반화 능력도 확인된다.

4.7 동적 하드 네거티브 마이닝 (DHNM)

기존 하드 네거티브 마이닝은 전처리 단계에서 다른 모델로 한 번 수행하고 끝이다. 하지만 (1) 다른 모델이 판단한 하드 네거티브가 현재 학습 중인 모델에게도 어려운지 보장할 수 없고, (2) 학습이 진행되면서 모델 가중치가 업데이트되면 이전에 어려웠던 예시가 더 이상 어렵지 않을 수 있다.

DHNM은 학습 중 실시간으로 각 부정 예시의 난이도를 모니터링한다. 난이도 점수는 쿼리 임베딩과 하드 네거티브 임베딩의 코사인 유사도로 측정한다:

S=cos(fk(q),f(p))S = \cos(f_k(q), f(p))

교체 조건은 다음과 같다:

Replace Ni if Si×1.2<Si,0 and Si<0.7\text{Replace } N_i \text{ if } S_i \times 1.2 < S_{i,0} \text{ and } |S_i| < 0.7

NiN_iii번째 하드 네거티브, Si,0S_{i,0}는 초기 점수, SiS_i는 현재 점수다. 즉, 현재 점수에 1.2를 곱해도 초기 점수보다 낮아졌고, 절대값이 0.7 미만이면 이 부정 예시가 더 이상 충분히 어렵지 않다고 판단해 새로운 것으로 교체한다. 추가로, 초기 스텝에서 절대값이 0.4 미만인 경우도 바로 제거한다.

Conan-v1에서는 1k 스텝마다 체크했지만, v2에서는 손실 계산 과정에서 이미 쿼리-네거티브 유사도를 계산하기 때문에 매 스텝마다 경량 체크를 수행한다. 추가 계산 오버헤드 없이 항상 최신의 어려운 부정 예시를 유지하는 셈이다.


5. 실험 결과

5.1 실험 설정

학습 데이터: 약지도 학습에 17.66억 쌍, 지도 학습에 약 1,060만 쌍을 사용했다. 세부 구성은 부록 섹션에서 다룬다.

평가 벤치마크:

  • MTEB English (classic): 분류, 클러스터링, 쌍분류, 리랭킹, 검색, STS, 요약 7개 태스크
  • MTEB Chinese: 요약을 제외한 6개 태스크
  • MKQA: 26개 언어의 교차 언어 검색 벤치마크

하드웨어: 64장의 Ascend 910B GPU로 사전훈련(219시간), 이후 단계는 16장으로 진행. 총 학습 시간은 약 367시간이다.

5.2 MTEB 메인 결과

LanguagesModelClass. Acc.Clust. V-Meas.PairClass. APRerank MAPRetri. nDCG@10STS Spear.Summ. Spear.Avg.
Englishe5-mistral-7b-instruct79.8551.4488.4249.7857.6284.3236.5767.97
Englishstella-en-1.5B-v589.3857.0688.0250.1952.4283.2736.9169.43
EnglishNV-Embed-v287.1947.6688.6949.6162.8483.8235.2169.81
Englishgte-Qwen2-7B-instruct88.5258.9785.9050.4758.0982.6935.7470.72
Englishjasper-en-v190.2760.5288.1450.0056.0584.3737.1971.41
Englishgemini-embedding-exp90.0559.3987.7048.5964.3585.2938.2873.30
EnglishConan-embedding-v290.9859.9692.3549.0766.2485.1235.4873.52
Chinesee5-mistral-7b-instruct72.9652.3066.3161.3861.7548.34-59.92
Chinesegte-Qwen2-1.5B-instruct72.5354.6179.5068.2171.8660.05-67.12
Chinesebge-multilingual-gemma275.3159.3079.3068.2873.7355.19-67.64
Chinesegte-Qwen2-7B-instruct75.7766.0681.1669.2475.7065.20-71.62
Chinesexiaobu-embedding-v276.5365.1785.9472.5876.4964.18-72.36
ChineseConan-embedding-v176.7766.3385.6872.7676.6763.67-72.50
Chineseretrieve-zh-v176.8866.5085.9872.8676.9763.92-72.71
ChineseConan-embedding-v276.4768.8492.4474.4178.3165.48-74.24

Table 1 (원논문): MTEB English 및 Chinese 벤치마크 결과. Conan-embedding-v2는 영어 73.52, 중국어 74.24로 양쪽 모두 SOTA.

영어 벤치마크에서 Conan-embedding-v2는 평균 73.52로 2위인 gemini-embedding-exp(73.30)보다 0.22 앞선다. 개별 태스크를 보면 분류(90.98)와 쌍분류(92.35)에서 압도적이고, 검색(66.24)에서도 NV-Embed-v2(62.84)를 크게 상회한다. 반면 리랭킹(49.07)과 요약(35.48)은 상대적으로 평범한데, 이는 이 두 태스크의 학습 데이터 비중이 낮았을 가능성이 크다.

중국어 벤치마크에서는 더 극적인 차이를 보인다. 평균 74.24로 기존 SOTA인 retrieve-zh-v1(72.71) 대비 +1.53 향상이다. 쌍분류(92.44)가 이전 최고 수치(85.98) 대비 6.46 포인트나 올랐고, 클러스터링(68.84)과 검색(78.31)에서도 모두 1위다. 처음부터 다국어 데이터로 훈련한 효과가 중국어에서 특히 두드러지는 것으로 보인다.

Figure 1: MTEB English Benchmark Comparison
Figure 1: MTEB English Benchmark Comparison

Figure 1: MTEB English 벤치마크에서 Conan-embedding-v2와 다른 모델들의 비교. 빨간 점선은 Conan-embedding-v2를 제외한 모든 베이스라인의 로그 추세선. (원논문)

Figure 1에서 가장 인상적인 건 로그 추세선과의 괴리다. 다른 모델들은 파라미터 수 증가에 따라 대략 로그 곡선을 따르는 반면, Conan-embedding-v2(별표)는 이 추세선보다 확연히 위에 놓여 있다. 1.4B 파라미터로 7~8B 모델들보다 높은 성능을 달성한 것인데, 이는 "같은 규모에서 더 잘한다"를 넘어서 파라미터 효율성에서 질적으로 다른 수준에 도달했다는 의미다.

5.3 제로샷 MTEB 결과

ModelZero-shotClass. Acc.Clust. V-Meas.PairClass. APRerank. MAPRetri. nDCG@10STS Spear.Summ. Spear.Avg.
bge-large-en-v1.5100%78.3448.0187.1348.2655.4482.7933.1365.89
multilingual-e5-large-instruct95%75.5449.8986.2448.7453.4784.7229.8965.53
UAE-Large-v1100%79.0847.8687.2548.3555.9184.3730.1366.40
GritLM-7B95%81.2550.8287.2949.5954.9583.0335.6567.07
e5-mistral-7b-instruct95%79.8551.4488.4249.7857.6284.3236.5767.97
text-embedding-00595%86.0351.9187.6248.8458.7785.1835.0569.60
SFR-Embedding-Mistral85%80.4754.9388.5950.1559.3384.7736.3269.31
Linq-Embed-Mistral95%83.0054.0788.4449.4460.1484.6937.2669.80
Conan-embedding-v295%88.3557.3490.9747.2163.8483.7735.2071.43

Table 2 (원논문): MTEB English 제로샷 결과. e5-mistral-7b-instruct와 동일한 데이터 선별 전략 사용.

일반화 능력을 검증하기 위해 e5-mistral-7b-instruct의 데이터 선별 전략을 따라 MSMARCO, NQ, FEVER, HotpotQA 등 소량의 MTEB 학습 데이터만 사용한 제로샷 실험도 수행했다. Linq-Embed-Mistral(7B)이 69.80을 기록한 데 비해, Conan-embedding-v2(1.4B)는 71.43으로 +1.63 앞선다. 파라미터가 1/5인 모델이 제로샷에서도 이기는 건, 처음부터 학습(training from scratch)과 소프트 마스크가 데이터 효율성까지 높여준다는 방증이다.

5.4 MKQA 교차 언어 검색 결과

ModelR@20R@100nDCG@10
BM2528.139.925.4
mContriever56.367.944.9
text-embedding-v362.169.548.1
e5-mistral62.470.147.5
M3-Embedding68.875.553.2
Conan-embedding-v272.580.259.1

Table 3 (원논문): MKQA 벤치마크의 교차 언어 검색 성능. 26개 언어의 쿼리로 영어 패시지를 검색한 결과.

MKQA 결과에서 Conan-embedding-v2의 우위가 가장 극적으로 드러난다. 기존 최강 모델인 M3-Embedding 대비 R@20에서 +3.7, nDCG@10에서 +5.9 향상이다. 이 정도 격차는 교차 언어 검색 분야에서는 상당히 큰 편인데, CLR 데이터셋의 효과가 직접적으로 반영된 결과로 볼 수 있다.

5.5 Ablation Study

SMCLRDHNMMultiEngZh
61.7370.4170.99
62.6970.9471.41
61.8171.5072.09
64.4572.1471.79
63.0372.7872.44
65.1773.5274.24

Table 4 (원논문): MTEB에서의 Ablation 결과. SM=Soft Mask, CLR=Cross-lingual Retrieval, DHNM=Dynamic Hard Negative Mining.

이 테이블에서 몇 가지 패턴이 보인다.

개별 컴포넌트 효과: 단일 컴포넌트 중에서는 DHNM이 영어(71.50)와 중국어(72.09)에서 가장 높은 단일 언어 성능을 보인다. CLR은 다국어(62.69)에서 가장 높은 향상을 제공한다. SM(61.73)은 개별 효과가 가장 작아 보이지만, 이건 SM이 다른 컴포넌트들의 효과를 최대화하는 "인에이블러(enabler)" 역할을 하기 때문이다.

시너지 효과: SM+CLR 조합(Row 4)은 다국어에서 64.45로 SM 단독 대비 +2.72, CLR 단독 대비 +1.76 향상을 보인다. 두 개별 향상의 합(약 0.96+1.96=2.92)과 비슷한 수준이니 거의 가법적(additive) 효과다. 반면 SM+DHNM(Row 5)은 영어에서 72.78로, 개별 효과의 합(약 0+1.09=1.09)을 넘는 72.78-70.41=2.37의 향상을 보인다. SM이 전체 파인튜닝을 안정화시킨 덕에 DHNM이 더 효과적으로 작동한 것이다.

전체 조합: 세 컴포넌트를 모두 적용한 결과(65.17/73.52/74.24)는 SM+CLR과 SM+DHNM 사이에서 관찰되던 다국어-단일 언어 트레이드오프를 해소하고, 모든 지표에서 최고 성능을 달성한다.

5.6 분석

실용적 고려사항

ModelSize (M)Embed. Dim.Infer Time (min.)MRLAvg.
gte-large-en-v1.533510241.1265.89
stella-en-1.5B-v51,54315365.5469.43
Linq-Embed-Mistral6,782409630.6169.80
NV-Embed-v27,851409633.5869.81
gte-Qwen2-7B-instruct7,613358431.7870.72
Conan-embedding-v21,50335845.1473.52

Table 5 (원논문): 모델별 실용적 요소 비교. 추론 시간은 Ascend 910B 단일 GPU 기준.

실용적 관점에서 Conan-embedding-v2의 장점이 두드러진다. 7B 모델들의 추론 시간이 30분 이상인 반면, 1.5B급인 이 모델은 5.14분이다. 약 6배 빠르면서 성능은 오히려 23포인트 높다. 임베딩 차원도 3584로 7B 모델과 동일한 수준을 유지해 표현력 손실이 없다. 게다가 Matryoshka Representation Learning(MRL)을 지원해서, 2563584 사이의 다양한 차원으로 임베딩을 생성할 수 있다. 서비스 배포 관점에서 비용 대비 성능이 압도적으로 좋다.

훈련 갭 분석

Methodw/o SoftMaskw/ SoftMask
LoRA r = 1672.1872.12
LoRA r = 3272.0872.23
LoRA r = 6471.8372.40
Full fine-tuning71.5073.52

Table 6 (원논문): SoftMask 유무에 따른 MTEB English 성능. LoRA 랭크별 비교 포함.

이 테이블이 논문의 동기를 실험적으로 가장 직접적으로 뒷받침한다. 소프트 마스크 없이는 LoRA r=16(72.18)이 Full fine-tuning(71.50)보다 오히려 좋다. 이건 Zhang et al.(2024)의 발견과 일치하는 결과로, 인과적→양방향 마스크 전환 시 전체 파인튜닝이 표현 붕괴(representation collapse)를 겪기 때문이다. LoRA는 파라미터 일부만 업데이트하므로 이 전환이 좀 더 부드럽게 일어나는 것이다.

소프트 마스크를 적용하면 상황이 완전히 뒤집힌다. LoRA 랭크가 높을수록 성능이 좋아지는 정상적 패턴이 나타나고, Full fine-tuning이 73.52로 압도적 1위가 된다. 소프트 마스크가 없을 때의 71.50에서 +2.02 향상이니, 소프트 마스크 하나로 전체 파인튜닝의 잠재력을 끌어낸 셈이다. LoRA에서는 소프트 마스크 효과가 미미한 반면(r=16에서는 오히려 -0.06), 전체 파인튜닝에서만 극적으로 작용한다는 점도 논문의 주장(훈련 갭 해소)과 정확히 부합한다.


6. 추가 실험 및 부록

6.1 교차 언어 검색 데이터 분석

언어 쌍 분포

LanguageProportionLanguageProportion
English25%Swedish2%
Chinese12%Thai2%
Spanish8%Malay2%
French6%Turkish2%
Japanese6%Vietnamese2%
German5%Dutch2%
Russian5%Polish2%
Italian4%Hindi2%
Portuguese4%Khmer1%
Arabic3%Finnish1%
Korean3%Hebrew1%
Bengali2%Hungarian1%
Danish2%Norwegian1%

Table 7 (원논문): 번역 쌍의 언어 분포. MTEB 벤치마크의 언어 분포를 참고하여 비율을 할당.

영어-중국어가 전체의 37%를 차지하고, 나머지 24개 언어에 63%가 분배된다. 이 분포가 MTEB 벤치마크의 언어 분포를 반영한 설계라지만, 고자원-저자원 간 불균형이 존재하는 건 사실이다.

언어 자원 수준별 성능

ResourceProportionPerformance
High-resource37%70.60
Mid-resource45%73.47
Low-resource18%72.19

Table 8 (원논문): MKQA에서의 언어 자원 수준별 성능.

고자원 언어(70.60)보다 중자원 언어(73.47)의 성능이 오히려 높다는 점이 흥미롭다. 중자원 언어에 스페인어, 프랑스어, 일본어, 독일어 등 인도유럽어족이 다수 포함돼 있어 영어와의 구조적 유사성이 성능에 기여했을 가능성이 있다. 고자원 그룹의 성능이 낮은 건 중국어 때문인데, 독특한 중영 매핑 관계가 MKQA의 "다국어→영어" 평가 방식과 충돌하기 때문이라고 저자들은 분석한다.

언어 패밀리별 성능

Language FamilyAvg. ScoreTotal Share
Chinese70.437%
Germanic74.636%
Romance73.922%
Slavic75.57%
Arabic65.23%
Korean67.53%
Others67.711%

Table 9 (원논문): 언어 패밀리별 평균 성능 및 데이터 비율.

게르만어족(74.6), 슬라브어족(75.5), 로만스어족(73.9) — 모두 인도유럽어족이 강세를 보인다. 반면 아랍어(65.2)와 한국어(67.5)는 상대적으로 낮다. 슬라브어족은 데이터 비율이 7%에 불과한데 75.5를 기록한 반면, 37%를 차지하는 중국어는 70.4에 그친다. 이건 데이터 양보다 영어와의 유형학적 유사성이 더 중요한 요인임을 시사하는 결과다. 구조적으로 먼 언어에 대한 성능 개선이 향후 과제로 남는다.

6.2 에러 분석

임베딩 모델이 겪는 대표적 문제 중 하나로 **수치 불일치(numerical inconsistency)**를 들고 있다. 예를 들어 "3편의 동화"를 검색하면 "5편의 동화"가 포함된 콘텐츠에 낮은 유사도 점수를 매기는 현상이다. 핵심 내용은 관련성이 높음에도 불구하고, 임베딩 모델이 숫자를 일반 토큰처럼 취급하기 때문에 양적 관계를 이해하지 못하는 것이다. 저자들은 RAG를 통한 외부 수치 지식 제공과 수치 변형이 풍부한 학습 데이터 확보를 향후 개선 방향으로 제시한다.

6.3 구현 세부사항

단계옵티마이저학습률배치 크기GPU시간
LLM 사전훈련AdamW1e-425664 × 910B219h
LLM SFTAdamW2e-56416 × 910B38h
약지도 학습AdamW1e-46416 × 910B97h
지도 학습AdamW1e-44(검색)/32(STS)16 × 910B13h

Appendix A 기반 정리: 각 학습 단계의 하이퍼파라미터. MRL 차원: 256, 512, 1024, 1536, 2048, 3072, 3584. 검색 태스크에서 쿼리당 7개 네거티브 샘플.

DeepSpeed ZeRO Stage 1과 혼합 정밀도 학습을 활용했다. 사전훈련의 웜업 비율은 0.05, SFT는 0.02이며, 모든 단계에서 가중치 감쇠는 0.001이다.

6.4 학습 데이터 상세

CategoriesData FormatNumbers
News(title, content)620M
Knowledge Base(question, answer)106M
Social Media(title, content)690M
Web Page(input, output)70M
Academic Paper(title, content)50M
Community QA(question, answer)30M
Instruction datasets(prompt, response)200M

Table 10 (원논문): 약지도 학습에 사용된 데이터 소스. 총 약 17.66억 쌍.

TasksData FormatNumbers
STS(sentence, sentence pairs)1.8M
CLR(text, pos text, neg text)3.0M
Retrieval(text, pos text, neg text)3.0M
Classification(text, pos label, neg label)2.8M

Table 11 (원논문): 지도 학습에 사용된 데이터. 총 약 1,060만 쌍.

약지도 학습 데이터에서 뉴스(620M)와 소셜 미디어(690M)가 전체의 74%를 차지한다. 이는 LLM 사전훈련 때 뉴스 데이터에 가중치를 뒀던 것과 일맥상통하는 설계다. 지도 학습에서는 CLR과 검색이 각각 3.0M으로 가장 큰 비중을 차지하고, STS가 1.8M으로 상대적으로 적다 — 앞서 STS 성능이 다소 낮았던 이유가 여기에 있을 수 있다.

6.5 소프트 마스크 함수 비교

FunctionMultiEngZh
Linear61.7370.4170.99
Accelerating61.5070.5170.81
Decelerating61.4370.0170.37

Table 12 (원논문): 서로 다른 소프트 마스크 스케줄링 함수의 비교.

α(t)\alpha(t)의 세 가지 구현을 비교했다:

  • 선형(Linear): α(t)=t/τ\alpha(t) = t/\tau
  • 가속 이차(Accelerating): α(t)=(t/τ)2\alpha(t) = (t/\tau)^2
  • 감속 이차(Decelerating): α(t)=1(1t/τ)2\alpha(t) = 1 - (1 - t/\tau)^2

선형 함수가 다국어(61.73)와 중국어(70.99)에서 최고이고, 가속 이차가 영어(70.51)에서 아주 근소하게 앞선다. 감속 이차는 모든 지표에서 가장 낮다. 감속 함수는 초반에 빠르게 양방향으로 전환하므로 마스크 변화에 적응할 시간이 부족해 성능이 떨어지는 것으로 해석된다. 결론적으로 가장 단순한 선형 함수가 최선이다.

6.6 MKQA 전체 언어별 결과

BM25mDPRmContrieverMulti-E5-largee5-mistraltext-embed-v3M3-embedConan-v2
ar13.433.843.859.747.655.163.065.2
da36.255.763.371.772.367.672.073.1
de23.353.260.271.270.867.670.472.8
es29.855.462.370.871.668.070.773.2
fi33.242.858.767.763.665.568.971.6
fr30.356.562.669.572.768.270.873.5
he16.134.050.561.432.446.364.666.7
hu26.146.157.168.068.364.067.970.2
it31.553.862.071.271.367.670.373.9
ja14.546.350.763.157.664.267.971.8
km20.720.618.718.323.325.759.562.4
ko18.336.844.958.949.453.963.367.5
ms42.353.863.770.271.166.172.378.4
nl42.556.963.973.074.568.872.375.6
no38.555.263.071.170.867.071.676.9
pl28.750.460.970.571.566.170.476.7
pt31.852.561.066.871.667.770.674.8
ru21.849.857.970.668.765.170.074.3
sv41.154.962.772.073.367.871.574.8
th28.440.954.469.757.155.270.875.9
tr33.545.559.967.365.564.969.675.8
vi33.651.359.968.762.363.570.973.0
zh_cn19.450.155.944.361.262.767.370.4
zh_hk23.950.255.546.455.961.466.771.8
zh_tw22.550.655.245.956.561.665.669.7
Avg28.147.956.363.562.462.168.872.4

Table 13 (원논문): MKQA 25개 언어 Recall@20 상세 결과.

25개 언어 모두에서 Conan-embedding-v2가 1위라는 점이 인상적이다. 특히 크메르어(km)에서 Multilingual-E5-large가 18.3으로 고전하는 반면 Conan-embedding-v2는 62.4를 기록한 것, 태국어(th)에서 M3-Embedding(70.8) 대비 +5.1의 큰 향상을 보인 것이 눈에 띈다. 폴란드어(+6.3), 터키어(+6.2), 노르웨이어(+5.3) 등에서도 M3-Embedding 대비 격차가 크다. e5-mistral은 히브리어(32.4)와 크메르어(23.3)에서 심각하게 낮은 성능을 보이는데, 이는 Mistral-7B의 사전훈련 데이터에 해당 언어가 부족했기 때문으로 추정된다. 처음부터 다국어 데이터로 학습한 Conan-embedding-v2의 이점이 여기서 드러난다.

6.7 MTEB 상세 결과

아래는 MTEB English 벤치마크의 56개 개별 데이터셋에 대한 상세 결과다.

Datasetbge-multi-gemma2gte-Qwen2-7BSFR-Embed-2Rstella-1.5B-v5bge-en-iclConan-v2
Retrieval
ArguAna77.3764.2762.3465.2782.7688.18
ClimateFEVER39.4745.8834.4346.1145.3544.45
CQADupStack47.9446.4346.1147.7547.2352.11
DBPedia51.3752.4251.2152.2850.4256.33
FEVER90.3895.1192.1694.8391.9692.52
FiQA201860.0462.0361.1760.4858.7762.16
HotpotQA83.2673.0881.3676.6784.9883.36
MSMARCO45.7145.9242.1845.2246.7252.38
NFCorpus38.1140.6041.3442.0040.6942.09
Natural Questions71.4567.7373.9671.8073.8582.81
QuoraRetrieval90.0490.0989.5890.0391.0290.58
SCIDOCS26.9328.9124.8726.6425.2530.21
SciFact72.0579.0685.9180.9978.3387.60
Touche202030.2630.5728.1829.9429.6731.09
TREC-COVID64.2782.2687.2885.9878.1193.87
STS
BIOSSES85.7481.3787.6083.1186.3584.78
SICK-R82.6679.2877.0182.9983.7081.91
STS1277.7179.5575.6780.0977.7384.07
STS1387.4588.8382.9486.0985.9886.70
STS1483.4885.7378.4387.3282.9483.18
STS1587.6388.5485.8289.1386.5486.54
STS1686.4985.8487.1586.5487.2487.52
STS1791.1888.9388.9091.0591.8289.09
STS2269.0266.8867.1068.0168.0869.30
STSBenchmark87.2583.6388.2388.9286.1487.01
SummEval31.2031.3531.4030.7530.7030.64
PairClassification
SprintDuplicateQuestions79.3297.6297.6197.0595.0494.99
TwitterSemEval201579.6477.8880.5878.5478.7380.34
TwitterURLCorpus86.9586.5988.0387.5887.1989.38
Classification
AmazonCounterfactual98.4998.8797.8897.8995.1297.12
AmazonPolarity96.9097.3197.1096.8697.1498.91
AmazonReviews62.5661.0459.3661.2861.4766.01
Banking7792.5390.2090.4190.4190.3491.05
Emotion92.9779.4593.3784.2993.3193.68
IMDB96.6696.8096.7096.8096.7096.90
MassiveIntent82.0585.7085.8585.8382.2688.71
MassiveScenario84.4089.9790.6190.2183.9290.10
MTOPDomain98.6198.0498.1098.2096.5195.76
MTOPIntent95.5191.8891.3092.7893.5696.97
ToxicConversations85.1291.1488.7593.1692.7793.08
TweetSentimentExtraction78.5879.7074.8478.3080.6085.03
Clustering
Arxiv-P2P54.9154.4654.0255.4454.4256.31
Arxiv-S2S50.2851.7448.8251.4449.5957.03
Biorxiv-P2P52.6450.0950.7650.6852.3252.32
Biorxiv-S2S49.2046.5647.6748.6744.3648.39
Medrxiv-P2P45.8146.2346.6646.8046.1346.19
Medrxiv-S2S44.1144.1844.6544.6541.3646.58
Reddit56.0373.5562.9272.8671.2072.32
Reddit-P2P65.8374.1372.7475.2772.1776.15
StackExchange66.2179.8676.4880.2981.2982.13
StackExchange-P2P45.7449.4048.2949.5745.5353.64
TwentyNewsgroups70.4467.5866.7167.3368.5167.46
Reranking
AskUbuntuDupQuestions64.5953.9166.4261.4364.8064.17
MindSmallRank31.7933.3631.2633.0530.6033.28
SciDocsRR87.6089.0987.2989.2086.9088.94
StackOverflowDupQuestions54.9055.0655.3255.2556.3256.28
MTEB Average (56)69.8870.2470.3171.1971.2473.09

Table 14 (원논문): MTEB English 56개 데이터셋 상세 결과.

검색 태스크에서 Conan-embedding-v2가 15개 중 10개에서 1위를 차지하면서 전체 평균을 끌어올린 것이 확연하다. 특히 TREC-COVID(93.87)에서 2위(SFR의 87.28) 대비 6.6포인트 차이가 나고, Natural Questions(82.81)에서도 2위(bge-en-icl의 73.85)를 9포인트 가까이 앞서는 등, 검색 태스크에서의 강세가 두드러진다. 반면 STS와 요약 태스크에서는 1위를 차지하는 데이터셋이 적어, 문장 유사도 측정은 상대적 약점임을 재확인할 수 있다.

중국어 MTEB 상세 결과도 마찬가지로 포괄적이다:

Datasete5-mistral-7bgte-Qwen2-7Bxiaobu-v2Conan-v1bge-multi-gemma2gte-Qwen2-1.5BConan-v2
Retrieval
CmedqaRetrieval34.2348.6947.1447.6142.2146.9745.32
CovidRetrieval73.1181.0489.4092.3577.4680.7979.88
DuRetrieval87.0487.4489.4488.5390.4689.4088.72
EcomRetrieval45.9571.1570.5070.9969.3062.5168.12
MMarcoRetrieval74.8485.1682.1982.2584.7083.0183.45
MedicalRetrieval52.8365.5968.1967.9462.0258.6562.56
T2Retrieval80.6887.7385.0183.3186.2685.4784.92
VideoRetrieval45.3478.8480.0980.4077.4068.1176.55
Classification
Ocnli80.2190.1892.8492.5486.2290.1392.74
Cmnli72.1987.4891.8791.6686.9186.6789.90
AmazonReviews47.6053.5550.0750.3154.3452.9553.81
MassiveIntent72.4681.0977.4578.1478.1976.2580.51
MassiveScenario76.4085.7485.3086.2082.5877.2686.45
IFlyTek48.6554.5251.7651.9449.9444.8550.32
JDReview84.6986.5189.0890.3288.9185.8290.09
MultilingualSentiment74.6476.8879.4578.5878.9177.4280.17
OnlineShopping92.5694.3094.9095.0794.5993.5094.19
TNews50.5852.9754.6455.0350.2649.9558.21
Waimai87.7989.4789.3489.7089.2686.6388.45
Reranking
CMedQAv1-reranking76.8288.2090.9691.3984.6288.1691.81
CMedQAv2-reranking77.5989.3190.4189.7285.6088.1289.45
MMarcoReranking24.2131.6539.9141.5835.4329.1441.59
T2Reranking66.9067.8069.0368.3667.4867.4371.91
STS
AFQMC38.9972.2560.9660.6647.1758.4260.32
ATEC43.5862.6258.8158.6450.7555.6559.23
BQ54.6781.2575.0874.5162.0273.8574.63
LCQMC75.4873.8179.8279.4575.9575.3980.66
PAWSX16.8154.0647.4246.6030.5742.4645.17
QBQTC31.8031.3745.1444.5838.9835.1543.98
STSB84.7783.8882.0581.2480.8779.4081.15
STS2263.4065.7766.9667.7368.6867.4068.78
Clustering
CLSClusteringP2P44.4247.0760.4260.6454.6545.2164.48
CLSClusteringS2S42.5845.9949.5452.6563.6842.5062.83
ThuNewsClusteringP2P64.6886.0878.7677.8464.3268.2476.11
ThuNewsClusteringS2S57.5385.1171.9674.2054.5762.5073.59
MTEB Average (35)60.8971.9472.4372.6268.4467.7572.83

Table 15 (원논문): MTEB Chinese 35개 데이터셋 상세 결과.

중국어 상세 결과에서는 Conan-embedding-v2가 평균(72.83)에서 1위이지만, 개별 데이터셋 수준에서는 gte-Qwen2-7B-instruct가 많은 태스크에서 1위를 차지하는 흥미로운 패턴이 나타난다. 특히 검색 태스크에서 gte-Qwen2-7B가 CmedqaRetrieval(48.69), T2Retrieval(87.73), MMarcoRetrieval(85.16) 등에서 앞서는데, 이는 7B 모델의 더 깊은 언어 이해력이 중국어 검색에서 유리하게 작용한 것으로 보인다. 반면 Conan-embedding-v2는 클러스터링(CLSClusteringP2P: 64.48), 리랭킹(T2Reranking: 71.91, MMarcoReranking: 41.59), 분류(TNews: 58.21)에서 강세를 보이며, 전체적인 균형이 높은 평균으로 이어진다.


7. 강점과 한계

강점

  • 패러다임 전환적 접근: LLM을 처음부터 학습시키겠다는 결정이 기존 LoRA 기반 접근의 근본적 한계를 극복했다. Table 6에서 보듯 소프트 마스크 + 전체 파인튜닝 조합이 LoRA보다 1.12~2.02포인트 높은 성능을 보인다.
  • 탁월한 파라미터 효율성: 1.4B 파라미터로 7B급을 능가하는 성능을 달성했고(Table 5), 추론 시간도 약 6배 빠르다. 실제 서비스 배포에서 비용 절감 효과가 크다.
  • 소프트 마스크의 우아함: 인과적→양방향 마스크 전환이라는 근본적 문제를 점진적 마스크 전이로 해결한 아이디어가 깔끔하고, 구현도 간단하다. 다른 LLM→임베딩 변환 연구에도 적용 가능한 범용적 기법이다.
  • 포괄적 다국어 지원: 26개 언어 교차 검색 데이터셋과 MKQA 전 언어 1위라는 결과가 실용적 가치를 높인다.

한계 및 아쉬운 점

  • 학습 비용: LLM을 처음부터 학습시키려면 64장의 910B GPU로 219시간이 필요하다. 이건 대부분의 연구실에서 감당하기 어려운 비용이고, LoRA 파인튜닝 대비 몇 배의 리소스가 드는지 직접 비교가 없어 아쉽다.
  • STS 태스크 약점: Table 1에서 STS Spearman 상관계수가 영어 85.12, 중국어 65.48로, 일부 베이스라인(gemini-embedding의 85.29, gte-Qwen2-7B의 65.20)에 미치지 못한다. 저자들도 STS 데이터 비율이 낮았다고 인정하지만, SOTA를 표방하면서 STS에서 약한 건 실제 활용 시 고려사항이다.
  • 수치 이해 한계: 에러 분석에서 밝힌 수치 불일치 문제가 검색 시스템에서는 의외로 치명적일 수 있다. "2024년 매출 보고서"를 검색할 때 "2023년 매출 보고서"가 높은 유사도를 받을 수 있다는 것이다.
  • 언어 패밀리 간 편차: 슬라브어족(75.5)과 아랍어(65.2)의 10포인트 격차는 상당하다. 영어와 구조적으로 먼 언어에 대한 개선 전략이 부족하며, 데이터 비율 조정만으로는 해결하기 어려운 문제로 보인다.
  • 요약(Summarization) 태스크 성능: Table 1에서 영어 요약 점수가 35.48로 gemini-embedding(38.28)이나 e5-mistral(36.57) 대비 낮다. 이 태스크가 전체 평균에는 크게 영향을 미치지 않지만, 장문 이해가 필요한 활용 시나리오에서는 약점이 될 수 있다.

8. 마치며

Conan-embedding-v2는 "기존 LLM을 갖다 쓰는" 패러다임에서 벗어나 "임베딩을 위한 LLM을 처음부터 만든다"는 접근으로, 데이터 갭과 훈련 갭이라는 두 가지 근본 문제를 동시에 해결했다. 소프트 마스크 메커니즘은 단순하지만 효과적이어서, LLM의 인과적 학습에서 임베딩의 양방향 학습으로의 전환 문제를 다루는 향후 연구에서도 참고할 만한 기법이다.

솔직히, 1.4B로 7B 모델을 이긴다는 결과는 "왜 다들 이렇게 안 했지?"라는 생각이 들게 만든다. 물론 3T 토큰으로 LLM을 처음부터 학습시키는 비용이 장벽이 되겠지만, 학습 비용을 감당할 수 있는 조직이라면 이 접근이 모든 면에서 이점을 제공한다. 추론 비용 절감만으로도 학습 비용을 상당 부분 회수할 수 있을 것이다.

향후 연구 방향으로는 저자들이 언급한 크로스모달 검색 확장 외에도, 소프트 마스크를 다른 LLM→태스크 전환 시나리오(예: 생성→판별)에 적용하는 연구, 영어와 구조적으로 먼 언어에 대한 교차 언어 성능 개선, 그리고 수치 이해 능력을 높이기 위한 학습 데이터 설계 등이 유망해 보인다.


References

  • Wang et al., 2023. "Improving text embeddings with large language models." (e5-mistral-7b-instruct)
  • Lee et al., 2024. "NV-Embed: Improved techniques for training LLMs as generalist embedding models."
  • Li et al., 2024a. "Making text embedders few-shot learners." (bge-en-icl)
  • Li et al., 2024b. "Conan-embedding: General text embedding with more and better negative samples." (Conan-v1)
  • Chen et al., 2024b. "M3-Embedding: Multi-linguality, multi-functionality, multi-granularity text embeddings."
  • Biderman et al., 2024. "LoRA learns less and forgets less."
  • Kaplan et al., 2020. "Scaling laws for neural language models."
  • Zhang et al., 2024. "mGTE: Generalized long-context text representation and reranking models."
  • Kusupati et al., 2022. "Matryoshka representation learning."
  • Muennighoff et al., 2022. "MTEB: Massive text embedding benchmark."