인공지능/논문 리뷰 or 진행

ULLME: A Unified Framework for Large Language Model Embeddings with Generation-Augmented Learning

이게될까 2025. 8. 27. 15:28
728x90
728x90

https://arxiv.org/abs/2408.03402

 

ULLME: A Unified Framework for Large Language Model Embeddings with Generation-Augmented Learning

Large Language Models (LLMs) excel in various natural language processing tasks, but leveraging them for dense passage embedding remains challenging. This is due to their causal attention mechanism and the misalignment between their pre-training objectives

arxiv.org

 

GRITLM을 좀 더 발전시킨 논문이네요

2025.02.25 - [인공지능/논문 리뷰 or 진행] - GRIT 생성과 Embedding을 동시에 Generative Representational Instruction Tuning - 논문 리뷰

 

GRIT 생성과 Embedding을 동시에 Generative Representational Instruction Tuning - 논문 리뷰

https://arxiv.org/abs/2402.09906 기존 모델들은 생성만 잘하거나, Embedding만 잘 진행하였습니다.그리하여 둘 다 잘 하도록 두개 다 학습을 진행한 GRIT이 등장합니다.생성과 Representation 모두 진행하여 학

yoonschallenge.tistory.com

 

Embedding 만들 때는 bi-directional attention을 사용하고, generation 시에는 causal attention을 사용하는 것은 동일하지만 DPO와 GRL까지 활용하고, 다양한 백본 모델을 활용하여 테스트해봤습니다.

또한 LoRA를 통해 학습 비용도 줄였고요 

https://github.com/nlp-uoregon/ullme

 

GitHub - nlp-uoregon/ullme

Contribute to nlp-uoregon/ullme development by creating an account on GitHub.

github.com

DPO와 GRL까지 활용한 것은 이 코드를 잘 까봐야겠습니다.

from ullme.models import ULLME
model = ULLME(
    model_name_or_path="mistralai/Mistral-7B-v0.1",
    model_backbone_type="mistral",
    lora_name="ullme-mistral",
    loar_r=16,
    lora_alpha=32,
    )
input_sentence = "This a example sentence."
model_inputs = model.tokenizer(
    [input_sentence],
    return_tensors='pt'
    )
model_output = model(
    input_ids=model_inputs['input_ids'],
    attention_mask=model_inputs['attention_mask'],
    is_generate=False
	)
>> {'rep': (1, hidden_dim)}

이렇게 단순한 형태로 진행도 가능하고요 

여기서도 embedding 만들 때 bi attention 쓰는 건 동일합니다.

 

 

아쉬운건 실험 결과가 생각보다 다양하진 않네요 

생성은 할 줄 알지만 제대로 못 하는 것인지...

 

문제 상황 (1) 디코더 LLM의 causal attention 때문에 임베딩 시 미래 문맥을 못 봄
→ 밀집검색/랭킹 목표와 사전학습 목표 불일치가 큼 (pretrain vs rank misalignment).

(2) 기존 임베딩 프레임워크는 지원 아키텍처/학습전략이 제한적이라 실무 활용성이 떨어짐.
핵심 방법론 한 모델, 두 모드(토글): 임베딩 시 양방향 attention(is_generate=False), 생성 시 causal(is_generate=True).
풀링은 first/last/mean/weighted-mean 지원(기본: 최종 레이어 mean).
  학습전략 통합: Contrastive + SFT + DPO + GRL 조합을 동일 프레임워크에서 사용 가능.
Contrastive는 in-batch negatives, DPO는 선호/비선호 생성확률의 로그비를 최적화.
  GRL(Generation-augmented Representation Learning): 쿼리 q와 후보 U에 대해
(a) 생성 기반 점수 s_{gen}: 문서 p의 평균 로그우도,
(b) 임베딩 기반 점수 s_{rt}: 코사인 유사도 → 각각 softmaxP_{gen},P_{rt} 만들고 KL로 두 분포를 정렬.
최종 손실 L = λ_{CL}L_{CL} + λ_{DPO}L_{DPO} + λ_{KL}L_{KL}
학습 데이터 & 학습법 데이터: MSMARCO curated subset로 학습, 평가: MTEB 전영역.
옵티마이저/하이퍼: AdamW, lr=2e-4, batch=512, 1 epoch.
LoRA r=16, GradCache, gradient checkpointing, mixed precision, FSDP 사용.
가중치: λ_{CL} = λ_{KL} = 1, λ_{DPO}=0.5
백본(스케일) 공개 모델 3종 기준: Phi-1.5B, Mistral-7B-Instruct-v0.2, Llama3-8B-Instruct.
프레임워크는 이외에도 다양한 LLM 백본(10+ 테스트) 지원.
실험 구성(모델 변형) Base(원본 causal) → Causal+CLBi+CLBi+CL+SFTGRL_SFT(DPO→SFT 대체) → GRL(full).
비교대상: Echo, LLM2Vec.
주요 결과(MTEB 평균, 56데이터셋) Echo* / LLM2Vec* / GRL(ours):
Phi-1.5B 36.00 / 54.47 / 55.76,
Mistral-7B 50.26 / 57.47 / 59.50,
Llama3-8B 51.11 / 58.04 / 59.27. (*: 동일 데이터로 재현)
  조합 효과: Bi+CL+SFT > Bi+CL > Causal+CL > Base, GRL이 최상위.
추론 처리량은 원본 LLM과 유사(≈16K/12K/12.8K tok/s).
기여 (1) 양방향 attention 토글다양한 미세튜닝(Contrastive/SFT/DPO/GRL)을 통합한 범용 프레임워크.
(2) GRL 제안: 생성확률–임베딩 유사도 분포 정렬(KL)로 두 공간의 관련성 개념을 일치.
(3) MTEB 평가 래퍼 포함으로 재현·확장 용이.
한계·유의점(논문 기반) (범위) 보고된 학습은 MSMARCO 단일 코퍼스·1 epoch 중심, 공개 결과는 3개 백본으로 제시
도메인/스케일 일반화는 추가 검증 여지.
(비용) GRL은 후보 U에 대해 sgens_{gen} 계산이 필요해 추가 연산 발생 가능.
실험 적용 팁 임베딩 추출은 is_generate=False(양방향), 생성은 True(causal)로 분리.
풀링은 최종 레이어 mean부터 시작. 대배치가 어려우면 GradCache/FSDP 옵션을 그대로 사용.

 

더보기

한 줄 요약

ULLME는 디코더형 LLM에 양방향 어텐션을 켜서 임베딩을 추출하고, 대조학습(Contrastive)·SFT·DPO·새 기법 GRL(Generation-augmented Representation Learning)을 한 프레임워크에서 지원하여, **생성 확률로 임베딩 유사도를 정렬(align)함으로써 MTEB 전영역에서 강력한 임베딩 성능을 보입니다.


1) 문제 정의 (왜 필요한가?)

  • 디코더 LLM은 인과(causal) 마스크 때문에 과거 토큰만 보며, 랭킹/검색 목적사전학습 목표불일치가 있어 임베딩 학습에 불리합니다.
  • 기존 LLM 임베딩 프레임워크는 지원 아키텍처/학습전략이 제한적이라 범용성이 떨어졌습니다. ULLME는 이 둘을 동시에 해결하려 합니다.

2) 핵심 아이디어

  1. 양방향 어텐션 전환: LLM의 causal 마스크를 양방향(all-one) 마스크로 바꿔 임베딩 추출 시 과거·미래 문맥을 모두 활용. 토글 파라미터 is_generate=False면 양방향, True면 원래의 causal 모드로 생성이 가능합니다. (한 모델에서 임베딩↔생성을 손쉽게 전환)
  2. 통합 미세튜닝 프레임워크: Contrastive, SFT, DPO와 함께 GRL을 지원. LoRA, GradCache 등으로 대용량 배치/효율적 학습을 쉽게 구성.
  3. GRL(Generation-augmented Representation Learning):
    • 쿼리 q와 후보 문서 집합 U에 대해, 생성 확률 기반 점수 sgens_gen을 LLM 로그우도 평균으로 계산.
    • 임베딩 코사인 유사도 기반 점수 srts_{rt}와 함께, 두 점수를 각각 소프트맥스 정규화하여 분포 PgenP_{gen}, PrtP_{rt}를 얻음. 두 분포 간 KL 발산을 최소화하여 생성-표현 일관성을 강제.
    • 전체 손실: L_{GRL}=λ_{CL}L_{CL}+λ_{DPO}L_{DPO}+λKLLKL

3) 방법론 상세 (step-by-step)

3.1 임베딩 모드 활성화

  • LLM을 불러와 is_generate=False로 양방향 어텐션을 적용해 시퀀스 표현을 뽑습니다(평균·마지막 토큰 등 풀링 지원, 기본값은 최종 레이어 평균).

3.2 미세튜닝 전략

  • Contrastive Learning (InfoNCE/NT-Xent): 배치 내부 음성을 사용해 코사인 유사도 기반 점수 srts_{rt}로 대조 손실을 최소화. GradCache·cross-device로 대배치를 안정화.
  • SFT: 쿼리→정답 문서 다음단어 예측 목표로 생성 확률 극대화(이때는 causal 마스크로 복귀).
  • DPO: 정답 문서를 선호(preferred), 음성 문서를 기피(dispreferred)로 보고 선호-비선호 로그우도 차이를 키우는 목적함수. 참조모델 πref\pi_{\text{ref}} 대비 현재 모델 πθ\pi_\theta의 선호도를 높입니다(스칼라 β 사용). (학습 시 causal 사용)

3.3 GRL로 “생성-표현” 정렬

  1. 후보 집합 UU 구성(학습 배치 기준).
  2. sgen(q,p)s_{gen}(q,p) = 문서 p를 출력하도록 LLM 로그우도 평균 계산.
  3. 임베딩 유사도 srt(q,p)s_{rt}(q,p) 계산(코사인).
  4. Pgen,PrtP_{gen},P_{rt}를 softmax로 정규화.
  5. LKL(Prt∥Pgen)L_{KL}(P_{rt}\Vert P_{gen}) 최소화해 두 공간의 랭킹 일관성을 학습 신호로 사용.
  6. 최종 손실 LGRLL_{\text{GRL}}은 Contrastive/SFT or DPO/KL을 가중합.

3.4 평가 파이프라인

  • WrappedULLME로 MTEB 평가 인터페이스를 바로 호출 가능하며, 임베딩 모델/데이터셋/언어를 지정해 표준 메트릭으로 결과를 산출합니다.

4) 실험 설정

  • 백본: Phi-1.5B, Mistral-7B-Instruct-v0.2, Llama3-8B-Instruct.
  • 데이터: MSMARCO curated subset으로 학습, MTEB로 평가.
  • 학습법: LoRA r=16r=16, GradCache/gradient checkpointing/mixed precision/FSDP 활성화. AdamW, lr=2e-4, batch=512, 1 epoch. 손실 가중치 λCL=λKL=1,  λDPO=0.5\lambda_{\text{CL}}=\lambda_{\text{KL}}=1,\; \lambda_{\text{DPO}}=0.5.
  • 인프라/재현성: 4×A100 80GB, PyTorch 2.1.1, HF 4.35.0; 1.5B는 약 1.5일, 7B/8B는 5~6일; 하드네거티브 8개/예제, DPO β=0.1, LoRA r=16,α=32,dropout=0.2r=16,\alpha=32,dropout=0.2.

5) 결과 (MTEB, 56개 데이터셋 평균)

  • GRL(ours) 평균: Phi-1.5B 55.76 / Mistral-7B 59.50 / Llama3-8B 59.27. Echo·LLM2Vec 대비 일관되게 우수.
  • **세부 테이블(예시 일부)**는 부록 Table 3에 상세히 제시. 평균 값과 대표 과제별 수치가 포함됩니다.
  • 추가 관찰: ULLME로 미세튜닝한 모델의 추론 처리량은 원본 LLM과 유사(예: 7B 약 12K tok/s 수준).

6) 기여 요약

  1. 프레임워크 측면: LLaMA·Mistral·Phi·Qwen 등 10종+ LLM에 대해 양방향 임베딩 + 다양한 미세튜닝 전략을 일관 API로 제공(학습·평가까지).
  2. 방법론 측면: GRL생성 확률–표현 유사도의 **분포 정렬(KL)**을 도입하여, 임베딩 학습에 생성 능력을 직접 활용.
  3. 경험적 검증: 1.5B~8B 다양한 스케일에서 **SOTA 계열(Echo/LLM2Vec)**을 상회하는 평균 점수 달성.

7) 한계 및 향후 과제(논문 기반)

  • 학습 데이터 편중: 학습은 MSMARCO 1 epoch에 한정되어 있어(LoRA·대조학습·DPO/GRL 가중치 포함) 도메인 일반화는 추가 검증 여지. (사실 진술)
  • 계산 비용: GRL은 후보 집합 UU에 대해 생성 로그우도를 계산하므로(문장 길이 t 합산), 대규모 학습에서 계산량이 늘 수 있음(방법 정의에서 확인 가능).
  • 향후 과제(저자 진술): 생성·판별 능력을 더 잘 결합하는 기법 탐색, 신규 아키텍처/학습 패러다임 확장.

8) 핵심 내용 한 표 정리

구분 요약
문제 디코더 LLM의 causal 마스크로 인한 문맥 손실, 사전학습–랭킹 불일치, 기존 프레임워크의 범용성 제한.
해결 전략 (A) 양방향 어텐션 토글(is_generate)로 임베딩/생성 겸용, (B) Contrastive/SFT/DPO/GRL 통합, (C) LoRA·GradCache로 대배치 효율화, (D) MTEB 내장 평가.
GRL 핵심 sgens_{gen} (로그우도) vs srts_{rt} (코사인) → 소프트맥스 정규화 Pgen,PrtP_{gen},P_{rt}KL 정렬 LKLL_{KL} → 최종 LGRLL_{\text{GRL}} (CL + DPO/SFT + KL 가중합).
데이터/학습 MSMARCO(curated)로 학습, MTEB로 평가. AdamW, lr=2e-4, batch=512, 1 epoch, LoRA r=16,α=32,dropout=0.2r=16,\alpha=32,dropout=0.2, 하드네거티브 8/예제, DPO β=0.1, λCL=λKL=1,λDPO=0.5\lambda_{\text{CL}}=\lambda_{\text{KL}}=1,\lambda_{\text{DPO}}=0.5.
백본 Phi-1.5B / Mistral-7B-Instruct / Llama3-8B-Instruct.
결과(평균) GRL: 55.76 / 59.50 / 59.27 (각 백본별). Echo·LLM2Vec 대비 일관된 우위.
기여 범용 프레임워크(양방향/다양한 미세튜닝/평가 통합), GRL 제안(생성-표현 정렬로 임베딩 강화), 재현성·코드 공개.
한계/향후 학습 데이터 단일(SSMARCO)·GRL의 생성 로그우도 비용, 향후 생성×판별 결합 고도화/신규 아키텍처 확장.

 

아래는 업로드해주신 ULLME 논문을 기반으로, 바로 인접한 관련 연구들을 주제별로 묶어 비교하고, ULLME와의 차이점을 명확히 드러내는 요약입니다. (모든 사실·수치·주장은 논문 본문 인용)

1) 큰 흐름: “LLM을 임베딩 모델로 쓰는 법”의 두 축

  • (A) 디코더 LLM의 양방향화: causal 마스크 한계를 넘기 위해
    마스크 자체를 양방향으로 교체(SGPT, GritLM, LLM2Vec, NV-Emb 계열) 또는, 프롬프트 중복(Echo)로 사실상 미래 토큰을 바라보게 함.
  • (B) 랭킹 목표와의 정렬: Contrastive를 중심으로 SFT/마스킹 등 추가 목표를 섞어 텍스트 랭킹과의 목표 불일치를 완화.

ULLME는 (A)에서 토글형 양방향 마스크를 제공하고, (B)에서 Contrastive + SFT/DPO까지 지원하며, 더 나아가 생성확률↔임베딩 유사도 분포를 KL로 정렬하는 GRL을 제안합니다.


2) 프레임워크 수준 비교(지원 범위·학습전략)

논문 Table 1의 정리 핵심만 뽑아 비교합니다.

연구/프레임워크 지원 LLM 수 지원 학습전략 핵심 특징 ULLME 대비 차이
SentenceTransformers >10 (LLM 임베딩 맥락에선) 미지원 주로 추론 중심으로 설계되어 LLM 임베딩 미세튜닝에 제약 ULLME는 SFT/DPO/Contrastive 전부 지원 + 통합 MTEB 평가 제공.
SGPT(Muennighoff, 2022) 1 Contrastive GPT 계열 LLM을 양방향화하여 대조학습 범용성·조합 유연성 낮음(모델 1종). ULLME는 다수 백본·여러 목적 결합.
RepLLaMA 1 Contrastive LLaMA 특화 대조학습 모델·전략 한정적. ULLME는 다양한 백본·전략.
Echo-Embedding 2 (미세튜닝 X) 입력 시퀀스 중복 프롬프트로 사실상 양방향 컨텍스트 확보(모델 무변경) 학습 없이 프롬프트 트릭. ULLME는 모델 차원 양방향화 + 학습(Contrastive/SFT/DPO/GRL).
GritLM 2 SFT + Contrastive SFT를 병행해 생성 능력을 활용 ULLME는 여기에 DPO와 **GRL(KL 정렬)**까지 포함.
LLM2Vec 3 Contrastive (+ mask-filling 변형) 양방향화 + 대조학습, 일부 마스크 채우기 목적 사용 ULLME는 SFT/DPO 추가 + GRL생성확률↔유사도 정렬을 명시적 도입.
NV-Emb 1 Contrastive NV 계열 LLM 임베딩 구현 ULLME가 백본·전략 다양성평가 파이프라인을 더 넓게 제공.
ULLME (본 논문) >10 Contrastive + SFT + DPO + GRL 양방향 토글, 통합 학습·평가(MTEB), GRL 제안 — (기준점)

3) 방법론 축별 비교(“어텐션”과 “목표함수” 관점)

3.1 양방향 컨텍스트 확보 방식

  • 마스크 교체(모델 내 수정): SGPT/GritLM/LLM2Vec/NV-Emb → causal → bi로 바꾸어 임베딩 시 전체 문맥을 사용. ULLME도 동일 접근을 한 줄 토글 API로 일반화(생성 시엔 causal로 복귀 가능).
  • 프롬프트 중복(Echo): 입력을 복제해 토큰이 미래를 ‘엿보는’ 효과를 주는 프롬프팅 기법(모델 가중치 수정 없음). 양방향 정밀 제어/학습 결합은 어려움.
    ULLME 차별점: 모델 자체에 양방향 마스크를 도입하고(임베딩), 생성 단계는 causal로 유지하는 듀얼 모드를 하나의 프레임워크로 제공.

3.2 랭킹 목표와의 정렬(학습 목표)

  • 대조학습(Contrastive): 전 분야 공통 기반. ULLME는 대배치(Batch=512) 학습을 위해 GradCache/교차-디바이스 대조손실 등 효율화 제공.
  • SFT/DPO 추가: GritLM은 SFT, ULLME는 SFT와 DPO 모두 지원(선호 vs 비선호 생성확률 격차를 키움).
  • LLM2Vec의 mask-filling: 마스크 채우기식 보조 과제로 표현 학습을 보강.
  • ULLME의 GRL(핵심): 후보 집합 U에 대해 생성 기반 점수 s_gens\_{gen}임베딩 유사도 s_rts\_{rt}를 각각 소프트맥스로 분포화하여 KL로 정렬 ⇒ **생성 공간과 임베딩 공간의 ‘랭킹 일관성’**을 강제. (최종 손실은 Contrastive + DPO(or SFT) + KL의 가중합)

4) 성능 비교: Echo·LLM2Vec vs ULLME(GRL)

MTEB(56 데이터셋 평균)에서 ULLME-GRL이 LLM2Vec/Echo 대비 일관된 우세(1.5B~8B 백본 공통). 예:

  • Phi-1.5B: Echo 36.00, LLM2Vec 54.47, ULLME-GRL 55.76
  • Mistral-7B: Echo 50.26, LLM2Vec 57.47, ULLME-GRL 59.50
  • Llama3-8B: Echo 51.11, LLM2Vec 58.04, ULLME-GRL 59.27.
    또한 추론 처리량은 원본 LLM과 유사(예: 7B ≈12K tok/s), 실사용 제약이 크지 않음.

5) 요점 정리(한눈에)

  • Echo: 프롬프트 중복으로 양방향 효과를 내지만 학습 없이 쓰는 트릭 → **학습 기반 정렬(DPO/GRL)**은 부재.
  • LLM2Vec: 양방향화 + Contrastivemask-filling을 추가 → 생성확률과의 분포 정렬은 미포함.
  • GritLM: SFT + Contrastive로 생성 능력 활용 → 임베딩-생성의 일관성명시적으로 강제하진 않음.
  • ULLME: 토글형 양방향 마스크 + Contrastive/SFT/DPO + **GRL(KL)**로 임베딩·생성 공간의 랭킹 일관성을 만들어 넓은 백본에서 SOTA 계열 대비 우세.

 

아래는 ULLME의 방법론을 “무엇을 왜 바꾸는가 → 어떻게 학습하는가 → 배치 단위로 무엇이 일어나는가” 순서로, 식과 예시까지 포함해 단계별로 정리한 설명입니다. 모두 업로드하신 논문 본문을 근거로 했습니다.

0) 큰 그림: 한 모델로 “임베딩↔생성”을 오가는 통합 프레임워크

ULLME는 디코더 LLM의 causal 마스크를 임베딩 시 양방향 마스크로 교체해 전/후 문맥을 모두 쓰게 만들고(is_generate=False), 생성 시에는 다시 causal로 복귀합니다(is_generate=True). 동일 모델이 임베딩과 생성을 토글로 전환하며, 풀링은 first/last/mean/weighted-mean 중 선택(기본: 최종 레이어 mean).
이 토글형 양방향화 위에, Contrastive / SFT / DPO와 신규 기법 GRL조합 가능한 미세튜닝 스택으로 제공합니다.


1) 3단계 파이프라인 개요

  1. 양방향 어텐션 활성화(Embedding 모드): causal 마스크를 all-one 마스크로 바꿔 임베딩 추출 시 미래 토큰까지 활용. HF Transformers에 최소 수정으로 붙고 LoRA도 지원됩니다.
  2. 미세튜닝(학습 목적 결합): Contrastive/SFT/DPO/GRL 중 필요 조합으로 학습(코드 레벨에서 스위치).
  3. 평가: MTEB 래퍼로 바로 평가 가능(모델 래핑 WrappedULLME).

2) 핵심 구성요소와 목적함수

2.1 임베딩 모드(양방향 어텐션)

  • is_generate=False → 양방향 마스크로 바꾸어 임베딩 품질 향상(밀집 검색에 유리). True로 두면 표준 LLM처럼 causal 생성으로 동작합니다.
  • 임베딩 풀링은 first/last/mean/weighted-mean을 지원하며 기본은 최종 레이어 평균입니다.

2.2 Contrastive Learning (NT-Xent / in-batch negatives)

  • 배치 B에서 쿼리 q, 정답 p⁺, 음성 p⁻들에 대해 코사인 유사도 s_rt(q,p)로 스코어링 후 NT-Xent 손실을 최소화합니다.LCL=−log⁡exp⁡(srt(q,p+))exp⁡(srt(q,p+))+∑p−∈Bexp⁡(srt(q,p−))L_{\text{CL}}=-\log\frac{\exp(s_{rt}(q,p^+))}{\exp(s_{rt}(q,p^+))+\sum_{p^-\in B}\exp(s_{rt}(q,p^-))}(in-batch negatives)
  • 대배치 효율화를 위해 GradCache·cross-device 대조손실을 내장합니다.

2.3 SFT (Supervised Fine-Tuning)

  • 정답 문서 p⁺를 다음단어 예측으로 학습(생성 모드이므로 causal 사용):LSFT=−1N∑i=1Nlog⁡πθ(wi∣w<i,q)L_{\text{SFT}}=-\frac{1}{N}\sum_{i=1}^N \log \pi_\theta(w_i\mid w_{<i}, q)(N은 p⁺ 길이)

2.4 DPO (Direct Preference Optimization)

  • q에 대해 p⁺를 선호(preferred), **p⁻를 비선호(dispreferred)**로 두고 참조모델 πref\pi_{\text{ref}} 대비 현재모델 πθ\pi_\theta의 선호도를 키우는 목적함수:LDPO=−log⁡σ ⁣(βlog⁡πθ(p+ ⁣∣q)πref(p+ ⁣∣q)−βlog⁡πθ(p− ⁣∣q)πref(p− ⁣∣q))L_{\text{DPO}}=-\log \sigma\!\Big(\beta\log\frac{\pi_\theta(p^+\!\mid q)}{\pi_{\text{ref}}(p^+\!\mid q)}-\beta\log\frac{\pi_\theta(p^-\!\mid q)}{\pi_{\text{ref}}(p^-\!\mid q)}\Big)(β는 스케일) 학습 시 causal로 계산합니다. KTO/CPO 변형도 모듈식으로 지원합니다.

2.5 GRL (Generation-augmented Representation Learning) — 핵심

생성 확률임베딩 유사도랭킹 분포KL로 정렬해, “생성에서의 관련성”과 “표현에서의 관련성”을 일치시킵니다.

  1. 생성 기반 점수

sgen(q,p)=1t∑i=1tlog⁡πθ(wi∣w<i,q)s_{\text{gen}}(q,p)=\frac{1}{t}\sum_{i=1}^{t}\log \pi_\theta(w_i\mid w_{<i},q)

(t는 문서 p 길이)

  1. 임베딩 기반 점수: s_rt(q,p) = cos(emb(q), emb(p)) (임베딩 모드에서 계산).
  2. 분포 정규화(softmax)

Prt(q,pi)=esrt(q,pi)∑p′∈Uesrt(q,p′) ⁣,Pgen(q,pi)=esgen(q,pi)∑p′∈Uesgen(q,p′) ⁣P_{\text{rt}}(q,p_i)=\frac{e^{s_{rt}(q,p_i)}}{\sum_{p'\in U}e^{s_{rt}(q,p')}}\!,\quad P_{\text{gen}}(q,p_i)=\frac{e^{s_{gen}(q,p_i)}}{\sum_{p'\in U}e^{s_{gen}(q,p')}}\!

(후보 집합 U 위 분포)

  1. 분포 정렬(KL)

LKL=∑p∈UPrt(q,p) log⁡Prt(q,p)Pgen(q,p)L_{\text{KL}}=\sum_{p\in U} P_{\text{rt}}(q,p)\,\log\frac{P_{\text{rt}}(q,p)}{P_{\text{gen}}(q,p)}

→ 임베딩 랭킹이 생성 확률 랭킹과 일치하도록 유도.

  1. 최종 손실(가중합)

LGRL=λCLLCL+λDPOLDPO+λKLLKLL_{\text{GRL}}=\lambda_{\text{CL}}L_{\text{CL}}+\lambda_{\text{DPO}}L_{\text{DPO}}+\lambda_{\text{KL}}L_{\text{KL}}

(SFT 변형인 **GRLSFT_\text{SFT}**도 제공)


3) 배치 단위 학습 절차(한 사이클)

  1. 쿼리 q와 후보 U(=p⁺+여러 p⁻)를 샘플링.
  2. 임베딩 모드(양방향)로 emb(q), emb(p) 추출 → s_rt 계산 → LCLL_{\text{CL}} 계산.
  3. 생성 모드(causal)로 sgen(q,p)s_{\text{gen}}(q,p) 계산. SFT 또는 DPO 중 선택해 LSFTL_{\text{SFT}} 또는 LDPOL_{\text{DPO}} 계산.
  4. U 위에서 Prt,PgenP_{\text{rt}},P_{\text{gen}}을 softmax로 만들고 LKLL_{\text{KL}} 계산.
  5. LGRLL_{\text{GRL}} = λCLLCL+λDPOLDPO(+λKLLKL)\lambda_{\text{CL}}L_{\text{CL}}+\lambda_{\text{DPO}}L_{\text{DPO}}(+\lambda_{\text{KL}}L_{\text{KL}})로 업데이트.
  6. 대배치가 필요하면 GradCache, FSDP 등 메모리-세이빙을 함께 사용.

4) 작은 장난감 예시(직관)

  • 배치에 q와 문서 3개 U={p+,p1−,p2−}U=\{p^+,p^-_1,p^-_2\}.
  • 임베딩 모드에서 코사인 유사도: srt={0.80,0.20,0.10}s_{rt} = \{0.80,0.20,0.10\} → softmax로 Prt≈{0.66,0.24,0.10}P_{\text{rt}}\approx\{0.66,0.24,0.10\}.
  • 생성 모드에서 평균 로그우도: sgen={−1.2,−1.0,−0.8}s_{gen}=\{ -1.2, -1.0, -0.8\} → softmax로 Pgen≈{0.26,0.32,0.42}P_{\text{gen}}\approx\{0.26,0.32,0.42\} (여기서는 p⁺가 생성 확률 기준으로는 1위가 아님).
  • KL 정렬 LKL=∑Prtlog⁡PrtPgenL_{\text{KL}}=\sum P_{\text{rt}}\log \frac{P_{\text{rt}}}{P_{\text{gen}}}을 내려주면, 임베딩은 점차 생성 확률 랭킹을 따라가도록 업데이트됩니다(또는 반대로 생성도 SFT/DPO로 보정). 이로써 “생성에서의 관련성”과 “표현에서의 관련성” 간 목표 불일치가 줄어듭니다.

5) 구현/재현 팁(논문 기본값)

  • Optim/스케줄: AdamW, lr=2e-4, batch=512, 1 epoch (MSMARCO). LoRA r=16r=16. 가중치 λCL=λKL=1, λDPO=0.5\lambda_{\text{CL}}=\lambda_{\text{KL}}=1,\ \lambda_{\text{DPO}}=0.5. GradCache, grad-ckpt, mixed-precision, FSDP 사용.
  • 인퍼런스: 임베딩 추출은 is_generate=False(양방향), 생성은 True(causal). 기본 풀링은 최종 레이어 mean.

6) 왜 잘 작동하나? (핵심 통찰)

  • 기존 “양방향화 + 대조학습”만으로는 생성 능력을 직접 임베딩 학습에 끌어들이기 어려웠습니다. GRL은 생성 확률 분포정답성 힌트로 해석하여 임베딩 랭킹과 **명시적으로 정렬(KL)**함으로써, 두 공간의 관련성 개념을 일치시킵니다. 결과적으로 더 풍부하고 일관된 표현이 형성됩니다.

필요하시면 위 절차를 그대로 쓸 수 있는 **PyTorch 스켈레톤(배치 루프 + GRL 손실 계산)**과 HF/LoRA 설정 템플릿까지 만들어 드릴게요.

 

좋아요. 업로드하신 ULLME 논문을 바탕으로 결과 → 결론 → 기여 → 한계를 한눈에 보이도록 정리했습니다. (수치·주장은 모두 원문 인용)

핵심 한 줄

**GRL(Generation-augmented Representation Learning)**을 포함한 통합 프레임워크(양방향 주의 토글 + Contrastive/SFT/DPO)가 Echo·LLM2Vec 대비 MTEB 평균에서 일관된 우위를 보였습니다.


결과(Results)

  • MTEB 56개 데이터셋 평균 (학습: MSMARCO curated subset, 1 epoch, LoRA r=16):모델군 Phi-1.5B Mistral-7B-Instruct Llama3-8B-Instruct
    Echo* 36.00 50.26 51.11
    LLM2Vec* 54.47 57.47 58.04
    GRL (ours) 55.76 59.50 59.27
    (*: 동일 데이터로 재현)      
  • 조합 효과: Bi-attention + Contrastive + SFT가 단독 대비 개선, GRL이 최종 최고.
  • 추론 속도: 미세튜닝 모델의 추론 처리량이 원본 LLM과 유사(예: Phi-1.5B 16K tok/s, Mistral-7B 12K, Llama3-8B 12.8K).
  • 전체 테이블: MTEB 전 과제 세부 수치는 부록 Table 3에 제공(평균 55.76/59.50/59.27).

결론(Conclusion)

  • ULLME는 **여러 LLM 백본(1.5B~8B)**에서 양방향 임베딩·다양한 미세튜닝·MTEB 평가를 한 프레임워크로 묶어 간편·일관된 파이프라인을 제공하고, 특히 GRL이 밀집 검색 성능을 유의미하게 향상함을 보였습니다.
  • 향후 과제: 생성(Generative)과 판별(Discriminative) 능력의 결합을 더 잘 활용하고, 신규 LLM 아키텍처/학습 패러다임으로 확장.

기여(Contributions)

  1. 통합 프레임워크: LLaMA, Mistral, Phi, Qwen 등 다양한 LLM에 양방향 주의(bidirectional) 적용을 간단한 토글로 제공 + MTEB 평가 래퍼 내장.
  2. 학습 전략의 포괄적 지원: Contrastive / SFT / DPO / GRL 조합을 지원(대배치용 GradCache, FSDP 포함).
  3. GRL 제안: 생성 확률 기반 점수임베딩 유사도를 후보군 U 위 분포로 정규화해 KL로 정렬 ⇒ 생성·표현 공간의 관련성 일관성 강화.
  4. 비교 우위의 실증: 동일 데이터로 재현한 Echo/LLM2Vec 대비 GRL의 일관된 우세를 1.5B~8B에서 확인.

한계(Limitations) – 원문 근거로 읽히는 제약

  • 학습 데이터 편중: 학습은 MSMARCO curated subset, 1 epoch에 한정(LoRA, 대배치 세팅). 도메인 일반화 검증 범위는 제한적일 수 있음.
  • 계산 비용 측면: GRL은 후보 집합 U에 대해 문서 생성 로그우도 평균을 계산하고, 분포(KL) 정렬을 수행 → 대규모 U·긴 문서에서 추가 계산량이 발생.
  • 실험 커버리지: 프레임워크는 다수 LLM을 지원하나, 실험 보고는 3개 백본(1.5B/7B/8B) 중심. 다른 크기·도메인 특화 LLM에 대한 추가 검증 여지.
  • (양면적 관찰) 추론 처리량은 원본과 유사하다고 보고되지만, 이는 특정 세팅(모델 3종·평균 로그우도 측정 없음) 기준임. 과제·후보 수(U) 설계에 따라 실사용 비용/지연은 달라질 수 있음.

필요하시면 위 내용을 **1페이지 표(Problem/Method/Exp/Results/Contrib/Limits)**로도 정리해 드릴게요.

 

맞아요—핵심을 잘 짚었습니다. 다만 세 가지 신호가 함께 쓰인다는 점을 분명히 하면 더 정확해요.

  1. 임베딩 학습(Contrastive)
  • 쿼리 qq–정답 p+p^+가까워지게, qq–음성 p−p^-멀어지게 코사인 유사도 기반 대조손실 LCLL_{\text{CL}}로 학습합니다.
  • 이때 모델은 **양방향 어텐션 모드(임베딩 모드)**로 임베딩을 뽑습니다.
  1. 생성 학습(SFT 또는 DPO)
  • SFT: qq가 주어졌을 때 p+p^+토큰 로그우도를 높이도록(= 더 잘 “생성”하도록) 학습합니다.
  • DPO: qq에 대해 p+p^+의 생성 확률이 p−p^-보다 일관되게 높아지도록(참조모델 대비) 학습합니다.
  • 생성 손실을 계산할 때는 **causal 어텐션(생성 모드)**를 씁니다.
    → 즉 “q⇒p+q \Rightarrow p^+를 생성하도록”이라는 표현은 정확히는 p+p^+우도/선호도를 높인다는 뜻에 가깝습니다.
  1. GRL(Generation-augmented Representation Learning) — 둘을 정렬
  • 후보 집합 U={p+,p1−,… }U=\{p^+,p^-_1,\dots\}에 대해
    • 임베딩 유사도 srt(q,p)s_{\text{rt}}(q,p)로 만든 분포 PrtP_{\text{rt}}와,
    • 생성 로그우도 평균 sgen(q,p)s_{\text{gen}}(q,p)로 만든 분포 PgenP_{\text{gen}}
    • KL로 맞춥니다: LKL=∑p∈UPrtlog⁡PrtPgenL_{\text{KL}}=\sum_{p\in U} P_{\text{rt}}\log\frac{P_{\text{rt}}}{P_{\text{gen}}}.
  • 최종손실: L=λCLLCL+λDPO/SFTLDPO/SFT+λKLLKLL=\lambda_{\text{CL}}L_{\text{CL}}+\lambda_{\text{DPO/SFT}}L_{\text{DPO/SFT}}+\lambda_{\text{KL}}L_{\text{KL}}.
    → 결과적으로 임베딩에서의 랭킹생성에서의 랭킹같아지도록 압력을 줍니다.

한 줄로 정리하면:
(i) 임베딩 쪽에선 q ⁣↔ ⁣p+q\!\leftrightarrow\!p^+를 가깝게, q ⁣↔ ⁣p−q\!\leftrightarrow\!p^-는 멀게(Contrastive), (ii) 생성 쪽에선 q⇒p+q \Rightarrow p^+의 확률을 p−p^-보다 높게(SFT/DPO), (iii) 그리고 두 공간의 **랭킹을 KL로 정렬(GRL)**합니다.
즉, 당신이 말한 직관(“qqp+p^+ 생성 + qqp+p^+ 근접, qqp−p^- 원격”)이 맞고, GRL이 그 둘을 한데 묶어 일관성을 강제한다—가 이 논문의 포인트입니다.

 

짧게 말하면 **“그 방향을 일반화·확장한 논문”**이라고 보는 게 정확합니다.
GritLM이 “양방향 임베딩 + 생성 신호(SFT) + 대조학습”의 조합을 보여줬다면, ULLME는 같은 축을 따르되 프레임워크화하고 학습 목표를 더 확장합니다.

무엇이 이어받았나(공통점)

  • 양방향화: 디코더 LLM을 임베딩 시 **양방향(attn mask 전환)**로 쓰고, 생성 시엔 causal로 쓰는 흐름.
  • 생성 신호와 표현 신호 병행: 단순 임베딩 대조학습(contrastive)만이 아니라, **생성 기반 감독(SFT 계열)**도 함께 활용.

무엇이 달라졌나(ULLME의 확장점)

  • 통합 프레임워크: 하나의 코드/인터페이스로 여러 백본(1.5B~8B 다수)에서 임베딩↔생성 토글, **학습·평가(MTEB)**까지 일관 지원.
  • 학습 목표의 일반화
    • GritLM: 주로 SFT + Contrastive
    • ULLME: Contrastive + SFT + DPO까지 모듈식 지원 +
      GRL(Generation-augmented Representation Learning) 제안
      → 생성 로그우도 기반 랭킹 분포와 임베딩 유사도 기반 랭킹 분포KL명시적으로 정렬.
  • 실전 효율 옵션 내장: cross-device in-batch negatives, GradCache/FSDP, LoRA 등 대배치·저비용 학습을 기본 제공.
  • 관점의 변화: 단순히 “생성도 함께 학습”이 아니라, 생성에서의 관련성 개념을 임베딩 공간에 직접 이식(KL 정렬)한다는 명확한 목적함수 관점.

관계를 한 문장으로

  • GritLM ⊂ ULLME(개념적 특수화): ULLME에서 **KL 정렬(λ_KL=0)**로 끄고 DPO 미사용, SFT+Contrastive만 쓰면 GritLM 스타일에 가깝게 됩니다.
  • 즉, ULLME는 GritLM의 아이디어를 더 일반화·체계화하고, GRL이라는 새 정렬 손실로 “생성↔임베딩”의 랭킹 일관성을 강제한다는 점이 핵심 차별점입니다.

단, 논문에 GritLM과의 직접적인 수치 비교표가 항상 제공되는 것은 아니므로, “항상 GritLM보다 우월”이라고 일반화하긴 어렵습니다. ULLME의 방법론적 범용성+GRL이 “발전된 방향”이라는 해석이 안전합니다.

728x90