본문 바로가기

인공지능

오픈 소스 임베딩 모델, 무엇이 최적인가? RAG를 위한 평가 워크플로우 완전 정복

728x90
반응형

https://medium.com/timescale/finding-the-best-open-source-embedding-model-for-rag-929d1656d331

성능과 프라이버시, 둘 다 잡고 싶다면

RAG 기반 애플리케이션을 구축하고 있다면, 임베딩 모델 선택이 얼마나 중요한지 이미 알고 있을 것이다. 대부분은 OpenAI의 text-embedding-3-small이나 text-embedding-3-large 같은 고성능 모델을 떠올리겠지만, 여기에 따르는 비용과 API 종속성, 데이터 프라이버시 이슈가 걸림돌이 된다.

그렇다고 오픈 소스 임베딩 모델을 쓰자니, 어떤 모델이 좋은지, 어떻게 비교해야 하는지, 로컬에서 실행은 가능한지 혼란스럽기만 하다. 이 글에서는 로컬에서 오픈 소스 임베딩 모델을 비교 평가하는 워크플로우를 소개한다. 단순히 모델 리스트를 나열하는 것이 아니라, 실제 데이터셋을 기반으로 평가하고, 성능을 수치로 비교한다. 비용 없이, 코드 한 줄로 임베딩을 생성하고 관리할 수 있는 자동화 도구까지 함께 소개한다.

오픈 소스 모델로도 충분히 RAG를 잘 구현할 수 있다는 것을 증명하는 실전 가이드가 될 것이다.

반응형

오픈 소스 임베딩 모델이 필요한 이유

OpenAI의 임베딩 모델은 분명 뛰어나지만 다음과 같은 단점이 있다.

  • 비용: 호출 수에 따라 과금되기 때문에 장기적으로 운영 비용이 증가한다.
  • API 종속성: 인터넷 연결이 필요하며, 외부 서비스에 의존해야 한다.
  • 데이터 프라이버시: 기업 내부 데이터나 민감한 정보의 전송이 걱정된다.

반면, 오픈 소스 임베딩 모델은 다음과 같은 강점을 제공한다.

  • 비용 절감: 로컬에서 실행되기 때문에 API 호출 비용이 들지 않는다.
  • 완전한 제어: 모델, 데이터, 처리 방식 모두 사용자가 통제 가능하다.
  • 커스터마이징 가능: 필요에 따라 모델을 조정하거나 파인튜닝할 수 있다.

하지만 문제는 비교 평가 과정이 복잡하고 자원 소모적이라는 점이다. 이 글의 핵심은 바로 이 문제를 Ollama와 pgai Vectorizer라는 도구를 통해 해결하는 방법에 있다.


오픈 소스 임베딩 모델 평가 워크플로우

오픈 소스 임베딩 모델을 평가하기 위한 기본 단계는 다음과 같다.

  1. 평가용 텍스트 데이터셋 준비
  2. 로컬 머신에 모델 다운로드 및 설정
  3. 벡터 데이터베이스 환경 구성
  4. 각 모델로 임베딩 생성
  5. 평가 파이프라인 설계
  6. 평가 데이터 실행
  7. 결과 분석 및 비교

단순해 보이지만 실제 구현은 까다롭다. 특히 다음과 같은 어려움이 있다.

  • 모델 설치와 관리의 어려움: 모델별로 의존성과 환경 설정이 다르고, 저장 공간도 많이 필요하다.
  • 임베딩 자동화의 어려움: 여러 모델을 대상으로 안정적이고 반복 가능한 프로세스를 구성하는 일이 어렵다.
  • 평가 파이프라인의 설계 문제: 어떤 기준으로 평가할지, 평가가 공정하고 일관되게 수행되는지 보장하기 어렵다.

이 모든 문제를 Ollamapgai Vectorizer를 사용해 간단하게 해결할 수 있다.


Ollama: 설치 없이 로컬에서 모델 실행

Ollama는 오픈 소스 대형 언어 모델을 간단하게 실행할 수 있도록 지원하는 플랫폼이다. Docker 기반 실행도 가능해 별도 환경 설정 없이 바로 시작할 수 있다.

주요 장점은 다음과 같다.

  • 모델, 설정, 가중치가 하나의 패키지로 제공되어 설치가 간단하다.
  • macOS, Linux, Windows, Docker 모두 지원한다.
  • 모델을 로컬에 저장해 데이터 소유권을 완전히 유지할 수 있다.

이번 테스트에서 사용한 세 가지 모델은 다음과 같다.

  • nomic-embed-text
    OpenAI의 text-embedding-ada-002보다 짧은 텍스트와 긴 텍스트 모두에서 우수한 성능을 보인다.
  • mxbai-embed-large
    text-embedding-3-large보다 작은 크기지만 성능은 더 뛰어난 것으로 평가된다.
  • bge-m3
    다양한 임베딩 유형(밀집, 다중 요인, 희소 검색)에 모두 대응 가능한 다기능 모델.

pgai Vectorizer: SQL로 임베딩 자동화

pgai Vectorizer는 PostgreSQL 기반에서 작동하는 오픈 소스 임베딩 생성 도구다. pgvector와 pgai 확장을 활용해 SQL 명령만으로 다음과 같은 작업을 자동화한다.

  • 데이터셋 변경 시 자동으로 임베딩 생성 및 업데이트
  • 문서를 청크로 분할하고 적절히 포맷
  • 지정한 이름으로 벡터 테이블 생성
  • 데이터와 임베딩을 결합한 SQL 뷰 생성
  • 임베딩 생성 작업을 대기열로 관리

Ollama와 통합되어 있어, Ollama에서 다운로드한 모든 모델로 임베딩을 생성할 수 있다.


평가 기준: 의미와 맥락 중심

이번 테스트에서는 Paul Graham의 에세이를 평가용 데이터셋으로 사용했다. 총 6,257개의 텍스트 청크로 나누고, 각 청크에 대해 다음 두 가지 기준을 중심으로 모델을 평가했다.

  1. 의미적 이해
    • 동의어, 유사 표현, 문맥에 따른 해석 등 단순 단어 일치 이상을 평가
  2. 맥락적 검색
    • 글의 흐름과 전반적인 의미를 파악하고 적절한 응답을 찾는 능력

평가 데이터 생성 방법

평가를 위해 다음과 같은 절차로 테스트 데이터를 구성했다.

  • 텍스트 청크 선택
    총 20개의 텍스트 청크를 임베딩 테이블에서 무작위로 추출
  • 질문 생성
    각 청크에 대해 Llama3.2를 활용해 5가지 유형의 질문을 생성 (짧은 질문, 긴 질문, 직접 질문, 암시적 질문, 모호한 질문)

평가 방식

  • 코사인 유사도 기준으로 각 질문에 대해 가장 유사한 임베딩 상위 K개를 검색
  • 정답 청크가 상위 K개 안에 있으면 1점, 없으면 0점
  • 이를 기반으로 전체 정확도와 질문 유형별 정확도 계산

성능 결과

Paul Graham 에세이를 기반으로 한 테스트 결과는 다음과 같다.

전체 검색 정확도

  • bge-m3: 72% (가장 높은 정확도)
  • mxbai-embed-large: 59.25%
  • nomic-embed-text: 57.25%

특히 bge-m3는 긴 질문에서 92.5%의 정확도를 기록하며 우수한 성능을 보였다. 반면, mxbai-embed-large는 크기 대비 균형 잡힌 성능을, nomic-embed-text는 짧은 질문과 직접 질문에서 상대적으로 좋은 결과를 보였다.

질문 유형별 정확도

  • 긴 질문
    • bge-m3: 92.5%
    • mxbai-embed-large: 82.5%
  • 짧은 질문
    • nomic-embed-text: 57.5%
  • 직접 질문
    • nomic-embed-text: 63.75%

모든 모델은 모호한 질문에서 정확도가 낮았다(37.5%~51.25%).


최적의 임베딩 모델 선택 가이드

모델 선택 시 고려할 주요 요소는 다음과 같다.

  • 질문 유형
    맥락이 복잡한 질문이 많다면 bge-m3, 간결한 질문 위주라면 nomic-embed-text가 적합하다.
  • 자원 제한
    mxbai-embed-large는 상대적으로 작으면서도 성능이 뛰어나 중간급 자원 환경에 적합하다.
  • 임베딩 속도
    nomic-embed-text는 속도가 빠르지만 정확도는 다소 낮다. 반대로 bge-m3는 느리지만 높은 정확도를 제공한다.

728x90

비용 없이 RAG 성능을 끌어올리는 방법

이번 테스트는 오픈 소스 LLM만을 사용해, 별도 비용 없이 로컬 환경에서 완전한 임베딩 모델 평가를 수행할 수 있음을 보여줬다. Ollama는 모델 설치와 실행을 간소화하고, pgai Vectorizer는 임베딩 생성과 관리를 자동화한다.

이 조합을 활용하면 오픈 소스 임베딩 모델 평가의 복잡성과 리스크를 줄이면서도, 실무에 최적화된 선택을 내릴 수 있다. 비용을 줄이고 프라이버시를 보장하며, 성능까지 확보하고 싶다면 지금 바로 Ollama와 pgai Vectorizer 기반 워크플로우를 시작해보는 것을 추천한다.

https://medium.com/timescale/finding-the-best-open-source-embedding-model-for-rag-929d1656d331

 

Finding the Best Open-Source Embedding Model for RAG

Looking for the best open-source embedding model for your RAG app? We share a comparison workflow so you can stop paying the OpenAI tax.

medium.com

 

728x90
반응형