Aprendizagem pessoal com IA
e orientação prática
Espelho de desenho CyberKnife

MTEB: Benchmarking para avaliar o desempenho dos modelos de incorporação de texto

Introdução geral

O MTEB (Massive Text Embedding Benchmark) é um projeto de código aberto desenvolvido pela equipe do embeddings-benchmark e hospedado no GitHub, com o objetivo de fornecer uma avaliação de desempenho abrangente para modelos de incorporação de texto. Ele abrange 8 tipos de tarefas principais, incluindo classificação, agrupamento, recuperação etc., integra 58 conjuntos de dados, suporta 112 idiomas e é atualmente uma das ferramentas de benchmarking de incorporação de texto mais abrangentes. O mteb revela as diferenças de desempenho de modelos diferentes em várias tarefas por meio do teste de 33 tipos de modelos e ajuda os desenvolvedores a escolher o modelo de incorporação adequado para aplicativos específicos. O projeto fornece código-fonte aberto para que os usuários possam executar livremente os testes ou enviar novos modelos para a tabela de classificação pública, que é amplamente aplicável à pesquisa de PNL, ao desenvolvimento de modelos e aos cenários de aplicação do setor.

MTEB: uma ferramenta de benchmarking de código aberto para avaliar o desempenho de modelos de incorporação de texto-1

Acessado em: https://huggingface.co/spaces/mteb/leaderboard


MTEB: uma ferramenta de benchmarking de código aberto para avaliar o desempenho de modelos de incorporação de texto-1

 

Lista de funções

  • Suporte à avaliação multitarefaContém 8 tarefas de incorporação, como similaridade de texto semântico (STS), recuperação, agrupamento etc., abrangendo uma ampla gama de cenários de aplicativos.
  • Conjuntos de dados multilínguesSuporte para 112 idiomas, o que permite testar modelos em vários idiomas, adequados para o desenvolvimento de aplicativos globalizados.
  • Classificação do desempenho do modeloTabelas de classificação públicas incorporadas que mostram os resultados dos testes de 33 modelos para facilitar a comparação e a seleção.
  • Teste de modelos personalizadosPermite que os usuários importem modelos incorporados personalizados com apenas uma pequena quantidade de código para executar a avaliação.
  • Funcionalidade de incorporação de cacheSuporte ao armazenamento em cache de resultados incorporados para otimizar a eficiência de testes repetidos em experimentos de grande escala.
  • Ajuste flexível de parâmetrosConfiguração de parâmetros de codificação, como o ajuste do tamanho do lote, para aumentar a flexibilidade dos testes.
  • Suporte a código abertoCódigo-fonte: O código-fonte completo está aberto para que os usuários modifiquem ou ampliem a funcionalidade de acordo com suas necessidades.
  • Extensibilidade da comunidadeSuporte aos usuários no envio de novas tarefas, conjuntos de dados ou modelos para enriquecer os testes de forma contínua.

 

Usando a Ajuda

Processo de instalação

O MTEB é uma ferramenta baseada em Python que requer algum ambiente de programação para ser implantado e executado. Veja a seguir as etapas detalhadas de instalação:

1. preparação ambiental

  • sistema operacionalWindows, MacOS ou Linux são compatíveis.
  • Versão Pythonrequer o Python 3.10 ou superior, que pode ser acessado por meio do comando python --versão Verificar.
  • Ferramentas GitCódigo-fonte: Usado para obter o código-fonte do GitHub, é recomendável instalá-lo com antecedência.

2. clonagem da base de código

Abra um terminal e execute o seguinte comando para obter o código-fonte do MTEB:

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

Isso fará o download do projeto localmente e entrará no diretório do projeto.

3. instalação de dependências

O MTEB requer algum suporte à biblioteca Python, e é recomendável criar um ambiente virtual antes de instalar as dependências para evitar conflitos:

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

Em seguida, instale as dependências principais:

pip install -r requirements.txt

Para executar a interface da tabela de classificação, você também precisa instalar o Gradio:

pip install mteb[gradio]

4. verificação da instalação

Execute o seguinte comando para verificar as tarefas disponíveis e garantir uma instalação bem-sucedida:

mteb --available_tasks

Se você retornar à lista de tarefas, a configuração do ambiente estará concluída.

Uso

A função principal do MTEB é avaliar os modelos de incorporação de texto, e o procedimento operacional principal é o seguinte:

Função 1: Executar tarefas pré-criadas para avaliar os modelos existentes

O MTEB suporta testes diretos de modelos existentes (por exemplo, o modelo SentenceTransformer). Por exemplo, a avaliação do desempenho do modelo "average_word_embeddings_komninos" na tarefa Banking77Classification:

mteb -m average_word_embeddings_komninos -t Banking77Classification --output_folder results/average_word_embeddings_komninos --verbosity 3
  • -m Especifica o nome do modelo.
  • -t Especifique o nome da tarefa.
  • --output_folder Especifica o caminho onde os resultados são salvos.
  • --verbosidade 3 Exibe o registro detalhado.

Os resultados são salvos em uma pasta especificada que contém as pontuações de cada tarefa.

Função 2: Testar modelos personalizados

Se você quiser testar seu próprio modelo, basta implementar uma interface simples. Veja o SentenceTransformer como exemplo:

from mteb import MTEB
from sentence_transformers import SentenceTransformer
# Carregar o modelo
model = SentenceTransformer("average_word_embeddings_komninos")
# Definir a tarefa de avaliação
evaluation = MTEB(tasks=["Banking77Classification"])
# Executar a avaliação
evaluation.run(model, output_folder="results")

Após a execução, os resultados são salvos na pasta "results" (resultados).

Recurso 3: incorporação de cache para otimizar a eficiência

Para testes repetitivos, o armazenamento em cache pode ser ativado para evitar a contagem dupla de embeddings:

from mteb.models.cache_wrapper import CachedEmbeddingWrapper
# Envolvimento de um modelo para ativar o cache
model_with_cache = CachedEmbeddingWrapper(model, cache_path="cache_embeddings")
evaluation.run(model_with_cache)

O arquivo de cache é armazenado no caminho especificado pelo nome da tarefa.

Função 4: Exibir tabela de classificação

Para ver as classificações atuais dos modelos, acesse a tabela de classificação oficial ou implemente localmente:

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

Acesso no navegador http://localhost:7860Você pode ver as tabelas de classificação em tempo real.

Função 5: Adicionar novas tarefas

Os usuários podem estender o MTEB herdando de uma classe de tarefa, por exemplo, adicionando uma tarefa de reranking:

from mteb.abstasks.AbsTaskReranking import AbsTaskReranking
class CustomReranking(AbsTaskReranking).
    @propriedade
def description(self): @property
return {
"name": "CustomReranking", "description": "CustomReranking", @property
"description": "Tarefa de reordenação personalizada",

"eval_splits": ["test"], "eval_splits": ["test"], "eval_langs".
"eval_langs": ["en"], "eval_splits": ["test"], "eval_splits".
"main_score": "map"
}
evaluation = MTEB(tasks=[CustomReranking()])
evaluation.run(model)

habilidade operacional

  • Suporte a várias GPUsPara tarefas de recuperação, a aceleração de várias GPUs pode ser usada:
pip install git+https://github.com/NouamaneTazi/beir@nouamane/better-multi-gpu
torchrun --nproc_per_node=2 scripts/retrieval_multigpu.py
  • subconjunto selecionadoApenas um subconjunto de tarefas específicas é avaliado:
evaluation.run(model, eval_subsets=["Banking77Classification"])
  • Ajustar o tamanho do loteOtimização da velocidade de codificação:
evaluation.run(model, encode_kwargs={"batch_size": 32})

Com as etapas acima, os usuários podem começar a usar o MTEB com facilidade e concluir a avaliação do modelo ou a extensão funcional.

CDN1
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " MTEB: Benchmarking para avaliar o desempenho dos modelos de incorporação de texto

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil