Este repositório contém o código de avaliação para referência de recuperação de informações polonesas (PIRB). O benchmark abrange 41 tarefas polonesas de recuperação de informações. Seu objetivo é avaliar os métodos de recuperação de informações polonesas e multilíngues em uma ampla gama de problemas com diferentes características, testando assim a capacidade de generalização dos modelos e seu desempenho zero. Inclui conjuntos de dados pré-existentes, como MAUPQA, Beir-PL e POLEVAL-2022. Também adicionamos novos conjuntos de dados não publicados anteriormente. O grupo "dados da web" contém perguntas e respostas reais dos serviços da web polonês.
Para avaliar um modelo ou uma lista de modelos no PIRB, use o script run_benchmark.py . O único parâmetro necessário para o script é --models_config , que deve apontar para um arquivo JSON que contém uma configuração dos modelos. O repositório suporta muitos métodos de recuperação de texto, incluindo retrievers esparsos e densos, recuperação híbrida, bem como pipelines de recuperação de dois estágios combinando modelos Retriever e reranker. O arquivo de configuração deve ser uma matriz JSON na qual cada elemento define um método a ser avaliado. Por exemplo, abaixo está a configuração mais simples que define uma linha de base BM25:
[{ "name" : " bm25 " }]Codificadores densos com base na biblioteca de transformadores de sentenças podem ser definidos da seguinte maneira:
[
{
"name" : " sdadas/mmlw-e5-base " ,
"fp16" : true ,
"q_prefix" : " query: " ,
"p_prefix" : " passage: "
}
] O atributo name deve se referir a um caminho ou caminho local no hub de husggingface. Outros atributos são opcionais e permitem controlar o comportamento do modelo. Os métodos que combinam vários modelos requerem configuração mais complexa. Abaixo está o exemplo do sistema de recuperação de dois estágios com denso Retriever e reranker baseado em T5:
[
{
"name" : " plt5-large-msmarco " ,
"type" : " hybrid " ,
"k0" : 100 ,
"strategy" : {
"type" : " reranker " ,
"reranker_name" : " clarin-knext/plt5-large-msmarco " ,
"reranker_type" : " seq2seq " ,
"batch_size" : 32 ,
"max_seq_length" : 512 ,
"template" : " Query: {query} Document: {passage} Relevant: " ,
"yes_token" : " prawda " ,
"no_token" : " fałsz " ,
"bf16" : true
},
"models" : [
{
"name" : " sdadas/mmlw-retrieval-roberta-large " ,
"fp16" : true ,
"q_prefix" : " zapytanie: "
}
]
}
] Mais exemplos de definições de método podem ser encontrados no diretório config neste repositório.
A maioria dos dados usados na avaliação está disponível ao público. Os conjuntos de dados serão baixados automaticamente na primeira execução do script run_benchmark.py . A única exceção são os corpora do grupo "dados da web". Se você deseja acessá -los, envie uma solicitação ao SDADAS em opi.org.pl, descrevendo o uso pretendido dos conjuntos de dados. Observe que os conjuntos de dados só podem ser usados para fins de pesquisa e solicitamos não redistribuí -los após obter acesso.
Se você possui um modelo que ainda não foi incluído no ranking, abra um novo problema em https://huggingface.co/spaces/sdadas/pirb/discussions com uma descrição do seu modelo. Vamos tentar avaliá -lo e adicioná -lo à tabela de classificação. Na descrição, você pode incluir uma configuração JSON para o modelo no formato PIRB ou um fragmento de código curto que ilustra o uso do modelo. Na avaliação oficial, consideramos apenas modelos que:
1. Estão disponíveis ao público
2. Não foram treinados nas fontes de dados incluídas no PIRB. Para os conjuntos de dados divididos em peças de trem, avaliação e teste, o uso da divisão de treinamento é aceitável.