View a markdown version of this page

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

Barreras de protección para Amazon Bedrock admite verificaciones 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 incluyen el resumen, la paráfrasis y la respuesta a preguntas, tal como se define en la disciplina de las ciencias de la computación. (No se admiten los casos de uso de chatbot o control de calidad conversacional).

Las verificaciones de fundamento contextual comprueban la relevancia de cada fragmento procesado. Si alguna parte se considera relevante, se considera relevante la respuesta completa, 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 fundamentación contextual comprueba los siguientes 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 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 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

Las verificaciones de fundamento contextual generan 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.

Las verificaciones de fundamento contextual requieren 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 utiliza las API Invoke, las API Converse 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 las API Invoke y Converse, esta es la respuesta del modelo. Por ejemplo, puede ser «La capital de Japón es Tokio».

Ejemplo sin fundamento

  • Fuente de conexión a tierra: «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 el origen del fundamento. Este ejemplo tendría una puntuación de fundamento 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 del origen del fundamento, pero no responde a la consulta. Esto tendría una puntuación de fundamento 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 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 la fuente 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.

Un-grounded 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 %.

Un-grounded 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.

Adición de verificaciones de fundamento contextual con la consola

  1. Inicie sesión Consola de administración de AWS con una identidad de IAM que tenga permisos para usar la consola Amazon Bedrock. A continuación, abra la consola Amazon Bedrock en https://console.aws.amazon.com/bedrock.

  2. En el panel de navegación izquierdo, elija Barreras de protección y, a continuación, elija Crear barrera de protección.

  3. En la página Proporcione los detalles de la barrera de protección, haga lo siguiente:

    1. En la sección Detalles de la barrera de protección, proporcione un Nombre y, si lo desea, una Descripción para la barrera de protección.

    2. En Mensajes para peticiones bloqueadas, escriba un mensaje que muestre cuándo se aplica la barrera de protección. Seleccione la casilla de verificación para Aplicar el mismo mensaje bloqueado para las respuestas para usar el mismo mensaje cuando se aplique la barrera de protección en la respuesta.

    3. (Opcional) Para habilitar la inferencia entre regiones para su barandilla, amplíe la inferencia y, a continuación, seleccione Habilitar Cross-Region la inferencia entre regiones para su barandilla. Elija un perfil de barandilla que defina el destino al que se pueden enrutar las solicitudes de inferencia de barandillas. Regiones de AWS

    4. (Opcional) De forma predeterminada, la barrera de protección está cifrada con una Clave administrada de AWS. Para usar su propia clave de KMS administrada por el cliente, expanda Selección de clave de KMS y seleccione la casilla de verificación Personalizar configuración de cifrado (avanzado).

      Puede seleccionar una AWS KMS clave existente o seleccionar Crear una clave para crear una nueva AWS KMS .

    5. (Opcional) Para añadir etiquetas a la barrera de protección, expanda Etiquetas y, a continuación, seleccione Agregar nueva etiqueta para cada etiqueta que defina.

      Para obtener más información, consulte Etiquetado de los recursos de Amazon Bedrock.

    6. Elija Siguiente.

  4. En la página Agregar verificación de fundamento contextual, configure los umbrales para bloquear la información irrelevante o no fundamentada.

    nota

    Para cada tipo de verificación, puede mover el control deslizante o introducir un valor umbral de 0 a 0,99. Seleccione un umbral adecuado para sus usos. Un umbral más alto requiere que las respuestas estén fundamentadas o sean relevantes y con un grado de confianza alto. Se filtrarán las respuestas que estén por debajo del umbral.

    1. En el campo Fundamento, seleccione Habilitar la verificación de fundamento para verificar si las respuestas del modelo están fundamentadas.

    2. En el campo Relevancia, seleccione Habilitar la verificación de relevancia para comprobar si las respuestas del modelo son relevantes.

    3. Cuando termine de configurar los filtros de información confidencial, seleccione Siguiente o Saltar a Revisar y crear.

Llamada de la verificación de fundamento contextual con las API de Invoke

Para marcar la fuente básica y la consulta en la entrada, utilice las siguientes etiquetas que funcionan de la misma manera que las etiquetas de entrada. Estas etiquetas son amazon-bedrock-guardrails-groundingSource_xyz yamazon-bedrock-guardrails-query_xyz, ¿dónde xyz está el sufijo de la etiqueta? 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 las verificaciones de fundamento contextual, por lo que las verificaciones solo se realizarán en el resultado y no en la petición.

Estas etiquetas se pueden usar junto con las guardContent etiquetas. El contenido que groundingSource contienen y las query etiquetas se excluyen de las evaluaciones de políticas, salvo en función del contexto (filtros de palabras, filtros de temas, filtros de contenido, detección de información confidencial).

El comportamiento del resto de las políticas depende de si se utilizan guardContent etiquetas:

  • Sin guardContent etiquetas: otras políticas utilizan el comportamiento predeterminado: no se investigan las indicaciones del sistema y se investigan los mensajes.

  • Con guardContent etiquetas: otras políticas solo investigan el contenido de las guardContent etiquetas. Se omite el contenido que está fuera de cualquier etiqueta (texto sin etiquetar) y el contenido que está dentro groundingSource de las query etiquetas.

Para que las demás políticas también evalúen el contenido básico de origen o consulta, coloca la etiqueta básica contextual dentro de una etiqueta: guardContent

<amazon-bedrock-guardrails-guardContent_xyz><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-guardContent_xyz> <amazon-bedrock-guardrails-query_xyz>What is the capital of Japan?</amazon-bedrock-guardrails-query_xyz>

En este ejemplo, el contenido de la fuente básica se utiliza como fuente de referencia contextual y se evalúa según otras políticas, ya que también está incluido en una etiqueta. guardContent

Al llamar a la verificación de base contextual con Converse API

Para marcar el origen del fundamento y la consulta de las API Converse, use 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 las verificaciones de fundamento contextual, por lo que las verificaciones solo se realizarán en el resultado y no en la petición.

El comportamiento de las políticas distintas de las basadas en el contexto depende de los calificadores asignados a cada bloque: guardContent

  • ["grounding_source"]— El contenido se utiliza únicamente como fuente de referencia contextual. No es evaluado por otras políticas.

  • ["query"]— El contenido se utiliza únicamente como consulta contextual del usuario. No es evaluado por otras políticas.

  • ["guard_content"]— El contenido se evalúa mediante la verificación contextual (como contenido que hay que proteger) y según todas las demás políticas.

  • Sin calificador (no cualificado): el contenido se evalúa mediante la verificación contextual (como contenido que hay que proteger) y según todas las demás políticas.

  • ["grounding_source", "guard_content"]— El contenido cumple ambas funciones: se utiliza como fuente de referencia contextual y se evalúa según otras políticas.

  • ["query", "guard_content"]— El contenido cumple ambas funciones: se utiliza como consulta de base contextual y se evalúa mediante otras políticas.

Si desea que su fuente básica o el contenido de su consulta también se evalúe según otras políticas de protección, añada guard_content a la lista de calificadores junto con el calificador de base contextual.

Consulta los fundamentos contextuales de las llamadas con la API ApplyGuardrail

El uso de la verificación de fundamento contextual con ApplyGuardrail es similar al de las API Converse. Para marcar el origen del fundamento y la consulta para ApplyGuardrail, use el campo de calificadores de cada bloque de contenido. Sin embargo, dado que un modelo no se invoca con ApplyGuardrail, también debe proporcionar un bloque de contenido adicional con el contenido que desea proteger. Este bloque de contenido se puede calificar opcionalmente con guard_content y equivale a la respuesta del modelo en las API de Invoke* o Converse*. 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 las verificaciones de fundamento contextual, por lo que las verificaciones solo se realizarán en el resultado y no en la petición.

Cómo afectan los calificadores a la evaluación de las políticas

Los bloques de contenido con query calificadores grounding_source o calificadores se evalúan únicamente mediante la comprobación contextual. Estos bloques se excluyen de todas las demás evaluaciones de políticas cautelares (filtros de palabras, filtros de temas, filtros de contenido, detección de información confidencial y detección inmediata de ataques).

Para que un bloque de contenido se evalúe mediante la comprobación contextual y otras políticas de protección, utilice ambos calificadores juntos. Por ejemplo, especifique ["grounding_source", "guard_content"] marcar un bloque de contenido como fuente básica que también esté sujeto a todas las demás políticas configuradas.

En el caso de políticas que no se basen en el contexto para evaluar el contenido, al menos un bloque de contenido no debe estar cualificado o estar cualificado de forma explícita con él. guard_content Un bloque de contenido no está calificado cuando no tiene ningún campo. qualifiers

En la siguiente tabla se resume cómo afecta cada combinación de calificadores a la evaluación de políticas.

Qualifier Verificación de fundamento contextual Otras políticas de barandillas

grounding_source

Evaluado (como referencia)

No evaluado

query

Evaluado (como consulta)

No se ha evaluado

guard_content

Evaluado (como respuesta)

Evaluado

Sin clasificatorio (no calificado)

Evaluado (como respuesta)

Evaluado

["grounding_source", "guard_content"]

Evaluado (como referencia)

Evaluado

["query", "guard_content"]

Evaluado (como consulta)

Evaluado