728x90
728x90
https://github.com/embeddings-benchmark/mteb?tab=readme-ov-file
GitHub - embeddings-benchmark/mteb: MTEB: Massive Text Embedding Benchmark
MTEB: Massive Text Embedding Benchmark. Contribute to embeddings-benchmark/mteb development by creating an account on GitHub.
github.com
일단 git은 여기에 있다.
mteb kor 버전이 있다. 이렇게 불러올 수 있다.
import mteb
benchmark = mteb.get_benchmark("MTEB(kor)")
>>
Benchmark(name='MTEB(kor)', tasks=MTEBTasks(KlueTC(name='KLUE-TC', languages=['kor']), MIRACLReranking(name='MIRACLReranking', languages=['kor']), MIRACLRetrieval(name='MIRACLRetrieval', languages=['kor']), KoStrategyQA(name='Ko-StrategyQA', languages=['kor']), KlueSTS(name='KLUE-STS', languages=['kor']), KorSTS(name='KorSTS', languages=['kor'])), description='Main Korean benchmarks from MTEB', reference=None, citation=None, contacts=None)
아니면 이렇게 한글이 포함된 tasks들을 가져올 수도 있다.
mteb.get_tasks(languages=["kor"])
>>
MTEBTasks(FloresBitextMining(name='FloresBitextMining', languages=['ace', 'acm', 'acq', '...']), IWSLT2017BitextMining(name='IWSLT2017BitextMining', languages=['eng', 'kor']), NTREXBitextMining(name='NTREXBitextMining', languages=['arb', 'ben', 'deu', '...']), TatoebaBitextMining(name='Tatoeba', languages=['eng', 'kor']), KlueTC(name='KLUE-TC', languages=['kor']), KorFin(name='KorFin', languages=['kor']), KorHateClassification(name='KorHateClassification', languages=['kor']), KorSarcasmClassification(name='KorSarcasmClassification', languages=['kor']), MassiveIntentClassification(name='MassiveIntentClassification', languages=['kor']), MassiveScenarioClassification(name='MassiveScenarioClassification', languages=['kor']), MultilingualSentimentClassification(name='MultilingualSentimentClassification', languages=['kor']), SIB200Classification(name='SIB200Classification', languages=['kor']), SIB200ClusteringFast(name='SIB200ClusteringS2S', languages=['kor']), AutoRAGRetrieval(name='AutoRAGRetrieval', languages=['kor']), KoStrategyQA(name='Ko-StrategyQA', languages=['kor']), BelebeleRetrieval(name='BelebeleRetrieval', languages=['eng', 'kor']), MIRACLRetrieval(name='MIRACLRetrieval', languages=['kor']), MIRACLRetrievalHardNegatives(name='MIRACLRetrievalHardNegatives', languages=['kor']), MrTidyRetrieval(name='MrTidyRetrieval', languages=['kor']), MultiLongDocRetrieval(name='MultiLongDocRetrieval', languages=['kor']), PublicHealthQARetrieval(name='PublicHealthQA', languages=['kor']), XPQARetrieval(name='XPQARetrieval', languages=['eng', 'kor']), KorHateSpeechMLClassification(name='KorHateSpeechMLClassification', languages=['kor']), KlueNLI(name='KLUE-NLI', languages=['kor']), PawsXPairClassification(name='PawsXPairClassification', languages=['kor']), MIRACLReranking(name='MIRACLReranking', languages=['kor']), KlueSTS(name='KLUE-STS', languages=['kor']), KorSTS(name='KorSTS', languages=['kor']), STS17Crosslingual(name='STS17', languages=['kor']))
기존에는 이러한 테스크를 통해 평가를 진행했다.
tasks = [
"Ko-StrategyQA",
"AutoRAGRetrieval",
"MIRACLRetrieval",
"PublicHealthQA",
"BelebeleRetrieval",
"MrTidyRetrieval",
"MultiLongDocRetrieval",
]
이 것들은 모두 IR task이고, sts, classification 등 다양한 task의 성능도 확인해보고 싶어졌다.
그래서 mteb kor를 사용해보기로 했다.
모델은 이렇게 불러온다!
sentence transformer 모델은 그냥 이렇게 불러오면 된다.
model = mteb.get_model(modelname)
Automodel 같은 경우는 wrapper를 통해 감싸주면 된다고 합니다 ㅎㅎ
evaluation = MTEB(
tasks=get_tasks(tasks=tasks, languages=["kor-Kore", "kor-Hang", "kor_Hang"])
)
다른 task들에서 이상한 evaluation 하지 않도록 ....
evaluation.run(
model,
output_folder=f"results/{model_name}",
encode_kwargs={"batch_size": batch_size},
)
이제 평가 돌리면 끝!

이렇게 결과가 남는다 ㅎㅎ
728x90
'인공지능 > 공부' 카테고리의 다른 글
| 딥러닝 응용 - 3주차 (0) | 2025.09.15 |
|---|---|
| 딥러닝 응용 - 2주차 (0) | 2025.09.08 |
| Multi-GPU 기본 개념 DDP, Data Parallel, Model Parallel (4) | 2025.07.30 |
| 인공지능 기초 학습 코드 + 개념 (4) | 2025.07.29 |
| Collator란? (4) | 2025.07.29 |