La canalización básica de generación aumentada de recuperación (RAG) utiliza un modelo de codificador para buscar documentos similares cuando se recibe una consulta.
Esto también se llama búsqueda semántica porque el codificador transforma el texto en una representación vectorial de alta dimensión (llamada incrustación) en la que los textos semánticamente similares están cerca uno del otro.
Antes de que tuviéramos modelos de lenguaje grande (LLM) para crear estas incrustaciones de vectores, el algoritmo BM25 era un algoritmo de búsqueda muy popular. BM25 se centra en palabras clave importantes y busca coincidencias exactas en los documentos disponibles. Este enfoque se llama búsqueda de palabras clave.
Si desea llevar su canal RAG al siguiente nivel, puede intentar búsqueda híbridaLa búsqueda híbrida combina los beneficios de la búsqueda por palabras clave y la búsqueda semántica para mejorar la calidad de la búsqueda.
En este artículo, cubriremos la teoría e implementaremos los tres enfoques de búsqueda en Python.
Tabla de contenido
· Recuperación de RAG
∘ Búsqueda de palabras clave con BM25
∘ Búsqueda semántica con incrustaciones densas.
∘ ¿Búsqueda semántica o búsqueda híbrida?
∘ Búsqueda híbrida
∘ Poniéndolo todo junto
·…