Utilice la verificación de base 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.

Utilice la verificación de base contextual para filtrar las alucinaciones en las respuestas

Amazon Bedrock Guardrails admite la comprobación contextual para detectar y filtrar las alucinaciones en las respuestas de los modelos cuando se proporciona una fuente de referencia y una consulta de un usuario. Los casos de uso admitidos abarcan agentes de recuperación aumentada (RAG), generación, resumen, paráfrasis o conversación que se basan en una fuente de referencia, como los pases recuperados o el historial de conversaciones, para que los agentes fundamenten las conversaciones. RAG

La comprobación contextual comprueba la relevancia de cada fragmento procesado. Si un fragmento se considera relevante, se considera relevante toda la respuesta, ya que contiene la respuesta a la consulta del usuario. En el caso de la transmisiónAPI, esto puede dar lugar a un escenario en el que se devuelva al usuario una respuesta irrelevante y solo se marque como irrelevante después de que se haya transmitido toda la respuesta.

La verificación contextual permite evaluar las alucinaciones a través de dos paradigmas:

  • Fijación: comprueba si la respuesta del modelo es precisa desde el punto de vista fáctico en función de la fuente y si se basa en la fuente. 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 la fuente de referencia dice «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 la fuente.

nota

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

nota

La política de base contextual admite actualmente un máximo de 100 000 caracteres para la fuente de referencia, 1000 caracteres para la consulta y 5000 caracteres para la respuesta.

Puntuaciones y umbrales de confianza

La verificación de la fundamentación contextual genera puntuaciones de confianza correspondientes a la fundamentación y la relevancia de cada respuesta del modelo procesada en función de la fuente y la consulta del usuario proporcionada. 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 sólida y relevante en su aplicación de IA generativa. Por ejemplo, si el umbral básico y el umbral de relevancia están establecidos en 0,7 cada uno, todas las respuestas del modelo con una puntuación básica o de relevancia inferior a 0,7 se detectarán como alucinaciones y se bloquearán en la aplicación. A medida que se aumenta 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 límite de fundamentación y relevancia entre 0 y 0,99. Un umbral de 1 no es válido, ya que bloqueará todo el contenido.

La verificación contextual requiere tres componentes para realizar la verificación: la fuente básica, 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 InvokeAPIs, Converse o directamenteAPIs. ApplyGuardrail

  • Fuente básica: 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 la fuente y la consulta en las que se basa. Para Invoke y ConverseAPIs, esta es la respuesta del modelo. Por ejemplo, puede ser «La capital de Japón es Tokio».

Ejemplo sin fundamento

  • Fuente de conexión: «Londres es la capital del Reino Unido. Tokio es la capital de Japón».

  • Consulta: «¿Cuál es la capital de Japón?»

  • Contento con 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 la fuente de conexión a tierra. Esto tendría una puntuación básica baja.

Ejemplo irrelevante

  • Fuente de referencia: «Londres es la capital del Reino Unido. Tokio es la capital de Japón».

  • Consulta: «¿Cuál es la capital de Japón?»

  • Contento con 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 de la fuente básica, pero no responde a la consulta. Esto tendría una puntuación de relevancia baja.

Ejemplo irrelevante y sin fundamento

  • Fuente de referencia: «Londres es la capital del Reino Unido. Tokio es la capital de Japón».

  • Consulta: «¿Cuál es la capital de Japón?»

  • Contento con protegerse: «Afuera está lloviendo».

En este ejemplo, el contenido que hay que proteger no está fundamentado ni es relevante. No utiliza información de la fuente básica ni responde a la consulta. Esto tendría una puntuación básica y de relevancia baja.

Más ejemplos

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

Fuente:

  • No hay comisiones asociadas a la apertura de una cuenta corriente.

  • La cuota mensual por mantener una cuenta corriente es de 10 dólares.

  • Hay un cargo 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 la fuente anterior, puede haber cuatro escenarios según la consulta del usuario.

Fundamentado y relevante

  • P: ¿Cuáles son los cargos asociados a la cuenta corriente?

  • R: El cargo mensual por mantener una cuenta corriente es de 10 dólares. No hay cargos asociados a las transferencias nacionales. Sin embargo, hay un cargo por transacción del 1% para las transferencias internacionales. No hay comisiones asociadas a la apertura de una cuenta corriente.

Sin fundamento, pero relevante

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

  • R: Los cargos por transacción asociados a la tarjeta de crédito son del 23,99%.

Fundamentado 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%.

Infundado 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$ por transacción comercial.

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

Para marcar la fuente de base y la consulta dentro de la entrada, proporcionamos 2 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 conexión a tierra contextual, por lo que la verificación solo se realizará en la salida y no en el mensaje.

Estas etiquetas se pueden usar junto con las guardContent etiquetas. Si no se utiliza ninguna guardContent etiqueta, la barandilla aplicará de forma predeterminada todas las políticas configuradas a toda la entrada, incluidas la fuente de referencia y la consulta. Si se utilizan las guardContent etiquetas, la política de verificación contextual analizará únicamente la fuente, 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 el origen y la consulta de ConverseAPIs, usa 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 conexión a tierra contextual, por lo que la verificación solo se realizará en la salida y no en la línea de comandos.

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

Al llamar a la verificación de bases contextuales con ApplyGuardrail API

El uso de la verificación contextual ApplyGuardrail es similar a usarlo con las Converse. APIs Para marcar la fuente de base 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 conexión a tierra contextual, por lo que la verificación solo se realizará en la salida y no en el mensaje.

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

Para obtener más información sobre la verificación de bases contextuales, consulte Usar la verificación de bases contextuales.