Editar

Compartir vía


Diseño y desarrollo de una solución RAG

Servicios de Azure AI
Azure AI Search
Azure OpenAI Service
Azure Machine Learning

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 la aplicación 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 de 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 resultados principales de N de la consulta. Empaqueta los resultados principales y la consulta como contexto dentro de un símbolo del sistema y envía el mensaje al modelo de lenguaje. El orquestador devuelve la respuesta a la aplicación inteligente para que el usuario la 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 que la canalización crea en función del contenido de los fragmentos. 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 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 de , 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.
    • Recopilación de 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 fragmentación. Comprenda qué factores se deben tener en cuenta a medida que evalúe el costo general de la solución de fragmentación para la colección de texto.
    • 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 fragmentació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 fragmentos de , 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 de , 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 lafase de evaluación de un extremo a otro 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 usar el repositorio de GitHub del acelerador de experimentos rag de para ayudar a su equipo a encontrar las mejores estrategias para la implementación de RAG ejecutando varios experimentos, conservando y evaluando 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