0 / 0
Volver a la versión inglesa de la documentación

IBM slate-30m-english-rtrvr-v2 tarjeta modelo

Última actualización: 28 nov 2024
IBM slate-30m-english-rtrvr-v2 tarjeta modelo

Versión 2.0.1 Fecha: 30/06/2024

Descripción de modelo

El modelo slate.30m.english.rtrvr es un modelo estándar de transformadores de frases basado en bicodificadores. El modelo produce una incrustación para una entrada determinada (consulta, pasaje, documento, etc.). A grandes rasgos, nuestro modelo se entrena para maximizar la similitud coseno entre dos fragmentos de texto de entrada, por ejemplo, el texto A (texto de consulta) y el texto B (texto de pasaje), que dan como resultado las incrustaciones de frases q y p. A continuación, estas incrustaciones de frases pueden compararse mediante la similitud coseno.

Diagrama que compara el texto de consulta codificado en Slate con el texto de paso codificado

Figura 1. Modelo de incrustación bicodificador para la recuperación

Modelo de lengua base

El modelo lingüístico (LM) subyacente para nuestras incrustaciones es “slate.30m.english”. Tiene la misma arquitectura que un modelo de transformador small-RoBERTa (6 capas) y cuenta con ~30 millones de parámetros y una dimensión de incrustación de 384. En concreto, “slate.30m.english” se destiló a partir de “slate.125m.english” (anteriormente, WatBERT). Nuestro modelo final se llama slate.30m.english.rtrvr. Obsérvese el sufijo al final, que indica que ajustamos la arquitectura del modelo subyacente para tareas basadas en la recuperación.

Algoritmo de formación

La mayoría de los modelos de incrustación más avanzados o que ocupan los primeros puestos de la clasificación MTEB suelen entrenarse en tres fases:

  1. Preentrenamiento específico de la tarea (basado en la recuperación)
  2. Ajuste de tareas específicas en pares minados
  3. Ajuste fino en pares supervisados. Seguimos un planteamiento similar, combinando las dos últimas etapas en una única fase de ajuste fino.

slate.30m.english.rtrvr se produce por destilación del modelo “slate.125m.english.rtrvr-06-30-2024” en el paso de ajuste fino (los detalles del modelo de profesor más grande se pueden encontrar en esta ubicación). La destilación de conocimientos transfiere los conocimientos de un modelo profesor de alto rendimiento a un modelo estudiante más pequeño, entrenando la distribución de probabilidades de salida del estudiante para que se ajuste lo máximo posible a la del profesor, lo que mejora el rendimiento del estudiante en comparación con el ajuste independiente.

Formación previa específica

Esta etapa utiliza el marco RetroMAE, para que nuestro LM subyacente esté más orientado a la recuperación. Inicializamos nuestro LM base con “slate.30m.english” y continuamos con RetroMAE pre-entrenamiento, utilizando los datos de la Tabla 1. Aquí, en lugar de utilizar únicamente las etiquetas duras de los datos, también destilamos las predicciones del codificador RetroMAE utilizado por slate.125m.english.rtrvr. Nuestros hiperparámetros son: velocidad de aprendizaje: 2e-5, número de pasos: 435000, GPUs: 8 A100 (80GB) GPUs.

Nota: esta es nuestra LM base para las 2 etapas siguientes.

Destilación por pares supervisada y no supervisada

Para entrenar un modelo de incrustación, utilizamos un marco de bicodificación, como en la figura 1. We initialize with the RetroMAE pre-trained model, and further employ Knowledge Distillation with <consulta, pasaje> text pairs using a pérdida por contraste objective with in-batch negatives. La destilación de conocimientos entrena la distribución de probabilidades de salida del alumno para que se ajuste lo más posible a la del profesor. En el contexto de los modelos recuperadores, la distribución de salida son las puntuaciones de similitud entre pares de texto. En concreto, para cada par de frases < consulta, pasaje>, la distribución de las puntuaciones del profesor entre las incrustaciones de consulta y paso, es decir, la similitud coseno entre las incrustaciones, se destila en el alumno.

El maestro utilizado para la destilación es el modelo "slate.125m.english.rtrvr” entrenado en los mismos datos mencionados a continuación. El modelo del profesor se entrenó utilizando un paradigma multietapa en el que un modelo RetroMAE preentrenado vio datos no supervisados en la etapa de preentrenamiento, y luego se afinó en datos más limpios, minados o etiquetados con oro durante unos cientos de pasos. Para garantizar la solidez de los conjuntos de datos, este modelo ajustado se fusionó con otro modelo entrenado con diferentes hiperparámetros en los mismos datos. Para más detalles, consulte la slate.125m.english.rtrvr.

El flujo de transferencia de conocimientos se muestra en la figura 2.

Diagrama que muestra la destilación de slate.125m.english a slate.125m.rtrvr a slate.30m.rtrvr

Figura 2. Destilación de conocimientos

Extraemos pares a gran escala de varios dominios, como se indica en la sección Datos de entrenamiento. Además, también incluimos pares de alta calidad para la tarea de recuperación en los siguientes conjuntos de datos: SQuAD, Natural Questions, Specter, Stack Exchange (Title, Body) pairs, S2ORC, SearchQA, HotpotQA, Fever, y Miracl. Para estos conjuntos de datos supervisados, también incluimos Hard Negatives extraídos con una versión anterior del modelo slate.125m.english.rtrvr. Además, también generamos triplas sintéticamente para crear pares de buena calidad de pregunta-respuesta, verificación de hechos, etc. utilizando `Mixtral-8x7B-Instruct-v0.1`. Para proporcionar un mejor rendimiento para los casos de uso específicos de IBM, también incluimos pares creados a partir de datos de IBM Software Support y IBM Docs.

Los hiperparámetros de destilación son: aprendizaje rate:7e-4, número de pasos: 500000, tamaño efectivo del lote: 2048, GPUs: 4 A100_80GB GPUs.

Datos de entrenamiento

Tabla 1. Datos previos al entrenamiento
Conjunto de datos Pasajes
Wikipedia 36396918
Corpus de libros 3401308
Stack Exchange 15999837
Tabla 2. Ajuste de datos
Conjunto de datos Pares
Trillizos de citas SPECTER 684100
Stack Exchange Preguntas duplicadas (títulos) 304525
Stack Exchange Preguntas duplicadas (cuerpos) 250519
Stack Exchange Preguntas duplicadas (títulos+cuerpos) 250460
Preguntas naturales (NQ) 100231
SQuAD2.0 87599
Pares PAQ (Pregunta, Respuesta) 64371441
Stack Exchange (Título, Respuesta) pares 4067139
Stack Exchange (Título, Cuerpo) pares 23978013
Pares Stack Exchange (Título+Cuerpo, Respuesta) 187195
S2ORC Pares de citas (Títulos) 52603982
S2ORC (Título, Resumen) 41769185
S2ORC_citations_abstracts 52603982
WikiAnswers Pares de preguntas duplicados 77427422
SearchQA 582261
HotpotQA 85000
Fiebre 109810
Arxiv 2358545
Wikipedia 20745403
PubMed 20000000
Miracl En Pares 9016
DBPedia Pares título-cuerpo 4635922
Sintético: Pasaje Query-Wikipedia 1879093
Sintética: Verificación de hechos 9888
IBM: el soporte de software se triplica 40290
IBM: IBM Docs (Título-Cuerpo) 474637
IBM: IBM Soporte (Título-Cuerpo) 1049949

Uso

# make sure you’ve sentence transformers installed

pip install -U sentence-transformers

from sentence_transformers import SentenceTransformer, util

model = SentenceTransformer('path_to_slate_model')

input_queries = [
' Who made the song My achy breaky heart? ',
'summit define']

input_passages = [
" Achy Breaky Heart is a country song written by Don Von Tress. Originally titled Don't Tell My Heart and performed by The Marcy Brothers in 1991. ",
"Definition of summit for English Language Learners. : 1 the highest point of a mountain : the top of a mountain. : 2 the highest level. : 3 a meeting or series of meetings between the leaders of two or more governments."]

query_embeddings = model.encode(input_queries)

passage_embeddings = model.encode(input_passages)

print(util.cos_sim(query_embeddings, passage_embeddings))

La longitud máxima de secuencia de este modelo es de 512 tokens.

Evaluación

Líneas base

Para que la comparación sea justa, nos comparamos con las siguientes líneas de base:

  1. BM25 (un modelo tradicional basado en tf-idf)

  2. ELSER (un algoritmo de búsqueda comercial proporcionado por Elastic)

  3. all-MiniLM-l6-v2: un popular modelo de transformadores de sentencias de código abierto. Este modelo comparte la misma arquitectura que slate.30m.english.rtrvr, se ha entrenado con más datos sin licencias comerciales. Para más detalles, consulte la ficha del modelo huggingface

  4. E5-base: un reciente modelo de transformador de código abierto con muy buen rendimiento en el benchmark BEIR. Se trata de un modelo de tamaño base, que tiene la misma arquitectura que slate.125m.english.rtrvr. [Referencia: Wang et.al., 2022: Text Embeddings by Weakly-Supervised Contrastive Pre-training]. Tarjeta modelo Huggingface

  5. E5-small: un modelo más pequeño dentro de la familia E5 de código abierto. La dimensión de incrustación de este modelo coincide con la de slate.30m.rtrvr (384) sin embargo tiene 12 capas, y por lo tanto es más grande y ligeramente más lento. [Referencia: Wang et.al., 2022: Text Embeddings by Weakly-Supervised Contrastive Pre-training]. Tarjeta modelo Huggingface

  6. BGE-base: un reciente modelo de transformador de código abierto con uno de los mejores rendimientos en la prueba de referencia BEIR para el tamaño de incrustación 768. Tarjeta modelo Huggingface

  7. BGE-small: un reciente modelo de transformador de código abierto con uno de los mejores rendimientos en la prueba de referencia BEIR para el tamaño de incrustación 384. Tarjeta modelo Huggingface

También comparamos el rendimiento de estos modelos con las versiones antiguas de los modelos de pizarra, slate.125m.english.rtrvr-012024 y slate.30m.english.rtrvr-012024.

Nuestra referencia de evaluación: BEIR(ficha de recuperación de MTEB)

La referencia BEIR consta de 15 tareas de recuperación de código abierto evaluadas en un entorno de disparo cero. BEIR se centró en la Diversidad, incluyendo nueve tareas de recuperación diferentes: Comprobación de hechos, predicción de citas, recuperación de preguntas duplicadas, recuperación de argumentos, recuperación de noticias, respuesta a preguntas, recuperación de tweets, RI biomédica y recuperación de entidades. Además, incluye conjuntos de datos de diversos dominios textuales, conjuntos de datos que abarcan temas amplios (como Wikipedia) y temas especializados (como COVID-19), diferentes tipos de texto (artículos de noticias frente a Tweets), conjuntos de datos de diferentes tamaños (3.6k - 15M documentos), y conjuntos de datos con diferentes longitudes de consulta (longitud media de consulta entre 3 y 192 palabras) y longitudes de documento (longitud media de documento entre 11 y 635 palabras). BEIR utiliza la métrica de ganancia acumulada normalizada de descuento (en concreto, nDCG@10) para la evaluación.

Largo NQ

Long NQ es un conjunto de datos IBM diseñado para evaluar el proceso RAG completo, basado en un subconjunto del conjunto de datos NaturalQuestions. El dev set tiene 300 preguntas con respuesta y un corpus de 178.891 pasajes de 2.345 documentos de Wikipedia. Long NQ también proporciona pasajes de Wikipedia de oro que son relevantes para cada pregunta. Durante la recuperación, la tarea consiste en obtener el pasaje de oro pertinente del corpus para cada pregunta.

Resultados

Tabla 3. Comparación del rendimiento en la prueba de referencia BEIR (pestaña de recuperación MTEB)
Modelo BEIR-15 (NDCG@10)
BM25 42.02
ELSER 49.01
all-miniLM-L6-v2 41.95
ES-small-v2 49.04
ES-base-v2 50.29
BGE-pequeño 51.68
Base BGE 53.25
slate.30m.english.rtrvr 01.20.2024 46.91
slate.125m.english.rtrvr-01.20.2024 49.37
slate.30m.english.rtrvr 06.30.2024 49.06
slate.125m.english.rtrvr-06.30.2024 51.26

Gráfico que muestra los resultados de Slate y otros modelos

Figura 3. Comparación del rendimiento en la prueba de referencia BEIR (pestaña de recuperación MTEB)

Tabla 4. Comparación de resultados en el conjunto de datos Long NQ
Modelo LONGNQ (NDCG@10)
all-miniLM-L6-v2 58.10
BGE-pequeño 59.33
Base BGE 61.29
ES-small-v2 61.88
ES-base-v2 63.80
slate.30m.english.rtrvr 01.20.2024 59.94
slate.125m.english.rtrvr-01.20.2024 65.01
slate.30m.english.rtrvr 06.30.2024 62.07
slate.125m.english.rtrvr-06.30.2024 66.80

Gráfico que muestra los resultados de Slate y otros modelos

Figura 4. Comparación de resultados en el conjunto de datos Long NQ

Rendimiento en tiempo de ejecución

El tiempo de ejecución del rendimiento se mide en una tarea de reordenación con 466 consultas. Para cada consulta, volvemos a clasificar los top-100 pasajes obtenidos por BM25 e informamos del tiempo medio de todas las consultas. El reordenamiento se realizó en una GPU A100_40GB.

Tabla 5. Rendimiento en tiempo de ejecución de la reclasificación
Modelo Tiempo/consulta
all-miniLM-L6-v2 0.18 seg
E5-small 0.33 seg
E5-base 0.75 seg
BGE-pequeño 0.34 seg
Base BGE 0.75 seg
slate.125m.english.rtrvr 0.71 seg
slate.30m.english.rtrvr 0.20 seg