[RAG] 임베딩 모델(Embedding Model) 파인튜닝이 꼭 필요한 시점과 방법

RAG 시스템을 처음 만들 때는 대부분 기본 임베딩 모델을 그대로 사용합니다. 초반에는 검색이 꽤 잘 되는 것처럼 보입니다. 그런데 운영을 조금 해보면 이상한 검색 결과가 나오기 시작합니다. 저희 팀도 임베딩 모델 때문에 검색 품질 문제를 겪었던 경험이 있습니다.

기본 임베딩 모델 사용 시 발생하는 검색 품질 문제

RAG 시스템에서 가장 중요한 요소 중 하나는 임베딩입니다. 문서를 벡터로 변환하고 유사도를 기반으로 검색하기 때문입니다.

저희 서비스에서도 FAQ 챗봇을 만들면서 벡터 검색을 도입했습니다. Elasticsearch 기반 벡터 인덱스를 사용했고 기본 임베딩 모델을 그대로 사용했습니다.

초기 테스트에서는 꽤 괜찮은 결과가 나왔습니다. 문서가 약 3만 개 정도였고 검색 정확도도 나쁘지 않았습니다.

문제가 발생한 것은 실제 사용자 트래픽이 들어오기 시작하면서였습니다. 하루 약 2만 건 정도의 질문이 들어왔습니다. 그런데 검색 결과가 기대와 다른 경우가 점점 늘어나기 시작했습니다.

예를 들어 환불 정책을 묻는 질문에서 배송 정책 문서가 검색되는 경우가 있었습니다. 사용자 입장에서는 꽤 답답한 결과입니다. 체감상 그렇습니다.

 

로그 분석 결과

검색 로그를 분석해보니 흥미로운 패턴이 보였습니다.

사용자 질문 중 약 30퍼센트가 서비스 도메인 특화 용어를 포함하고 있었습니다. 예를 들어 내부 상품 코드나 특정 기능 이름 같은 것들이었습니다.

기본 임베딩 모델은 이런 도메인 용어를 제대로 이해하지 못했습니다. 그래서 유사도 계산이 정확하지 않았습니다. 생각보다 자주 발생합니다.

이 시점에서 임베딩 모델 파인튜닝을 검토하기 시작했습니다.

 

임베딩 모델 파인튜닝 필요 여부 판단 과정

임베딩 모델을 파인튜닝할지 결정하기 전에 두 가지 방법을 먼저 비교했습니다. 파인튜닝 없이 해결할 수 있는지 검토하는 것이 먼저였습니다.

방법 A 데이터 전처리 개선

가장 먼저 시도한 방법은 데이터 전처리였습니다. 문서 구조를 정리하고 메타데이터를 추가했습니다.

예를 들어 FAQ 문서에 카테고리 정보를 추가하고 검색 쿼리를 정규화했습니다. 일부 검색 품질은 개선되었습니다.

하지만 한계가 있었습니다. 도메인 용어 문제는 해결되지 않았습니다.

 

방법 B 임베딩 모델 파인튜닝

두 번째 방법은 임베딩 모델 자체를 파인튜닝하는 것이었습니다. 서비스 도메인 데이터로 학습시키는 방식입니다.

장점은 도메인 이해도가 올라간다는 점입니다. 내부 용어와 서비스 특화 질문을 더 잘 이해하게 됩니다.

단점은 준비 과정입니다. 학습 데이터셋을 만들어야 합니다. 그리고 학습 인프라도 필요합니다.

결론적으로 저희는 파인튜닝을 진행하기로 했습니다. 검색 품질이 서비스 만족도에 직접 영향을 주고 있었기 때문입니다.

 

임베딩 모델 파인튜닝 실전 구현 방법

임베딩 모델 파인튜닝에서 가장 중요한 것은 데이터셋입니다. 좋은 학습 데이터가 있어야 성능이 올라갑니다.

저희는 사용자 질문 로그를 기반으로 데이터셋을 만들었습니다. 질문과 관련 문서를 pair 형태로 구성했습니다.


{
  "query": "환불 요청은 어디서 하나요",
  "positive": "환불 신청 방법 안내 문서",
  "negative": [
    "배송 조회 방법",
    "회원 정보 수정 방법"
  ]
}

이런 데이터를 약 5만 개 정도 만들었습니다. 생각보다 시간이 많이 걸렸습니다. 운영 로그가 큰 도움이 되었습니다.

파인튜닝 이후 새로운 임베딩 모델을 Elasticsearch 벡터 인덱스에 적용했습니다.


PUT faq_index
{
  "mappings": {
    "properties": {
      "content": {
        "type": "text"
      },
      "embedding": {
        "type": "dense_vector",
        "dims": 768,
        "index": true,
        "similarity": "cosine"
      }
    }
  }
}

파인튜닝 결과

파인튜닝 이후 검색 품질이 꽤 개선되었습니다.

기존에는 상위 3개 결과에 정답 문서가 포함되는 비율이 약 62퍼센트였습니다. 파인튜닝 이후에는 약 84퍼센트 수준까지 올라갔습니다.

특히 도메인 용어가 포함된 질문에서 성능 차이가 컸습니다. 체감상 검색 결과가 훨씬 자연스러워졌습니다.

 

임베딩 모델 파인튜닝의 현실적인 결론

임베딩 모델 파인튜닝은 항상 필요한 작업은 아닙니다. 문서가 단순하고 도메인 용어가 많지 않다면 기본 모델로도 충분합니다.

하지만 서비스 도메인 특화 데이터가 많다면 파인튜닝 효과가 꽤 큽니다. 특히 FAQ, 고객 상담, 내부 문서 검색 같은 경우입니다.

다만 파인튜닝을 시작하면 관리 포인트가 늘어납니다. 데이터셋 관리와 모델 버전 관리가 필요합니다.

그래서 운영 경험상 먼저 할 일은 데이터 정리와 검색 로그 분석입니다. 그 다음에 파인튜닝을 검토하는 것이 좋습니다.

임베딩 모델은 RAG 시스템의 기반입니다. 한번 튜닝을 잘 해두면 이후 검색 품질이 안정적으로 유지됩니다.