한국어 임베딩 모델 성능 비교 테스트 결과

in #kr-dev3 months ago (edited)

한국어 corpus 데이터셋으로 테스트 했습니다.

import autorag
from autorag.evaluator import Evaluator

from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from llama_index.embeddings.openai import OpenAIEmbedding, OpenAIEmbeddingModelType

autorag.embedding_models["text-embedding-3-small"] = OpenAIEmbedding(model="text-embedding-3-small")
autorag.embedding_models["bge-m3"] = HuggingFaceEmbedding("BAAI/bge-m3")
autorag.embedding_models["ko-sroberta-multitask"] = HuggingFaceEmbedding("jhgan/ko-sroberta-multitask")
autorag.embedding_models["ko-sbert-nli"] = HuggingFaceEmbedding("jhgan/ko-sbert-nli")
autorag.embedding_models['kosimcse'] = HuggingFaceEmbedding("BM-K/KoSimCSE-roberta-multitask")
autorag.embedding_models['sroberta'] = HuggingFaceEmbedding("bespin-global/klue-sroberta-base-continue-learning-by-mnr")

evaluator = Evaluator(
    qa_data_path="./qa.parquet",
    corpus_data_path="./corpus.parquet",
    project_dir="./project_dir",
)

evaluator.start_trial("./config_korean.yaml")
module_namemodule_paramsexecution_timeretrieval_f1retrieval_recallretrieval_precisionis_best
vectordb{'top_k': 3, 'embedding_model': 'bge-m3'}0.210.350.70.23True
vectordb{'top_k': 3, 'embedding_model': 'ko-sroberta-multitask'}0.130.140.280.09False
vectordb{'top_k': 3, 'embedding_model': 'ko-sbert-nli'}0.030.080.160.05False
vectordb{'top_k': 3, 'embedding_model': 'kosimcse'}0.070.090.180.06False
vectordb{'top_k': 3, 'embedding_model': 'sroberta'}0.020.060.120.04False
vectordb{'top_k': 3, 'embedding_model': 'text-embedding-3-small'}0.390.220.440.14False
vectordb{'top_k': 3, 'embedding_model': 'solar-embedding-1-large', 'embedding_batch': 100}0.570.310.620.20False
bm25{'top_k': 3, 'bm25_tokenizer': 'ko_kiwi'}1.020.130.260.09False

평가 방법 설명

  1. execution_time (실행 시간):

    • 모델이 주어진 작업을 완료하는 데 걸리는 시간입니다. 단위는 초(Seconds)로 측정됩니다. 짧을수록 더 효율적입니다.
  2. retrieval_f1 (검색 F1 점수):

    • 검색 성능을 평가하는 지표로, 정밀도(Precision)와 재현율(Recall)의 조화 평균입니다. 값이 높을수록 검색 성능이 좋습니다.
  3. retrieval_recall (검색 재현율):

    • 검색된 문서 중 실제 관련 문서가 차지하는 비율입니다. 값이 높을수록 더 많은 관련 문서를 검색해냈음을 의미합니다.
  4. retrieval_precision (검색 정밀도):

    • 검색된 문서 중 실제 관련 문서의 비율입니다. 값이 높을수록 검색된 문서가 실제로 관련성이 높음을 의미합니다.

평가 결과: bge-m3

  1. 높은 검색 성능:

    • bge-m3 모델은 retrieval_f1 점수에서 0.35로 가장 높은 점수를 기록했습니다. 이는 정밀도와 재현율의 조화 평균이 가장 높다는 것을 의미합니다.
    • 또한, retrieval_recall 점수도 0.7로 가장 높아, 관련 문서를 많이 검색해냈음을 보여줍니다.
  2. 적절한 실행 시간:

    • bge-m3 모델의 실행 시간은 0.21초로, 다른 모델들에 비해 빠른 편입니다. 이는 실시간 검색 시스템에서 중요한 요소입니다.
  3. 균형 잡힌 성능:

    • bge-m3 모델은 검색 정밀도(retrieval_precision)에서도 0.23으로 가장 높은 점수를 기록했습니다. 이는 검색된 문서의 관련성이 높음을 의미합니다.

Posted using Obsidian Steemit plugin

Sort:  

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

Coin Marketplace

STEEM 0.19
TRX 0.16
JST 0.032
BTC 63957.85
ETH 2753.76
USDT 1.00
SBD 2.66