Los modelos de IA generativa tienen el potencial de revolucionar las operaciones comerciales, pero las empresas deben considerar cuidadosamente cómo aprovechar su poder mientras superan desafíos como proteger los datos y garantizar la calidad del contenido generado por IA.
El marco de recuperación-generación aumentada (RAG) amplía las indicaciones para incluir datos externos de múltiples fuentes, como: B. repositorios de documentos, bases de datos o API para que los modelos base sean efectivos para tareas específicas de un dominio. Esta publicación presenta las capacidades del modelo RAG y destaca el potencial transformador de MongoDB Atlas con su funcionalidad de búsqueda vectorial.
MongoDB Atlas es un conjunto integrado de servicios de datos que acelera y simplifica el desarrollo de aplicaciones basadas en datos. Su almacenamiento de datos vectoriales se integra perfectamente con el almacenamiento de datos operativos, eliminando la necesidad de una base de datos separada. Esta integración permite potentes capacidades de búsqueda semántica a través de Vector Search, una forma rápida de crear búsqueda semántica y aplicaciones impulsadas por IA.
Amazon SageMaker permite a las organizaciones crear, entrenar e implementar modelos de aprendizaje automático (ML). Amazon SageMaker JumpStart proporciona modelos y datos previamente entrenados para ayudarle a comenzar con el aprendizaje automático. La página de inicio de SageMaker JumpStart en Amazon SageMaker Studio le permite acceder, personalizar e implementar modelos y datos previamente entrenados con solo unos pocos clics.
Amazon Lex es una interfaz conversacional que ayuda a las empresas a crear chatbots y robots de voz que permiten interacciones naturales y realistas. Al integrar Amazon Lex con IA generativa, las empresas pueden crear un ecosistema holístico donde las aportaciones de los usuarios se transforman sin problemas en respuestas coherentes y contextualmente relevantes.
Descripción general de la solución
El siguiente diagrama ilustra la arquitectura de la solución.
En las siguientes secciones, recorreremos los pasos para implementar esta solución y sus componentes.
Configurar un clúster MongoDB
Para crear un clúster MongoDB Atlas gratuito, siga las instrucciones en «Crear un clúster». Configure el acceso a la base de datos y el acceso a la red.
Implementar el modelo de incrustación de SageMaker
Puede seleccionar el modelo de incrustación (ALL MiniLM L6 v2) en la página Modelos, portátiles y soluciones de SageMaker JumpStart Página.
Elegir Insertar para proporcionar el modelo.
Verifique que el modelo se haya implementado correctamente y que se haya creado el punto final.
Incrustación de vectores
La incrustación de vectores es un proceso de convertir un texto o una imagen en una representación vectorial. Podemos usar el siguiente código para generar incrustaciones de vectores usando SageMaker JumpStart y actualizar la colección con el vector creado para cada documento:
payload = {"text_inputs": [document[field_name_to_be_vectorized]]}
query_response = query_endpoint_with_json_payload(json.dumps(payload).encode('utf-8'))
embeddings = parse_response_multiple_texts(query_response)
# update the document
update = {'$set': {vector_field_name : embeddings[0]}}
collection.update_one(query, update)
El código anterior muestra cómo actualizar un solo objeto en una colección. Para actualizar todos los objetos, siga las instrucciones.
Almacén de datos vectoriales MongoDB
MongoDB Atlas Vector Search es una nueva característica que le permite almacenar y buscar datos vectoriales en MongoDB. Los datos vectoriales son un tipo de datos que representan un punto en un espacio de alta dimensión. Este tipo de datos se utiliza a menudo en aplicaciones de aprendizaje automático e inteligencia artificial. MongoDB Atlas Vector Search utiliza una técnica llamada k-vecinos más cercanos (k-NN) para buscar vectores similares. k-NN funciona encontrando los k vectores que son más similares a un vector dado. Los vectores más similares son aquellos que están más cerca del vector dado en términos de distancia euclidiana.
El almacenamiento de datos vectoriales junto con datos operativos puede mejorar el rendimiento al reducir la necesidad de mover datos entre diferentes sistemas de almacenamiento. Esto es particularmente beneficioso para aplicaciones que requieren acceso en tiempo real a datos vectoriales.
Crear un índice de búsqueda de vectores
El siguiente paso es crear un índice de búsqueda de vectores de MongoDB en el campo de vectores que creó en el paso anterior. MongoDB utiliza el knnVector
Ingrese para indexar incrustaciones de vectores. El campo vectorial debe representarse como una matriz de números (solo tipos de datos BSON int32, int64 o double).
Para obtener más información sobre las limitaciones de , consulte «Verificar las limitaciones del tipo KnnVector». knnVector
Tipo.
El siguiente código es una definición de índice de ejemplo:
{
"mappings": {
"dynamic": true,
"fields": {
"egVector": {
"dimensions": 384,
"similarity": "euclidean",
"type": "knnVector"
}
}
}
}
Tenga en cuenta que la dimensión debe coincidir con la dimensión de su modelo de incrustación.
Consultar el almacén de datos vectoriales
Puede consultar el almacén de datos vectoriales mediante la canalización de agregación de Vector Search. Utiliza el índice de búsqueda de vectores y realiza una búsqueda semántica en el almacén de datos vectoriales.
El siguiente código es un ejemplo de definición de búsqueda:
{
$search: {
"index": "<index name>", // optional, defaults to "default"
"knnBeta": {
"vector": [<array-of-numbers>],
"path": "<field-to-search>",
"filter": {<filter-specification>},
"k": <number>,
"score": {<options>}
}
}
}
Implemente el modelo de lenguaje grande de SageMaker
Los modelos básicos de SageMaker JumpStart son modelos de lenguaje grande (LLM) previamente entrenados que se utilizan para resolver diversas tareas de procesamiento del lenguaje natural (NLP), como: Por ejemplo, resumen de texto, respuesta a preguntas e inferencia en lenguaje natural. Están disponibles en diferentes tamaños y configuraciones. En esta solución utilizamos el modelo Hugging Face FLAN-T5-XL.
En SageMaker JumpStart, busque el modelo FLAN-T5-XL.
Elegir Insertar para configurar el modelo FLAN-T5-XL.
Asegúrese de que el modelo se implemente correctamente y que el punto final esté activo.
Crear un bot de Amazon Lex
Para crear un bot de Amazon Lex, siga los pasos a continuación:
- En la consola de Amazon Lex, seleccione crear robot.
- Para Nombre del robotIngresa un nombre.
- Para Rol de tiempo de ejecuciónelegir Cree un rol con permisos básicos de Amazon Lex.
- Especifique sus preferencias de idioma y luego seleccione Terminado.
- Agregar una expresión de muestra
NewIntent
Interfaz de usuario y seleccione Guardar intención. - Navegar a
FallbackIntent
que fue creado para usted de forma predeterminada y alternar Activo en el cumplimiento Sección. - Elegir Construir y después de que la compilación sea exitosa, seleccione Controlar.
- Antes de realizar la prueba, seleccione el ícono de ajustes.
- Especifique la función AWS Lambda que interactúa con MongoDB Atlas y LLM para proporcionar respuestas. Para crear la función Lambda, siga estos pasos.
- Ahora puede interactuar con el LLM.
Limpiar
Para limpiar sus recursos, siga estos pasos:
- Elimine el bot de Amazon Lex.
- Elimine la función Lambda.
- Elimine el punto final de LLM SageMaker.
- Elimine el punto final de SageMaker del modelo de incrustación.
- Elimine el clúster MongoDB Atlas.
Diploma
En la publicación, mostramos cómo crear un bot simple que aproveche la búsqueda semántica de MongoDB Atlas y se integre con un modelo JumpStart de SageMaker. Este bot le permite crear rápidamente prototipos de interacciones de usuario con diferentes LLM en SageMaker Jumpstart mientras las combina con el contexto de MongoDB Atlas.
Como siempre, AWS agradece los comentarios. Deje sus comentarios y preguntas en la sección de comentarios.
Sobre los autores

Ígor Alexéiev es arquitecto de soluciones socio senior en AWS en datos y análisis. En su función, Igor trabaja con socios estratégicos y les ayuda a crear arquitecturas complejas optimizadas para AWS. Antes de unirse a AWS, implementó muchos proyectos en el espacio de big data como arquitecto de datos/soluciones, incluidos múltiples lagos de datos en el ecosistema Hadoop. Como ingeniero de datos, participó en la aplicación de IA/ML para la detección de fraudes y la automatización de oficinas.
Babu Srinivasan es arquitecto de soluciones socio senior en MongoDB. En su puesto actual, trabaja con AWS para desarrollar integraciones técnicas y arquitecturas de referencia para las soluciones AWS y MongoDB. Tiene más de dos décadas de experiencia en tecnologías de bases de datos y nube. Le apasiona brindar soluciones técnicas a clientes que trabajan con múltiples integradores de sistemas globales (GSI) en diferentes regiones.