MTEB: 텍스트 임베딩 모델의 성능 평가를 위한 벤치마킹

최신 AI 리소스5개월 전 업데이트 AI 공유 서클
2.1K 00

일반 소개

MTEB(대규모 텍스트 임베딩 벤치마크)는 텍스트 임베딩 모델에 대한 종합적인 성능 평가를 제공하는 것을 목표로 임베딩 벤치마크 팀이 개발하고 GitHub에서 호스팅하는 오픈 소스 프로젝트입니다. 분류, 클러스터링, 검색 등 8가지 주요 작업 유형을 다루며 58개의 데이터셋을 통합하고 112개 언어를 지원하며 현재 가장 포괄적인 텍스트 임베딩 벤치마킹 도구 중 하나로, 33가지 유형의 모델 테스트를 통해 다양한 작업에서 모델별 성능 차이를 드러내고 개발자가 특정 애플리케이션에 적합한 임베딩 모델을 선택할 수 있도록 돕습니다. 이 프로젝트는 사용자가 자유롭게 테스트를 실행하거나 새로운 모델을 공개 리더보드에 제출할 수 있도록 오픈 소스 코드를 제공하여 NLP 연구, 모델 개발 및 산업 응용 시나리오에 널리 적용될 수 있습니다.

MTEB:评估文本嵌入模型性能的基准测试

액세스 위치: https://huggingface.co/spaces/mteb/leaderboard

MTEB:评估文本嵌入模型性能的基准测试

 

기능 목록

  • 멀티태스크 평가 지원시맨틱 텍스트 유사도(STS), 검색, 클러스터링 등 8가지 임베딩 작업이 포함되어 있어 다양한 활용 시나리오를 다룹니다.
  • 다국어 데이터 세트112개 언어를 지원하여 글로벌화된 애플리케이션 개발에 적합한 다국어 모델을 테스트할 수 있는 기능을 제공합니다.
  • 모델 성능 순위33개 모델에 대한 테스트 결과를 보여주는 공개 순위표가 내장되어 있어 쉽게 비교하고 선택할 수 있습니다.
  • 맞춤형 모델 테스트사용자가 적은 양의 코드만으로 사용자 지정 임베디드 모델을 가져와 평가를 실행할 수 있도록 허용합니다.
  • 캐시 임베딩 기능대규모 실험의 반복 테스트 효율성을 최적화하기 위해 임베디드 결과 캐싱을 지원합니다.
  • 유연한 매개변수 조정배치 크기 조정과 같은 코딩 매개변수 구성을 제공하여 테스트 유연성을 향상시킵니다.
  • 오픈 소스 지원전체 소스 코드를 공개하여 사용자가 필요에 따라 기능을 수정하거나 확장할 수 있도록 합니다.
  • 커뮤니티 확장성사용자가 새로운 작업, 데이터 세트 또는 모델을 제출하여 지속적으로 테스트를 강화할 수 있도록 지원하세요.

 

도움말 사용

설치 프로세스

MTEB는 Python 기반 도구로, 배포 및 실행을 위해 일부 프로그래밍 환경이 필요합니다. 자세한 설치 단계는 다음과 같습니다:

1. 환경 준비

  • 운영 체제Windows, MacOS 또는 Linux가 지원됩니다.
  • Python 버전를 사용하려면 파이썬 3.10 이상이 필요하며, 파이썬 3.10 이상 버전은 python --version 확인.
  • Git 도구: GitHub에서 소스 코드를 가져오는 데 사용되며, 미리 설치하는 것이 좋습니다.

2. 코드 베이스 복제

터미널을 열고 다음 명령을 실행하여 MTEB 소스 코드를 가져옵니다:

git clone https://github.com/embeddings-benchmark/mteb.git
cd mteb

그러면 프로젝트가 로컬로 다운로드되고 프로젝트 디렉토리에 들어갑니다.

3. 종속성 설치

MTEB에는 일부 Python 라이브러리 지원이 필요하며 충돌을 피하기 위해 종속성을 설치하기 전에 가상 환경을 만드는 것이 좋습니다:

python -m venv venv
source venv/bin/activate  # Linux/MacOS
venv\Scripts\activate     # Windows

그런 다음 핵심 종속 요소를 설치합니다:

pip install -r requirements.txt

리더보드 인터페이스를 실행하려면 Gradio도 설치해야 합니다:

pip install mteb[gradio]

4. 설치 확인

다음 명령을 실행하여 사용 가능한 작업을 확인하고 설치가 성공적으로 완료되었는지 확인합니다:

mteb --available_tasks

작업 목록으로 돌아가면 환경 구성이 완료됩니다.

사용법

MTEB의 핵심 기능은 텍스트 임베딩 모델을 평가하는 것이며, 주요 작동 절차는 다음과 같습니다:

기능 1: 사전 구축된 작업을 실행하여 기존 모델 평가하기

MTEB는 기존 모델(예: SentenceTransformer 모델)에 대한 직접 테스트를 지원합니다. 예를 들어, Banking77Classification 작업에서 "average_word_embeddings_komninos" 모델의 성능을 평가할 수 있습니다:

mteb -m average_word_embeddings_komninos -t Banking77Classification --output_folder results/average_word_embeddings_komninos --verbosity 3
  • -m 모델 이름을 지정합니다.
  • -t 작업 이름을 지정합니다.
  • --output_folder 결과가 저장되는 경로를 지정합니다.
  • --verbosity 3 자세한 로그를 표시합니다.

결과는 각 작업의 점수가 포함된 지정된 폴더에 저장됩니다.

기능 2: 사용자 지정 모델 테스트

자체 모델을 테스트하려면 간단한 인터페이스를 구현하면 됩니다. SentenceTransformer를 예로 들어 보겠습니다:

from mteb import MTEB
from sentence_transformers import SentenceTransformer
# 加载模型
model = SentenceTransformer("average_word_embeddings_komninos")
# 定义评估任务
evaluation = MTEB(tasks=["Banking77Classification"])
# 运行评估
evaluation.run(model, output_folder="results")

실행 후 결과는 '결과' 폴더에 저장됩니다.

기능 3: 캐시 임베딩을 통한 효율성 최적화

반복 테스트의 경우 캐싱을 활성화하여 임베드가 이중으로 계산되는 것을 방지할 수 있습니다:

from mteb.models.cache_wrapper import CachedEmbeddingWrapper
# 包装模型以启用缓存
model_with_cache = CachedEmbeddingWrapper(model, cache_path="cache_embeddings")
evaluation.run(model_with_cache)

캐시 파일은 작업 이름별로 지정된 경로에 저장됩니다.

기능 4: 순위표 보기

현재 모델 순위를 확인하려면 공식 리더보드를 방문하거나 로컬에 배포하세요:

git clone https://github.com/embeddings-benchmark/leaderboard.git
cd leaderboard
pip install -r requirements.txt
python app.py

브라우저에서 액세스 http://localhost:7860실시간 순위표를 볼 수 있습니다.

기능 5: 새 작업 추가하기

사용자는 작업 클래스에서 상속하여 MTEB를 확장할 수 있습니다(예: 순위 재지정 작업을 추가하는 방식):

from mteb.abstasks.AbsTaskReranking import AbsTaskReranking
class CustomReranking(AbsTaskReranking):
    @property
def description(self):
return {
"name": "CustomReranking",
"description": "自定义重排序任务",
"type": "Reranking",
"eval_splits": ["test"],
"eval_langs": ["en"],
"main_score": "map"
}
evaluation = MTEB(tasks=[CustomReranking()])
evaluation.run(model)

운영 기술

  • 멀티 GPU 지원검색 작업의 경우 멀티 GPU 가속을 사용할 수 있습니다:
pip install git+https://github.com/NouamaneTazi/beir@nouamane/better-multi-gpu
torchrun --nproc_per_node=2 scripts/retrieval_multigpu.py
  • 선택한 하위 집합특정 작업의 하위 집합만 평가됩니다:
evaluation.run(model, eval_subsets=["Banking77Classification"])
  • 배치 크기 조정코딩 속도 최적화:
evaluation.run(model, encode_kwargs={"batch_size": 32})

위의 단계를 통해 사용자는 MTEB를 쉽게 시작하고 모델 평가 또는 기능 확장을 완료할 수 있습니다.

© 저작권 정책
AiPPT

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...