Loading the catalog…
Loading the catalog…
기본 제공되는 범용 오픈소스 임베딩 모델은 광범위한 데이터셋으로 사전 학습되어 있어, 특정 기업의 사내 문서, 고유 제품명, 특정 도메인의 오디오 데이터 등을 미세하게 구분하는 데 한계가 있습니다. 많은 개발자가 대형 언어 모델(LLM) 파인튜닝에 비해 임베딩 모델 파인튜닝을 까다롭고 어렵게 느끼지만, 적절한 프레임워크와 학습 전략을 활용하면 단 10분 이내의 짧은 학습으로도 도메인 검색 성능을 극적으로 개선할 수 있습니다. 본 글에서는 구글의 멀티모달 임베딩 모델인 EmbeddingGemma 2 를 중심으로, 대조 학습의 핵심 메커니즘부터 오디오 분류 및 유튜브 영상 검색 튜닝 실습을 통한 구체적인 검증 결과와 트레이드오프까지 상세히 다룹니다. Training Your Own Embedding Model Is Not As Hard As You Think 임베딩 모델 파인튜닝의 메커니즘과 배치 구성 원리 LLM 파인튜닝은 주어진 질문에 대해 모델이 출력해야 할 정답 텍스트를 직접 지정하는 지도 학습 방식을 취합니다. 반면, 임베딩 모델은 입력 데이터를 고정된 차원의 벡터로 변환할 뿐 텍스트를 직접 생성하지 않으므로 정답으로 제시할 절대적인 목표 벡터값이 존재하지 않습니다. 따라서 임베딩 모델 튜닝의 유일한 목표는 벡터 공간(Embedding Space) 안에서 연관된 항목끼리는 가깝게 당기고, 무관한 항목은 멀리 밀어내도록 상대적 거리를 교정하는 것입니다. 이러한 특성 때문에 학습 데이터셋은 단일 텍스트가 아닌 (질문, 정답 문단) 형태의 쌍(Pair)으로 구성됩니다. 학습 과정에서는 32개 등의 배치 단위로 데이터를 묶어 처리하는 인배치 네거티브(In-batch negatives) 방식을 활용합니다. 하나의 배치 안에서 질문 $Q_1$에 대해 자신의 짝인 문단 $P_1$만 정답(Positive)으로 처리하고, 배치 내의 나머지 문단들($P_2$ ~ $P_{32}$)은 자동으로 오답(Negative)으로 간주합니다. 이 방식을 Sentence-Transformers 라이브러리에서는 MultipleNegativesRankingLoss 라고 부르며, 개발자가 수동으로 오답 레이블을 수집하지 않아도 대량의 음성 샘플을 무료로 확보할 수 있는 이점을 제공합니다. 이 과정에서 주의해야 할 치명적인 함정이 바로 중복 함정(Duplicate Trap) 입니다. 서로 다른 고객의 질문 두 개가 동일한 도움말 문단을 정답으로 가리킬 때, 이 두 쌍이 같은 배치 안에 들어가면 모델은 두 번째 질문에 연결된 올바른 문단을 오답으로 인식하여 밀어내게 됩니다( False Negative ). 이를 방지하기 위해 단일 배치 안에 동일한 텍스트가 두 번 들어가지 않도록 강제하는 NoDuplicate 계열의 배치 샘플러(Sampler)를 반드시 적용해야 합니다. 아울러 구글이 EmbeddingGemma 2에 정의한 프롬프트 템플릿(예: task: search result | query: ... )을 학습과 실제 추론 단계에서 토큰 단위까지 정확히 동일하게 맞춰야 임베딩 공간의 왜곡을 막을 수 있습니다. 구분 LLM 파인튜닝 임베딩 모델 파인튜닝 출력 형태 텍스트 생성 고정 차원 벡터(임베딩 공간 상의 위치) 데이터 구성 (입력 프롬프트, 타깃 텍스트) (질문/쿼리, 연관 문단/데이터) 쌍 손실 함수 메커니즘 Cross-Entropy (토큰 예측) MultipleNegativesRankingLoss (대조 학습) 음성 샘플(오답) 확보 불필요 인배치 네거티브로 배치 내 타 샘플 활용 LoRA를 활용한 파인튜닝 구조와 오디오 데이터(ESC-50) 실험 결과 임베딩 모델의 전체 가중치를 재학습하는 대신 LoRA(Low-Rank Adaptation) 방식을 도입하면 자원을 크게 절약할 수 있습니다. 약 5억 8,300만 파라미터를 가진 EmbeddingGemma 2의 기존 가중치는 동결(Frozen)하고, 약 1.4%에 불과한 820만 개의 학습 가능 파라미터만 훈련합니다. 이 방식은 학습 속도를 극적으로 단축시킬 뿐만 아니라, 모델 전체가 아닌 수 메가바이트 크기의 경량 어댑터 파일만 저장하여 관리할 수 있는 이점을 제공합니다. Unsloth 라이브러리를 통해 A100 GPU 환경에서 50가지 일상 소리 데이터셋인 ESC-50 (총 2,000개 클립)을 학습시키는 실험을 진행했습니다. 소리 파일과 해당 소리의 레이블 문장(예: "the sound of a chainsaw")을 쌍으로 묶어 오디오 인코더와 백본 모델에 LoRA를 연결하고 454초(약 7.5분) 동안 훈련했습니다. 그 결과, 학습 데이터에 포함되지 않았던 미공개 평가 클립에 대한 Top-1 검색 정확도가 기존 24.5%에서 65.8%로 급상승 했습니다. 특히 양치질 소리( brushing_teeth )나 변기 물 내리는 소리( toilet_flush )처럼 기본 모델이 0%의 정확도를 기록하던 클래스들이 88~100%까지 정확하게 교정되었습니다. 그러나 이 과정에서 모델이 '소리를 듣는 일반적인 청각 능력'을 학습한 것이 아니라, 단순히 '학습 데이터셋에 제공된 레이블'만을 외웠다는 한계가 확인되었습니다. 50개 소리 중 10개를 학습에서 완전히 배제한 뒤 테스트한 결과, 학습한 40개 소리의 정확도는 27.2%에서 70.0%로 대폭 상승했으나, 숨겨진 10개 소리의 정확도는 15.0%에서 13.8%로 오히려 정체되거나 미세하게 하락했습니다. 즉, 파인튜닝된 임베딩 모델은 미학습된 도메인 데이터로 일반화(Generalization)되지 않으므로, 실제 서비스에서 검색해야 할 모든 범주의 레이블이 학습 데이터에 고르게 포함되어야 합니다. 멀티모달 백본 파인튜닝의 부작용 및 유튜브 채널 텍스트 검색 실습 EmbeddingGemma 2는 텍스트, 이미지, 비디오, 오디오가 단일 백본 네트워크를 공유하는 통합 아키텍처를 가집니다. 따라서 특정 모달리티(예: 오디오)나 특정 도메인 데이터에 맞춰 백본을 LoRA로 튜닝하면, 다른 모달리티나 범용 텍스트 검색 성능에 부정적인 영향을 미치는 트레이드오프가 발생합니다. 실제로 ESC-50 학습 후 멀티모달 검색 벤치마크를 측정한 결과, 사진 검색(Photo Search)과 음성-사진 검색(Voice-to-Photo)의 성능은 유지되었으나 범용 텍스트 벤치마크인 NanoBEIR 점수는 59.2점에서 55.6점으로 약 3.6~4점가량 하락했습니다. 또한 어댑터를 재로드하는 과정에서의 라이브러리 버그도 확인되었습니다. LoRA 어댑터를 저장하고 다시 불러올 때 기본 오디오 프로세서 설정이 꼬이면서, 5초짜리 오디오가 30ms 수준(3개 프레임)으로 잘려 인식되어 음성 검색 정확도가 95%에서 0%로 추락하는 문제가 발생했습니다. 이는 저장된 프로세서 대신 베이스 모델의 프로세서를 강제로 재할당하는 아래 코드를 추가하여 해결할 수 있습니다. 어댑터 로드 후에는 반드시 기본 파이프라인 검증을 거쳐야 합니다. # 프로세서 설정 꼬임 해결을 위한 강제 재할당 코드 tuned[0].processor = base[0].processor 마지막으로, 실제 유튜브 채널의 영상 120개 자막을 1,971개 문단으로 자른 뒤, Gemini 2.5 Flash 를 이용해 각 문단에 대응하는 시청자 질문을 생성하여 파인튜닝 데이터셋을 구성했습니다. 데이터 분할 시 동일 영상의 문단이 학습과 평가에 섞이지 않도록 비디오 단위(학습 96개, 테스트 24개)로 엄격히 분리하여 데이터 누수(Data Leakage)를 원천 차단했습니다. 154초(약 2.5분) 동안 학습을 진행한 결과, 미공개 영상에 대한 Top-1 문단 검색 정확도가 66.3%에서 75.0%로 상승 했으며, Top-10 정확도는 91.6%에서 96.3%로 개선되었습니다. 다만 이 실험에서도 범용 텍스트 검색(NanoBEIR) 점수는 58.9점에서 54.4점으로 4.5점 하락하는 동일한 성능 회귀 비용이 발생했습니다. 정리 임베딩 모델 파인튜닝은 특정 도메인에 최적화된 고성능 검색 시스템(RAG 등)을 구축하는 가장 빠르고 효과적인 방법입니다. Unsloth와 LoRA 기술을 접목하면 10분 미만의 학습만으로도 타깃 도메인의 검색 정확도(Top-1)를 수십 퍼센트 이상 끌어올릴 수 있습니다. 다만 이러한 성능 향상 뒤에는 범용 텍스트 검색 성능이 소폭 하락하는 트레이드오프가 존재하며, 학습 데이터에 포함되지 않은 완전한 신규 범주로는 일반화 능력이 확장되지 않는 특성이 있습니다. 따라서 실무에 적용할 때는 서비스에 필요한 도메인 데이터를 균형 있게 수집하여 데이터셋을 구성하고, 중복 배치를 방지하는 배치 샘플러 설정을 반드시 적용해야 하며, 튜닝 이후 범용 검색 성능의 하락폭이 비즈니스 허용 범위 내에 있는지 교차 검증하는 과정이 필수적입니다. 다룬 영상 Training Your Own Embedding Model Is Not As Hard As You Think — Prompt Engineering · 12분
What RADAR observed and classified to build this opportunity. It is what the source published, not a verification that the offer is still active.
임베딩 모델 파인튜닝으로 도메인 검색 정확도 극대화하기. 기본 제공되는 범용 오픈소스 임베딩 모델은 광범위한 데이터셋으로 사전 학습되어 있어, 특정 기업의 사내 문서, 고유 제품명, 특정 도메인의 오디오 데이터 등을 미세하게 구분하는 데 한계가 있습니다. 많은 개발자가 대형 언어 모델(LLM) 파인튜닝에 비해 임베딩 모델 파인튜닝을 까다롭고 어렵게 느끼지만, 적절한 프레임워크와 학습 전략을 활용하면 단 10분 이내의 짧은 학습으로도 도메인 검색 성능을 극적으로 개선할 수 있습니다. 본 글에서는 구글의 멀티모달 임베딩 모델인 EmbeddingGemma 2 를 중심으로, 대조 학습의 핵심 메커니즘부터 오디오 분류 및 유튜브 영상 검색 튜닝 실습을 통한 구체적인 검증 결과와 트레이드오프까지 상세히 다룹니다.…
Open source