18.4 C
Madrid
viernes, octubre 24, 2025
spot_img
spot_img

Poder de los volviéndose a colgar y recuperación de dos etapas para la generación aumentada de recuperación

Cuando se proxenetismo del procesamiento del verbo natural (PNL) y la recuperación de la información, la capacidad de recuperar la información relevante de guisa capaz y precisa es primordial. A medida que el campo continúa evolucionando, se están desarrollando nuevas técnicas y metodologías para mejorar el rendimiento de los sistemas de recuperación, particularmente en el contexto de la vivientes aumentada de recuperación (RAG). Una de esas técnicas, conocida como recuperación de dos etapas con los reanicadores, se ha convertido en una alternativa poderosa para encarar las limitaciones inherentes de los métodos de recuperación tradicionales.

En este artículo, discutimos las complejidades de la recuperación de dos etapas y los reanicadores, explorando sus principios subyacentes, estrategias de implementación y los beneficios que ofrecen para mejorar la precisión y eficiencia de los sistemas RAG. Asimismo proporcionaremos ejemplos prácticos y fragmentos de código para ilustrar los conceptos y proporcionar una comprensión más profunda de esta técnica de vanguardia.

Comprensión de la vivientes aumentada de recuperación (trapo)

Antaño de sumergirnos en los detalles de la recuperación de dos etapas y los vuelos a los vuelos, revisemos brevemente el concepto de vivientes aumentada de recuperación (RAG). RAG es una técnica que extiende el conocimiento y las capacidades de los modelos de idiomas grandes (LLM) al proporcionarles ataque a fuentes de información externas, como bases de datos o colecciones de documentos. Consulte más del artículo «Una inmersión profunda en la vivientes aumentada de recuperación en LLM».

El proceso de trapo peculiar implica los siguientes pasos:

  1. Consulta: Un favorecido plantea una pregunta o proporciona una instrucción al sistema.
  2. Recuperación: El sistema consulta una saco de datos vectorial o una sumario de documentos para encontrar información relevante para la consulta del favorecido.
  3. Aumento: La información recuperada se combina con la consulta o instrucción flamante del favorecido.
  4. Vivientes: El maniquí de verbo procesa la entrada aumentada y genera una respuesta, aprovechando la información externa para mejorar la precisión y la integridad de su salida.

Si perfectamente Rag ha demostrado ser una técnica poderosa, no está exenta de desafíos. Uno de los temas secreto radica en la etapa de recuperación, donde los métodos de recuperación tradicionales pueden no identificar los documentos más relevantes, lo que lleva a respuestas subóptimas o inexactas del maniquí de idioma.

La penuria de recuperación de dos etapas y vueltas

Los métodos de recuperación tradicionales, como los basados ​​en modelos de coincidencia de palabras secreto o espacios vectoriales, a menudo luchan por capturar las relaciones semánticas matizadas entre consultas y documentos. Esta restricción puede dar área a la recuperación de documentos que solo son de forma superficial o se pierden información crucial que podría mejorar significativamente la calidad de la respuesta generada.

Para encarar este desafío, los investigadores y los profesionales han recurrido a la recuperación de dos etapas con Rerankers. Este enfoque implica un proceso de dos pasos:

  1. Recuperación original: En la primera etapa, se recupera un conjunto relativamente egregio de documentos potencialmente relevantes utilizando un método de recuperación rápido y capaz, como un maniquí de espacio vectorial o una búsqueda basada en palabras secreto.
  2. Reestructuración: En la segunda etapa, se emplea un maniquí de reordenamiento más sofisticado para reordenar los documentos inicialmente recuperados en función de su relevancia para la consulta, llevando efectivamente los documentos más relevantes a la parte superior de la índice.
LEER  Imágenes autoautenticantes a través de una simple compresión JPEG

El maniquí Reranking, a menudo una red neuronal o una bloque basada en transformadores, está específicamente capacitado para evaluar la relevancia de un documento para una consulta dada. Al servirse las capacidades avanzadas de comprensión del verbo natural, el Reranker puede capturar los matices semánticos y las relaciones contextuales entre la consulta y los documentos, lo que resulta en una clasificación más precisa y relevante.

Beneficios de la recuperación de dos etapas y los vueltas

La asimilación de la recuperación de dos etapas con Rerankers ofrece varios beneficios significativos en el contexto de los sistemas RAG:

  1. Precisión mejorada: Al retornar a ser los documentos inicialmente recuperados y promover los más relevantes en la parte superior, el sistema puede proporcionar información más precisa y precisa al maniquí de verbo, lo que lleva a respuestas generadas de viejo calidad.
  2. Problemas fuera de dominio mitigados: Los modelos de incrustación utilizados para la recuperación tradicional a menudo se entrenan en corpus de texto de uso militar, que pueden no capturar adecuadamente el verbo y la semántica específicos de dominio. Los modelos de remodelación, por otro costado, pueden ser entrenados en datos específicos del dominio, mitigando el problema del «fuera del dominio» y mejorando la relevancia de los documentos recuperados en el interior de dominios especializados.
  3. Escalabilidad: El enfoque de dos etapas permite una escalera capaz al servirse los métodos de recuperación rápidos y livianos en la etapa original, al tiempo que reserva el proceso de rehabilitación más intensivo computacionalmente para un subconjunto más pequeño de documentos.
  4. Flexibilidad: Los modelos de rehabilitación se pueden cambiar o poner al día independientemente del método de recuperación original, proporcionando flexibilidad y adaptabilidad a las evacuación en desarrollo del sistema.

Colbert: interacción tardía capaz y efectiva

Uno de los modelos más destacados en el ámbito de la reranking es Colbert (interacción tardía contextualizada sobre Bert). Colbert es un maniquí de Reranker de documento que aprovecha las capacidades de comprensión del verbo profundo de Bert al tiempo que introduce un mecanismo de interacción novedoso conocido como «interacción tardía».

Colbert: búsqueda capaz y efectiva de pasaje a través de la interacción tardía contextualizada sobre Bert

El mecanismo de interacción tardía en Colbert permite una recuperación capaz y precisa mediante el procesamiento de consultas y documentos por separado hasta las etapas finales del proceso de recuperación. Específicamente, Colbert codifica independientemente la consulta y el documento usando Bert, y luego emplea un paso de interacción rijoso pero poderoso que modela su similitud de gramínea fino. Al retrasar pero retener esta interacción de gramínea fino, Colbert puede servirse la viveza de los modelos de verbo profundo y al mismo tiempo obtener la capacidad de precomputar representaciones de documentos fuera de confín, acelerando considerablemente el procesamiento de consultas.

LEER  Cómo hacer que Chatgpt hable normalmente

La bloque de interacción tardía de Colbert ofrece varios beneficios, incluida la eficiencia computacional mejorada, la escalabilidad con el tamaño de la sumario de documentos y la aplicabilidad experiencia para los escenarios del mundo vivo. Adicionalmente, Colbert se ha mejorado aún más con técnicas como la supervisión desolada y la compresión residual (en Colbertv2), que refinan el proceso de entrenamiento y reducen la huella espacial del maniquí mientras mantienen una incorporación efectividad de recuperación.

Este fragmento de código demuestra cómo configurar y usar el maniquí Jina-Colbert-V1-EN para indexar una colección de documentos, aprovechando su capacidad para manejar contextos largos de guisa capaz.

Implementación de la recuperación de dos etapas con Rerankers

Ahora que tenemos una comprensión de los principios detrás de la recuperación de dos etapas y los vuelvos, exploremos su implementación experiencia en el contexto de un sistema de trapo. Aprovecharemos bibliotecas y marcos populares para demostrar la integración de estas técnicas.

Configuración del medio hábitat

Antaño de sumergirnos en el código, establezcamos nuestro entorno de expansión. Usaremos Python y varias bibliotecas populares de la PNL, incluidos abrazos de los transformadores faciales, transformadores de oraciones y LancedB.

# Install required libraries
!pip install datasets huggingface_hub sentence_transformers lancedb

Preparación de datos

Para fines de demostración, utilizaremos el conjunto de datos «A-Ai-ARXIV» de los conjuntos de datos de abrazos de estrujón, que contiene más de 400 artículos ARXIV en formación obligatorio, procesamiento de verbo natural y modelos de idiomas grandes.

from datasets import load_dataset
dataset = load_dataset("jamescalam/ai-arxiv-chunked", split="train")

Next, we'll preprocess the data and split it into smaller chunks to facilitate efficient retrieval and processing.

from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
def chunk_text(text, chunk_size=512, overlap=64):
tokens = tokenizer.encode(text, return_tensors="pt", truncation=True)
chunks = tokens.split(chunk_size - overlap)
texts = (tokenizer.decode(chunk) for chunk in chunks)
return texts
chunked_data = ()
for doc in dataset:
text = doc("chunk")
chunked_texts = chunk_text(text)
chunked_data.extend(chunked_texts)
For the initial retrieval stage, we'll use a Sentence Transformer model to encode our documents and queries into dense vector representations, and then perform approximate nearest neighbor search using a vector database like LanceDB.
from sentence_transformers import SentenceTransformer
from lancedb import lancedb
# Load Sentence Transformer model
model = SentenceTransformer('all-MiniLM-L6-v2')
# Create LanceDB vector store
db = lancedb.lancedb('/path/to/store')
db.create_collection('docs', vector_dimension=model.get_sentence_embedding_dimension())
# Index documents
for text in chunked_data:
vector = model.encode(text).tolist()
db.insert_document('docs', vector, text)
from sentence_transformers import SentenceTransformer
from lancedb import lancedb
# Load Sentence Transformer model
model = SentenceTransformer('all-MiniLM-L6-v2')
# Create LanceDB vector store
db = lancedb.lancedb('/path/to/store')
db.create_collection('docs', vector_dimension=model.get_sentence_embedding_dimension())
# Index documents
for text in chunked_data:
vector = model.encode(text).tolist()
db.insert_document('docs', vector, text)

Con nuestros documentos indexados, podemos realizar la recuperación original al encontrar a los vecinos más cercanos a un vector de consulta determinado.

from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
def chunk_text(text, chunk_size=512, overlap=64):
tokens = tokenizer.encode(text, return_tensors="pt", truncation=True)
chunks = tokens.split(chunk_size - overlap)
texts = (tokenizer.decode(chunk) for chunk in chunks)
return texts
chunked_data = ()
for doc in dataset:
text = doc("chunk")
chunked_texts = chunk_text(text)
chunked_data.extend(chunked_texts)

Reestructuración

Luego de la recuperación original, emplearemos un maniquí de reordenamiento para reordenar los documentos recuperados en función de su relevancia para la consulta. En este ejemplo, utilizaremos el Colbert Reranker, un maniquí basado en transformadores rápido y preciso diseñado específicamente para la clasificación de documentos.

from lancedb.rerankers import ColbertReranker
reranker = ColbertReranker()
# Rerank initial documents
reranked_docs = reranker.rerank(query, initial_docs)

El reranked_docs La índice ahora contiene los documentos reordenados en función de su relevancia para la consulta, según lo determinado por el Colbert Reranker.

Aumento y vivientes

Con los documentos relevantes y relevantes en la mano, podemos proceder a las etapas de aumento y vivientes de la tubería RAG. Usaremos un maniquí de verbo de la biblioteca de transformadores faciales para suscitar la respuesta final.

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
tokenizer = AutoTokenizer.from_pretrained("t5-base")
model = AutoModelForSeq2SeqLM.from_pretrained("t5-base")
# Augment query with reranked documents
augmented_query = query + " " + " ".join(reranked_docs(:3))
# Generate response from language model
input_ids = tokenizer.encode(augmented_query, return_tensors="pt")
output_ids = model.generate(input_ids, max_length=500)
response = tokenizer.decode(output_ids(0), skip_special_tokens=True)
print(response)

En el fragmento de código precedente, aumentamos la consulta flamante con los tres principales documentos reiniciados, creando un augmented_query. Luego pasamos esta consulta aumentada a un maniquí de verbo T5, que genera una respuesta basada en el contexto proporcionado.

El response La variable contendrá la salida final, aprovechando la información externa de los documentos recuperados y reanicados para proporcionar una respuesta más precisa e integral a la consulta flamante.

Técnicas y consideraciones avanzadas

Si perfectamente la implementación que hemos cubierto proporciona una saco sólida para integrar la recuperación de dos etapas y los volviéndose a relacionar en un sistema de RAG, existen varias técnicas y consideraciones avanzadas que pueden mejorar aún más el rendimiento y la robustez del enfoque.

  1. Expansión de la consulta: Para mejorar la etapa de recuperación original, puede invertir técnicas de expansión de consultas, que implican aumentar la consulta flamante con términos o frases relacionadas. Esto puede ayudar a recuperar un conjunto más diverso de documentos potencialmente relevantes.
  2. Rerantente: En área de entregarse en manos en un solo maniquí de rehabilitación, puede combinar múltiples vueltas en un conjunto, aprovechando las fortalezas de diferentes modelos para mejorar el rendimiento militar.
  3. Rerankers ajustados: Si perfectamente los modelos de rehabilitación previamente capacitados pueden ser efectivos, ajustarlos en datos específicos del dominio puede mejorar aún más su capacidad para capturar señales de semántica y relevancia específicas del dominio.
  4. Recuperación iterativa y rescates: En algunos casos, una sola iteración de recuperación y rescate puede no ser suficiente. Puede explorar enfoques iterativos, donde la salida del maniquí de verbo se utiliza para refinar la consulta y el proceso de recuperación, lo que lleva a un sistema más interactivo y dinámico.
  5. Equilibrar relevancia y heterogeneidad: Si perfectamente los vuelos a los que los vuelves a promover los documentos más relevantes, es esencial conquistar un contrapeso entre relevancia y heterogeneidad. La incorporación de técnicas de promoción de la heterogeneidad puede ayudar a evitar que el sistema sea demasiado ajustado o sesgado en sus fuentes de información.
  6. Métricas de evaluación: Para evaluar la efectividad de su recuperación de dos etapas y el enfoque de rehabilitación, deberá puntualizar las métricas de evaluación apropiadas. Estos pueden incluir métricas tradicionales de recuperación de información como precisión, retiro y rango mutuo medio (MRR), así como métricas específicas de tareas adaptadas a su caso de uso.

Conclusión

La vivientes aumentada de recuperación (RAG) se ha convertido en una técnica poderosa para mejorar las capacidades de los modelos de idiomas grandes al servirse las fuentes de información externas. Sin confiscación, los métodos de recuperación tradicionales a menudo luchan por identificar los documentos más relevantes, lo que lleva al rendimiento subóptimo.

La recuperación de dos etapas con Rerankers ofrece una alternativa convincente a este desafío. Al combinar una etapa de recuperación rápida original con un maniquí de rehacer más sofisticado, este enfoque puede mejorar significativamente la precisión y relevancia de los documentos recuperados, lo que finalmente conduce a respuestas generadas de viejo calidad del maniquí de verbo.

spot_img

Artículos relacionados

spot_img

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

Últimos artículos