Compartir a través de


Creación de sistemas avanzados de generación aumentada de recuperación

En este artículo se explora la generación aumentada por recuperación (RAG) en profundidad. Se describen el trabajo y las consideraciones necesarios para que los desarrolladores creen una solución RAG lista para producción.

Para obtener información sobre dos opciones para crear una aplicación de "chat sobre sus datos", uno de los principales casos de uso para la inteligencia artificial generativa en las empresas, consulte Ampliación de los MLL con RAG o ajuste.

En el diagrama siguiente se muestran los pasos o fases de RAG:

Diagrama que muestra un flujo RAG simple, con cuadros que representan pasos o procesos y flechas que conectan cada cuadro.

Esta representación se denomina RAG simple. Es una manera útil de comprender inicialmente los mecanismos, roles y responsabilidades necesarios para implementar un sistema de chat basado en RAG.

Pero una implementación del mundo real tiene muchos más pasos de preprocesamiento y posprocesamiento para preparar los artículos, consultas y respuestas para su uso. El siguiente diagrama es una representación más realista de un RAG, a veces denominado RAG avanzado:

Diagrama que muestra el flujo rag avanzado de lógica como una serie de cuadros con flechas entre ellos.

En este artículo se proporciona un marco conceptual para comprender las fases de preprocesamiento y posprocesamiento en un sistema de chat basado en RAG real:

  • Fase de ingesta
  • Fase de flujo de inferencia
  • Fase de evaluación

Ingesta

La ingesta consiste principalmente en almacenar los documentos de la organización para que se puedan recuperar fácilmente y así responder a una pregunta de un usuario. El desafío es asegurarse de que las partes de los documentos que mejor coincidan con la consulta del usuario se encuentran y se usan durante la inferencia. La coincidencia se logra principalmente a través de incrustaciones vectorizadas y una búsqueda de similitud coseno. Sin embargo, la coincidencia se facilita al comprender la naturaleza del contenido (por ejemplo, patrones y formularios) y la estrategia de la organización de datos (la estructura de los datos cuando se almacena en la base de datos vectorial).

Para la ingesta, los desarrolladores deben tener en cuenta los pasos siguientes:

  • Preprocesamiento y extracción de contenido
  • Estrategia de fragmentación
  • Organización de fragmentación
  • Estrategia de actualización

Preprocesamiento y extracción de contenido

El contenido limpio y preciso es una de las mejores maneras de mejorar la calidad general de un sistema de chat basado en RAG. Para obtener contenido limpio y preciso, empiece por analizar la forma y la forma de los documentos que se van a indexar. ¿Los documentos se ajustan a los patrones de contenido especificados, como la documentación? Si no es así, ¿qué tipos de preguntas pueden responder los documentos?

Como mínimo, cree pasos en la canalización de ingesta para:

  • Estandarizar formatos de texto
  • Controlar caracteres especiales
  • Quitar contenido no relacionado y obsoleto
  • Cuenta del contenido con versiones
  • Cuenta de la experiencia de contenido (pestañas, imágenes, tablas)
  • Extracción de metadatos

Parte de esta información (como los metadatos, por ejemplo) podría ser útil si se mantiene con el documento de la base de datos vectorial para usarla durante el proceso de recuperación y evaluación en la canalización de inferencia. También se puede combinar con el fragmento de texto para modificar la representación vectorial del fragmento.

Estrategia de fragmentación

Como desarrollador, debe decidir cómo dividir un documento más grande en fragmentos más pequeños. La fragmentación puede mejorar la relevancia del contenido complementario que se envía al LLM para responder de manera precisa a las consultas de los usuarios. Considere también cómo usar los fragmentos después de la recuperación. Los diseñadores de sistemas deben investigar técnicas comunes del sector y realizar algunas experimentaciones. Incluso puede probar la estrategia de forma limitada dentro de su organización.

Los desarrolladores deben tener en cuenta lo siguiente:

  • optimización del tamaño de fragmento: determine el tamaño de fragmento ideal y cómo designar un fragmento. ¿Por sección? ¿Por párrafo? ¿Por frase?
  • Fragmentos de ventana solapados y deslizantes: Determine si se debe dividir el contenido en fragmentos discretos, o si los fragmentos se solaparán. Incluso se pueden hacer ambos, en un diseño de ventana deslizante.
  • Small2Big: cuando se realiza la fragmentación en un nivel granular como una sola oración, ¿se organiza el contenido para que sea fácil encontrar las oraciones vecinas o el párrafo que contiene la oración? Recuperar esta información y proporcionarla al LLM podría proporcionarle más contexto para responder a las consultas del usuario. Para obtener más información, consulte la sección siguiente.

Organización de fragmentación

En un sistema RAG, organizar estratégicamente los datos en la base de datos vectorial es una clave para recuperar eficazmente la información pertinente para aumentar el proceso de generación. Estos son los tipos de estrategias de indexación y recuperación que podría considerar:

  • índices jerárquicos: este enfoque implica la creación de varias capas de índices. Un índice de nivel superior (un índice de resumen) reduce rápidamente el espacio de búsqueda a un subconjunto de fragmentos potencialmente relevantes. Un índice de segundo nivel (un índice de fragmentos) proporciona referencias más detalladas a los datos reales. Este método puede acelerar significativamente el proceso de recuperación porque reduce el número de entradas que se van a examinar en el índice detallado filtrando primero por el índice de resumen.
  • índices especializados: según la naturaleza de los datos y las relaciones entre fragmentos, puede usar índices especializados como bases de datos relacionales o basadas en grafos:
    • Los índices basados en grafos son útiles cuando los fragmentos tienen información o relaciones interconectadas que pueden mejorar la recuperación, como redes de citas o gráficos de conocimiento.
    • las bases de datos relacionales pueden ser eficaces si los fragmentos están estructurados en un formato tabular. Use consultas SQL para filtrar y recuperar datos basados en atributos o relaciones específicos.
  • índices híbridos: un enfoque híbrido combina varios métodos de indexación para aplicar sus puntos fuertes a su estrategia general. Por ejemplo, puede usar un índice jerárquico para el filtrado inicial y un índice basado en grafos para explorar dinámicamente las relaciones entre fragmentos durante la recuperación.

Optimización de alineación

Para mejorar la relevancia y la precisión de los fragmentos recuperados, alinee estrechamente con la pregunta o los tipos de consulta que responden. Una estrategia consiste en generar e insertar una pregunta hipotética para cada fragmento que represente la pregunta que el fragmento es más adecuado para responder. Esto ayuda de varias maneras:

  • Mejor coincidencia: Durante el proceso de recuperación, el sistema puede comparar la consulta entrante con estas preguntas hipotéticas para identificar la mejor coincidencia y mejorar la relevancia de los fragmentos que se recuperan.
  • Datos de entrenamiento para modelos de aprendizaje automático: estos emparejamientos de preguntas y fragmentos pueden ser datos de entrenamiento para mejorar los modelos de aprendizaje automático que son los componentes subyacentes del sistema RAG. El sistema RAG aprende qué tipos de preguntas se responden mejor por cada fragmento.
  • control de consultas directas: si una consulta de usuario real coincide estrechamente con una pregunta hipotética, el sistema puede recuperar y usar rápidamente el fragmento correspondiente y acelerar el tiempo de respuesta.

La pregunta hipotética de cada fragmento actúa como una etiqueta que guía el algoritmo de recuperación, por lo que es más centrada y contextualmente consciente. Este tipo de optimización es útil cuando los fragmentos cubren una amplia gama de temas o tipos de información.

Estrategias de actualización

Si su organización indexa documentos que se actualizan con frecuencia, es esencial mantener un corpus actualizado para asegurarse de que el componente del recuperador pueda acceder a la información más actual. El componente recuperador es la función lógica del sistema que ejecuta la consulta en la base de datos vectorial y devuelve los resultados. Estas son algunas estrategias para actualizar la base de datos vectorial en estos tipos de sistemas:

  • Actualizaciones incrementales:

    • Intervalos regulares: programe actualizaciones a intervalos regulares (por ejemplo, diarias o semanales) en función de la frecuencia de los cambios del documento. Este método garantiza que la base de datos se actualice periódicamente según una programación conocida.
    • actualizaciones basadas en desencadenadores: implemente un sistema en el que una actualización desencadena la reindexación. Por ejemplo, cualquier modificación o adición de un documento inicia automáticamente la reindexación en las secciones afectadas.
  • Actualizaciones parciales:

    • reindexación selectiva: en lugar de volver a indexar toda una base de datos, actualice solo las partes de corpus modificadas. Este enfoque puede ser más eficaz que la reindexación completa, especialmente para conjuntos de datos grandes.
    • Codificación delta: almacene solo las diferencias entre los documentos existentes y sus versiones actualizadas. Este enfoque reduce la carga de procesamiento de datos evitando la necesidad de procesar datos sin cambios.
  • Control de versiones:

    • Creación de instantáneas: mantenga versiones de corpus de documentos en distintos momentos en el tiempo. Esta técnica proporciona un mecanismo de copia de seguridad y permite al sistema revertir a versiones anteriores o hacer referencia a ellas.
    • Control de versiones del documento: use un sistema de control de versiones para realizar un seguimiento sistemático de los cambios en los documentos para mantener el historial de cambios y simplificar el proceso de actualización.
  • Actualizaciones en tiempo real:

    • procesamiento de flujos: cuando la puntualidad de la información es crítica, utilice tecnologías de procesamiento de flujos para las actualizaciones en tiempo real de bases de datos vectoriales a medida que se efectúan cambios en el documento.
    • Consulta en tiempo real: en lugar de basarse únicamente en vectores preindexados, use un enfoque de consulta de datos en vivo para respuestas actualizadas, posiblemente combinando los datos en vivo con los resultados almacenados en caché para lograr eficacia.
  • Técnicas de optimización:

    • Procesamiento por lotes: El procesamiento por lotes acumula cambios para aplicarlos con menos frecuencia, optimizando así los recursos y reduciendo la sobrecarga.

    • enfoques híbridos: combinar diversas estrategias:

      • Use actualizaciones incrementales para los cambios menores.
      • Use la reindexación completa para las actualizaciones principales.
      • Documente los cambios estructurales realizados en el corpus.

Elegir la estrategia de actualización adecuada o la combinación correcta depende de requisitos específicos, entre los que se incluyen:

  • Tamaño del corpus del documento
  • Frecuencia de actualización
  • Necesidades de datos en tiempo real
  • Disponibilidad de recursos

Evalúe estos factores en función de las necesidades de la aplicación específica. Cada enfoque tiene desventajas en complejidad, costo y latencia de actualización.

Canalización de inferencia

Los artículos se fragmentan, vectorizan y almacenan en una base de datos vectorial. Ahora, céntrese en resolver los retos de finalización.

Para obtener las finalizaciones más precisas y eficaces, debe tener en cuenta muchos factores:

  • ¿La consulta del usuario está escrita de una manera de obtener los resultados que busca el usuario?
  • ¿Infringe la consulta del usuario alguna de las directivas de la organización?
  • ¿Cómo reescribe la consulta del usuario para mejorar las posibilidades de encontrar las coincidencias más cercanas en la base de datos vectorial?
  • ¿Cómo se evalúan los resultados de la consulta para asegurarse de que los fragmentos de artículo se alinean con la consulta?
  • ¿Cómo se evalúan y modifican los resultados de la consulta antes de pasarlos al LLM para asegurarse de que los detalles más relevantes se incluyen en la finalización?
  • ¿Cómo evalúa la respuesta del LLM para asegurarse de que el resultado proporcionado por el LLM responde a la pregunta original del usuario?
  • ¿Cómo se asegura de que la respuesta de LLM cumpla con las directivas de la organización?

Toda la canalización de inferencia se ejecuta en tiempo real. No hay una manera correcta de diseñar los pasos de preprocesamiento y posprocesamiento. Es probable que elija una combinación de lógica de programación y otras llamadas de LLM. Una de las consideraciones más importantes es el equilibrio entre crear la canalización más precisa y compatible posible y el costo y la latencia necesarios para que se produzca.

Vamos a identificar estrategias específicas en cada fase de la canalización de inferencia.

Pasos de preprocesamiento de consultas

El preprocesamiento de consultas se produce inmediatamente después de que el usuario envíe su consulta:

Diagrama que repite los pasos avanzados de RAG, con énfasis en el cuadro etiquetado como los pasos de procesamiento de consultas.

El objetivo de estos pasos es asegurarse de que el usuario realiza preguntas que están dentro del ámbito del sistema y de preparar la consulta del usuario para aumentar la probabilidad de que busque los mejores fragmentos de artículo posibles mediante la búsqueda de similitud coseno o "vecino más cercano".

comprobación de directivas: este paso implica lógica que identifica, quita, marca o rechaza cierto contenido. Algunos ejemplos incluyen la eliminación de datos personales, la eliminación de expletivos y la identificación de intentos de "jailbreak". Jailbreaking se refiere a los intentos del usuario de eludir o manipular las directrices integradas de seguridad, ética o funcionamiento del modelo.

Reescritura de consultas: este paso puede ser cualquier cosa, desde ampliar acrónimos y quitar la jerga hasta reformular la pregunta de manera más abstracta para identificar conceptos y principios generales (retroalimentación).

Una variación de la retroalimentación es la inserción hipotética de documentos (HyDE). HyDE usa el LLM para responder a la pregunta del usuario, crea una inserción para esa respuesta (la inserción hipotética de documentos) y, a continuación, usa la inserción para ejecutar una búsqueda en la base de datos vectorial.

Subconsultas

El paso de procesamiento de subconsultas se basa en la consulta original. Si la consulta original es larga y compleja, puede ser útil dividirla mediante programación en varias consultas más pequeñas y, a continuación, combinar todas las respuestas.

Por ejemplo, una pregunta sobre los descubrimientos científicos en la física podría ser: "¿Quién hizo contribuciones más significativas a la física moderna, Albert Einstein o Niels Bohr?"

Dividir consultas complejas en subconsultas hacen que sean más fáciles de administrar:

  • Subconsulta 1: "¿Cuáles son las contribuciones clave de Albert Einstein a la física moderna?"
  • Subconsulta 2: "¿Cuáles son las contribuciones clave de Niels Bohr a la física moderna?"

Los resultados de estas subconsultas detallan las principales teorías y descubrimientos por cada físico. Por ejemplo:

  • Para Einstein, las contribuciones pueden incluir la teoría de la relatividad, el efecto fotoeléctrico y E=mc^2.
  • Para Bohr, las contribuciones podrían incluir el modelo de Bohr del átomo de hidrógeno, el trabajo de Bohr sobre la mecánica cuántica y el principio de complementariedad de Bohr.

Cuando estas aportaciones están descritas, se pueden evaluar para determinar subconsultas adicionales. Por ejemplo:

  • Subconsulta 3: "¿Cómo han afectado las teorías de Einstein el desarrollo de la física moderna?"
  • Subconsulta 4: "¿Cómo han afectado las teorías de Bohr el desarrollo de la física moderna?"

Estas subconsultas exploran la influencia de cada científico en la física, como:

  • Cómo las teorías de Einstein llevaron a avances en la cosmología y la teoría cuántica
  • Cómo el trabajo de Bohr contribuyó a comprender la estructura atómica y la mecánica cuántica

Combinar los resultados de estas subconsultas puede ayudar al modelo de lenguaje a formar una respuesta más completa sobre quién hizo contribuciones más significativas a la física moderna en función de sus avances teóricos. Este método simplifica la consulta compleja original accediendo a componentes más específicos y respondibles y, a continuación, sintetizando esos hallazgos en una respuesta coherente.

Enrutador de consulta

Su organización puede optar por dividir su corpus de contenido en varios almacenes vectoriales o en sistemas de recuperación completos. En ese escenario, puede usar un enrutador de consultas. Un enrutador de consultas selecciona la base de datos o índice más adecuada para proporcionar las mejores respuestas a una consulta específica.

Normalmente, un enrutador de consultas funciona en un momento después de que el usuario formule la consulta, pero antes de enviar la consulta a los sistemas de recuperación.

Este es un flujo de trabajo simplificado para un enrutador de consultas:

  1. Análisis de consultas: El LLM u otro componente analiza la consulta entrante para comprender su contenido, contexto y el tipo de información que probablemente se necesite.
  2. Selección de índice: en función del análisis, el enrutador de consultas selecciona uno o más de los índices disponibles. Cada índice puede optimizarse para distintos tipos de datos o consultas. Por ejemplo, algunos índices pueden ser más adecuados para las consultas fácticas. Otros índices pueden destacar en proporcionar opiniones o contenido subjetivo.
  3. envío de consultas: la consulta se envía al índice seleccionado.
  4. agregación de resultados: se recogen respuestas de los índices seleccionados y, posiblemente, se agregan o se procesan adicionalmente para proporcionar una respuesta completa.
  5. generación de respuestas: el paso final implica generar una respuesta coherente basada en la información recuperada, posiblemente integrando o sintetizando contenido de varios orígenes.

Su organización puede usar varios motores de recuperación o índices para los siguientes casos de uso:

  • especialización de tipos de datos: algunos índices pueden especializarse en artículos de noticias, otros en documentos académicos y otros en contenido web general o bases de datos específicas, como para información médica o legal.
  • Optimización de tipos de consulta: es posible que determinados índices se optimicen para búsquedas fácticas rápidas (por ejemplo, fechas o eventos). Otros podrían ser mejores de usar para tareas de razonamiento complejas o para consultas que requieren un conocimiento profundo del dominio.
  • diferencias algorítmicas: se pueden usar algoritmos de recuperación diferentes en distintos motores, como búsquedas de similitud basadas en vectores, búsquedas tradicionales basadas en palabras clave o modelos de comprensión semántica más avanzados.

Imagine un sistema basado en RAG que se usa en un contexto de asesoramiento médico. El sistema tiene acceso a varios índices:

  • Índice de un documento de investigación médica optimizado para explicaciones detalladas y técnicas
  • Índice de casos prácticos clínicos que proporciona ejemplos reales de síntomas y tratamientos
  • Índice de información de salud general para consultas básicas e información de salud pública

Si un usuario hace una pregunta técnica sobre los efectos biológicos de un nuevo medicamento, el enrutador de consultas podría priorizar el índice del documento de investigación médica debido a su profundidad y enfoque técnico. Para una pregunta sobre los síntomas típicos de una enfermedad común, sin embargo, el índice de salud general se puede elegir para su contenido amplio y fácil de entender.

Pasos posteriores al procesamiento de recuperación

El procesamiento posterior a la recuperación se produce después de que el componente del recuperador recupere fragmentos de contenido pertinentes de la base de datos vectorial:

Diagrama que repite los pasos avanzados de RAG, con énfasis en el cuadro etiquetado como pasos de procesamiento posteriores a la recuperación.

Con los fragmentos de contenido candidatos recuperados, el siguiente paso es validar la utilidad del fragmento de artículo al aumentar la solicitud del LLM antes de preparar la solicitud que se va a presentar al LLM.

Estos son algunos aspectos sobre las solicitudes que se deben tener en cuenta:

  • Incluir demasiada información de suplementos podría dar lugar a ignorar la información más importante.
  • Incluir información irrelevante podría influir negativamente en la respuesta.

Otra consideración es el problema de la aguja en el pajar, un término que hace referencia a una peculiaridad conocida de algunos LLM en los que el contenido al principio y al final de una solicitud tienen mayor peso para el LLM que el contenido en el medio.

Por último, considere la longitud máxima de la ventana de contexto de LLM y el número de tokens necesarios para completar solicitudes extraordinariamente largas (especialmente para consultas a escala).

Para solucionar estos problemas, una canalización de procesamiento posterior a la recuperación puede incluir los pasos siguientes:

  • Resultados de filtrado: en este paso, asegúrese de que los fragmentos de artículo devueltos por la base de datos vectorial son pertinentes para la consulta. Si no es así, el resultado se omite cuando se compone la solicitud del LLM.
  • Reclasificación: clasifica los fragmentos de artículo que se recuperan del almacén de vectores para asegurarse de que los detalles pertinentes estén tanto al principio como al final de la solicitud.
  • Compresión de mensajes: Use un modelo pequeño y económico para comprimir y resumir varios fragmentos de artículos en un único mensaje comprimido antes de enviar el mensaje al LLM.

Pasos de procesamiento posteriores a la finalización

El procesamiento posterior a la finalización se produce después de la consulta del usuario y todos los fragmentos de contenido se envían al LLM:

Diagrama que repite los pasos avanzados de RAG, con énfasis en el cuadro etiquetado como pasos de procesamiento posteriores a la finalización.

La validación de precisión se produce después de la finalización de la solicitud del LLM. Una canalización de procesamiento posterior a la finalización puede incluir los pasos siguientes:

  • Verificación de hechos: La intención es identificar las afirmaciones específicas realizadas en el artículo que se presentan como hechos y, a continuación, comprobar esos hechos para verificar su exactitud. Si se produce un error en el paso de comprobación de hechos, podría ser adecuado volver a consultar el LLM con la esperanza de obtener una mejor respuesta o devolver un mensaje de error al usuario.
  • comprobación de directiva: última línea de defensa para asegurarse de que las respuestas no contienen contenido perjudicial, ya sea para el usuario o para la organización.

Evaluación

Evaluar los resultados de un sistema no determinista no es tan sencillo como ejecutar las pruebas unitarias o las pruebas de integración con las que la mayoría de los desarrolladores están familiarizados. Debe tener en cuenta varios factores:

  • ¿Están satisfechos los usuarios con los resultados que obtienen?
  • ¿Los usuarios reciben respuestas precisas a sus preguntas?
  • ¿Cómo se capturan los comentarios de los usuarios? ¿Tiene alguna directiva que limite los datos que puede recopilar sobre los datos de usuario?
  • En el diagnóstico de respuestas no satisfactorias, ¿tiene visibilidad de todo el trabajo realizado para responder a la pregunta? ¿Mantiene un registro de cada fase en la canalización de inferencia de entradas y salidas para poder realizar el análisis de la causa principal?
  • ¿Cómo puede realizar cambios en el sistema sin regresión ni degradación de los resultados?

Capturar y actuar sobre los comentarios de los usuarios

Como se ha descrito anteriormente, es posible que tenga que trabajar con el equipo de privacidad de su organización para diseñar mecanismos de captura de comentarios, telemetría y registro para análisis forense y causa principal de una sesión de consulta.

El siguiente paso es desarrollar una canalización de evaluación. Un proceso de evaluación ayuda a hacer frente a la complejidad y el tiempo que requiere el análisis de los comentarios literales y las causas profundas de las respuestas proporcionadas por un sistema de IA. Este análisis es fundamental porque implica investigar todas las respuestas para comprender cómo la consulta de IA produjo los resultados, comprobar la idoneidad de los fragmentos de contenido que se usan en la documentación y las estrategias empleadas para dividir estos documentos.

También implica considerar cualquier paso adicional de preprocesamiento o posterior al procesamiento que pueda mejorar los resultados. Este examen detallado a menudo detecta lagunas de contenido, especialmente cuando no existe documentación adecuada para responder a la consulta de un usuario.

La creación de una canalización de evaluación es esencial para administrar la escala de estas tareas de forma eficaz. Una canalización eficaz usa herramientas personalizadas para evaluar las métricas que aproximan la calidad de las respuestas proporcionadas por la inteligencia artificial. Este sistema simplifica el proceso de determinar por qué se dio una respuesta específica a la pregunta de un usuario, qué documentos se usaron para generar esa respuesta y la eficacia de la canalización de inferencia que procesa las consultas.

Conjunto de datos golden

Una estrategia para evaluar los resultados de un sistema no determinista como un sistema de chat RAG es usar un conjunto de datos dorado. Un conjunto de datos de oro es un conjunto seleccionado de preguntas y respuestas aprobadas, metadatos (como tema y tipo de pregunta), referencias a documentos de origen que pueden servir como verdad fundamental para las respuestas e incluso variaciones (formas diferentes de expresar la diversidad de cómo los usuarios pueden formular las mismas preguntas).

Un conjunto de datos dorado representa el "mejor escenario de casos". Los desarrolladores pueden evaluar el sistema para ver cómo funciona y, a continuación, realizar pruebas de regresión cuando implementan nuevas características o actualizaciones.

Evaluación de daños

El modelado de daños es una metodología destinada a prever posibles daños, detectar deficiencias en un producto que podría suponer riesgos para las personas y desarrollar estrategias proactivas para mitigar dichos riesgos.

Una herramienta diseñada para evaluar el impacto de la tecnología, especialmente los sistemas de inteligencia artificial, presentaría varios componentes clave basados en los principios de modelado de daños, tal como se describe en los recursos proporcionados.

Las características clave de una herramienta de evaluación de daños pueden incluir:

  • de identificación de las partes interesadas: la herramienta puede ayudar a los usuarios a identificar y clasificar a varias partes interesadas afectadas por la tecnología, incluidos usuarios directos, partes afectadas indirectamente y otras entidades, como futuras generaciones o factores no humanos, como preocupaciones ambientales.

  • categorías y descripciones de daños: la herramienta puede incluir una lista completa de posibles daños, como la pérdida de privacidad, la angustia emocional o la explotación económica. La herramienta puede guiar al usuario a través de varios escenarios, ilustrar cómo la tecnología podría causar estos daños y ayudar a evaluar tanto las consecuencias deseadas como no deseadas.

  • evaluaciones de gravedad y probabilidad: la herramienta puede ayudar a los usuarios a evaluar la gravedad y la probabilidad de cada daño identificado. El usuario puede priorizar los problemas para solucionar primero. Entre los ejemplos se incluyen las evaluaciones cualitativas admitidas por los datos cuando están disponibles.

  • estrategias de mitigación: la herramienta puede sugerir posibles estrategias de mitigación después de identificar y evaluar daños. Entre los ejemplos se incluyen los cambios en el diseño del sistema, la adición de medidas de seguridad y soluciones tecnológicas alternativas que minimizan los riesgos identificados.

  • mecanismos de comentarios: la herramienta debe incorporar mecanismos para recopilar comentarios de las partes interesadas para que el proceso de evaluación de daños sea dinámico y responda a nuevas perspectivas e información.

  • documentación e informes: para la transparencia y la responsabilidad, la herramienta puede facilitar informes detallados que documenten el proceso de evaluación de daños, los resultados y las posibles acciones de mitigación de riesgos realizadas.

Estas características pueden ayudarle a identificar y mitigar los riesgos, pero también le ayudarán a diseñar sistemas de inteligencia artificial más éticos y responsables teniendo en cuenta un amplio espectro de impactos desde el principio.

Para obtener más información, consulte estos artículos:

Prueba y comprobación de las medidas de seguridad

En este artículo se describen varios procesos destinados a mitigar la posibilidad de que un sistema de chat basado en RAG se aproveche o se ponga en peligro. La formación de equipos rojos desempeña un papel fundamental para garantizar que las mitigaciones sean eficaces. La formación de equipos rojos implica simular las acciones de un posible adversario para descubrir posibles puntos débiles o vulnerabilidades en la aplicación. Este enfoque es especialmente fundamental para abordar el riesgo significativo de jailbreaking.

Los desarrolladores deben evaluar rigurosamente las medidas de seguridad del sistema de chat basadas en RAG en varios escenarios de directrices para probarlos y comprobarlos de forma eficaz. Este enfoque no solo garantiza la solidez, sino que también le ayuda a ajustar las respuestas del sistema para cumplir estrictamente los estándares éticos definidos y los procedimientos operativos.

Consideraciones finales para el diseño de aplicaciones

Esta es una breve lista de aspectos que se deben tener en cuenta y otros aspectos de este artículo que podrían afectar a las decisiones de diseño de aplicaciones:

  • Reconozca la naturaleza no determinista de la inteligencia artificial generativa en el diseño. Planee la variabilidad en las salidas y configure mecanismos para garantizar la coherencia y relevancia en las respuestas.
  • Evalúe las ventajas de preprocesar las solicitudes del usuario frente al posible aumento de la latencia y los costos. Simplifique o modifique las solicitudes antes de que el envío mejore la calidad de la respuesta, pero podría agregar complejidad y tiempo al ciclo de respuesta.
  • Para mejorar el rendimiento, investigue estrategias para paralelizar solicitudes LLM. Este enfoque podría reducir la latencia, pero requiere una administración cuidadosa para evitar una mayor complejidad y posibles implicaciones en los costos.

Si desea empezar a experimentar con la creación de una solución de inteligencia artificial generativa inmediatamente, se recomienda echar un vistazo a Introducción al chat mediante su propio ejemplo de datos para Python. El tutorial también está disponible para .NET, Javay javaScript.