Este repositorio contiene el código de evaluación para el punto de referencia de recuperación de información de polaco (PIRB). El punto de referencia cubre 41 tareas de recuperación de información de múltiples múltiples polacos. Su propósito es evaluar los métodos de recuperación de información pulido y multilingüe en una amplia gama de problemas con diferentes características, probando así la capacidad de generalización de los modelos y su rendimiento de disparo cero. Incluye conjuntos de datos preexistentes como Maupqa, Beir-PL y Poleval-2022. También hemos agregado nuevos conjuntos de datos previamente no publicados. El grupo "Conjuntos de datos web" contiene preguntas y respuestas reales de los servicios web polacos.
Para evaluar un modelo o una lista de modelos en PIRB, use script run_benchmark.py
. El único parámetro requerido para el script es --models_config
, que debe apuntar a un archivo JSON que contiene una configuración de los modelos. El repositorio admite muchos métodos de recuperación de texto, incluidos retrievers escasos y densos, recuperación híbrida, así como tuberías de recuperación de dos etapas que combinan modelos Retriever y Reranker. El archivo de configuración debe ser una matriz JSON en la que cada elemento define un método a evaluar. Por ejemplo, a continuación se encuentra la configuración más simple que define una línea de base BM25:
[{ "name" : " bm25 " }]
Los codificadores densos basados en la biblioteca de transformadores de oraciones se pueden definir de la siguiente manera:
[
{
"name" : " sdadas/mmlw-e5-base " ,
"fp16" : true ,
"q_prefix" : " query: " ,
"p_prefix" : " passage: "
}
]
El atributo name
debe referirse a una ruta o ruta local en el Hub Huggingface. Otros atributos son opcionales y permiten controlar el comportamiento del modelo. Los métodos que combinan múltiples modelos requieren una configuración más compleja. A continuación se muestra el ejemplo del sistema de recuperación de dos etapas con denso retriever y Reranker basado en 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: "
}
]
}
]
Se pueden encontrar más ejemplos de definiciones de métodos en el directorio config
en este repositorio.
La mayoría de los datos utilizados en la evaluación están disponibles públicamente. Los conjuntos de datos se descargarán automáticamente en la primera ejecución del script run_benchmark.py
. La única excepción son los corpus del grupo "conjuntos de datos web". Si desea acceder a ellos, envíe una solicitud a SDADAS en OPI.org.pl, describiendo su uso previsto de los conjuntos de datos. Tenga en cuenta que los conjuntos de datos solo se pueden utilizar para fines de investigación y solicitamos no redistribuirlos después de obtener acceso.
Si tiene un modelo que aún no se ha incluido en la clasificación, abra un nuevo problema en https://huggingface.co/spaces/sdadas/pirb/discussions con una descripción de su modelo. Intentaremos evaluarlo y agregarlo a la tabla de clasificación. En la descripción, puede incluir una configuración JSON para el modelo en el formato PIRB o un fragmento de código corto que ilustra el uso del modelo. En la evaluación oficial, solo consideramos modelos que:
1. Están disponibles públicamente
2. No han sido capacitados en las fuentes de datos incluidas en PIRB. Para los conjuntos de datos divididos en tren, evaluación y piezas de prueba, el uso de la división de capacitación es aceptable.