Uso de la verificación de fundamento contextual para filtrar las alucinaciones en las respuestas - Amazon Bedrock

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de la verificación de fundamento contextual para filtrar las alucinaciones en las respuestas

Las barreras de protección de Amazon Bedrock admiten la verificación de fundamento contextual para detectar y filtrar las alucinaciones en las respuestas de los modelos cuando se proporciona un origen de referencia y una consulta de un usuario. Los casos de uso admitidos abarcan agentes de generación aumentada por recuperación (RAG), de resumen, de parafraseo o conversacionales que se basan en un origen de referencia, como pases obtenidos en RAG o en el historial de conversaciones, para que los agentes fundamenten las conversaciones.

La verificación de fundamento contextual comprueba la relevancia de cada fragmento procesado. Si un fragmento se considera pertinente, se considera pertinente toda la respuesta, ya que contiene la respuesta a la consulta del usuario. En el caso de la API de transmisión, esto puede provocar que se devuelva una respuesta irrelevante al usuario y que solo se marque como irrelevante una vez que se haya transmitido toda la respuesta.

La verificación de fundamento contextual evalúa las alucinaciones de dos paradigmas:

  • Fundamento: comprueba si la respuesta del modelo es precisa desde el punto de vista fáctico en función del origen y se basa en el origen. Cualquier información nueva que se introduzca en la respuesta se considerará infundada.

  • Relevancia: comprueba si la respuesta del modelo es relevante para la consulta del usuario.

Considere un ejemplo en el que el origen de la referencia contiene “Londres es la capital del Reino Unido. Tokio es la capital de Japón” y la consulta del usuario es “¿Cuál es la capital de Japón?”. Una respuesta como “La capital de Japón es Londres” se considerará infundada y objetivamente incorrecta, mientras que una respuesta como “La capital del Reino Unido es Londres” se considerará irrelevante, incluso si es correcta y se basa en el origen.

nota

Cuando una solicitud incluye varias etiquetas grounding_source, la barrera de protección combina y evalúa todos los valores grounding_source proporcionados juntos, en lugar de considerar cada grounding_source por separado. Este comportamiento es idéntico para la etiqueta query.

nota

Actualmente, la política de fundamento contextual admite un máximo de 100 000 caracteres para el origen del fundamento, 1000 caracteres para la consulta y 5000 caracteres para la respuesta.

Puntuaciones y umbrales de confianza

La verificación de fundamento contextual genera puntuaciones de confianza correspondientes al fundamento y la relevancia de cada respuesta del modelo procesada en función del origen y la consulta del usuario proporcionados. Puede configurar umbrales para filtrar las respuestas del modelo en función de las puntuaciones generadas. El umbral de filtrado determina la puntuación de confianza mínima permitida para que la respuesta del modelo se considere fundada y relevante en la aplicación de IA generativa. Por ejemplo, si el umbral de fundamento y el umbral de relevancia están establecidos en 0,7 cada uno, todas las respuestas del modelo con una puntuación de fundamento o de relevancia inferior a 0,7 se detectarán como alucinaciones y se bloquearán en la aplicación. A medida que se incrementa el umbral de filtrado, aumenta la probabilidad de bloquear contenido irrelevante y sin fundamento, y disminuye la probabilidad de ver contenido alucinado en la aplicación. Puede configurar valores de umbral de fundamento y relevancia entre 0 y 0,99. Un umbral de 1 no es válido, ya que bloquearía todo el contenido.

La verificación de fundamento contextual requiere tres componentes para realizar la verificación: el origen del fundamento, la consulta y el contenido que se debe proteger (o la respuesta del modelo). Se configuran de forma diferente en función de si se utiliza Invoke APIs, Converse APIs, o ApplyGuardrail directamente.

  • Origen del fundamento: información contextual necesaria para responder a las consultas de los usuarios. Por ejemplo, “Londres es la capital del Reino Unido. Tokio es la capital de Japón”.

  • Consulta: pregunta que puede hacer un usuario. Por ejemplo, “¿Cuál es la capital de Japón?”.

  • Contenido que se debe proteger: el texto que se debe proteger en relación con el origen del fundamento y la consulta. Para Invoke y Converse APIs, esta es la respuesta del modelo. Por ejemplo, puede ser “La capital de Japón es Tokio”.

Ejemplo sin fundamento

  • Origen del fundamento: “Londres es la capital del Reino Unido. Tokio es la capital de Japón”.

  • Consulta: “¿Cuál es la capital de Japón?”

  • Contenido a proteger: “La capital de Japón es Londres”.

En este ejemplo, el contenido que se debe proteger es relevante para la consulta, pero carece de fundamento, ya que no utiliza correctamente el origen del fundamento. Este ejemplo tendría una puntuación de fundamento baja.

Ejemplo irrelevante

  • Origen del fundamento: “Londres es la capital del Reino Unido. Tokio es la capital de Japón”.

  • Consulta: “¿Cuál es la capital de Japón?”

  • Contenido a proteger: “La capital del Reino Unido es Londres”.

En este ejemplo, el contenido que se debe proteger está fundamentado pero no es relevante. Utiliza información del origen del fundamento, pero no responde a la consulta. Esto tendría una puntuación de fundamento baja.

Ejemplo irrelevante y sin fundamento

  • Origen del fundamento: “Londres es la capital del Reino Unido. Tokio es la capital de Japón”.

  • Consulta: “¿Cuál es la capital de Japón?”

  • Contenido a proteger: “Afuera está lloviendo”.

En este ejemplo, el contenido que se debe proteger no está fundamentado ni es relevante. No utiliza información del origen del fundamento ni responde a la consulta. Esto tendría una puntuación de fundamento y de relevancia baja.

Más ejemplos

Considere una aplicación bancaria diseñada para responder a las preguntas relacionadas con las tarifas y los cargos.

Origen:

  • La apertura de una cuenta corriente no conlleva ningún cargo.

  • La tarifa mensual para mantener una cuenta corriente es de 10 USD.

  • Hay una comisión por transacción del 1 % para las transferencias internacionales.

  • No hay cargos asociados a las transferencias nacionales.

  • Los cargos asociados a los pagos atrasados de facturas de tarjetas de crédito son del 23,99 %.

Según el origen anterior, puede haber cuatro escenarios según la consulta del usuario.

Fundamentada y relevante

  • P: ¿Cuáles son los gastos asociados a una cuenta corriente?

  • R: La cuota mensual para mantener una cuenta corriente es de 10 USD. No hay cargos asociados a las transferencias nacionales. Sin embargo, hay una comisión por transacción del 1 % para las transferencias internacionales. La apertura de una cuenta corriente no conlleva ningún cargo.

No fundamentada pero relevante

  • P: ¿Cuál es la comisión por transacción asociada a la tarjeta de crédito?

  • P: La comisión por transacción asociada a la tarjeta de crédito es del 23,99 %.

Fundamentada pero irrelevante

  • P: ¿Cuáles son los cargos por usar una cuenta bancaria corriente?

  • R: Según la información proporcionada, el recargo por pago atrasado de una tarjeta de crédito es del 23,99 %.

No fundamentada e irrelevante

  • P: ¿Cuáles son los cargos por usar una cuenta bancaria corriente?

  • R: Los cargos de la cuenta de corretaje son de 0,5 USD por transacción comercial.

Llamar a la verificación de bases contextuales con Invoke APIs

Para marcar el origen del fundamento y la consulta en la entrada, proporcionamos dos etiquetas que funcionan de la misma manera que las etiquetas de entrada. Estas etiquetas son amazon-bedrock-guardrails-groundingSource_xyz y amazon-bedrock-guardrails-query_xyz suponiendo que el sufijo de la etiqueta sea xyz. Por ejemplo:

{ "text": """ <amazon-bedrock-guardrails-groundingSource_xyz>London is the capital of UK. Tokyo is the capital of Japan. </amazon-bedrock-guardrails-groundingSource_xyz> <amazon-bedrock-guardrails-query_xyz>What is the capital of Japan?</amazon-bedrock-guardrails-query_xyz> """, "amazon-bedrock-guardrailConfig": { "tagSuffix": "xyz", }, }

Tenga en cuenta que la respuesta del modelo es necesaria para realizar la verificación de fundamento contextual, por lo que la verificación solo se realizará en el resultado y no en la petición.

Estas etiquetas se pueden usar junto con las etiquetas guardContent. Si no se utiliza ninguna etiqueta guardContent, la barrera de protección aplicará de forma predeterminada todas las políticas configuradas a toda la entrada, incluidos el origen del fundamento y la consulta. Si se utilizan las etiquetas guardContent, la política de verificación de fundamento contextual analizará únicamente el origen del fundamento, la consulta y la respuesta, mientras que las demás políticas investigarán el contenido de las etiquetas guardContent.

Llamando a la verificación de bases contextuales con Converse APIs

Para marcar la fuente de conexión a tierra y realizar la consulta Converse APIs, utilice el campo de calificadores de cada bloque de contenido protegido. Por ejemplo:

[ { "role": "user", "content": [ { "guardContent": { "text": { "text": "London is the capital of UK. Tokyo is the capital of Japan", "qualifiers": ["grounding_source"], } } }, { "guardContent": { "text": { "text": "What is the capital of Japan?", "qualifiers": ["query"], } } }, ], } ]

Tenga en cuenta que la respuesta del modelo es necesaria para realizar la verificación de fundamento contextual, por lo que la verificación solo se realizará en el resultado y no en la petición.

Si ninguno de los bloques de contenido está marcado con el calificador guard_content, la política de verificación de fundamento contextual analizará únicamente el origen del fundamento, la consulta y la respuesta. El resto de las políticas seguirá el comportamiento de investigación predeterminado: la petición del sistema indica que no se investigue y los mensajes, que se investigue. Sin embargo, si un bloque de contenido se marca con el calificador guard_content, la política de verificación de fundamento contextual analizará únicamente el origen del fundamento, la consulta y la respuesta, mientras que las demás políticas investigarán el contenido de las etiquetas guardContent.

Llamar a la verificación de bases contextuales con la API ApplyGuardrail

El uso de la verificación de bases contextuales con ApplyGuardrail es similar a usarlo con Converse APIs. Para marcar la fuente básica y la consulta ApplyGuardrail, usa el campo de calificadores de cada bloque de contenido. Sin embargo, dado que un modelo no se invoca con ApplyGuardrail, también debes proporcionar un bloque de contenido adicional con el contenido que deseas proteger. Este bloque de contenido se puede calificar opcionalmente con guard_content y equivale a la respuesta del modelo en Invoke* o Converse*. APIs Por ejemplo:

[ { "text": { "text": "London is the capital of UK. Tokyo is the capital of Japan", "qualifiers": [ "grounding_source" ] } }, { "text": { "text": "What is the capital of Japan?", "qualifiers": [ "query" ] } }, { "text": { "text": "The capital of Japan is Tokyo." } } ]

Tenga en cuenta que la respuesta del modelo es necesaria para realizar la verificación de fundamento contextual, por lo que la verificación solo se realizará en el resultado y no en la petición.

Si ninguno de los bloques de contenido está marcado con el calificador guard_content, la política de verificación de fundamento contextual analizará únicamente el origen del fundamento, la consulta y la respuesta. El resto de las políticas seguirá el comportamiento de investigación predeterminado: la petición del sistema indica que no se investigue y los mensajes, que se investigue. Sin embargo, si un bloque de contenido se marca con el calificador guard_content, la política de verificación de fundamento contextual analizará únicamente el origen del fundamento, la consulta y la respuesta, mientras que las demás políticas investigarán el contenido de las etiquetas guardContent.

Para obtener más información sobre la verificación de fundamento contextual, consulte Uso de la verificación de fundamento contextual.