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

Repurposing Language Models into Embedding Models: Finding the Compute-Optimal Recipe

이게될까 2025. 9. 13. 02:50
728x90
728x90

https://arxiv.org/abs/2406.04165

 

Repurposing Language Models into Embedding Models: Finding the Compute-Optimal Recipe

Text embeddings are essential for many tasks, such as document retrieval, clustering, and semantic similarity assessment. In this paper, we study how to contrastively train text embedding models in a compute-optimal fashion, given a suite of pre-trained de

arxiv.org

Decoder LLM을 Contrastive training하여 embedding 모델로 repurposing할 때 최적의 레시피를 제시한다. 

https://github.com/SeqDM/Efficient-Embeddings

 

GitHub - SeqDM/Efficient-Embeddings

Contribute to SeqDM/Efficient-Embeddings development by creating an account on GitHub.

github.com

여긴 깃! 

 

여기선 데이터 고정상황에선 큰 모델이 유리하다고 나오네요 ㅎㅎ....

근데 데이터 고정이 아니라 연산 고정이 아닌가 싶기도 하고... 

 

이 논문은 진짜 다양한 실험을 진행합니다

Full fine-tuning, freezing, PEFT, bias만 학습 등등 .. 

결국 32, 128을 가진 LoRA가 제일 적절하다... 

LoRA가 확실히 효율적이기도 합니다.

 

문제 상황 사전학습된 decoder-only LLM을 **대조학습(contrastive)**으로 임베딩 모델로 재활용할 때, 주어진 연산 예산(FLOPs) 안에서 튜닝 방식(Full/LoRA/Block/Bias) · 모델 크기 N · 데이터 토큰 수 D를 어떻게 고르면 최소 대조 손실(→ 높은 다운스트림 성능)에 도달하는가?
방법론(개요) IsoFLOP 탐색: 동일 FLOP 예산에서 다양한 N, D, 방식(Full/LoRA/Block/Bias), 하이퍼를 스윕 → 각 예산에서 최소 손실점 수집 →
스케일링 법칙 적합: 손실–예산(로그–로그) 관계를 멱법칙으로 적합하고, 학습가능 비율 S(Full=1, LoRA/동결<1)과 log D 보정 항을 넣은 확장식을 사용 →
Compute-optimal frontier(각 예산에서 최저 손실만 이은 외곽선) 도출 →
알고리즘(레시피)로 예산→방법/모델크기/데이터량/LoRA rank를 순차 결정.
학습법(Training Recipe—실행 가능한 요약) 입력/표현: 문장 입력 길이 context≈75. 임베딩은 마지막 레이어 히든의 평균(mean pooling).
손실: In-batch negatives 기반 InfoNCE/CL. 로짓=cosine(emb(x_i), emb(y_j)) · exp(τ). 행/열 CE 평균. 온도 τ ≈ 1/40(≈0.025) 권장.
배치/스케줄: Batch=1024(가능하면 크게), AdamW, cosine LR, warm-up 10%, weight decay 0.1 근방.
정밀도/메모리: Gradient Checkpointing, GradCache(가능 시), mixed precision로 VRAM 절감.
네거티브: 하드 네거티브는 기본 미사용(데이터 특이성 제거해 스케일링 일반화 확보). 태스크 특화가 목표면 이후 추가.
LoRA: 고예산 구간에서 주로 선택. rank 기본값 32 또는 128(너무 낮은 r=8, 과도한 r=2048은 비추). attention/FFN에 적용(표준 설정).
Block Freezing: 일부 레이어 동결+나머지 학습. frontier 최적은 아니지만 메모리·엔지니어링 이점으로 실무 대안.
Bias-only: 일관되게 열세—권장하지 않음.
평가/선택: 학습 대조 손실의 감소가 MTEB류 성능강한 음의 상관→ 손실 기준으로도 체크포인트 선택 가능.
실험 구성 모델군: Pythia 다중 크기(수십 M ~ 수 B 파라미터) 중심, 일부 Gemma 2B로 일반화 단서 확인.
데이터: 대규모 문장쌍(수억 쌍)—BGE류 혼합(웹/위키/QA/포럼 등). 1 epoch 미만으로 과도 반복 회피.
예산 스윕: FLOPs 대역 ~10^15 ~ 10^18 내 여러 단계.
평가: 학습 손실 + MTEB 서브셋(STS/재검색/분류 등). Pooling 비교(Mean vs Last), LoRA rank/튜닝방식/모델크기/데이터량 Ablation.
핵심 결과 전환점(임계 예산): 저예산(≈9.06×10^16 FLOPs 이하)에선 Full FT가, 그 이상(고예산)에선 LoRA가 frontier 상 더 낮은 손실.
LoRA rank 권장: 32 또는 128이 광범위 구간에서 안전(민감도 낮음). 극단 값은 비효율.
Pooling: Mean pooling > Last token(MTEB 평균 유의 차이).
Block Freezing: 최적은 아니나 근접 성능 + 낮은 메모리로 현실적 선택지.
손실–다운스트림 정합: 학습 손실과 MTEB 성능 간 강한 음의 상관(ρ 절댓값↑) → 손실 최소화 중심 설계가 실전 성능에도 유효.
이 논문의 기여(Contribution) 1) Compute-optimal frontier 제시: 예산별 최적 튜닝 방식/모델 크기/데이터량을 한눈에 고를 수 있는 외곽선.
2) 의사결정 레시피(Algorithm): “예산→방식(Full/LoRA)→N→D→(LoRA r)”를 순서대로 결정.
3) 스케일링 법칙 확장: 기존 L(N,D)학습가능 비율 Slog D 항을 추가한 L(S,N,D)방법 간 차이를 하나의 식으로 설명/예측.
4) 실전 하이퍼 가이드: τ≈1/40, Batch≈1024, Mean pooling, wd≈0.1, cosine+10% warm-up, LoRA r=32/128 등 “바로 쓸 값”을 경험적으로 제시.
5) 엔지니어링 트레이드오프의 위치 지정: Block Freezing의 실무 유용성, Bias-only의 비권장 근거.
한계/주의 모델 일반화 한계: 주로 Pythia 기반(일부 Gemma 2B만 점검). 더 큰/다른 아키텍처(예: LLaMA, Qwen, Mixtral)에서 임계점 이동 가능.
데이터 편향: 영어 중심·하드네거티브 미사용 기준의 스케일링—도메인/다국어/하드네거티브 도입 시 최적점이 달라질 수 있음.
추론비용 미포함: 본 연구는 학습 FLOPs에 초점. 실사용 총비용(추론 레이턴시/서빙 메모리)까지 넣으면 선택이 달라질 수 있음.
통계적 안정성: 일부 설정은 단일 시드 기반 보고—분산·재현성 추가 검증 필요.
Pooling/Readout 다양성: Mean vs Last 중심—[CLS]/EOS/Max/Weighted 등 대안 탐색 여지.
실무 적용 규칙(요약) 1) 예산 결정2) 방식 선택: ≤ ~9.06×10^16 FLOPs → Full, > 그 이상 → LoRA.
3) 모델 크기 N: frontier/도표에서 예산별 최적 N 선택(대개 예산↑ → 최적 N↑).
4) 데이터 토큰 D: 스케일링 곡선으로 필요한 D 산정(동일 토큰 한정이면 큰 모델 유리).
5) LoRArank 32/128부터.
6) 하이퍼 기본값: Mean pooling, τ≈1/40, batch≈1024, len≈75, AdamW, wd≈0.1, cosine+10% warm-up, GradCheckpointing/AMP.
7) 검증: 손실↓를 1차 신호로 보되 MTEB 서브셋으로 교차 확인.
더보기

좋아, 업로드한 NeurIPS 2024 논문을 연구자가 바로 쓰는 요약으로 깔끔히 정리했어. (핵심 주장·수치에는 원문 근거를 달았어.)

한 장 요약 표

구분 핵심 내용
문제 주어진 연산 예산(FLOP) 하에서, 사전학습된 decoder-only LLM을 **대조학습(contrastive)**으로 임베딩 모델로 재활용할 때 방법(Full/LoRA/Block/Bias), 모델 크기 N, 데이터량 Dcompute-optimal 조합을 찾는 레시피 제시. 결과적으로 저예산=Full, 고예산=LoRA가 최적.
방법 IsoFLOP 비교로 동일 FLOP에서 손실 최소점을 수집 → **로그–로그 선형(멱법칙)**으로 방법별 손실–예산 곡선 적합 → compute-optimal frontier 도출 및 Algorithm 1으로 예산→최적 방법/모델/데이터·(LoRA rank) 순서 결정. 경계값 9.06×10^16 FLOP에서 Full↔LoRA가 교차.
데이터·모델 Pythia 계열 다중 크기로 광범위 스윕; Gemma 2B로 일반화 가능성도 확인(단일 크기 한정).
학습 설정(권장) Batch=1024, context=75, AdamW(wd=0.1), cosine LR + 10% warmup, 온도 τ=1/40≈0.025. Mean pooling > Last pooling(MTEB 평균 0.47 vs 0.36).
LoRA 설정 rank는 32 또는 128이 대부분의 모델/예산에서 안전한 기본값. 극단(8, 2048)은 비추.
스케일링 법칙 기본식 L(N,D)=C+ANα+BDβL(N,D)=C+\frac{A}{N^{\alpha}}+\frac{B}{D^{\beta}}학습가능 비율 Slog D 항을 추가한 확장식이 더 잘 맞음.
추가 인사이트 데이터 고정(동일 토큰) 상황에선 큰 모델이 유리 → Full 또는 LoRA의 높은 rank 권장. 학습 손실 ↓ ↔ MTEB 성능 ↑ 유의 상관.

레시피(실전 적용 순서)

  1. 예산 산정: 사용할 FLOP 예산 CC 계산.
  2. 방법 선택:
    • C≤9.06×1016C \le 9.06\times 10^{16} FLOP → Full fine-tuning.
    • C>9.06×1016C > 9.06\times 10^{16} FLOP → LoRA.
  3. 모델 크기 NN 결정: 방법에 맞는 Figure 6a/6b lookup(예산별 최적 파라미터 수).
  4. 데이터량 DD 산정: 스케일링 곡선으로 필요 토큰 수 추정(멱법칙 적합).
  5. LoRA면 rank RR 선택: 32 또는 128을 기본값으로(극단은 회피).
  6. 학습 하이퍼: Batch=1024, context=75, AdamW(wd=0.1), cosine LR + 10% warmup, τ=1/40.
  7. 임베딩 읽기: Mean pooling 사용(Last 대비 우수).

왜 맞는가? (스케일링 관점 요약)

  • compute-optimal frontier는 방법별 손실–예산 멱법칙을 적합하고, 각 예산에서 가장 낮은 손실을 주는 방법을 선택한 외곽선. 이 선에서 저예산은 Full, 고예산은 LoRA가 우세로 교차함을 식과 수치로 제시.
  • 확장 스케일링 식학습가능 파라미터 비율 SS(Full=1, LoRA<1 등)과 데이터 로그항을 반영해 다양한 미세조정 전략 간 손실 차이를 더 잘 설명.

한계 및 주의

  • 실증은 주로 Pythia군을 기반으로 하며, Gemma 2B에서의 점검은 단일 크기로 제한 → 완전 일반화에는 추가 검증 필요.
  • Bias-only는 IsoFLOP 비교에서 일관되게 열세. Block freezing은 어떤 예산에서도 최적은 아님이지만, 메모리/구현 장점으로 실무 대안 가능.

바로 쓰는 체크리스트

  • 예산이 9.06e16 FLOP 이하Full, 초과LoRA.
  • LoRA rank = 32 또는 128으로 시작.
  • Batch=1024 / context=75 / τ=1/40 / wd=0.1 / cosine+10% warmup / Mean pooling.
  • 데이터가 제한되면 가장 큰 모델Full 또는 높은 LoRA rank로.
  • 학습 손실이 내려가면 MTEB류 다운스트림도 함께 상승(상관 유의).

필요하면, 네 환경의 FLOP/데이터/모델 후보로 위 레시피를 바로 인스턴스팅해서 실험 플랜 표까지 만들어줄게.

 

좋아요. 요청하신 대로 관련 연구 맥락을 체계적으로 정리하고, 본 논문과의 차이를 함께 표로 정리해 독자적 기여가 선명하게 드러나도록 구성했습니다. (모든 사실은 업로드하신 논문 본문을 근거로 인용합니다.)

맥락 한 줄 요약

이 논문은 사전학습된 decoder-only LLM을 **대조학습(contrastive)**으로 임베딩 모델로 재활용할 때, 주어진 연산 예산(FLOP) 안에서 방법(Full/LoRA/Block/Bias)–모델 크기–데이터량compute-optimal 레시피를 제시합니다. 핵심 결론은 저예산에선 Full, 고예산에선 LoRA가 최적이며(경계 ≈ 9.06×10169.06\times10^{16} FLOP), LoRA rank는 32 또는 128이 안전한 기본값이라는 것입니다.

관련 연구 vs 본 논문 (차이점 중심)

범주/대표 핵심 아이디어(요지) 본 논문과의 차이 이 논문이 채운 공백(기여)
Encoder-only 임베딩: BERT, SimCSE BERT 계열 인코더와 대조학습 기반 임베딩이 표준으로 자리잡음. Decoder-only LLM을 임베딩으로 재활용하는 파이프라인 자체를 연구 대상으로 삼음. Decoder-only 전이 학습 시 **연산 예산별 최적 조합(방법·크기·데이터)**을 알고리즘으로 제시.
Decoder-only 임베딩 사례: GPT 초기화, SFR-Embedding-Mistral GPT 초기화로 임베더를 성공적으로 학습(Neelakantan 등). 최신 공개 SOTA도 Mistral 7B를 대조학습으로 미세조정. 개별 사례 성과 보고와 달리, IsoFLOP 스윕 → 스케일링 법칙 적합 → 최적 레시피체계적으로 제공. Compute-optimal frontier 개념 도입, **Full↔LoRA 경계(9.06e16 FLOP)**를 정량 규명.
PEFT(매개변수 효율) 기법: Adapters, Prefix/Prompt, LoRA, Bias-only 등 소비자급 HW에서의 미세조정 비용을 낮추는 다양한 기법 제안. Bias-only/특화 PEFT도 보고됨. 체계적 비교·최적화 연구는 부족. Full/LoRA/Block/Bias동일 FLOP에서 정량 비교하고, LoRA rank의 **안전 구간(32/128)**을 도출. 예산대별 기법 선택 규칙LoRA 하이퍼파라미터 가이드(극단 rank 8/2048 비효율) 제공.
스케일링·컴퓨트 최적화(Hoffmann 등) 사전학습 맥락에서 파라미터 수–데이터량–손실 관계의 멱법칙 제시. 본 논문은 대조학습 미세조정 맥락에 맞게 **학습가능 비율 SS**와 log⁡D\log D 항을 포함하는 확장식을 제안·적합. 미세조정 전용 스케일링 법칙과 이를 이용한 예산→최적 레시피 절차(Algorithm 1)를 제시.
동시대 관련: Fang et al. 2024 인코더 기반 검색 모델의 스케일링 법칙 탐구(동시 연구). Decoder-only 모델의 대조학습 미세조정에 초점, 예산 제약하 최적 전략 선택까지 포함(LoRA·부분동결 등). 모델군·기법 선택까지 확장된 최적화 문제를 풀어, 방법–크기–데이터–하이퍼 전반의 실전 레시피 제공.
표현 추출 방식 LLM의 마지막 레이어 평균을 임베딩으로 사용(디폴트). Mean pooling vs LastMTEB 전체로 비교 → Mean가 우월(0.47 vs 0.36). 읽기(head) 선택의 경험적 가이드 제공(Mean 권장).
지표 연계 다운스트림은 보통 MTEB로 평가. 훈련 손실 ↔ MTEB 성능의 **강한 음의 상관(ρ≈−0.892)**로, 손실 기반 설계의 타당성을 입증. 손실 최소화 기준으로 레시피를 세워도 실제 성능이 동반 상승함을 보임.

이 논문의 확실한 기여 (핵심 6가지)

  1. Compute-optimal frontier 및 레시피(Algorithm 1): 연산 예산에 따라 기법(Full/LoRA)→모델 크기→데이터량→LoRA rank를 도출하는 절차적 가이드를 제시. 분기점은 약 9.06×10169.06\times10^{16} FLOP.
  2. PEFT 선택의 정량 규칙: Block freezing은 어떤 예산에서도 최적은 아니나, 근접 성능+낮은 메모리로 실무 대안이 될 수 있음을 명시. Bias-only는 일관되게 열세.
  3. LoRA 하이퍼 가이드: rank 32/128이 광범위 설정에서 안전한 기본값(극단 rank 8/2048은 비효율).
  4. 미세조정 스케일링 법칙 확장: 기존 L(N,D)L(N,D)에 **학습가능 비율 SS**와 **log⁡D\log D**를 추가한 L(S,N,D)L(S,N,D)를 제안·적합, 데이터에 더 잘 맞음을 확인.
  5. 표현 추출의 경험적 권고: Mean poolingLast보다 유의하게 우수하다는 전면적 비교 제공.
  6. 손실–다운스트림 정합성 검증: 손실과 MTEB 성능의 ρ≈−0.892를 보고하여, 손실 최소화 기반 설계실전 타당성을 뒷받침.

추가로 눈여겨볼 차별점(실무 적용에 직결)

  • 데이터 제약 시 권고: 동일 토큰 수 조건에서는 가장 큰 모델을 선택하고 Full 또는 높은 LoRA rank가 유리.
  • 일반화 점검: Pythia로 적합한 공식을 Gemma 2B로 검증 → 단일 크기 한정이지만 손실 예측이 근사.

요약 결론

기존 연구가 (i) 인코더 중심 임베딩, (ii) decoder-only 임베딩 사례 보고, (iii) 개별 PEFT 제안, (iv) 사전학습 스케일링에 머물렀다면, 이 논문은 decoder-only 임베딩의 미세조정 전체 설계공간을 예산 제약하에서 통합적으로 최적화합니다. 그 결과, 예산 분기 규칙(Full↔LoRA), LoRA rank의 실전 기본값, 읽기/지표 설계의 근거까지 포함한 운영 가능한 레시피를 제공합니다.

필요하시면, 당신의 예산·모델 후보·데이터 상황을 넣어 위 레시피를 맞춤형 실험 플랜 표로 바로 인스턴스팅해 드릴게요.

 

좋아요. 요청하신 대로 관련 연구 맥락을 체계적으로 정리하고, 본 논문과의 차이를 함께 표로 정리해 독자적 기여가 선명하게 드러나도록 구성했습니다. (모든 사실은 업로드하신 논문 본문을 근거로 인용합니다.)

맥락 한 줄 요약

이 논문은 사전학습된 decoder-only LLM을 **대조학습(contrastive)**으로 임베딩 모델로 재활용할 때, 주어진 연산 예산(FLOP) 안에서 방법(Full/LoRA/Block/Bias)–모델 크기–데이터량compute-optimal 레시피를 제시합니다. 핵심 결론은 저예산에선 Full, 고예산에선 LoRA가 최적이며(경계 ≈ 9.06×10169.06\times10^{16} FLOP), LoRA rank는 32 또는 128이 안전한 기본값이라는 것입니다.

관련 연구 vs 본 논문 (차이점 중심)

범주/대표 핵심 아이디어(요지) 본 논문과의 차이 이 논문이 채운 공백(기여)
Encoder-only 임베딩: BERT, SimCSE BERT 계열 인코더와 대조학습 기반 임베딩이 표준으로 자리잡음. Decoder-only LLM을 임베딩으로 재활용하는 파이프라인 자체를 연구 대상으로 삼음. Decoder-only 전이 학습 시 **연산 예산별 최적 조합(방법·크기·데이터)**을 알고리즘으로 제시.
Decoder-only 임베딩 사례: GPT 초기화, SFR-Embedding-Mistral GPT 초기화로 임베더를 성공적으로 학습(Neelakantan 등). 최신 공개 SOTA도 Mistral 7B를 대조학습으로 미세조정. 개별 사례 성과 보고와 달리, IsoFLOP 스윕 → 스케일링 법칙 적합 → 최적 레시피체계적으로 제공. Compute-optimal frontier 개념 도입, **Full↔LoRA 경계(9.06e16 FLOP)**를 정량 규명.
PEFT(매개변수 효율) 기법: Adapters, Prefix/Prompt, LoRA, Bias-only 등 소비자급 HW에서의 미세조정 비용을 낮추는 다양한 기법 제안. Bias-only/특화 PEFT도 보고됨. 체계적 비교·최적화 연구는 부족. Full/LoRA/Block/Bias동일 FLOP에서 정량 비교하고, LoRA rank의 **안전 구간(32/128)**을 도출. 예산대별 기법 선택 규칙LoRA 하이퍼파라미터 가이드(극단 rank 8/2048 비효율) 제공.
스케일링·컴퓨트 최적화(Hoffmann 등) 사전학습 맥락에서 파라미터 수–데이터량–손실 관계의 멱법칙 제시. 본 논문은 대조학습 미세조정 맥락에 맞게 **학습가능 비율 SS**와 log⁡D\log D 항을 포함하는 확장식을 제안·적합. 미세조정 전용 스케일링 법칙과 이를 이용한 예산→최적 레시피 절차(Algorithm 1)를 제시.
동시대 관련: Fang et al. 2024 인코더 기반 검색 모델의 스케일링 법칙 탐구(동시 연구). Decoder-only 모델의 대조학습 미세조정에 초점, 예산 제약하 최적 전략 선택까지 포함(LoRA·부분동결 등). 모델군·기법 선택까지 확장된 최적화 문제를 풀어, 방법–크기–데이터–하이퍼 전반의 실전 레시피 제공.
표현 추출 방식 LLM의 마지막 레이어 평균을 임베딩으로 사용(디폴트). Mean pooling vs LastMTEB 전체로 비교 → Mean가 우월(0.47 vs 0.36). 읽기(head) 선택의 경험적 가이드 제공(Mean 권장).
지표 연계 다운스트림은 보통 MTEB로 평가. 훈련 손실 ↔ MTEB 성능의 **강한 음의 상관(ρ≈−0.892)**로, 손실 기반 설계의 타당성을 입증. 손실 최소화 기준으로 레시피를 세워도 실제 성능이 동반 상승함을 보임.

이 논문의 확실한 기여 (핵심 6가지)

  1. Compute-optimal frontier 및 레시피(Algorithm 1): 연산 예산에 따라 기법(Full/LoRA)→모델 크기→데이터량→LoRA rank를 도출하는 절차적 가이드를 제시. 분기점은 약 9.06×10169.06\times10^{16} FLOP.
  2. PEFT 선택의 정량 규칙: Block freezing은 어떤 예산에서도 최적은 아니나, 근접 성능+낮은 메모리로 실무 대안이 될 수 있음을 명시. Bias-only는 일관되게 열세.
  3. LoRA 하이퍼 가이드: rank 32/128이 광범위 설정에서 안전한 기본값(극단 rank 8/2048은 비효율).
  4. 미세조정 스케일링 법칙 확장: 기존 L(N,D)L(N,D)에 **학습가능 비율 SS**와 **log⁡D\log D**를 추가한 L(S,N,D)L(S,N,D)를 제안·적합, 데이터에 더 잘 맞음을 확인.
  5. 표현 추출의 경험적 권고: Mean poolingLast보다 유의하게 우수하다는 전면적 비교 제공.
  6. 손실–다운스트림 정합성 검증: 손실과 MTEB 성능의 ρ≈−0.892를 보고하여, 손실 최소화 기반 설계실전 타당성을 뒷받침.

추가로 눈여겨볼 차별점(실무 적용에 직결)

  • 데이터 제약 시 권고: 동일 토큰 수 조건에서는 가장 큰 모델을 선택하고 Full 또는 높은 LoRA rank가 유리.
  • 일반화 점검: Pythia로 적합한 공식을 Gemma 2B로 검증 → 단일 크기 한정이지만 손실 예측이 근사.

요약 결론

기존 연구가 (i) 인코더 중심 임베딩, (ii) decoder-only 임베딩 사례 보고, (iii) 개별 PEFT 제안, (iv) 사전학습 스케일링에 머물렀다면, 이 논문은 decoder-only 임베딩의 미세조정 전체 설계공간을 예산 제약하에서 통합적으로 최적화합니다. 그 결과, 예산 분기 규칙(Full↔LoRA), LoRA rank의 실전 기본값, 읽기/지표 설계의 근거까지 포함한 운영 가능한 레시피를 제공합니다.

필요하시면, 당신의 예산·모델 후보·데이터 상황을 넣어 위 레시피를 맞춤형 실험 플랜 표로 바로 인스턴스팅해 드릴게요.

 

방법론 (Method) — “LM → 임베딩 모델”로의 재활용을 위한 Compute-Optimal Recipe

1) 문제 정의와 전체 프레임

  • 목표: 주어진 계산 예산(FLOPs) 하에서, 여러 크기의 사전학습 디코더 전용 LM(Pythia 계열) 중 하나를 **대조학습(contrastive)**으로 파인튜닝하여 최소 대조 손실을 달성하는 조합(모델 크기 N, 데이터 양 D, 파인튜닝 방식)을 찾는다. 이를 저자들은 compute-optimal 모델이라 부른다【】.
  • 접근: Hoffmann et al.의 방식을 따라 예산별 IsoFLOP 스윕을 수행하고(같은 FLOP 선 상에서 하이퍼파라미터/모델을 비교), 각 예산에서 최적 점을 모아 스케일링 법칙을 적합·외삽한다【】.

2) 표현 추출(인코딩)과 학습목표

(a) 표현 추출

  • 사전학습 LM의 마지막 레이어 히든 상태평균 풀링(mean pooling) 해 문장 임베딩을 만든다: emb(S)=1n∑ihi\text{emb}(S)=\frac{1}{n}\sum_i h_i【】.
  • 평균 풀링 vs. 마지막 토큰: 평균 풀링이 MTEB 서브셋 기준으로 더 높게 나와, 기본 값으로 채택됨(Avg 0.47 vs 0.36)【】.

(b) 대조학습(InfoNCE 변형)

  • 배치 nn개의 양의 쌍 (xi,yi)(x_i,y_i)만을 positive로 두고, 교차 조합 (xi,yj,i≠j)(x_i,y_j, i\neq j)는 negative로 둔다.
  • 로짓 계산: logits[i,j]=cos_sim(emb(xi),emb(yj))⋅eτ\text{logits}[i,j]= \text{cos\_sim}(\text{emb}(x_i),\text{emb}(y_j))\cdot e^{\tau}
    이후 행/열 방향 cross-entropy를 평균해 loss를 계산한다【】.
  • 온도(temperature) τ\tau: 부분튜닝 실험 그리드에서 τ=1/40=0.025\tau=1/40=0.025가 가장 견고(가중감쇠 0.1)【】.

🔎 작동 예시(직관):
배치에 “query: What is diffusion?”, “value: A process where particles spread...” 같은 쌍이 4개 있다고 하자. 각 문장쌍을 통과시켜 평균풀링 임베딩을 얻고, 코사인 유사도 행렬을 만든 후, 위 공식을 적용해 같은 인덱스(i=i)의 로짓이 가장 크도록 파라미터가 업데이트된다【】.


3) 데이터·훈련 설정(재현 가능한 레시피)

  • 데이터: BAAI BGE(영문) 2억 쌍 (Wikipedia, StackExchange 등). 데이터가 매우 크므로 1 epoch 미만만 돌려서 반복학습의 체감 구간을 피한다【】.
  • 배치·컨텍스트: 기본 batch 1024, context 75, AdamW + 코사인 스케줄, warm-up 10%【】【】.
  • 하드 네거티브: 데이터셋 의존성과 일반화 가능성 문제 때문에 의도적으로 사용하지 않음(스케일링 법칙을 데이터 불가지론적으로 만들기 위함)【】.

4) 파인튜닝 방식과 계산비용 모델

(a) 네 가지 방식

  • Full fine-tuning, LoRA, Block freezing(블록 동결), Bias-only(바이어스만 학습)로 비교한다【】【】.

(b) FLOPs 계산식(핵심)

  • 토큰당 순전파/역전파/업데이트에 쓰이는 파라미터 수 NF,NB,NUN_F,N_B,N_U와 총 토큰 수 DD총 FLOPs
    C=2NFD+2NBD+2NUDC=2N_FD+2N_BD+2N_UD.
    Full FTNF=NB=NUN_F=N_B=N_U라서 C=6NFDC=6N_FD로 단순화된다【】.

5) Compute-Optimal Recipe (의사코드와 실전 가이드)

  • 경계값: 예산 B≤9.06×1016B \le 9.06\times10^{16} FLOP이면 Full FT, 그 이상이면 LoRA가 최적【】.
  • LoRA 랭크: 32 또는 128 권장(8이나 2048처럼 극단은 손실이 악화, 특히 저예산에서 2048의 악영향 큼)【】.
  • 모델 크기 선택: 예산이 주어지면 Figure 6 곡선에서 최적 파라미터 수 N을 읽고(Full/LoRA 각각), 그에 맞는 데이터 양 D를 계산해 사용한다【】.

💡 예시(예산 기반 결정):
예산이 1.2×10171.2\times10^{17} FLOP라면 경계 9.06×10169.06\times10^{16}을 넘으므로 LoRA를 선택한다. Figure 6(b)에서 해당 FLOP의 최적 N을 고르고, Figure 5로 가 랭크 32 또는 128 중 적합한 값을 택한다【】【】.
예산이 6×10166\times10^{16}이라면 Full FT가 유리하다【】.


6) 스케일링 법칙(이 논문의 이론적 핵심)

  • 기존 Hoffmann 식 L(N,D)=C+ANα+BDβL(N,D)=C+\frac{A}{N^{\alpha}}+\frac{B}{D^{\beta}}을 출발점으로 하되【】,
    학습 가능한 파라미터 비율 SS(예: LoRA/동결/바이어스 튜닝)을 명시적으로 반영한 개선식을 제안:
    L(S,N,D)=C+adlog⁡D+bdNα+as(1−S)bs+csDβL(S,N,D)=C+\frac{a_d\log D+b_d}{N^\alpha}+\frac{a_s(1-S)^{b_s}+c_s}{D^\beta}.
    이 식이 각 방법(Full/LoRA/동결/바이어스)의 손실을 더 선형적으로 잘 예측하며, 대형 모델로의 외삽에도 유리하다고 보고한다【】【】.

7) 추가 실증 결과(타당성 점검)

  • 손실 ↔ 다운스트림 성능 상관: 최종 대조손실과 MTEB 서브셋 성능 사이 유의한 상관이 관찰되어, 손실 최소화 기준으로의 설계가 타당함을 뒷받침한다【】.
  • 하이퍼파라미터 변화 강건성: batch 1024/len 75에서 적합한 스케일링 법칙이 batch 2048/len 512 환경에도 잘 맞는다(외삽 적합)【】.
  • 데이터 제약 시 권고: 동일 토큰 수(데이터 한정)라면 가장 큰 모델 + Full FT 또는 랭크 큰 LoRA가 유리【】.

8) 한계와 주의점

  1. 데이터 편향: 실험은 BGE(영문) 단일 코퍼스 기반. 다른 도메인/다국어/하드 네거티브 채용 시 결론이 달라질 수 있다. 저자들도 하드 네거티브를 의도적으로 배제하여(데이터 종속성을 줄이려) 스케일링 법칙을 일반화했음을 밝힌다【】.
  2. 모델 계열: 실험군은 주로 디코더 전용 LM(Pythia). 인코더형/양방향 모델로의 완전한 일반화는 추가 검증 필요【】.
  3. 스케일 외삽의 가설: 제안 식이 더 큰 규모에서도 통할 것이라 가정(conjecture)하나, 실제 초대형 구간에서는 추가 검증이 필요함【】.
  4. 방법 선택의 경계: 경계값 9.06×10169.06\times10^{16} FLOP은 본 실험 조건에서의 경험적 결과. 다른 데이터·아키텍처에서는 경계가 이동할 수 있음【】.

9) 이 논문의 핵심 기여

  • Compute-optimal 의사결정 규칙 제시: 예산 경계(9.06×10169.06\times10^{16} FLOP) 기준 Full FT ↔ LoRA 전환, LoRA 랭크(32/128) 권고 등 실무형 레시피 제공【】【】.
  • **학습가능 비율 SS**를 도입한 새 스케일링 법칙으로, 방법 간(Full/LoRA/동결/바이어스) 차이를 하나의 식으로 설명·예측【】.
  • 평균 풀링의 일관된 우수성(Last 대비)과 온도 τ=1/40\tau=1/40 선택의 실증 근거를 제시【】【】.
  • 손실–성능 상관을 통해 손실 기반 최적화의 실질적 타당성을 확인【】.

10) 빠른 적용 체크리스트 (연구자용)

  • 데이터: 대규모 쌍(가능하면 수억) + 하드 네거티브는 옵션. 일반화 분석이 목적이면 우선 배제【】.
  • 인코딩: 평균 풀링 기본값【】.
  • 온도: τ=1/40\tau=1/40 부근에서 시작【】.
  • 예산 결정:
    • B≤9.06×1016B \le 9.06\times10^{16}: Full FT.
    • B>9.06×1016B > 9.06\times10^{16}: LoRA(rank 32/128)【】【】.
  • 스케일링: 필요시 제안식 L(S,N,D)L(S,N,D)미관측 예산에서 성능/손실을 예측·설계【】.

부록: 계산 흐름 step-by-step(요약)

  1. 예산 B 설정 → IsoFLOP 곡선 상에서 후보 N, D 탐색【】
  2. 방식 선택: BB가 경계보다 작으면 Full, 크면 LoRA(랭크 32/128)【】【】
  3. 임베딩: 마지막 레이어 평균 풀링으로 문장 벡터 생성【】
  4. 손실: in-batch negatives, cos_sim\text{cos\_sim} + 온도, 양방향 CE 평균【】
  5. 훈련 하이퍼파라미터: batch 1024 / len 75 / AdamW / warm-up 10% / τ=1/40\tau=1/40 후보【】【】
  6. 평가와 선택: 손실 및 MTEB 서브셋으로 검증(손실–성능 상관 활용)【】.

필요하면, 위 레시피를 바탕으로 당신의 예산/데이터 제약에 맞춘 구체 설계를 바로 계산해 줄게요.

 

다음은 업로드하신 논문(“Repurposing Language Models into Embedding Models: Finding the Compute-Optimal Recipe”)을 기반으로, 결과 → 결론 → 기여 → 한계 → 타당성 순서로 핵심만 깔끔히 정리한 내용입니다.

결과

  • 계산비용(Compute)별 최적 방법 전환점: 로그–로그 선형 적합으로 얻은 스케일링 법칙에 따르면, 9.06×10¹⁶ FLOP 미만에서는 **풀 파인튜닝(full fine-tuning)**이, 그 이상에서는 LoRA가 더 낮은 손실을 달성합니다. 이 곡선을 저자들은 “compute-optimal frontier”로 명명합니다.
  • LoRA 랭크 기본값: 모델 크기와 예산 전반에서 LoRA 랭크의 민감도가 낮게 나타났으며, **rank 32 또는 128(간헐적으로 512)**이 일관되게 최적이었습니다. 너무 낮은(8) 또는 과도하게 큰(2048) 랭크는 비효율적(저예산에선 악영향)입니다.
  • 블록 프리징(block freezing): 어떤 예산에서도 최적(method-optimal)은 아니지만, 손실은 최적에 근접하고 메모리 요구가 낮아 대규모 예산에서 실용적 대안이 될 수 있습니다.
  • 바이어스 전용 튜닝(bias-only): 모든 계산예산에서 다른 방법들보다 일관되게 열세입니다.
  • 다운스트림과의 정합: 훈련 손실과 MTEB 서브셋 성능 사이의 상관이 유의하여, 손실 기반 프런티어가 실제 임베딩 성능 경향을 반영함을 확인했습니다.
  • 리드아웃(풀링) 선택: **평균 풀링(mean pooling)**이 last-token 풀링보다 MTEB 평균 점수에서 우수(0.47 vs 0.36)했습니다.
  • 빠른 참조용 표 제공: 예산별 최적 모델 크기(방법별)와 LoRA 설정을 룩업 테이블/IsoFLOP 도표로 제시해 실무 적용을 돕습니다.

결론

  • 주어진 계산 예산에서의 최적 임베딩 학습 레시피를 스케일링 법칙으로 도출하고, 간단한 절차(Algorithm 1)로 예산→모델 크기·데이터량·방법을 선택하도록 했습니다.
  • 이 결과는 자원 제약 환경에서 효율적인 임베딩 모델 재활용을 가능하게 합니다.

기여

  1. Compute-optimal frontier 제시: 방법(풀/LoRA/프리징/바이어스) 간 최적 손실을 예산의 함수로 통합하여, 예산 구간별 최적 방법과 전환점을 정량화.
  2. LoRA 실무 가이드: rank 32/128의 안전한 기본값과 극단 랭크의 한계를 체계적으로 검증.
  3. 블록 프리징의 위치 규명: 최적은 아니나 근접 성능+낮은 메모리로 실용적 트레이드오프임을 분석.
  4. 리드아웃 권고: 평균 풀링이 last-token 대비 유의미한 성능 이점을 가짐을 보고.
  5. 적용성 높은 시각화/룩업 테이블: 예산→최적 크기/설정 매핑(다운스트림 포함)으로 즉시 활용 가능한 의사결정 도구 제공.

한계

  • 모델군/사이즈 범위: 주 실험은 Pythia 패밀리(여러 크기) 중심이며, Gemma 2B단일 크기 수준의 일반화만 확인했습니다. 따라서 **다른 사전학습 레짐(오버트레이닝 정도 등)**에선 최적점이 달라질 수 있습니다.
  • 랜덤 시드: 각 실험 1회 실행으로 보고되어, 분산이 더 낮은 추정(다중 시드 평균)이 필요합니다.
  • 리드아웃 다양성 미검증: 평균 풀링만 본격 사용. 맥스 풀링, EOS 히든 등을 쓰면 프런티어나 스케일링이 달라질 여지.
  • 추론비용 미고려: 본 연구는 훈련 비용만 고려—실사용에서 추론비용까지 합치면 선택이 달라질 수 있음.
  • 하드 네거티브 미사용: 데이터 비의존적 스케일링을 위해 in-batch negatives만 사용—특정 태스크에 최적화된 하드 네거티브가 포함되면 결론이 달라질 수 있습니다.

타당성(검증 포인트)

  • 스케일링 적합의 정량 근거: 각 방법별 로그–로그 선형 적합으로 프런티어를 구성하고, **예산 임계점(9.06×10¹⁶ FLOP)**과 방법 전환을 식으로 제시합니다.
  • 다운스트림 일관성: 훈련 손실 ↔ MTEB 성능유의 상관을 전체 체크포인트에서 확인—손실 축의 프런티어가 실제 임베딩 성능 경향을 대변함.
  • 모델군 일반화 단서: Gemma 2B에 대해 예측식이 가깝게 맞음을 보이며, 타 패밀리로의 초기 일반화 가능성을 시사.
  • 실무적 일관성: LoRA 랭크가 크기/예산 전반에 둔감하여 **간단한 기본값(32/128)**이 실용적임을 다수 설정에서 재확인.

한눈에 보는 실무 체크리스트

  • 예산이 < 9.06×10¹⁶ FLOPFull FT 우선. ≥ 9.06×10¹⁶LoRA(rank 32/128) 권장.
  • 메모리/엔지니어링 제약이 크면 Block Freezing도 근접 성능+낮은 메모리로 고려.
  • 임베딩 추출은 Mean Pooling 기본.

필요하시면, 위 프런티어/룩업 테이블을 바탕으로 당신의 목표 FLOP 예산에 맞춘 구체적 모델 크기·데이터 토큰 수·튜닝 방법을 바로 산출해 드릴게요.

 

다음은 업로드한 논문을 근거로 FLOPs가 무엇이고(정의), 어떻게 계산하며(공식/예시), 어디에 쓰는지(활용)까지 연구에 바로 쓸 수 있게 정리한 내용입니다.

1) FLOPs가 무엇인가?

  • 이 논문에서의 계산 비용(computational cost) CFLOP(s), 즉 학습 중 수행되는 부동소수점 연산 횟수로 측정합니다. 저자들은 토큰 1개를 처리할 때 순전파에 쓰이는 파라미터 수 NFN_F, 역전파에 쓰이는 파라미터 수 NBN_B, 업데이트로 실제로 갱신되는 파라미터 수 NUN_U(모두 토큰 임베딩을 제외한 파라미터 기준)와 **총 토큰 수 DD**를 정의하고, 계산 비용을 다음과 같이 둡니다:C  =  2NFD  +  2NBD  +  2NUD.C \;=\; 2N_FD \;+\; 2N_BD \;+\; 2N_UD.(Full FT의 경우 NF=NB=NUN_F=N_B=N_U라서 C=6NFDC=6N_FD)【】. 이 식은 Kaplan 등(2020)의 사전학습 비용식과 동일합니다【】.

2) 어떻게 계산하나? (공식 → 변형 → 예시)

  • 기본 공식(재기재): C=2NFD+2NBD+2NUDC = 2N_FD + 2N_BD + 2N_UD【】.
  • Full fine-tuning: 모든 파라미터를 순·역전파하고 업데이트하므로 NF=NB=NUN_F=N_B=N_UC=6NFDC=6N_FD【】.
  • Block freezing: 앞단 블록을 동결하여 역전파·업데이트 대상을 줄이면 NB=NU<NFN_B=N_U<N_F가 되어C  =  2NFD  +  4NBDC \;=\; 2N_FD \;+\; 4N_BD로 감소합니다【】.
  • LoRA/PEFT: 기본 가중치는 고정하고 **적은 수의 LoRA 파라미터(A,B)**만 학습하므로 NUN_U와(대개) NBN_B크게 줄어 위의 일반식으로 비용이 산정됩니다(LoRA의 원리 설명은 본문 3.4절)【】.

🔢 간단 예시(Full FT)
예산 B=9.6×1016B=9.6\times10^{16} FLOP, 모델의 **forward에 참여하는 파라미터(임베딩 제외)**가 NF=1.6×108N_F=1.6\times10^8이라면

D  =  B6NF  =  9.6×10166×1.6×108  =  1.0×108 tokens.D \;=\; \frac{B}{6N_F} \;=\; \frac{9.6\times10^{16}}{6\times1.6\times10^8} \;=\; 1.0\times10^8 \text{ tokens}.

즉 이 조건에선 약 1억 토큰을 처리하는 게 같은 예산 안에서의 Full FT 용량입니다(동일 예산에서 LoRA/Freezing은 NB,NUN_B, N_U가 줄어 더 많은 DD를 소화 가능).

3) 어디에 활용하나? (이 논문 맥락)

  • IsoFLOP 프로파일: 여러 방법(Full/Freezing/Bias/LoRA)에 대해 FLOP 예산을 동일하게 고정해 놓고, 모델 크기·데이터량 등을 바꿔 최소 손실점을 그립니다(로그–로그 축)【】.
  • Compute-optimal frontier: 예산 축에 대해 방법별 최저 손실 곡선을 **로그–로그 선형(멱법칙)**으로 적합하고, 각 예산에서 가장 낮은 손실을 주는 방법의 외곽선을 프런티어라고 부릅니다【】. 이 선으로부터
    • 임계점 ≈9.06×1016\approx 9.06\times10^{16} FLOP에서 Full→LoRA가 최적 방법으로 전환됨을 제시합니다【】.
  • 레시피(Algorithm 1): 입력이 **compute budget CC**일 때, 방법(Full/LoRA)최적 모델 크기 NN필요 데이터량 DD→(LoRA면 rank RR)을 **도표(Fig. 5/6)**로 룩업해 결정하도록 제안합니다【】.
  • 예산 격자: 논문은 1.5e15 ~ 1.5e18 FLOP의 여러 예산 지점에서 실험·적합을 수행합니다【】.

4) 실무용 한 장 요약 (FLOPs 활용 규칙)

  • 비용 산정:
    • Full: C=6NFDC=6N_FD【】
    • Freezing: C=2NFD+4NBDC=2N_FD+4N_BD【】
    • LoRA/PEFT: 일반식 C=2NFD+2NBD+2NUDC=2N_FD+2N_BD+2N_UD에서 NB,NUN_B,N_U가 크게 작음【】【】
  • 설계 절차: 예산 CC를 정한 뒤 프런티어에 따라 C ⁣≤ ⁣9.06×1016C\!\le\!9.06\times10^{16}⇒\RightarrowFull, 그 초과 ⇒\RightarrowLoRA → Fig. 6에서 최적 NN → 식으로 필요 DD 산출(LoRA면 Fig. 5로 rank 선택)【】【】【】.

이렇게 정리하면, FLOPs는 단순 지표가 아니라 설계 변수입니다. 논문은 FLOPs로 예산을 고정해 IsoFLOP 비교를 하고, 그 결과로 compute-optimal frontier선택 레시피를 만들어 방법·모델 크기·데이터량·LoRA rank절차적으로 결정하게 합니다【】.

 

좋은 질문이에요. 결론부터 정리하면:

  • **Full FT(풀 파인튜닝)**에선 **NF=NB=NUN_F=N_B=N_U**가 맞습니다. 다만 논문 정의상 “토큰 임베딩을 제외한” 모델 파라미터 수를 쓰므로, 말하는 “모델 사이즈” = 전 파라미터 수와는 거의 같지만 정확히 동일하진 않을 수 있음(임베딩 테이블 등 제외).
  • LoRA에선 NFN_F(순전파에 쓰이는 파라미터 수)는 **거의 “모델 크기(임베딩 제외)”**에 해당하고, NBN_B(역전파로 그래디언트가 흐르는 파라미터 수)와 NUN_U(업데이트되는 파라미터 수)는 **LoRA 어댑터(그리고 unfrozen으로 둔 추가 항목이 있으면 그 포함)**의 학습 파라미터 수입니다.
    ⇒ 즉 LoRA에서 NF≈N_F \approx 모델 크기, NB=NU≈N_B=N_U\approx 어댑터(학습 파라미터) 크기입니다. **NF=NBN_F=N_B**는 아닙니다.

아래 표로 깔끔히 정리할게요.

튜닝 방식 NFN_F (Forward 참여) NBN_B (Backward로 그래디언트 받음) NUN_U (업데이트됨) 비고
Full FT 모델 파라미터(임베딩 제외) 전체 동일 동일 그래서 C=2NFD+2NBD+2NUD=6NFDC=2N_FD+2N_BD+2N_UD=6N_FD
LoRA 기본 모델 파라미터(임베딩 제외) + 소량의 LoRA 연산 오버헤드 **LoRA 어댑터(학습 항목)**만 **LoRA 어댑터(학습 항목)**만 보통 NF≫NB=NUN_F \gg N_B=N_U
Block Freezing 모델 전부(동결 블록도 forward엔 참여) unfrozen 블록만 unfrozen 블록만 보통 C=2NFD+4NBDC=2N_FD+4N_{B}D 꼴(동결로 NB,NUN_B,N_U↓)
Bias-only 모델 전부 바이어스만 바이어스만 NB,NUN_B,N_U가 극소

여기서 논문이 쓰는 학습 비용(FLOPs) 식은

C  =  2NFD  +  2NBD  +  2NUD,C \;=\; 2N_FD \;+\; 2N_BD \;+\; 2N_UD,

이고, Full FT이면 NF=NB=NUN_F=N_B=N_U라서 C=6NFDC=6N_FD가 됩니다. LoRA는 보통 NFN_F는 그대로 크고(≈\approx 모델 크기), **NB=NUN_B=N_U**는 어댑터만 학습하니 훨씬 작아져 토큰당 비용이 크게 줄어듭니다.

감 잡는 숫자 예시

  • (가정) 임베딩 제외 모델 파라미터 =1.3=1.3B, LoRA 어댑터 학습 파라미터 =20=20M.
  • Full FT 토큰당 FLOPs: 6×1.3B=7.8B6\times1.3\text{B} = 7.8\text{B}
  • LoRA 토큰당 FLOPs(근사): 2×1.3B+2×20M+2×20M≈2.68B2\times1.3\text{B} + 2\times20\text{M} + 2\times20\text{M} \approx 2.68\text{B}
    ⇒ 같은 예산에서 LoRA는 ≈ 7.8/2.68 ≈ 2.9배 더 많은 토큰을 소화. 이게 논문에서 고예산 구간에서 LoRA가 유리해지는 핵심 직관입니다.

정리(오해 포인트 교정)

  • “Full PT=모델 사이즈” 표현은 거의 맞지만, 논문에선 임베딩을 FLOPs 집계에서 제외하므로 **정밀하게는 ‘임베딩 제외 모델 파라미터’**라고 이해하세요.
  • **LoRA에서 NF=NBN_F=N_B**는 아닙니다. NFN_Fforward에 쓰이는 전체(대부분 기본 모델), NB=NUN_B=N_U는 **학습되는 어댑터(+추가로 풀어둔 항목이 있으면 그 포함)**입니다.

필요하면, 당신이 쓰는 모델(레이어/히든 차원/적용 위치) 기준으로 LoRA 어댑터 파라미터 수 ∑ℓr(din,ℓ+dout,ℓ)\sum_{\ell} r(d_{\text{in},\ell}+d_{\text{out},\ell})를 계산해 **정확한 NB=NUN_B=N_U**와 예산 대비 처리 토큰 수까지 바로 산출해 드릴게요.

 

좋은 포인트예요. 혼동이 생기는 지점은 **“그래디언트가 흐른다(activations를 따라 전파)”**와 **“파라미터가 그래디언트를 ‘받아’ 계산·저장된다(∂L/∂θ를 구해 업데이트 대상이 된다)”**를 같은 뜻으로 쓰기 때문이에요. 둘은 다릅니다.

핵심만 먼저

  • LoRA 학습에서도 손실 신호(δ)는 모든 계층을 통과해서 전파됩니다(= 활성값에 대한 그래디언트는 전 레이어를 지나감).
  • 하지만 **가중치에 대한 그래디언트(∂L/∂W)**는 **학습 대상(LoRA 어댑터 A,B 등)**에게만 계산·저장됩니다. 동결된 기본 가중치 W에 대해서는 ∂L/∂W를 계산하지 않습니다.

이 차이를 논문에서 쓰는 용어로 매핑하면:

  • NFN_F: 순전파에 “참여”하는 파라미터 수 → LoRA에서도 기본 W 전체(+ 작은 LoRA 연산)가 포함.
  • NBN_B: 역전파에서 “가중치 그래디언트를 받는”(= ∂L/∂θ를 계산하는) 파라미터 수 → **LoRA 어댑터(학습 파라미터)**만.
  • NUN_U: 업데이트되는 파라미터 수 → 역시 LoRA 어댑터만.

즉, “Backward로 그래디언트가 흐른다”(활성 그래디언트 전파)는 전 계층이지만, “Backward에서 파라미터가 그래디언트를 받는다”(∂L/∂θ 계산)는 학습 대상만입니다.


직관 예시: 선형층 + LoRA

선형층 하나를 생각해 봅시다.

  • 순전파:
    y=Wx+(BA)xy = W x + (B A) x (여기서 WW는 기본 가중치, A,BA,B는 LoRA 어댑터)
  • 역전파(활성 전파):
    ∂L∂x=W⊤δ+A⊤B⊤δ\frac{\partial L}{\partial x} = W^\top \delta + A^\top B^\top \delta
    → **WW**가 동결되어도, **W⊤δW^\top \delta**는 반드시 계산해야 xx 쪽으로 신호가 흘러갑니다.
    (이게 “그래디언트가 모든 계층에 ‘흐른다’”는 의미)
  • 역전파(가중치 그래디언트):
    ∂L∂A,∂L∂B\frac{\partial L}{\partial A}, \frac{\partial L}{\partial B} 계산·저장
    ∂L∂W\frac{\partial L}{\partial W} 는 계산하지 않음(동결이므로 requires_grad=False)
    → 이게 NBN_B(그래디언트 받는 파라미터 수)가 LoRA 어댑터로만 잡히는 이유.

결론적으로, 역전파에서 하는 큰 연산 두 종류를 구분하세요.

  1. 활성 그래디언트 전파용 GEMM (예: W⊤δW^\top \delta) → 동결이든 아니든 필요 (메모리/시간 듦)
  2. 가중치 그래디언트 계산용 GEMM (예: δx⊤\delta x^\top) → 학습 대상 파라미터에만 수행

LoRA는 (2)에서 기본 W에 대한 거대한 GEMM을 모두 건너뛰고, 작은 A,BA,B에 대해서만 수행하므로 학습 FLOPs와 옵티마이저 업데이트 비용이 크게 줄어듭니다. 반면 (1)은 여전히 수행되므로 완전히 1/N 수준으로 줄진 않지만, 실질적으로 **가장 비싼 ‘가중치-그래디언트 GEMM’**이 크게 줄어드는 게 포인트예요.


표로 요약

구분 무엇을 계산? Full FT LoRA
순전파 NFN_F y=Wxy = W x (+LoRA) W 전체(임베딩 제외) W 전체작은 LoRA 연산
역전파(활성 전파) ∂L/∂x=W⊤δ+⋯\partial L/\partial x = W^\top \delta + \cdots 필수 (W 사용) 필수 (W 사용)
역전파(가중치 그래디언트) NBN_B ∂L/∂W\partial L/\partial W W 전부 LoRA A,B만
업데이트 NUN_U 옵티마이저 스텝 W 전부 LoRA A,B만

숫자 감각(근사)

  • (가정) 기본 모델(임베딩 제외) 1.3B 파라미터, LoRA 어댑터 20M 파라미터.
  • Full FT: 가중치 그래디언트/업데이트가 1.3B 전체에 대해 발생.
  • LoRA: 활성 전파는 여전히 1.3B를 쓰지만, 가중치 그래디언트/업데이트는 20M에만 발생.
    학습 FLOPs에서 큰 몫을 차지하는 가중치-그래디언트/업데이트대폭 감소.

한 줄 정리

  • 그래디언트의 “전파”(활성값을 통한 신호 전달)는 전 계층에 필요.
  • 그래디언트의 “수신”(∂L/∂θ 계산·저장·업데이트)은 **학습 파라미터(LoRA)**에만 필요.
    → 그래서 논문식 FLOPs 분해에서 **LoRA의 NB,NUN_B,N_U**는 어댑터 크기로 잡히고, **NFN_F**는 여전히 기본 모델 크기가 됩니다.

원하면, 지금 쓰는 모델(예: QKV/FFN 어느 곳에 LoRA 적용?)을 알려주면 정확한 어댑터 파라미터 수대략적 FLOPs 절감률까지 바로 계산해 줄게요.

728x90