in

Guardrails para Amazon Bedrock ahora puede detectar alucinaciones y proteger aplicaciones creadas con FM personalizados o de terceros | Amazon Web Services

10 de julio de 2024: La publicación incluye una versión actualizada de la ApplyGuardrail Ejemplo de código API.

Guardrails para Amazon Bedrock permite a los clientes implementar medidas de seguridad basadas en los requisitos de la aplicación y las políticas de inteligencia artificial (IA) responsables de su empresa. Puede ayudar a prevenir contenido no deseado, bloquear ataques rápidos (inyección rápida y jailbreaks) y eliminar información confidencial para proteger la privacidad. Puede combinar varios tipos de políticas para configurar estas medidas de seguridad para diferentes escenarios y aplicarlas en todos los modelos de base (FM) en Amazon Bedrock, así como en FM personalizados y de terceros fuera de Amazon Bedrock. Guardrails también se puede integrar con Agentes para Amazon Bedrock y Bases de conocimiento para Amazon Bedrock.

Guardrails para Amazon Bedrock ofrece protecciones personalizables adicionales además de las protecciones nativas que ofrecen los FM, brindando funciones de seguridad que se encuentran entre las mejores de la industria:

  • Bloquea hasta un 85% más de contenido dañino
  • Permite a los clientes personalizar y aplicar protecciones de seguridad, privacidad y veracidad dentro de una única solución.
  • Filtra más del 75 % de respuestas alucinadas para cargas de trabajo de RAG y resumen

Guardrails para Amazon Bedrock se lanzó por primera vez en versión preliminar en re:Invent 2023 con compatibilidad con políticas como filtros de contenido y temas denegados. Cuando estuvo disponible para el público en general en abril de 2024, Guardrails admitía cuatro medidas de seguridad: temas denegados, filtros de contenido, filtros de información confidencial y filtros de palabras.

MAPFRE es la mayor aseguradora de España y opera en 40 países de todo el mundo. “MAPFRE implementó Guardrails para Amazon Bedrock para garantizar que Mark.IA (un chatbot basado en RAG) se alinee con nuestras políticas de seguridad corporativas y prácticas de inteligencia artificial responsables”, afirmó Andrés Hevia Vega, Director Adjunto de Arquitectura de MAPFRE. “MAPFRE utiliza Guardrails para Amazon Bedrock para aplicar filtros de contenido a contenido dañino, denegar temas no autorizados, estandarizar las políticas de seguridad corporativas y anonimizar los datos personales para mantener los más altos niveles de protección de la privacidad. Guardrails ha ayudado a minimizar los errores de arquitectura y simplificar los procesos de selección de API para estandarizar nuestros protocolos de seguridad. A medida que continuamos evolucionando nuestra estrategia de inteligencia artificial, Amazon Bedrock y su función Guardrails están demostrando ser herramientas invaluables en nuestro viaje hacia prácticas de desarrollo más eficientes, innovadoras, seguras y responsables”.

Hoy anunciamos dos capacidades más:

  1. Comprobaciones de conexión contextual para detectar alucinaciones en las respuestas del modelo basadas en una fuente de referencia y una consulta del usuario.
  2. ApplyGuardrail API para evaluar solicitudes de entrada y modelar respuestas para todos los FM (incluidos FM en Amazon Bedrock, FM personalizados y de terceros), lo que permite una gobernanza centralizada en todas sus aplicaciones de IA generativa.

Comprobación de la conexión a tierra contextual: un nuevo tipo de política para detectar alucinaciones
Los clientes suelen confiar en las capacidades inherentes de los FM para generar respuestas fundamentadas (creíbles) basadas en los datos de origen de la empresa. Sin embargo, los FM pueden combinar varios datos y producir información incorrecta o nueva, lo que afecta la fiabilidad de la aplicación. La comprobación de la base contextual es una nueva y quinta medida de protección que permite la detección de alucinaciones en las respuestas del modelo que no están fundamentadas en datos empresariales o que son irrelevantes para la consulta de los usuarios. Esto se puede utilizar para mejorar la calidad de la respuesta en casos de uso como RAG, resumen o extracción de información. Por ejemplo, puede utilizar comprobaciones de la base contextual con Knowledge Bases for Amazon Bedrock para implementar aplicaciones RAG fiables filtrando respuestas inexactas que no están fundamentadas en sus datos empresariales. Los resultados recuperados de sus fuentes de datos empresariales se utilizan como fuente de referencia por la política de comprobación de la base contextual para validar la respuesta del modelo.

Hay dos parámetros de filtrado para la comprobación de la conexión a tierra contextual:

  1. Puesta a tierra – Esto se puede habilitar proporcionando un umbral de puesta a tierra que representa la puntuación de confianza mínima para que una respuesta del modelo esté fundamentada. Es decir, es factualmente correcta en función de la información proporcionada en la fuente de referencia y no contiene información nueva más allá de la fuente de referencia. Una respuesta del modelo con una puntuación inferior al umbral definido se bloquea y se devuelve el mensaje bloqueado configurado.
  2. Relevancia – Este parámetro funciona en base a una umbral de relevancia que representa la puntuación de confianza mínima para que una respuesta del modelo sea relevante para la consulta del usuario. Las respuestas del modelo con una puntuación inferior al umbral definido se bloquean y se devuelve el mensaje bloqueado configurado.

Un umbral más alto para los puntajes de fundamento y relevancia dará como resultado que se bloqueen más respuestas. Asegúrese de ajustar los puntajes en función de la tolerancia de precisión para su caso de uso específico. Por ejemplo, una aplicación orientada al cliente en el ámbito financiero puede necesitar un umbral alto debido a una menor tolerancia para el contenido inexacto.

Comprobación de la puesta a tierra contextual en acción
Permítame mostrarle algunos ejemplos para demostrar las comprobaciones de conexión a tierra contextuales.

Navego hasta la consola de administración de AWS para Amazon Bedrock. En el panel de navegación, selecciono Barandillasy luego Crear barandillaConfiguro una barandilla con la política de verificación de conexión a tierra contextual habilitada y especifico los umbrales de conexión a tierra y relevancia.

Para probar la política, navego hasta la Descripción general de la barandilla página y seleccione un modelo utilizando el Prueba Sección. Esto me permite experimentar fácilmente con varias combinaciones de información de origen y pautas para verificar la base contextual y la relevancia de la respuesta del modelo.

Para mi prueba, utilizo el siguiente contenido (sobre comisiones bancarias) como fuente:

• No hay tarifas asociadas con la apertura de una cuenta corriente.
• La tarifa mensual por mantener una cuenta corriente es de $10.
• Hay un cargo de transacción del 1% para transferencias internacionales.
• No hay cargos asociados con las transferencias nacionales.
• Los cargos asociados con pagos tardíos de una factura de tarjeta de crédito son del 23,99%.

Luego, ingreso preguntas en el Inmediato campo, comenzando con:

"What are the fees associated with a checking account?"

yo elijo Correr para ejecutar y Ver traza Para acceder a los detalles:

La respuesta del modelo fue factualmente correcta y relevante. Los puntajes de fundamentación y relevancia estuvieron por encima de los umbrales configurados, lo que permitió que la respuesta del modelo se enviara de vuelta al usuario.

A continuación, intento con otro mensaje:

"What is the transaction charge associated with a credit card?"

Los datos de origen solo mencionan los cargos por pagos atrasados ​​de tarjetas de crédito, pero no mencionan los cargos por transacciones asociadas con la tarjeta de crédito. Por lo tanto, la respuesta del modelo era relevante (relacionada con el cargo por transacción), pero incorrecta en cuanto a los hechos. Esto dio como resultado una puntuación de base baja y la respuesta se bloqueó ya que la puntuación estaba por debajo del umbral configurado de 0.85.

Finalmente probé este mensaje:

"What are the transaction charges for using a checking bank account?"

En este caso, la respuesta del modelo estaba fundamentada, ya que los datos de origen mencionan la tarifa mensual de una cuenta corriente bancaria. Sin embargo, era irrelevante porque la consulta era sobre cargos por transacciones y la respuesta estaba relacionada con las tarifas mensuales. Esto dio como resultado una puntuación de relevancia baja y la respuesta se bloqueó porque estaba por debajo del umbral configurado de 0.5.

A continuación se muestra un ejemplo de cómo configuraría la conexión a tierra contextual con el CreateGuardrail API que utiliza el SDK de AWS para Python (Boto3):

   bedrockClient.create_guardrail(
        name="demo_guardrail",
        description='Demo guardrail',
        contextualGroundingPolicyConfig={
            "filtersConfig": [
                {
                    "type": "GROUNDING",
                    "threshold": 0.85,
                },
                {
                    "type": "RELEVANCE",
                    "threshold": 0.5,
                }
            ]
        },
    )

Después de crear la barandilla con verificación de conexión a tierra contextual, se puede asociar con bases de conocimiento para Amazon Bedrock, agentes para Amazon Bedrock o hacer referencia a ella durante la inferencia del modelo.

¡Pero eso no es todo!

ApplyGuardrail: proteja las aplicaciones mediante FM disponibles fuera de Amazon Bedrock
Hasta ahora, Guardrails para Amazon Bedrock se utilizaba principalmente para evaluar las indicaciones de entrada y las respuestas del modelo para los FM disponibles en Amazon Bedrock, solo durante la inferencia del modelo.

Guardrails para Amazon Bedrock ahora admite un nuevo ApplyGuardrail API para evaluar todas las entradas de usuario y las respuestas del modelo en relación con las protecciones configuradas. Esta capacidad le permite aplicar protecciones estandarizadas y consistentes para todas sus aplicaciones de IA generativa creadas con cualquier FM autogestionado (personalizado) o de terceros, independientemente de la infraestructura subyacente. En esencia, ahora puede usar Guardrails para Amazon Bedrock para aplicar el mismo conjunto de protecciones en las solicitudes de entrada y las respuestas del modelo para los FM disponibles en Amazon Bedrock, FM disponibles en otros servicios (como Amazon SageMaker), en infraestructura como Amazon Elastic Compute Cloud (Amazon EC2), en implementaciones locales y otros FM de terceros más allá de Amazon Bedrock.

Además, también puedes utilizar el ApplyGuardrail API para evaluar las entradas de los usuarios y las respuestas de los modelos de forma independiente en diferentes etapas de sus aplicaciones de IA generativa, lo que permite una mayor flexibilidad en el desarrollo de aplicaciones. Por ejemplo, en una aplicación RAG, puede utilizar barandillas para evaluar y filtrar las entradas de los usuarios perjudiciales antes de realizar una búsqueda en su base de conocimientos. Posteriormente, puede evaluar la salida por separado después de completar la recuperación (búsqueda) y el paso de generación desde la base de conocimientos.

Déjame mostrarte cómo utilizar el ApplyGuardrail API en una aplicación. En el siguiente ejemplo, he utilizado el SDK de AWS para Python (Boto3).

Comencé creando una nueva barandilla (usando el create_guardrail función) junto con un conjunto de temas denegados y creó una nueva versión (usando el create_guardrail_version función):

import boto3

bedrockRuntimeClient = boto3.client('bedrock-runtime', region_name="us-east-1")
bedrockClient = boto3.client('bedrock', region_name="us-east-1")
guardrail_name="fiduciary-advice"

def create_guardrail():
    
    create_response = bedrockClient.create_guardrail(
        name=guardrail_name,
        description='Prevents the model from providing fiduciary advice.',
        topicPolicyConfig={
            'topicsConfig': [
                {
                    'name': 'Fiduciary Advice',
                    'definition': 'Providing personalized advice or recommendations on managing financial assets in a fiduciary capacity.',
                    'examples': [
                        'What stocks should I invest in for my retirement?',
                        'Is it a good idea to put my money in a mutual fund?',
                        'How should I allocate my 401(k) investments?',
                        'What type of trust fund should I set up for my children?',
                        'Should I hire a financial advisor to manage my investments?'
                    ],
                    'type': 'DENY'
                }
            ]
        },
        blockedInputMessaging='I apologize, but I am not able to provide personalized advice or recommendations on managing financial assets in a fiduciary capacity.',
        blockedOutputsMessaging='I apologize, but I am not able to provide personalized advice or recommendations on managing financial assets in a fiduciary capacity.',
    )

    version_response = bedrockClient.create_guardrail_version(
        guardrailIdentifier=create_response['guardrailId'],
        description='Version of Guardrail to block fiduciary advice'
    )

    return create_response['guardrailId'], version_response['version']

Una vez creada la barandilla, invoqué el apply_guardrail función con el texto requerido a evaluar junto con el ID y la versión de la barandilla que acabo de crear:

def apply(guardrail_id, guardrail_version):

    response = bedrockRuntimeClient.apply_guardrail(guardrailIdentifier=guardrail_id,guardrailVersion=guardrail_version, source="INPUT", content=[{"text": {"text": "How should I invest for my retirement? I want to be able to generate $5,000 a month"}}])
                                                                                                                                                    
    print(response["outputs"][0]["text"])

Utilicé el siguiente mensaje:

How should I invest for my retirement? I want to be able to generate $5,000 a month

Gracias a la barandilla, el mensaje se bloqueó y se devolvió la respuesta preconfigurada:

I apologize, but I am not able to provide personalized advice or recommendations on managing financial assets in a fiduciary capacity. 

En este ejemplo, establezco la fuente en INPUTlo que significa que el contenido que se evaluará proviene de un usuario (normalmente, el mensaje LLM). Para evaluar la salida del modelo, el source debe establecerse en OUTPUT.

Ya disponible
Comprobación de la conexión a tierra contextual y la ApplyGuardrail Las API están disponibles hoy en todas las regiones de AWS donde Guardrails para Amazon Bedrock está disponible. Pruébelas en la consola de Amazon Bedrock y envíe comentarios a AWS re:Post para Amazon Bedrock o a través de sus contactos habituales de AWS.

Para obtener más información sobre Guardrails, visite la página del producto Guardrails para Amazon Bedrock y la página de precios de Amazon Bedrock para comprender los costos asociados con las políticas de Guardrail.

No olvides visitar el comunidad.aws Sitio para encontrar contenido técnico detallado sobre soluciones y descubrir cómo nuestras comunidades de desarrolladores utilizan Amazon Bedrock en sus soluciones.

Abhishek

Fuente

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

GIPHY App Key not set. Please check settings

Tres nuevos juegos llegan a Apple Arcade en agosto, incluido Temple Run: Legends

Un investigador de seguridad informática de EVA utilizó un token de validación de sesión falsificado para apoderarse de una cuenta de CocoaPods.

Millones de aplicaciones de Apple fueron vulnerables al ataque CocoaPods