Home
Login

Quinta etapa: Exploración de escenarios de aplicación de la IA

Colección completa de técnicas avanzadas para sistemas de Generación Aumentada por Recuperación (RAG), que abarca desde lo básico hasta lo más vanguardista con más de 30 implementaciones de técnicas RAG, incluyendo ejemplos de código completos y documentación detallada.

RAGRetrievalAugmentedGenerationVectorSearchGitHubTextFreeEnglish

Introducción Detallada a los Materiales de Aprendizaje de Técnicas RAG

Resumen del Proyecto

RAG Techniques es un proyecto de código abierto en GitHub creado por Nir Diamant, centrado en la demostración de diversas técnicas avanzadas para sistemas de Generación Aumentada por Recuperación (Retrieval-Augmented Generation, RAG). El proyecto tiene como objetivo proporcionar un repositorio de recursos completo para investigadores y desarrolladores, ayudándoles a construir sistemas RAG más precisos y contextualmente relevantes.

Características del Proyecto

🌟 Características Principales

  • Tecnologías de Vanguardia: Cubre las últimas técnicas de mejora de sistemas RAG
  • Documentación Completa: Cada técnica cuenta con documentación detallada
  • Guías Prácticas: Ofrece orientación para la implementación real
  • Actualizaciones Continuas: Se actualiza regularmente con los últimos avances tecnológicos
  • Impulsado por la Comunidad: Cuenta con una comunidad activa en Discord (más de 20,000 entusiastas de la IA)

🎯 Público Objetivo

  • Investigadores de IA
  • Ingenieros de Machine Learning
  • Desarrolladores y Profesionales
  • Estudiantes interesados en la tecnología RAG

Clasificación Técnica y Descripción Detallada

1. Técnicas Fundamentales (Foundational 🌱)

RAG Simple

  • Descripción: Introduce la técnica RAG básica, adecuada para principiantes
  • Implementación: Soporta LangChain y LlamaIndex
  • Funcionalidad: Consulta de recuperación básica y mecanismos de aprendizaje incremental

RAG Simple usando CSV

  • Descripción: Implementación básica de RAG utilizando archivos CSV
  • Funcionalidad: Utiliza archivos CSV para crear una recuperación básica e integrarse con OpenAI

RAG Correctivo

  • Descripción: Mejora el RAG simple, añadiendo mecanismos de validación y mejora
  • Funcionalidad: Verifica la relevancia de los documentos recuperados y resalta los fragmentos de documentos utilizados para la respuesta

2. Técnicas de Fragmentación (Chunking Techniques)

Elegir Tamaño de Fragmento

  • Descripción: Seleccionar un tamaño de bloque de texto apropiado para equilibrar la retención de contexto y la eficiencia de recuperación
  • Implementación:
# Ejemplo: Experimentos con diferentes tamaños de fragmento
chunk_sizes = [200, 500, 1000, 2000]
for size in chunk_sizes:
    # Probar el efecto de recuperación de diferentes tamaños
    evaluate_chunk_performance(size)

Fragmentación por Proposiciones

  • Descripción: Descompone el texto en oraciones concisas, completas y significativas
  • Características:
    • 💪 Generación de Proposiciones: Utiliza LLM para generar afirmaciones fácticas a partir de bloques de documentos
    • ✅ Control de Calidad: Evalúa la precisión, claridad, integridad y concisión

Fragmentación Semántica

  • Descripción: Divide documentos basándose en la coherencia semántica en lugar de un tamaño fijo
  • Ventaja: Utiliza técnicas de PNL para identificar límites temáticos, creando unidades de recuperación más significativas

3. Técnicas de Procesamiento de Consultas (Query Processing)

Transformaciones de Consulta

  • Descripción: Modifica y expande las consultas para mejorar la efectividad de la recuperación
  • Las técnicas incluyen:
    • ✍️ Reescritura de Consultas: Reformula las consultas para mejorar la recuperación
    • 🔙 Sugerencias de Retroceso: Genera consultas más amplias para obtener un mejor contexto
    • 🧩 Descomposición de Subconsultas: Descompone consultas complejas en subconsultas simples

Preguntas Hipotéticas (HyDE)

  • Descripción: Genera preguntas hipotéticas para mejorar la coincidencia entre la consulta y los datos
  • Funcionalidad: Crea preguntas hipotéticas que apuntan a ubicaciones relevantes en los datos

Incrustaciones de Prompt Hipotéticas (HyPE)

  • Descripción: Versión mejorada de HyDE que precalcula prompts hipotéticos durante la fase de indexación
  • Ventajas:
    • 📖 Preguntas Precalculadas: Genera múltiples consultas hipotéticas durante la indexación
    • 🔍 Coincidencia Pregunta-Pregunta: La consulta del usuario coincide con las preguntas hipotéticas almacenadas
    • ⚡ Sin Sobrecarga en Tiempo de Ejecución: No requiere llamar a un LLM durante la consulta

4. Técnicas de Procesamiento de Contexto (Context Processing)

Técnicas de Enriquecimiento de Contexto

  • Descripción: Mejora la precisión de la recuperación incrustando oraciones individuales y expandiéndolas a oraciones adyacentes
  • Implementación:
# Ejemplo: Expansión de la ventana de contexto
def get_context_window(sentence_index, window_size=2):
    start = max(0, sentence_index - window_size)
    end = min(len(sentences), sentence_index + window_size + 1)
    return sentences[start:end]

Compresión Contextual

  • Descripción: Comprime la información recuperada, conservando el contenido relevante para la consulta
  • Método: Utiliza un LLM para comprimir o resumir los bloques recuperados

Encabezados de Fragmentos Contextuales (CCH)

  • Descripción: Crea contexto a nivel de documento y capítulo, y lo añade a los encabezados de los fragmentos
  • Funcionalidad: Mejora la precisión de la recuperación

5. Técnicas de Mejora de Recuperación (Retrieval Enhancement)

Recuperación por Fusión

  • Descripción: Optimiza los resultados de búsqueda combinando diferentes métodos de recuperación
  • Implementación: Combina la búsqueda basada en palabras clave y la búsqueda basada en vectores

Reclasificación Inteligente

  • Descripción: Aplica mecanismos de puntuación avanzados para mejorar la clasificación de relevancia de los resultados de recuperación
  • Técnicas:
    • 🧠 Puntuación Basada en LLM
    • 🔀 Modelos de Codificador Cruzado
    • 🏆 Clasificación Mejorada por Metadatos

Filtrado Multifacético

  • Descripción: Aplica diversas técnicas de filtrado para mejorar la calidad de los resultados de recuperación
  • Incluye:
    • 🏷️ Filtrado por Metadatos
    • 📊 Umbral de Similitud
    • 📄 Filtrado de Contenido
    • 🌈 Filtrado por Diversidad

6. Técnicas de Arquitectura Avanzada (Advanced Architecture)

Índices Jerárquicos

  • Descripción: Crea un sistema de múltiples capas para una navegación y recuperación de información eficiente
  • Implementación: Un sistema de dos capas con resúmenes de documentos y bloques detallados

Recuperación por Conjunto

  • Descripción: Combina múltiples modelos o técnicas de recuperación para obtener resultados más robustos y precisos
  • Método: Utiliza mecanismos de votación o ponderación para determinar el conjunto final de documentos recuperados

RAPTOR

  • Descripción: Recuperación organizada en árbol con procesamiento de abstracción recursiva
  • Características: Procesa recursivamente los documentos recuperados utilizando resúmenes abstractos, organizando la información en una estructura de árbol

7. Técnicas Adaptativas (Adaptive Techniques)

Recuperación Adaptativa

  • Descripción: Ajusta dinámicamente las estrategias de recuperación según el tipo de consulta y el contexto del usuario
  • Funcionalidad: Utiliza estrategias de recuperación personalizadas para diferentes categorías de consultas

Self RAG

  • Descripción: Un enfoque dinámico que combina métodos de recuperación y generación
  • Proceso: Decisión de recuperación → Recuperación de documentos → Evaluación de relevancia → Generación de respuesta

RAG Correctivo (CRAG)

  • Descripción: Un método RAG complejo que evalúa y corrige dinámicamente el proceso de recuperación
  • Componentes: Evaluador de recuperación, refinamiento de conocimiento, reescritor de consultas de búsqueda web

8. Técnicas Multimodales (Multi-modal)

Recuperación Multimodal

  • Descripción: Extiende las capacidades de RAG para procesar múltiples tipos de datos
  • Métodos:
    • Títulos Multimedia: Genera títulos para todos los datos multimedia
    • Colpali: Convierte todos los datos en imágenes y utiliza LLM visuales

9. Integración de Grafos de Conocimiento

Integración de Grafos de Conocimiento (Graph RAG)

  • Descripción: Integra datos estructurados de grafos de conocimiento para enriquecer el contexto
  • Funcionalidad: Recupera entidades y relaciones relevantes para la consulta

GraphRAG (Microsoft)

  • Descripción: El sistema GraphRAG de código abierto de Microsoft
  • Características: Extrae entidades y relaciones de unidades de texto, generando resúmenes de la comunidad

10. Técnicas de Evaluación (Evaluation)

Evaluación DeepEval

  • Descripción: Evaluación integral de sistemas RAG
  • Métricas: Corrección, fidelidad, relevancia contextual

Evaluación GroUSE

  • Descripción: Evaluación de LLM basada en el contexto
  • Funcionalidad: Evalúa utilizando las 6 métricas del marco GroUSE

Guía de Implementación

Inicio Rápido

# Clonar el repositorio
git clone https://github.com/NirDiamant/RAG_Techniques.git

# Navegar al directorio de una técnica específica
cd all_rag_techniques/technique-name

# Seguir las guías de implementación detalladas en cada directorio de técnica

Soporte de Pila Tecnológica

  • LangChain: Soporte de marco principal
  • LlamaIndex: Soporte para algunas técnicas
  • OpenAI API: Integración de modelos generativos
  • Varios modelos de incrustación: Soporta múltiples métodos de vectorización

Sugerencias de Ruta de Aprendizaje

Ruta para Principiantes

  1. RAG Simple → Comprender los conceptos básicos
  2. Elegir Tamaño de Fragmento → Aprender la fragmentación de texto
  3. Transformaciones de Consulta → Entender la optimización de consultas
  4. Enriquecimiento de Contexto → Dominar el procesamiento de contexto

Ruta Avanzada

  1. Fragmentación Semántica → Técnicas avanzadas de fragmentación
  2. Recuperación por Fusión → Combinación de múltiples métodos
  3. Reclasificación Inteligente → Optimización de resultados
  4. Índices Jerárquicos → Arquitecturas complejas

Ruta para Expertos

  1. Self RAG → Sistemas adaptativos
  2. Graph RAG → Integración de grafos de conocimiento
  3. RAPTOR → Procesamiento recursivo
  4. Recuperación Multimodal → Procesamiento multimodal

Este material de aprendizaje ofrece una ruta completa para el estudio de las técnicas RAG, desde lo básico hasta lo avanzado, adecuada para estudiantes de diferentes niveles, y es uno de los recursos más completos sobre técnicas RAG disponibles actualmente.