Para que un modelo de IA se desempeñe de manera efectiva en dominios especializados, requiere acceso a un conocimiento previo relevante. Un asistente de chat de atención al cliente, por ejemplo, necesita información detallada sobre el negocio al que sirve, y una herramienta de análisis legal debe recurrir a una base de datos completa de casos pasados.
Para equipar modelos de idiomas grandes (LLMS) Con este conocimiento, los desarrolladores a menudo usan Generación aumentada de recuperación (TRAPO). Esta técnica recupera la información pertinente de una base de conocimiento y la incorpora a la solicitud del usuario, mejorando significativamente las respuestas del modelo. Sin embargo, una limitación clave de los sistemas de RAG tradicionales es que a menudo pierden matices contextuales al codificar datos, lo que lleva a recuperaciones irrelevantes o incompletas de la base de conocimiento.
Desafíos en el trapo tradicional
En el trapo tradicional, los documentos a menudo se dividen en trozos más pequeños para optimizar la eficiencia de recuperación. Aunque este método funciona bien en muchos casos, puede introducir desafíos cuando los fragmentos individuales carecen del contexto necesario. Por ejemplo, si una política establece que el trabajo remoto requiere “6 meses de tenencia” (fragmento 1) y “aprobación de recursos humanos para excepciones” (fragmento 3), pero omite la fragmentación media que vincula las excepciones con la aprobación del gerente, un usuario que pregunta sobre la elegibilidad para un empleado de 3 meses de tenencia podría recibir un “no” inquieto en lugar de la “solo con la aprobación de la HR”. Esto ocurre porque los fragmentos aislados no pueden preservar las dependencias entre las cláusulas, destacando una limitación clave de las estrategias básicas de fragmentación en los sistemas de trapo.
La recuperación contextual mejora el RAG tradicional al agregar un contexto explicativo específico de fragmento a cada fragmento antes de generar incrustaciones. Este enfoque enriquece la representación vectorial con información contextual relevante, lo que permite una recuperación más precisa del contenido relacionado semánticamente al responder a las consultas de los usuarios. Por ejemplo, cuando se le pregunta sobre la elegibilidad del trabajo remoto, obtiene tanto el requisito de tenencia como la cláusula de excepción de recursos humanos, lo que permite que el LLM proporcione una respuesta precisa como “Normalmente no, pero HR puede aprobar excepciones”. Al coser de manera inteligente la información fragmentada, la recuperación contextual mitiga las trampas de la fragmentación rígida, entregando respuestas más confiables y matizadas.
En esta publicación, demostramos cómo usar la recuperación contextual con antropía y roca de Amazon Bases de conocimiento.
Descripción general de la solución
Esta solución utiliza bases de conocimiento de roca madre de Amazon, incorporando una función lambda personalizada para transformar datos durante el proceso de ingestión de la base de conocimiento. Esta función lambda procesa documentos de Servicio de almacenamiento simple de Amazon (Amazon S3), los fragmenta en piezas más pequeñas, enriquece cada fragmento con información contextual utilizando Claude de Anthrope en la roca madre de Amazon, y luego guarda los resultados a un cubo S3 intermedio. Aquí hay una explicación paso a paso:
- Lea los archivos de entrada de un cubo S3 especificado en el evento.
- Datos de entrada de fragmentos en fragmentos más pequeños.
- Genere información contextual para cada fragmento utilizando Claude 3 Haiku de Anthrope
- Escriba trozos procesados con sus metadatos de regreso al cubo S3 intermedio
El siguiente diagrama es la arquitectura de la solución.
Requisitos previos
Para implementar la solución, complete los siguientes pasos de requisito previo:
Antes de comenzar, puede implementar esta solución descargando los archivos requeridos y siguiendo las instrucciones en sus correspondientes Repositorio de Github. Esta arquitectura se basa en la solución de fragmentación propuesta para implementar la recuperación contextual utilizando las bases de conocimiento de Amazon Bedrock.
Implementar la recuperación contextual en la roca madre de Amazon
En esta sección, demostramos cómo usar la solución de fragmentación personalizada propuesta para implementar la recuperación contextual utilizando las bases de conocimiento de Amazon Bedrock. Los desarrolladores pueden usar estrategias de fragmentación personalizadas en Amazon Bedrock para optimizar cómo los documentos o conjuntos de datos grandes se dividen en piezas más pequeñas y más manejables para procesar por modelos de base (FMS). Este enfoque permite un manejo más eficiente y efectivo del contenido de forma larga, mejorando la calidad de las respuestas. Al adaptar el método de fragmentación a las características específicas de los datos y los requisitos de la tarea en cuestión, los desarrolladores pueden mejorar el rendimiento de las aplicaciones de procesamiento del lenguaje natural construidas en el lecho de roca de Amazon. La fragmentación personalizada puede involucrar técnicas como segmentación semántica, ventanas deslizantes con superposición o usar estructura de documentos para crear divisiones lógicas en el texto.
Para implementar la recuperación contextual en Amazon Bedrock, complete los siguientes pasos, que se pueden encontrar en el cuaderno en el Repositorio de Github.
Para configurar el entorno, siga estos pasos:
- Instale las dependencias requeridas:
- Importar las bibliotecas requeridas y configurar clientes AWS:
- Definir los parámetros de la base de conocimiento:
Crear bases de conocimiento con diferentes estrategias de fragmentación
Para crear bases de conocimiento con diferentes estrategias de fragmentación, use el siguiente código.
- Fragmentación estándar fija:
- Formas personalizadas con la función Lambda
Evaluar el rendimiento utilizando el marco ragas
Para evaluar el rendimiento utilizando el marco Ragas, siga estos pasos:
- Configurar la evaluación de ragas:
- Prepare el conjunto de datos de evaluación:
- Ejecutar la evaluación y comparar los resultados:
Puntos de referencia de rendimiento
Para evaluar el rendimiento del enfoque de recuperación contextual propuesto, Utilizamos la Guía de decisión de AWS: Elegir un servicio de IA generativo Como documento para pruebas de trapo. Configuramos dos bases de conocimiento de roca madre de Amazon para la evaluación:
- Una base de conocimiento con la estrategia de fragmentación predeterminada, que utiliza 300 tokens por fragmento con una superposición del 20%
- Otra base de conocimiento con el enfoque de fragmentación de recuperación contextual personalizada, que tiene un transformador de lambda de recuperación contextual personalizada además de la estrategia de fragmentación fija que también usa 300 tokens por fragmento con una superposición del 20%
Utilizamos el marco Ragas para evaluar el rendimiento de estos dos enfoques utilizando pequeños conjuntos de datos. Específicamente, observamos las siguientes métricas:
context_recall– El recuerdo del contexto mide cuántos de los documentos relevantes (o piezas de información) se recuperaron con éxitocontext_precision– La precisión del contexto es una métrica que mide la proporción de trozos relevantes en elretrieved_contextsanswer_correctness– La evaluación de la corrección de la respuesta implica medir la precisión de la respuesta generada en comparación con la verdad del suelo
Los resultados obtenidos utilizando la estrategia de fragmentación predeterminada se presentan en la siguiente tabla.
Los resultados obtenidos utilizando la estrategia de fragmentación de recuperación contextual se presentan en la siguiente tabla. Demuestra un rendimiento mejorado en las métricas clave evaluadas, incluido el recuerdo del contexto, la precisión del contexto y la corrección de respuestas.
Al agregar los resultados, podemos observar que el enfoque de fragmentación contextual superó la estrategia de fragmentación predeterminada en todo el context_recall, context_precisiony answer_correctness métrica. Esto indica los beneficios de las técnicas de recuperación contextuales más sofisticadas implementadas.
Consideraciones de implementación
Al implementar la recuperación contextual utilizando el lecho de roca de Amazon, varios factores necesitan una consideración cuidadosa. Primero, la estrategia de fragmentación personalizada debe optimizarse tanto para el rendimiento como para la precisión, lo que requiere pruebas exhaustivas en diferentes tipos y tamaños de documentos. La asignación de memoria y la configuración de tiempo de espera de la función Lambda deben calibrarse en función de los requisitos esperados de complejidad y procesamiento de documentos, con recomendaciones iniciales de memoria de 1024 MB y tiempo de espera de 900 segundos que sirven como configuraciones de referencia. Las organizaciones también deben configurar los roles de IAM con el principio de menor privilegio mientras mantienen permisos suficientes para que Lambda interactúe con Amazon S3 y Amazon Bedrock Services. Además, el proceso de vectorización y la configuración de la base de conocimiento deben ajustarse para equilibrar entre la precisión de la recuperación y la eficiencia computacional, particularmente al escalar a conjuntos de datos más grandes.
La escalabilidad de la infraestructura y las consideraciones de monitoreo son igualmente cruciales para la implementación exitosa. Las organizaciones deben implementar mecanismos sólidos de manejo de errores dentro de la función Lambda para administrar varios formatos de documentos y fallas potenciales de procesamiento con gracia. Se deben establecer sistemas de monitoreo para rastrear las métricas clave, como el rendimiento de la fragmentación, la precisión de la recuperación y la latencia del sistema, permitiendo la optimización y el mantenimiento proactivos.
El uso de Langfuse con el lecho de roca de Amazon es una buena opción para introducir la observabilidad de esta solución. La estructura del cubo S3 para el almacenamiento de fuente e intermedia debe diseñarse con políticas claras del ciclo de vida y controles de acceso y considerar los requisitos de disponibilidad y residencia de datos regionales. Además, la implementación de un enfoque de implementación por etapas, comenzando con un subconjunto de datos antes de escalar a las cargas de trabajo de producción completa, puede ayudar a identificar y abordar posibles cuellos de botella u oportunidades de optimización al principio del proceso de implementación.
Limpieza
Cuando haya terminado de experimentar con la solución, limpie los recursos que creó para evitar incurrir en cargos futuros.
Conclusión
Al combinar los modelos lingüísticos sofisticados de Anthrope con la robusta infraestructura de la roca madre de Amazon, las organizaciones ahora pueden implementar sistemas inteligentes para la recuperación de información que ofrecen respuestas matizadas profundamente contextualizadas. Los pasos de implementación descritos en esta publicación proporcionan una vía clara para que las organizaciones usen capacidades de recuperación contextual a través de Amazon Bedrock. Siguiendo el proceso de configuración detallado, desde la configuración de los permisos de IAM hasta la implementación de estrategias de fragmentación personalizadas, los desarrolladores y organizaciones pueden desbloquear todo el potencial de los sistemas AI conscientes del contexto.
Al aprovechar los modelos lingüísticos de Anthrope, las organizaciones pueden ofrecer resultados más precisos y significativos a sus usuarios mientras se mantienen a la vanguardia de la innovación de IA. Puede comenzar hoy con la recuperación contextual utilizando los modelos lingüísticos de Anthrope a través de Amazon Bedrock y transformar cómo su IA procesa la información con una prueba de concepto a pequeña escala utilizando sus datos existentes. Para una guía personalizada sobre la implementación, comuníquese con su equipo de cuenta de AWS.
Sobre los autores
Suheel farooq es ingeniero principal en la ingeniería de apoyo de AWS, especializada en IA generativa, inteligencia artificial y aprendizaje automático. Como experto en la materia en Amazon Bedrock y Sagemaker, ayuda a los clientes empresariales a diseñar, construir, modernizar y escalar sus cargas de trabajo AI/ML y AI generativas en AWS. En su tiempo libre, a Suheel le gusta hacer ejercicio y caminar.
Qingwei Li es especialista en aprendizaje automático en Amazon Web Services. Recibió su Ph.D. En la investigación de operaciones después de que rompió la cuenta de subvenciones de investigación de su asesor y no pudo entregar el Premio Nobel que prometió. Actualmente ayuda a los clientes en la industria de servicios financieros y de seguros a construir soluciones de aprendizaje automático en AWS. En su tiempo libre, le gusta leer y enseñar.
Vinita es un arquitecto de soluciones especializadas sin servidor senior en AWS. Combina el conocimiento de AWS con una fuerte perspicacia empresarial con las soluciones innovadoras de arquitecto que generan un valor cuantificable para los clientes y ha sido excepcional para navegar en desafíos complejos. La experiencia técnica de Vinita en la modernización de aplicaciones, la genai, la computación en la nube y la capacidad de impulsar el impacto comercial medible le hacen mostrar un gran impacto en el viaje de los clientes con AWS.
Sharon Li es un arquitecto de soluciones especializadas de IA/ML en Amazon Web Services (AWS) con sede en Boston, Massachusetts. Con una pasión por aprovechar la tecnología de vanguardia, Sharon está a la vanguardia de desarrollar e implementar soluciones innovadoras de IA generativas en la plataforma AWS Cloud.
Venkata Moparthi es un arquitecto senior de soluciones, se especializa en migraciones en la nube, IA generativa y arquitectura segura para servicios financieros y otras industrias. Combina experiencia técnica con estrategias centradas en el cliente para acelerar la transformación digital e impulsar los resultados comerciales a través de soluciones en la nube optimizadas.