Compartir a través de


Diseño y desarrollo de una solución RAG

El patrón Retrieval-Augmented Generation (RAG) es un enfoque estándar del sector para crear aplicaciones que usan modelos de lenguaje para procesar datos específicos o propietarios que el modelo aún no conoce. La arquitectura es sencilla, pero diseñar, experimentar y evaluar soluciones RAG que caben en esta arquitectura implican muchas consideraciones complejas que se benefician de un enfoque riguroso y científico.

Este artículo es la introducción de una serie. Cada artículo de la serie trata una fase específica en el diseño de soluciones RAG.

Los otros artículos de esta serie tratan las siguientes consideraciones:

  • Cómo determinar qué documentos y consultas de prueba se usarán durante la evaluación
  • Cómo elegir una estrategia de fragmentación
  • Cómo determinar qué fragmentos debe enriquecer y cómo enriquecerlos
  • Cómo elegir el modelo de inserción adecuado
  • Configuración del índice de búsqueda
  • Cómo determinar qué búsquedas, como vector, texto completo, híbrido y varias búsquedas manuales, debe realizar
  • Evaluación de cada paso

Arquitectura RAG

Diagrama que muestra la arquitectura de alto nivel de una solución RAG, incluido el flujo de solicitudes y la canalización de datos.

Flujo de aplicaciones RAG

En el flujo de trabajo siguiente se describe un flujo de alto nivel para una aplicación RAG.

  1. El usuario emite una consulta en una interfaz de usuario de aplicación inteligente.
  2. La aplicación inteligente realiza una llamada API a un orquestador. Puede implementar el orquestador con herramientas o plataformas como Kernel semántico, flujo de mensajes de Azure Machine Learning o LangChain.
  3. El orquestador determina qué búsqueda realizar en Azure AI Search y emite la consulta.
  4. El orquestador empaqueta los principales N resultados de la consulta. Empaqueta los principales resultados y la consulta como contexto dentro de un indicador y envía el aviso al modelo de lenguaje. El orquestador devuelve la respuesta a la aplicación inteligente para que el usuario lea.

Flujo de canalización de datos de RAG

En el flujo de trabajo siguiente se describe un flujo de alto nivel para una canalización de datos que proporciona datos de base para una aplicación RAG.

  1. Los documentos se insertan o extraen en una canalización de datos.
  2. La canalización de datos procesa cada documento individualmente mediante los pasos siguientes:
    1. Documento fragmentado: divide el documento en partes semánticamente relevantes que idealmente tienen una sola idea o concepto.
    2. Enriquecer fragmentos: agrega campos de metadatos en función del contenido de los fragmentos que el proceso crea. La canalización de datos clasifica los metadatos en campos discretos, como título, resumen y palabras clave.
    3. Insertar fragmentos: usa un modelo de inserción para vectorizar el fragmento y cualquier otro campo de metadatos que se use para las búsquedas vectoriales.
    4. Conservar los fragmentos: almacena los fragmentos en el índice de búsqueda.

Consideraciones de diseño y evaluación de RAG

Debe tomar varias decisiones de implementación a medida que diseñe la solución RAG. En el diagrama siguiente se muestran algunas de las preguntas que debe formular al tomar esas decisiones.

Diagrama que muestra la arquitectura de alto nivel de una solución RAG, incluidas las preguntas que debe formular al diseñar la solución.

En la lista siguiente se proporciona una breve descripción de lo que debe hacer durante cada fase del desarrollo de soluciones RAG.

  • Durante la fase de preparación, debe:

    • Determine el dominio de la solución. Defina claramente los requisitos empresariales de la solución RAG.
    • Recopile documentos de prueba representativos. Recopile documentos de prueba para la solución RAG que sean representativas de la colección de documentos.
    • Reúne consultas de prueba. Recopile información y pruebe consultas y genere consultas sintéticas y consultas que los documentos no cubran.
  • Durante la fase de fragmentación, debe:

    • Comprender la economía de la segmentación. Entienda qué factores se deben tener en cuenta cuando evalúe el costo general de la solución de fragmentación para la colección de textos.
    • Realice el análisis de documentos. Realice las siguientes preguntas para ayudarle a tomar decisiones al analizar un tipo de documento:
      • ¿Qué contenido del documento desea omitir o excluir?
      • ¿Qué contenido desea capturar en fragmentos?
      • ¿Cómo desea fragmentar ese contenido?
    • Comprender los enfoques de segmentación. Comprenda los distintos enfoques para la fragmentación, incluidos los enfoques personalizados, de tamaño fijo y basado en oraciones, o mediante el aumento del modelo de lenguaje, el análisis de diseño de documentos y los modelos de aprendizaje automático.
    • Comprender cómo afecta la estructura del documento a la fragmentación. Elija un enfoque de fragmentación basado en el grado de estructura que tiene el documento.
  • Durante la fase de enriquecimiento de los fragmentos, debe:

    • Limpiar fragmentos. Implemente enfoques de limpieza para eliminar las diferencias que no afectan al significado del texto. Este método admite coincidencias de proximidad.
    • Aumentar fragmentos. Considere la posibilidad de aumentar los datos de fragmentos con campos de metadatos comunes y comprender sus posibles usos en la búsqueda. Obtenga información sobre las herramientas o técnicas más usadas para generar contenido de metadatos.
  • Durante la fase de inserción, debe:

    • Comprenda la importancia del modelo de inserción. Un modelo de inserción puede afectar significativamente a la relevancia de los resultados de búsqueda vectorial.
    • Elija el modelo de inserción adecuado para su caso de uso.
    • Evaluar modelos de inserción. Evalúe los modelos de inserción mediante la visualización de incrustaciones y el cálculo de las distancias de inserción.
  • Durante la fase de recuperación de información, debe:

    • Cree un índice de búsqueda. Aplique las configuraciones de búsqueda vectorial adecuadas a los campos vectoriales.
    • Descripción de las opciones de búsqueda. Tenga en cuenta los diferentes tipos de búsquedas, como vector, texto completo, híbrido y varias búsquedas manuales. Obtenga información sobre cómo dividir una consulta en subconsultas y filtrar consultas.
    • Evaluar búsquedas. Use métodos de evaluación de recuperación para evaluar la solución de búsqueda.
  • Durante la fase de evaluación de extremo a extremo del modelo de lenguaje, debe:

    • Descripción de las métricas de evaluación del modelo de lenguaje. Hay varias métricas, como la base, la integridad, el uso y la relevancia, que puede usar para evaluar la respuesta del modelo de lenguaje.
    • Comprenda las métricas de similitud y evaluación. Puede usar métricas de similitud y evaluación para evaluar la solución RAG.
    • Comprenda la importancia de la documentación, los informes y la agregación. Documente los hiperparámetros y los resultados de la evaluación. Agregue los resultados de varias consultas y visualice los resultados.
    • Use el Acelerador de experimentos RAG. Puede utilizar el repositorio de GitHub del Acelerador de Experimentos RAG para ayudar a su equipo a encontrar las mejores estrategias para la implementación de RAG a través de la realización de múltiples experimentos, así como la conservación y evaluación de los resultados.

Enfoque estructurado

Debido al número de pasos y variables, es importante seguir un proceso de evaluación estructurado para la solución RAG. Evalúe los resultados de cada paso y realice cambios en función de sus requisitos. Debe evaluar cada paso de forma independiente para la optimización, pero recuerde que el resultado final es lo que experimentan los clientes. Asegúrese de que comprende todos los pasos de este proceso antes de determinar sus propios criterios de aceptación para cada paso.

Colaboradores

Microsoft mantiene este artículo. Originalmente fue escrito por los siguientes colaboradores.

Autores principales:

Para ver perfiles de LinkedIn no públicos, inicie sesión en LinkedIn.

Pasos siguientes