in

Cree aplicaciones RAG con MongoDB Atlas, ahora disponible en las bases de conocimiento de Amazon Bedrock | Servicios web de Amazon

Los modelos fundamentales (FM) se entrenan con grandes volúmenes de datos y utilizan miles de millones de parámetros. Sin embargo, para responder las preguntas de los clientes relacionadas con datos privados de dominios específicos, deben hacer referencia a una base de conocimientos autorizada fuera de las fuentes de datos de entrenamiento del modelo. Esto se logra comúnmente utilizando una técnica conocida como Generación Aumentada de Recuperación (RAG). Al obtener datos de fuentes internas o propietarias de la organización, RAG extiende las capacidades de los FM a dominios específicos, sin necesidad de volver a entrenar el modelo. Es un enfoque rentable para mejorar los resultados del modelo para que siga siendo relevante, preciso y útil en diversos contextos.

Knowledge Bases for Amazon Bedrock es una capacidad totalmente administrada que le ayuda a implementar todo el flujo de trabajo de RAG, desde la ingesta hasta la recuperación y el aumento rápido, sin tener que crear integraciones personalizadas con fuentes de datos ni administrar flujos de datos.

Hoy anunciamos la disponibilidad de Atlas de MongoDB como almacén de vectores en las bases de conocimiento de Amazon Bedrock. Con la integración del almacén de vectores MongoDB Atlas, puede crear soluciones RAG para conectar de forma segura las fuentes de datos privadas de su organización a los FM en Amazon Bedrock. Esta integración se suma a la lista de almacenes de vectores admitidos por Knowledge Bases para Amazon Bedrock, incluida Amazon Aurora PostgreSQL-Compatible Edition, motor de vectores para Amazon OpenSearch Serverless, Piñay Nube empresarial de Redis.

Cree aplicaciones RAG con MongoDB Atlas y bases de conocimientos para Amazon Bedrock
La búsqueda de vectores en MongoDB Atlas funciona con el vectorSearch tipo de índice. En la definición del índice, debe especificar el campo que contiene los datos vectoriales como tipo vectorial. Antes de utilizar la búsqueda vectorial de MongoDB Atlas en su aplicación, deberá crear un índice, ingerir datos de origen, crear incrustaciones de vectores y almacenarlos en una colección de MongoDB Atlas. Para realizar consultas, deberá convertir el texto de entrada en una incrustación de vectores y luego usar una etapa de canalización de agregación para realizar consultas de búsqueda de vectores en campos indexados como el vector escriba un vectorSearch índice de tipo.

Gracias a la integración de MongoDB Atlas con Knowledge Bases para Amazon Bedrock, la mayor parte del trabajo pesado ya está a cargo. Una vez configurados el índice de búsqueda de vectores y la base de conocimientos, puede incorporar RAG en sus aplicaciones. Detrás de escena, Amazon Bedrock convertirá su entrada (mensaje) en incrustaciones, consultará la base de conocimientos, aumentará el mensaje de FM con los resultados de la búsqueda como información contextual y devolverá la respuesta generada.

Permítame guiarle por el proceso de configuración de MongoDB Atlas como almacén de vectores en Knowledge Bases para Amazon Bedrock.

Configurar MongoDB Atlas
Comienza por creando un clúster de MongoDB Atlas en AWS. Elige un M10 dedicado nivel de clúster. Una vez que el clúster esté aprovisionado, cree un base de datos y recopilación. Próximo, crear un usuario de base de datos y concédele la Leer y escribir en cualquier base de datos. role. Seleccionar Contraseña como el método de autentificación. Finalmente, configurar el acceso a la red para modificar el Lista de acceso IP – agregar dirección IP 0.0.0.0/0 para permitir el acceso desde en cualquier lugar.

Utilice la siguiente definición de índice para crear el índice de búsqueda de vectores:

{
  "fields": [
    {
      "numDimensions": 1536,
      "path": "AMAZON_BEDROCK_CHUNK_VECTOR",
      "similarity": "cosine",
      "type": "vector"
    },
    {
      "path": "AMAZON_BEDROCK_METADATA",
      "type": "filter"
    },
    {
      "path": "AMAZON_BEDROCK_TEXT_CHUNK",
      "type": "filter"
    }
  ]
}

Configurar la base de conocimientos
Cree un secreto de AWS Secrets Manager para almacenar de forma segura las credenciales de usuario de la base de datos MongoDB Atlas. Elegir Otro como el tipo secreto. Cree un depósito de almacenamiento de Amazon Simple Storage Service (Amazon S3) y cargue la guía del usuario de la documentación de Amazon Bedrock en formato PDF. Más adelante, utilizará la base de conocimientos para hacer preguntas sobre Amazon Bedrock.

También puede utilizar otro documento de su elección porque Knowledge Base admite múltiples formatos de archivo (incluidos texto, HTML y CSV).

Navegue hasta la consola de Amazon Bedrock y consulte la Guía del usuario de Amzaon Bedrock para configurar la base de conocimientos. En el Seleccione el modelo de incrustaciones y configure la tienda de vectores, elija Titan Embeddings G1 – Texto como modelo de incrustación. De la lista de bases de datos, elija Atlas de MongoDB.

Ingrese la información básica para el clúster MongoDB Atlas (Nombre de host, Nombre de la base de datosetc.) así como el ARN del secreto de AWS Secrets Manager que había creado anteriormente. En el Mapeo de campos de metadatos atributos, ingrese los detalles específicos de la tienda de vectores. Deben coincidir con la definición del índice de búsqueda de vectores que utilizó anteriormente.

Iniciar la creación de la base de conocimientos. Una vez completado, sincronice la fuente de datos (datos del depósito S3) con el índice de búsqueda de vectores de MongoDB Atlas.

Una vez que se complete la sincronización, navegue hasta MongoDB Atlas para confirmar que los datos se hayan incorporado a la colección que creó.

Observe los siguientes atributos en cada uno de los documentos de MongoDB Atlas:

  • AMAZON_BEDROCK_TEXT_CHUNK – Contiene el texto sin formato para cada fragmento de datos.
  • AMAZON_BEDROCK_CHUNK_VECTOR – Contiene la incrustación de vectores para el fragmento de datos.
  • AMAZON_BEDROCK_METADATA – Contiene datos adicionales para la atribución de fuentes y capacidades de consulta enriquecidas.

Pruebe la base de conocimientos
Es hora de hacer preguntas sobre Amazon Bedrock consultando la base de conocimientos. Deberá elegir un modelo de base. Elegí Claude v2 en este caso y utilicé «¿Qué es Amazon Bedrock» como entrada (consulta)?

Si está utilizando un documento fuente diferente, ajuste las preguntas en consecuencia.

También puedes cambiar el modelo de base. Por ejemplo, cambié a Claude 3 Sonnet. Observe la diferencia en la salida y seleccione Mostrar detalles de la fuente para ver los fragmentos citados en cada nota a pie de página.

Integrar la base de conocimientos con las aplicaciones.
Para crear aplicaciones RAG sobre las bases de conocimientos de Amazon Bedrock, puede utilizar la API RetrieveAndGenerate, que le permite consultar la base de conocimientos y obtener una respuesta.

A continuación se muestra un ejemplo que utiliza AWS SDK para Python (Boto3):

import boto3

bedrock_agent_runtime = boto3.client(
    service_name = "bedrock-agent-runtime"
)

def retrieveAndGenerate(input, kbId):
    return bedrock_agent_runtime.retrieve_and_generate(
        input={
            'text': input
        },
        retrieveAndGenerateConfiguration={
            'type': 'KNOWLEDGE_BASE',
            'knowledgeBaseConfiguration': {
                'knowledgeBaseId': kbId,
                'modelArn': 'arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0'
                }
            }
        )

response = retrieveAndGenerate("What is Amazon Bedrock?", "BFT0P4NR1U")["output"]["text"]

Si desea personalizar aún más sus soluciones RAG, considere usar la API Retrieve, que devuelve las respuestas de búsqueda semántica que puede usar para la parte restante del flujo de trabajo RAG.

import boto3

bedrock_agent_runtime = boto3.client(
    service_name = "bedrock-agent-runtime"
)

def retrieve(query, kbId, numberOfResults=5):
    return bedrock_agent_runtime.retrieve(
        retrievalQuery= {
            'text': query
        },
        knowledgeBaseId=kbId,
        retrievalConfiguration= {
            'vectorSearchConfiguration': {
                'numberOfResults': numberOfResults
            }
        }
    )

response = retrieve("What is Amazon Bedrock?", "BGU0Q4NU0U")["retrievalResults"]

Cosas que saber

  • Nivel de clúster de MongoDB Atlas – Esta integración requiere requiere una Nivel de clúster Atlas de al menos M10.
  • Enlace privado de AWS – Para los fines de esta demostración, la base de datos MongoDB Atlas Lista de acceso IP fue configurado para permitir el acceso desde en cualquier lugar. Para implementaciones de producción, AWS PrivateLink es la forma recomendada de hacer que Amazon Bedrock establezca una conexión segura con su clúster MongoDB Atlas. Consulte la guía del usuario de Amazon Bedrock (en Atlas de MongoDB) para detalles.
  • Tamaño de incrustación de vectores – El tamaño de dimensión del índice vectorial y el modelo de incrustación deben ser los mismos. Por ejemplo, si planea utilizar Cohere Embed (que tiene un tamaño de dimensión de 1024) como modelo de incorporación para la base de conocimientos, asegúrese de configurar el índice de búsqueda de vectores en consecuencia.
  • Filtros de metadatos – Puede agregar metadatos a sus archivos fuente para recuperar un subconjunto bien definido de fragmentos semánticamente relevantes en función de los filtros de metadatos aplicados. Consulte la documentación para obtener más información sobre cómo utilizar filtros de metadatos.

Ya disponible
El almacén de vectores MongoDB Atlas en las bases de conocimiento de Amazon Bedrock está disponible en las regiones Este de EE. UU. (Norte de Virginia) y Oeste de EE. UU. (Oregón). Asegúrese de consultar la lista completa de regiones para futuras actualizaciones.

Aprende más

Pruebe la integración de MongoDB Atlas con Knowledge Bases para Amazon Bedrock. Enviar comentarios a AWS re: Publicación para Amazon Bedrock o a través de sus contactos habituales de AWS e interactúe con la comunidad de creadores de IA generativa en comunidad.aws.

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

Apple anuncia nuevas funciones de accesibilidad, incluido Eye Tracking

cyberattack

Las facturas de agua, los permisos de construcción y otros servicios de Kansas City siguen obstaculizados por el pirateo informático