Blog de Amazon Web Services (AWS)

Mejores prácticas para construir aplicaciones de IA generativa en AWS

Por Jay Rao, arquitecto principal de soluciones en AWS y Babu Kariyaden Parambath, especialista sénior en IA/ML en AWS.

Las organizaciones se enfrentan a distintos desafíos cuando intentan aplicar la IA (Inteligencia Artificial) generativa impulsada por modelos fundacionales (Foundational Models-FMs) buscando generar valor al negocio. Este artículo, presenta una visión general de las principales aproximaciones en IA generativa, incluyendo la ingeniería de peticiones (Prompt Engineering), la generación aumentada por recuperación (Retrieval Augmented Generation-RAG) y la personalización de modelos, ofreciendo así diferentes enfoques que se pueden considerar al construir aplicaciones que utilizan IA generativa.

Al aplicar estos enfoques, discutimos consideraciones relacionadas a alucinaciones, la integración con datos empresariales, la calidad de las salidas y el costo. Al final, encontrará un diagrama de flujo para ayudarle a determinar el mejor método para desarrollar sus propias aplicaciones impulsadas por FMs.

IA Generativa con AWS

La adopción de FMs implica importantes desafíos a las organizaciones que buscan utilizar esta tecnología:

Un desafío clave es asegurar resultados coherentes y de alta calidad que se alineen con las necesidades empresariales, evitando las alucinaciones o información falsa.

Gestionar cuidadosamente los riesgos de privacidad y seguridad de los datos que surgen en el procesamiento de datos propios con FMs.

Contar con las capacidades necesarias para integrar, personalizar y validar adecuadamente los FMs dentro de los sistemas existentes y con datos escasos. Construir grandes modelos de lenguaje (LLMs) desde cero o personalizar modelos preentrenados requiere importantes recursos tecnológicos, tiempo, inversiones y expertos para asumir la complejidad de este tipo de procesos.

Amazon Bedrock es un servicio completamente administrado que ofrece una selección de modelos fundacionales (FMs) de alto rendimiento de compañías líderes en IA a través de una única API. Con la experiencia sin servidor de Amazon Bedrock, puede comenzar rápidamente, personalizar de forma privada los FMs con sus propios datos e integrarlos y desplegarlos en sus aplicaciones utilizando herramientas de AWS sin tener que gestionar infraestructura.

Amazon Bedrock cumple con los requisitos para HIPAA y puede usar Amazon Bedrock en cumplimiento con el GDPR. Con Amazon Bedrock, su contenido no se utiliza para mejorar los modelos base y no se comparte con terceros, proveedores de los modelos. Sus datos en Amazon Bedrock siempre están encriptados en tránsito y en reposo y opcionalmente puede encriptar sus recursos usando sus propias claves de encripción. Y al usar AWS PrivateLink con Amazon Bedrock puede establecer una conexión privada entre sus FMs y su VPC sin exponer su tráfico de datos en internet.

Con las Bases de Conocimiento (Knowledge Bases) para Amazon Bedrock, es posible proveer a los FMs y a los agentes con información contextual de las fuentes de datos privadas de su empresa, para entregar respuestas más relevantes, precisas y personalizadas.

Lanzado en 2017, Amazon SageMaker es un servicio completamente administrado que facilita la construcción, el entrenamiento y el despliegue de modelos de ML. Cada vez más, los clientes están construyendo sus propios FMs utilizando SageMaker y para ayudarlo a comenzar rápidamente, Amazon SageMaker JumpStart ofrece un centro de servicios de ML donde es posible explorar, entrenar y desplegar una amplia selección de FMs públicos, utilizando herramientas específicas de SageMaker como experimentos y canalizaciones (pipelines).

Seleccionando el enfoque correcto para desarrollar aplicaciones de IA generativa

Cuando se desarrollan aplicaciones de IA generativa y antes de seleccionar el modelo adecuado, las organizaciones deben considerar cuidadosamente varios factores clave como:

Integración con sistemas empresariales – Para que los FMs sean verdaderamente útiles en un contexto empresarial, deben interoperar con los sistemas y los flujos de trabajo empresariales existentes para utilizar los datos empresariales y garantizar una mayor precisión y una única fuente de verdad.

Reducción de alucinaciones o información falsa – Las alucinaciones ocurren cuando una aplicación de IA genera información falsa que parece ser verídica. Prevenir alucinaciones perjudiciales mediante soluciones técnicas y la curación de los conjuntos de datos, será fundamental para garantizar que los FMs puedan ser confiables en aplicaciones críticas como la atención médica, finanzas y el ámbito legal.

Calidad en las salidas – La calidad en las salidas generadas por los FMs será fundamental para determinar su adopción y uso, especialmente en aplicaciones dirigidas al consumidor como los chatbots. La calidad de la salida abarca factores como la relevancia, la precisión, la coherencia y la pertinencia, los cuales contribuyen a la satisfacción general del usuario y a determinar el éxito o el fracaso de la adopción de los FMs.

Costo – La alta capacidad computacional requerida para entrenar y ejecutar grandes modelos de IA como los FMs puede generar costos importantes. Es necesario para las organizaciones que el modelo seleccionado se ajuste a las restricciones presupuestarias y satisfaga los beneficios planteados.

Habilidades y recursos – La adopción exitosa de los FMs dependerá en gran medida de contar con las habilidades y los recursos adecuados para utilizar la tecnología de manera efectiva. Las organizaciones necesitan empleados con fuertes habilidades técnicas y recursos computacionales, como hardware avanzado y capacidades de cómputo en la nube, para ejecutar FMs complejos.

Enfoques comunes de IA Generativa

En esta sección, discutiremos enfoques comunes que le ayudarán a construir soluciones efectivas de IA generativa. Para comenzar, presentamos en la siguiente imagen una comparación de estos enfoques respecto a su complejidad, calidad, tiempo y costo que le guiarán en el entendimiento de cada uno de ellos.

Figura 1. Enfoques para aplicaciones de IA Generativa.

Ingeniería de peticiones (Prompt engineering)

La ingeniería de peticiones es la práctica de diseñar cuidadosamente peticiones (prompts) para aprovechar eficientemente las capacidades de los FMs. Esto implica el uso de peticiones, que son fragmentos cortos de texto que guían al modelo para generar respuestas más precisas y relevantes. Con la ingeniería de peticiones, es posible mejorar el rendimiento de los FMs y hacerlos más eficientes para una variedad de aplicaciones sin requerir el reentrenamiento del modelo.

Peticiones con cero ejemplos (Zero-shot prompting)

La técnica de peticiones con cero ejemplos requiere que los FMs generen una respuesta sin proporcionar ejemplos explícitos del comportamiento deseado, confiando únicamente en su preentrenamiento. La siguiente imagen muestra un ejemplo de peticiones con cero ejemplos con el modelo Anthropic Claude 3 Sonnet en la consola de Amazon Bedrock.

Figura 2. Ejemplo de ingeniería de peticiones con cero ejemplos usando el modelo Anthropic Claude 3 Sonnet.

En estas instrucciones, no proporcionamos ningún ejemplo. Sin embargo, el modelo puede entender la tarea y generar una salida adecuada. Las peticiones con cero ejemplos es la técnica de peticiones más sencilla para comenzar cuando se evalúa un FM para su caso de uso. Sin embargo, aunque los FMs son notables con peticiones con cero ejemplos, es posible que no siempre produzcan resultados precisos o deseados para tareas más complejas. Cuando las peticiones con cero ejemplos se quedan cortas, se recomienda proporcionar algunos ejemplos en la petición (peticiones con pocos ejemplos).

Peticiones con pocos ejemplos (Few-shot prompting)

La técnica de peticiones con pocos ejemplos permite a los FMs aprender en contexto a partir de los ejemplos entregados en las peticiones y realizar la tarea con mayor efectividad. Con solo unos pocos ejemplos, es posible adaptar rápidamente los FMs a nuevas tareas sin grandes conjuntos de entrenamiento y guiarlos hacia el comportamiento deseado. Puede usar las peticiones con pocos ejemplos en tareas como análisis de sentimientos, reconocimiento de entidades, respuesta a preguntas, traducción y generación de código.

A continuación, presentamos un ejemplo de una petición con pocos ejemplos con el modelo Cohere Command en la consola de Amazon Bedrock.

Figura 3. Ejemplo de ingeniería de peticiones con pocos ejemplos usando el modelo Cohere Command.

Peticiones de cadena de pensamiento (Chain-of-thought prompting-CoT)

A pesar de su potencial, las peticiones con pocos ejemplos tienen limitaciones, especialmente al tratar con tareas de razonamiento complejo (como tareas aritméticas o lógicas). Estas tareas requieren descomponer el problema en pasos para lograr resolverlo. Puede combinar CoT con peticiones con pocos ejemplos para mejorar los resultados en tareas complejas. A continuación, presentamos un ejemplo de una tarea de razonamiento utilizando peticiones CoT con pocos ejemplos trabajando con el modelo Anthropic Claude 3 Haiku en la consola de Amazon Bedrock.

Figura 4. Ejemplo de ingeniería de peticiones CoT con pocos ejemplos usando el modelo Anthropic Claude 3 Haiku.

Puede utilizar las peticiones de CoT con cero ejemplos para tareas simples de razonamiento, añadiendo “Vamos a pensarlo paso a paso” a la petición original.

Razonamiento y acción (Reasoning and Acting-ReAct)

CoT puede mejorar las capacidades de razonamiento de los FMs, pero aún depende del conocimiento interno del modelo y no considera ninguna base de conocimiento externa o el entorno para recopilar más información, lo que puede llevar a problemas como la alucinación. Con el enfoque ReAct (razonamiento y acción) usted puede estructurar las peticiones para mostrar a un FM cómo razonar una tarea y decidir las acciones que le ayudarán a encontrar una solución. Las instrucciones estructuradas incluyen una secuencia de ejemplos de pregunta-pensamiento-acción-observación. Los agentes de Amazon Bedrock incorporan la construcción de estas peticiones basándose en la información y las acciones que usted proporciona, tal como lo explicaremos más adelante.

Generación Aumentada por Recuperación (Retrieval Augmented Generation)

La generación aumentada por recuperación (Retrieval Augmented Generation-RAG) le permite personalizar las respuestas de un modelo utilizando conocimientos nuevos o información actualizada sin tener que reentrenar el modelo. Para dotar al FM con información propietaria actualizada, las organizaciones recurren a RAG, una técnica que implica obtener información de fuentes de datos de la empresa y enriquecer la petición con esos datos para entregar respuestas más relevantes y precisas. El siguiente diagrama explica el funcionamiento de esta técnica.

Figura 5. Funcionamiento de la generación aumentada por recuperación (Retrieval Augmented Generation-RAG).

Existen varios casos de uso donde RAG puede ayudar a mejorar el desempeño del FM: respuesta a preguntas, personalización de las respuestas, agentes conversacionales – chatbots, generación de resúmenes, traducción, asistencia en la escritura de documentos y la generación de narrativas produciendo salidas más atractivas, relevantes y de mayor calidad.

RAG ofrece importantes beneficios sobre otras técnicas mencionadas previamente, en aspectos como:

  • Reducir las alucinaciones.
  • Abordar problemas de cobertura limitada al permitir que el FM abarque temas y escenarios más allá de sus datos de entrenamiento con la incorporación de información externa.
  • Aumentar la eficiencia del modelo al permitirle utilizar contextos más amplios.
  • Mejorar la gobernanza y el control sobre la generación de contenido dañino e inexacto.
  • Al indexar y recuperar partes de los grandes volúmenes de información permite que el enfoque sea más escalable en comparación con el uso completo del corpus durante la generación de las salidas.
  • Presenta el más alto grado de flexibilidad cuando se trata de cambios en la arquitectura, usted puede cambiar el modelo para generar la representación vectorial de los datos (embedding), el almacenamiento vectorial y el FM de forma independiente con un impacto de mínimo a moderado en otros componentes.

Las Bases de Conocimiento para Amazon Bedrock proporcionan una experiencia de RAG completamente administrada y la forma más sencilla de comenzar con RAG en Amazon Bedrock. Estas Bases de Conocimiento para Amazon Bedrock automatizan todo el flujo de trabajo de RAG, incluida la ingesta, recuperación y enriquecimiento de las peticiones, eliminando la necesidad de escribir código personalizado para integrar fuentes de datos y gestionar las consultas. Adicionalmente, las respuestas de la base de conocimientos incluyen las citas de las fuentes para mejorar la transparencia y minimizar las alucinaciones. Si busca una mayor abstracción para construir un asistente impulsado por IA generativa puede utilizar Amazon Q, el cual ya cuenta con un sistema RAG integrado.

Para obtener más información sobre el enfoque RAG con Amazon OpenSearch Service y Amazon Bedrock, puede consultar Creación de un pipeline de ingesta datos RAG para cargas de trabajo ML a gran escala. Para entender cómo implementar RAG con Amazon Kendra, consulte Aprovechando el poder de los datos empresariales con IA generativa: Ideas a partir de Amazon Kendra, LangChain y grande modelos de lenguaje.

Agentes

Los FMs pueden entender y responder a consultas basadas en su conocimiento preentrenado. Sin embargo, no pueden completar por sí mismos tareas del mundo real, como reservar un vuelo o procesar una orden de compra. Esto se debe a que dichas tareas requieren datos y flujos de trabajo específicos de la organización que generalmente necesitan programación personalizada. En este contexto los Agentes para Amazon Bedrock, una nueva capacidad de IA totalmente administrada de AWS, pueden descomponer automáticamente tareas y generar la lógica de orquestación necesaria, sin necesidad de la programación manual, simplificando a los desarrolladores la construcción de aplicaciones utilizando FMs de última generación. El siguiente diagrama explica el funcionamiento de esta técnica.

Figura 6. Funcionamiento de los agentes de Amazon Bedrock.

Para profundizar en el proceso de ejecución de los agentes de Bedrock, consulte Cómo funcionan los Agentes para Amazon Bedrock.

Personalización de los modelos

En esta sección, discutimos diferentes técnicas y beneficios al personalizar sus FMs. Abordamos cómo la personalización del modelo implica un entrenamiento adicional y cambios en los pesos del modelo para mejorar su desempeño.

Ajuste Fino (Fine-tuning)

Ajuste fino es el proceso de tomar un FM preentrenado y adaptarlo a una tarea determinada al proporcionar un conjunto de datos etiquetado y específicos para esa tarea. De manera, que se ajustan los parámetros del modelo a la tarea específica según el contexto de su negocio. El modelo preentrenado proporciona conocimiento general, y el ajuste fino le permite especializarse y mejorar su desempeño en una tarea particular, como la clasificación de texto, la respuesta a preguntas o la generación de texto.

Amazon SageMaker JumpStart y Amazon Bedrock permiten implementar el ajuste fino en FMs. Para obtener más detalles, puede consultar Desplegar y ajustar modelos fundacionales en Amazon SageMaker JumpStart con dos líneas de código y Personalice con ajuste fino y despliegue modelos de lenguaje con Amazon Sagemaker Canvas y Amazon Bedrock.

Preentrenamiento continuo (Continued pre-training)

Con el proceso preentrenamiento continúo se utiliza un conjunto de datos no etiquetados para mejorar la efectividad del modelo fundacional en un dominio particular, de manera que los parámetros del modelo son modificados para adaptarlos a los datos de entrada y mejorar su conocimiento de ese dominio.

Con el preentrenamiento continuo en Amazon Bedrock, puede enseñarle a un modelo previamente entrenado, utilizando datos adicionales y similares a los usados en su conjunto de datos original. Esto hace que el modelo adquiera un conocimiento más general en lugar de centrarse en una sola aplicación. Por ejemplo, una empresa de atención médica puede continuar preentrenando su modelo utilizando revistas, artículos e investigaciones médicas para que adquiera un mayor conocimiento sobre la terminología específica de la industria. Para obtener más detalle, puede consultar Personalice modelos en Amazon Bedrock con sus datos usando ajuste fino y preentrenamiento continuo.

Beneficios de la personalización de modelos

La personalización de modelos tiene varias ventajas y puede ayudar a las organizaciones en lo siguiente:

Adaptación a un dominio específico – Puede utilizar un FM de propósito general y después entrenarlo aún más con datos de un dominio específico (como biomédico, legal o financiero). Esto adapta el modelo al vocabulario, estilo, etc., de ese dominio.

Ajuste fino a una tarea específica – Puede tomar un FM preentrenado y ajustarlo finamente con datos para una tarea específica (como análisis de sentimientos o respuesta a preguntas). Esto especializa el modelo para esa tarea en particular.

Personalización – Puede personalizar un FM con los datos de un individuo (correos electrónicos, mensajes de texto, documentos que ha escrito) para adaptar el modelo a su estilo único. Esto puede permitir aplicaciones mucho más personalizadas.

Ajuste de lenguaje con recursos limitados –Puede reentrenar solo las capas superiores de un FM multilenguaje en un idioma, con recursos limitados para mejorar la adaptación a ese idioma.

Corrección de fallas – Si se descubren ciertos comportamientos no deseados en un modelo, la personalización con datos apropiados puede ayudar a actualizar el modelo para reducir esos errores.

La personalización de modelos tiene mayor complejidad que la ingeniería de peticiones y RAG, por lo que requiere experiencia en ciencia de datos y ML. Amazon Bedrock simplifica este proceso al proporcionar una experiencia administrada para personalizar los modelos mediante ajuste fino o preentrenamiento continuo. En comparación con RAG, la calidad podría ser ligeramente mejor según el caso de uso por lo que es importante realizar un balance entre estas dos técnicas. Potencialmente, puede implementar RAG con un modelo personalizado.

Decisión sobre el diseño

Como abordamos en esta publicación, actualmente existen varias técnicas de IA disponibles, como la ingeniería de peticiones, RAG y la personalización de modelos. Esta gama de opciones dificulta que las empresas determinen el enfoque óptimo para su caso de uso particular. La selección del conjunto adecuado de técnicas depende de varios factores, como el acceso a fuentes de datos externas, flujos de datos en tiempo real y la especificidad del dominio de aplicación. Para ayudar a identificar la técnica más adecuada según el caso de uso y las consideraciones involucradas, presentamos el siguiente diagrama de flujo, que describe recomendaciones para relacionar necesidades y restricciones específicas con los métodos apropiados.

Figura 7. Diagrama de flujo de recomendación de técnicas de IA generativa.

Conclusión

La IA generativa ofrece un extraordinario potencial para que las organizaciones impulsen la innovación y aumenten la productividad en una variedad de aplicaciones. Sin embargo, adoptar con éxito estas tecnologías emergentes de IA requiere abordar consideraciones esenciales en torno a la integración, la calidad de la salida, las capacidades, los costos y los riesgos potenciales, como las alucinaciones o las vulnerabilidades de seguridad.

Las organizaciones deben adoptar un enfoque sistemático para evaluar los requisitos y restricciones de su caso de uso, a fin de determinar las técnicas más apropiadas para adaptar y aplicar los FMs. Como se destaca en esta publicación, la ingeniería de peticiones, RAG y los métodos eficientes de personalización de modelos tienen sus propias fortalezas y debilidades que se adaptan a diferentes escenarios.

Al relacionar las necesidades empresariales con las capacidades de la IA utilizando un marco estructurado, las organizaciones pueden superar los obstáculos para la implementación y comenzar a obtener beneficios de los FMs, al tiempo que establecen salvaguardias para gestionar los riesgos. Con una planificación cuidadosa basada en ejemplos del mundo real, las empresas de todos los sectores pueden desbloquear beneficios para el negocio con esta nueva ola de la IA generativa. Obtenga más información sobre IA generativa en AWS.

Basado en el blog: Best practices to build generative AI applications on AWS by Jay Rao and Babu Kariyaden Parambath

Autores

Author-JayRao Jay Rao es arquitecto principal de soluciones en AWS. Se centra en tecnologías de IA/ML con un gran interés en IA generativa y Computer Vision. En AWS, le gusta brindar orientación técnica y estratégica a los clientes y ayudarlos a diseñar e implementar soluciones que impulsen los resultados comerciales. Es autor de libros (Computer Vision en AWS), publica regularmente blogs y ejemplos de códigos y ha impartido charlas en conferencias tecnológicas como AWS re:Invent.
Babu Kariyaden Parambath es especialista sénior en IA/ML en AWS. En AWS, le gusta trabajar con los clientes para ayudarlos a identificar el caso de uso empresarial adecuado con valor empresarial y resolverlo utilizando las soluciones y servicios de IA/ML de AWS. Antes de unirse a AWS, Babu era un evangelista de la IA con 20 años de experiencia en diversos sectores en la entrega de valor empresarial impulsado por la IA para los clientes.

Traductora

  Mónica Ruiz, es Gerente de Soluciones para Clientes en Amazon Web Services (AWS). Es Ingeniera de Sistemas y cuenta con especialización en Sistemas de Información, Maestría en Tecnologías de Información, estudios en Machine Learning y certificaciones de AWS en diferentes áreas de conocimiento. Con más de 20 de años de experiencia en distintos roles como desarrolladora, líder de proyectos, arquitecta de soluciones en el sector público y privado. Además, es docente en la Universidad Nacional de Colombia de Bogotá en el programa de Ingeniería de Sistemas y Computación.

Revisor

Enrique Rodríguez es Arquitecto de Soluciones de Amazon Web Servicies (AWS). Basado en Chile actualmente ayudando a los clientes de la región a lograr sus desafíos en la nube. Con intereses en Machine Learning y Customer Experience.