View a markdown version of this page

Conceptos de comprobación de razonamiento automatizado - 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.

Conceptos de comprobación de razonamiento automatizado

En esta página se describen los componentes básicos de las comprobaciones de razonamiento automatizadas. Comprender estos conceptos le ayudará a crear políticas eficaces, interpretar los resultados de las pruebas y solucionar problemas. Para obtener una descripción general de alto nivel de lo que hacen las comprobaciones de razonamiento automatizadas y cuándo utilizarlas, consulteReglas.

Políticas

Una política de razonamiento automatizado es un recurso de su cuenta de AWS que contiene un conjunto de reglas lógicas formales, un esquema de variables y tipos personalizados opcionales. La política codifica las normas, reglamentos o directrices empresariales con las que desea validar las respuestas del LLM.

Las políticas se crean a partir de documentos fuente, como manuales de recursos humanos, manuales de cumplimiento o especificaciones de productos, que describen las reglas en un lenguaje natural. Al crear una política, las comprobaciones de razonamiento automatizadas extraen las reglas y variables del documento y las traducen a una lógica formal que se puede verificar matemáticamente.

La relación entre las políticas, las barreras y la aplicación es la siguiente:

Source Document ──► Automated Reasoning Policy ──► Guardrail ──► Your Application (natural (rules + variables + (references (calls guardrail language) custom types) a policy APIs to validate version) LLM responses)

Características clave de las políticas:

  • Cada política se identifica con un nombre de recurso de Amazon (ARN) y existe en una región de AWS específica.

  • Las políticas tienen una DRAFT versión (denominada «Borrador de trabajo» en la consola) que se edita durante el desarrollo y las versiones numeradas e inmutables que se crean para su implementación.

  • Una barandilla puede hacer referencia al BORRADOR de la política o a una versión numerada específica. El uso de una versión numerada significa que puede actualizarla DRAFT sin que ello afecte a la barandilla desplegada.

  • Cada política debe centrarse en un ámbito específico (por ejemplo, los beneficios de recursos humanos, la elegibilidad para obtener un préstamo o las normas de devolución de productos) en lugar de tratar de abarcar múltiples áreas no relacionadas.

Para step-by-step obtener instrucciones sobre cómo crear una política, consulteCreación de una política de razonamiento automatizado.

Informe de fidelidad

Un informe de fidelidad mide la precisión con la que una póliza extraída representa los documentos fuente a partir de los cuales se generó. El informe se genera automáticamente al crear una política a partir de un documento fuente y proporciona dos puntuaciones clave junto con información básica detallada que vincula cada regla y variable con declaraciones específicas del contenido fuente.

El informe de fidelidad está diseñado para ayudar a los expertos no técnicos en la materia a explorar y validar una política sin necesidad de comprender la lógica formal. En la consola, la pestaña Documento fuente muestra el informe de fidelidad como una tabla de afirmaciones atómicas numeradas extraídas del documento, en la que se muestran las reglas y variables en las que se basa cada afirmación. Puede filtrar por reglas o variables específicas y buscar contenido en las declaraciones.

El informe de fidelidad incluye dos puntuaciones, cada una de las cuales oscila entre 0,0 y 1,0:

  • Puntuación de cobertura: indica qué tan bien cubre la póliza las declaraciones de los documentos fuente. Una puntuación más alta significa que una mayor parte del contenido fuente está representado en la política.

  • Puntuación de precisión: indica la fidelidad con la que las reglas de la política representan el material fuente. Una puntuación más alta significa que las reglas extraídas se ajustan más a la intención del documento original.

Más allá de las puntuaciones agregadas, el informe de fidelidad proporciona una base detallada de cada regla y variable de la política:

  • Informes de reglas: para cada regla, el informe identifica las afirmaciones específicas de los documentos fuente que la respaldan (declaraciones de base), explica cómo esas declaraciones justifican la regla (justificaciones de base) y proporciona una puntuación de precisión individual con una justificación.

  • Informes de variables: para cada variable, el informe identifica las afirmaciones de origen que respaldan la definición de la variable, explica la justificación y proporciona una puntuación de precisión individual.

  • Fuentes de los documentos: los documentos fuente se dividen en declaraciones atómicas: hechos individuales e indivisibles extraídos del texto. El contenido del documento está anotado con números de línea para que puedas rastrear cada regla y variable hasta la ubicación exacta del documento original.

Reglas

Las reglas son el núcleo de una política de razonamiento automatizado. Cada regla es una expresión lógica formal que captura una relación entre variables. Las reglas se expresan mediante un subconjunto de la sintaxis SMT-LIB, un formato estándar para la lógica formal que las comprobaciones de razonamiento automático utilizan para la verificación matemática. Consulte Permisos de KMS para las políticas de razonamiento automatizado

La mayoría de las reglas deben seguir un formato si-entonces (implicativo). Esto significa que las reglas deben tener una condición (la parte «si») y una conclusión (la parte «entonces»), conectadas por el operador de implicación. =>

Reglas bien definidas (formato si-entonces):

;; If the employee is full-time AND has worked for more than 12 months, ;; then they are eligible for parental leave. (=> (and isFullTime (> tenureMonths 12)) eligibleForParentalLeave) ;; If the loan amount is greater than 500,000, then a co-signer is required. (=> (> loanAmount 500000) requiresCosigner)

Las afirmaciones simples (reglas sin una estructura de «si entonces») crean axiomas, es decir, afirmaciones que siempre son verdaderas. Esto resulta útil para comprobar las condiciones límite, como los saldos de las cuentas que tienen valores positivos, pero también puede hacer que determinadas condiciones sean imposibles desde el punto de vista lógico y provocar resultados inesperados durante la validación. IMPOSSIBLE Por ejemplo, la simple afirmación (= eligibleForParentalLeave true) significa que las verificaciones automatizadas de razonamiento consideran un hecho que el usuario tiene derecho a una licencia parental. Cualquier entrada que mencione no ser elegible generaría un resultado de validación IMPOSSIBLE porque contradice este axioma.

;; GOOD: Useful to check impossible conditions such as ;; negative account balance (>= accountBalance 0) ;; BAD: This asserts eligibility as always true, regardless of conditions. eligibleForParentalLeave

Las reglas admiten los siguientes operadores lógicos:

Operador Significado Ejemplo
=> Implicación (si-entonces) (=> isFullTime eligibleForBenefits)
and AND lógico (and isFullTime (> tenure 12))
or OR lógico (or isVeteran isTeacher)
not ¡NO lógico (not isTerminated)
= Igualdad (= employmentType FULL_TIME)
>, <, >=, <= Comparación (>= creditScore 700)

Para conocer las mejores prácticas sobre la redacción de reglas efectivas, consulteMejores prácticas de la política de razonamiento automatizado.

Variables

Las variables representan los conceptos de su dominio que las comprobaciones de razonamiento automatizadas utilizan para traducir el lenguaje natural a una lógica formal y evaluar las reglas. Cada variable tiene un nombre, un tipo y una descripción.

Las comprobaciones de razonamiento automatizadas admiten los siguientes tipos de variables:

Tipo Description (Descripción) Ejemplo
bool Valor verdadero o falso isFullTime— Si el empleado trabaja a tiempo completo
int Número entero tenureMonths— Número de meses que el empleado ha trabajado
real Número decimal interestRate— Tipo de interés anual expresado en cifras decimales (0,05 significa 5%)
Tipo personalizado (enumeración) Un valor de un conjunto definido leaveType— Uno de los siguientes: PARENTAL, MÉDICO, DE DUELO, PERSONAL

El papel fundamental de las descripciones de variables

Las descripciones de las variables son el factor más importante para la precisión de la traducción. Cuando las comprobaciones de razonamiento automatizadas traducen el lenguaje natural a una lógica formal, utilizan descripciones de variables para determinar qué variables corresponden a los conceptos mencionados en el texto. Las descripciones vagas o incompletas conducen a TRANSLATION_AMBIGUOUS resultados o a asignaciones de variables incorrectas.

Ejemplo: cómo afectan las descripciones a la traducción

Imagina a un usuario que pregunta: «Hace 2 años que trabajo aquí. ¿Tengo derecho a la licencia parental?»

Descripción vaga (es probable que falle) Descripción detallada (es probable que tenga éxito)
tenureMonths: «Cuánto tiempo ha trabajado el empleado». tenureMonths: «El número de meses completos que el empleado ha estado empleado de forma continua. Cuando los usuarios mencionen años de servicio, conviértalos en meses (por ejemplo, 2 años = 24 meses). Establézcalo en 0 para las nuevas contrataciones».

Con una descripción vaga, es posible que las comprobaciones de razonamiento automatizadas no sepan convertir «2 años» en 24 meses o que no asignen la variable en absoluto. Con la descripción detallada, la traducción es inequívoca.

Las buenas descripciones de variables deberían:

  • Explica lo que representa la variable en un lenguaje sencillo.

  • Especifique la unidad y el formato (por ejemplo, «en meses», «como un decimal donde 0,15 significa 15%»).

  • Incluya sinónimos que no sean obvios y frases alternativas que puedan utilizar los usuarios (por ejemplo, «Establézcalo como verdadero cuando los usuarios mencionen que es «a tiempo completo» o que trabaja a jornada completa»).

  • Describa las condiciones límite (por ejemplo, «Establézcalo en 0 para las nuevas contrataciones»).

Tipos personalizados (enumeraciones)

Los tipos personalizados definen un conjunto de valores con nombre que puede adoptar una variable. Son equivalentes a las enumeraciones (enumeraciones) en los lenguajes de programación. Utilice tipos personalizados cuando una variable represente una categoría con un conjunto fijo de valores posibles.

Ejemplos:

Escriba el nombre Valores posibles Caso de uso
LeaveType PARENTAL, MÉDICO, DE DUELO, PERSONAL Clasifique el tipo de licencia que solicita un empleado
Severity CRÍTICO, MAYOR, MENOR Clasifique la gravedad de un problema o incidente

Cuándo usar enumeraciones en lugar de booleanos:

  • Utilice enumeraciones cuando los valores se excluyan mutuamente: una variable solo puede tener un valor a la vez. Por ejemplo, leaveType puede ser PARENTAL o MÉDICO, pero no ambos a la vez.

  • Utilice variables booleanas independientes cuando los estados puedan coexistir. Por ejemplo, una persona puede ser tanto un veterano como un profesor. El uso de una enumeración customerType = {VETERAN, TEACHER} obligaría a elegir entre ellas, lo que crearía una contradicción lógica cuando ambas se aplicaran. En su lugar, usa dos booleanos: y. isVeteran isTeacher

sugerencia

Si es posible que una variable no tenga ningún valor de la enumeración, incluye un OTHER valor o. NONE Esto evita problemas de traducción cuando la entrada no coincide con ninguno de los valores definidos.

Traducción: del lenguaje natural a la lógica formal

La traducción es el proceso mediante el cual las comprobaciones de razonamiento automatizadas convierten el lenguaje natural (preguntas de los usuarios y respuestas de LLM) en expresiones lógicas formales que pueden verificarse matemáticamente según las normas de su política. Entender este proceso es clave para solucionar problemas y crear políticas eficaces.

Las comprobaciones de razonamiento automatizadas validan el contenido en dos pasos distintos:

  1. Translate: las comprobaciones de razonamiento automatizadas utilizan modelos LLMs básicos () para traducir la entrada del lenguaje natural a una lógica formal. En este paso, se asignan los conceptos del texto a las variables de la política y se expresan las relaciones en forma de enunciados lógicos. Debido a que este paso es obligatorio LLMs, puede contener errores. Las comprobaciones de razonamiento automatizadas utilizan varias LLMs para traducir el texto de entrada y, a continuación, utilizan la equivalencia semántica de las traducciones redundantes para establecer una puntuación de confianza. La calidad de la traducción depende del grado de coincidencia de las descripciones de las variables con el idioma utilizado en la entrada.

  2. Validación: las comprobaciones de razonamiento automatizadas utilizan técnicas matemáticas (mediante solucionadores SMT) para comprobar si la lógica traducida es coherente con las normas de su política. Este paso es correcto desde el punto de vista matemático: si la traducción es correcta, el resultado de la validación será coherente.

importante

Esta distinción en dos pasos es fundamental para la depuración. Si está seguro de que las reglas de la política son correctas, cuando una prueba no pasa o arroja resultados inesperados, lo más probable es que el problema se deba al paso 1 (traducción) y no al paso 2 (validación). La validación matemática es sólida y, si la traducción capta correctamente el significado de la entrada, el resultado de la validación será correcto. Centra tus esfuerzos de depuración en mejorar las descripciones de las variables y en garantizar que la traducción asigne las variables correctas con los valores correctos.

Ejemplo: traducción en acción

Dada una política con variables isFullTime (bool), tenureMonths (int) y eligibleForParentalLeave (bool) y la entrada:

  • Pregunta: «Soy empleado a tiempo completo y llevo aquí 18 meses. ¿Puedo solicitar un permiso parental?»

  • Respuesta: «Sí, tiene derecho a la licencia parental».

El paso 1 (traducir) produce:

Premises: isFullTime = true, tenureMonths = 18 Claims: eligibleForParentalLeave = true

El paso 2 (validar) compara estas asignaciones con la regla de la política (=> (and isFullTime (> tenureMonths 12)) eligibleForParentalLeave) y confirma que la reclamación es válidaVALID.

Para mejorar la precisión de la traducción:

  • Escribe descripciones detalladas de las variables que expliquen cómo los usuarios se refieren a los conceptos en el lenguaje cotidiano.

  • Elimine las variables duplicadas o casi duplicadas que puedan confundir la traducción (por ejemplo, tenureMonths ymonthsOfService).

  • Elimine las variables no utilizadas a las que no haga referencia ninguna regla, ya que añaden ruido al proceso de traducción.

  • Utilice question-and-answer pruebas para validar la precisión de la traducción con entradas de usuario realistas. Para obtener más información, consulte Prueba de una política de razonamiento automatizado.

Hallazgos y resultados de la validación

Cuando las comprobaciones de razonamiento automatizadas validan el contenido, producen un conjunto de conclusiones. Cada conclusión representa una afirmación fáctica extraída de la entrada, junto con el resultado de la validación, las asignaciones de variables utilizadas y las reglas políticas que respaldan la conclusión. El resultado general (agregado) se determina clasificando los hallazgos por orden de gravedad y seleccionando el peor resultado. El orden de gravedad de peor a mejor es:TRANSLATION_AMBIGUOUS,IMPOSSIBLE,INVALID,SATISFIABLE,VALID.

Estructura de un hallazgo

El tipo de resultado determina qué campos están presentes en el hallazgo. Consulte la Referencia de los resultados de la validación sección para obtener una descripción detallada de cada tipo de hallazgo. Sin embargo, la mayoría de los tipos de búsqueda comparten un translation objeto común que contiene los siguientes componentes:

premises

El contexto, los supuestos o las condiciones extraídos de la información que afectan a la forma en que debe evaluarse una reclamación. En los question-and-answer formatos, la premisa suele ser la pregunta en sí misma. Las respuestas también pueden contener premisas que establezcan restricciones. Por ejemplo, en «Soy un empleado a tiempo completo con 18 meses de servicio», las premisas son isFullTime = true ytenureMonths = 18.

claims

Declaraciones fácticas cuya precisión se evalúa mediante el razonamiento automatizado. En un question-and-answer formato, la afirmación suele ser la respuesta. Por ejemplo, si dice «Sí, usted reúne los requisitos para la licencia parental», aparece la reclamacióneligibleForParentalLeave = true.

confidence

Una puntuación de 0.0 a 1.0 que representa el grado en que determinadas comprobaciones de razonamiento automatizado se refieren a la traducción del lenguaje natural a la lógica formal. Las puntuaciones más altas indican una mayor certeza. Una confianza de 1,0 significa que todos los modelos de traducción coinciden en la misma interpretación.

untranslatedPremises

Referencias a partes del texto de entrada original que corresponden a las premisas pero que no se han podido traducir a una lógica formal. En ellas se destacan partes de la información que el Razonamiento Automatizado reconoció como relevantes, pero que no pudo asignar a variables políticas.

untranslatedClaims

Referencias a partes del texto de entrada original que corresponden a afirmaciones pero que no se han podido traducir a una lógica formal. Un VALID resultado solo cubre las afirmaciones traducidas; las afirmaciones no traducidas no se validan.

Referencia de los resultados de la validación

Cada hallazgo es exactamente de uno de los siguientes tipos. El tipo determina el significado del resultado, los campos disponibles en el hallazgo y la acción recomendada para la aplicación. Todos los tipos de búsqueda que incluyen un translation campo también incluyen un logicWarning campo que está presente cuando la traducción contiene problemas lógicos independientes de las reglas de la política (por ejemplo, afirmaciones que siempre son verdaderas o siempre falsas).

Resultado Buscar campos Acción recomendada
VALID

translation— Las premisas traducidas, las afirmaciones, la puntuación de confianza y cualquier referencia no traducida.

supportingRules— Las normas de la póliza que prueban que las afirmaciones son correctas. Cada regla incluye su identificador y el ARN de la versión de la política.

claimsTrueScenario— Un escenario (conjunto de asignaciones de variables) que demuestre cómo las afirmaciones son lógicamente ciertas.

Entregue la respuesta al usuario. Registrar supportingRules y claimsTrueScenario con fines de auditoría: proporcionan una prueba de validez verificable matemáticamente. Compruebe untranslatedPremises y untranslatedClaims busque partes de la entrada que no se hayan validado.
INVALID

translation— Las premisas traducidas, las afirmaciones, la puntuación de confianza y cualquier referencia no traducida.

contradictingRules— Las normas de política que infringen las reclamaciones. Cada regla incluye su identificador y el ARN de la versión de la política.

No entregue la respuesta. Usa translation (para ver qué se ha reclamado) y contradictingRules (para ver qué reglas se han infringido) para reescribir la respuesta o bloquearla. En un ciclo de reescritura, pasa las reglas contradictorias y las afirmaciones incorrectas al LLM para generar una respuesta corregida.
SATISFIABLE

translation— Las premisas traducidas, las afirmaciones, la puntuación de confianza y cualquier referencia no traducida.

claimsTrueScenario— Un escenario que demuestre cómo las afirmaciones pueden ser lógicamente ciertas.

claimsFalseScenario— Un escenario que demuestre cómo las afirmaciones pueden ser lógicamente falsas en diferentes condiciones.

Compare claimsTrueScenario e claimsFalseScenario identifique las condiciones que faltan. Reescribe la respuesta para incluir la información adicional necesaria para elaborarlaVALID, pide al usuario que aclare las condiciones que faltan o envía la respuesta con la salvedad de que puede estar incompleta.
IMPOSSIBLE

translation— Las premisas traducidas, las afirmaciones, la puntuación de confianza y cualquier referencia no traducida. Inspeccione las instalaciones para identificar las contradicciones.

contradictingRules— Las normas políticas que entran en conflicto con las instalaciones o entre sí. Si se completa, la contradicción puede estar en la propia política.

Compruebe si la entrada contiene afirmaciones contradictorias (por ejemplo, «Trabajo a tiempo completo y también a tiempo parcial»). Si la información es válida, es probable que tu política esté en contradicción: comprueba contradictingRules y revisa el informe de calidad. Consulte Solucione problemas y perfeccione su política de razonamiento automatizado.
TRANSLATION_AMBIGUOUS

No contiene ningún translation objeto. En su lugar, proporciona:

options— Las interpretaciones lógicas contrapuestas (hasta 2). Cada opción contiene las suyas propias, translations con premisas, pretensiones y confianza. Compare las opciones para ver dónde están en desacuerdo los modelos.

differenceScenarios— Escenarios (hasta 2) que ilustran cómo las diferentes interpretaciones difieren en el significado, con asignaciones de variables que destacan el impacto práctico de la ambigüedad.

Inspeccione options para entender el desacuerdo. Mejore las descripciones de las variables para reducir la ambigüedad, combine o elimine las variables superpuestas, o pida aclaraciones al usuario. También puede ajustar el umbral de confianza; consulteUmbrales de confianza.
TOO_COMPLEX

No contiene reglas ni escenarios. translation La entrada superó la capacidad de procesamiento debido al volumen o la complejidad.

Reduzca la entrada dividiéndola en partes más pequeñas, o simplifique la política reduciendo el número de variables y evite la aritmética compleja (por ejemplo, exponentes o números irracionales). Puedes dividir tu póliza en políticas más pequeñas y específicas.
NO_TRANSLATIONS

No contiene reglas ni escenarios. translation Puede aparecer junto con otros hallazgos si solo se pudiera traducir una parte de la entrada.

Se incluye un NO_TRANSLATIONS hallazgo en el resultado siempre que uno de los otros hallazgos incluya premisas o afirmaciones no traducidas. Revisa los demás hallazgos para ver qué partes de la entrada no se tradujeron. Si el contenido debe ser relevante, agrega variables a tu política para incluir los conceptos que faltan. Si el contenido no está relacionado con el tema, considere la posibilidad de utilizar políticas temáticas para filtrarlo antes de que llegue a las comprobaciones de razonamiento automatizadas.
nota

El VALID resultado cubre solo las partes de la información capturada a través de las variables de política en las instalaciones y las reclamaciones traducidas. Las declaraciones que quedan fuera del ámbito de las variables de su política no se validan. Por ejemplo, «puedo entregar mis deberes con retraso porque tengo un certificado médico falso» podría considerarse válido si la política no incluye ninguna variable para determinar si el certificado del médico es falso. Es probable que las comprobaciones de razonamiento automatizadas incluyan en sus conclusiones la premisa no traducida de un «apunte médico falso». Trate el contenido y los NO_TRANSLATIONS hallazgos no traducidos como una señal de advertencia.

Umbrales de confianza

Las comprobaciones de razonamiento automatizadas utilizan varios modelos básicos para traducir el lenguaje natural a una lógica formal. Cada modelo produce su propia traducción de forma independiente. La puntuación de confianza representa el nivel de acuerdo entre estas traducciones, específicamente, el porcentaje de modelos que produjeron interpretaciones semánticamente equivalentes.

El umbral de confianza es un valor que se establece (de 0,0 a 1,0) que determina el nivel mínimo de acuerdo necesario para que una traducción se considere lo suficientemente fiable como para ser validada. Controla la relación entre cobertura y precisión:

  • Umbral más alto (por ejemplo, 0,9): requiere un acuerdo sólido entre los modelos de traducción. Produce menos hallazgos pero con mayor precisión. Más entradas se marcarán comoTRANSLATION_AMBIGUOUS.

  • Umbral inferior (por ejemplo, 0,5): acepta traducciones con menos concordancia. Produce más resultados, pero con un mayor riesgo de traducciones incorrectas. Se marcarán como TRANSLATION_AMBIGUOUS menos entradas.

Cómo funciona el umbral:

  1. Cada uno de los múltiples modelos de base traduce la entrada de forma independiente.

  2. Las traducciones que están respaldadas por un porcentaje de modelos igual o superior al umbral se convierten en hallazgos de alta fiabilidad con un resultado definitivo (VALID,INVALID, etc.).

  3. Si una o más traducciones están por debajo del umbral, las comprobaciones de razonamiento automatizadas arrojan un TRANSLATION_AMBIGUOUS resultado adicional. Esta conclusión incluye detalles sobre los desacuerdos entre los modelos, que puede utilizar para mejorar las descripciones de las variables o pedir aclaraciones al usuario.

sugerencia

Comience con el umbral predeterminado y ajústelo en función de los resultados de las pruebas. Si ve demasiados TRANSLATION_AMBIGUOUS resultados como para introducir datos inequívocos, concéntrese en mejorar las descripciones de las variables en lugar de reducir el umbral. Reducir el umbral puede reducir TRANSLATION_AMBIGUOUS los resultados, pero aumenta el riesgo de que se produzcan validaciones incorrectas.