29,99 €
Las empresas de hoy en día avanzan rápidamente para integrar la inteligencia artificial generativa en sus productos y servicios. Hay mucha agitación (y también malentendidos) sobre el impacto y la promesa de esta tecnología. Con este libro, Chris Fregly, Antje Barth y Shelbee Eigenbrode, de Amazon Web Services, le ayudarán a encontrar formas prácticas de usar esta tecnología tan nueva y atractiva. Gracias a IA generativa en AWS, descubrirá el ciclo de vida de los proyectos de IA generativa, que incluye la definición de casos de uso, la selección y el ajuste de los modelos, la generación mejorada por recuperación, el aprendizaje por refuerzo a partir de la retroalimentación humana y la cuantificación, la optimización y el despliegue de los modelos. Además, explorará diferentes tipos de modelos, incluidos los modelos de lenguaje grandes (LLM) y los multimodales, como Stable Diffusion para generar imágenes y Flamingo/IDEFICS para responder preguntas sobre imágenes. Asimismo, con esta lectura: Utilizará la IA generativa en los casos de uso de negocio Determinará qué modelos de IA generativa son los más adecuados para su tarea Desarrollará ingeniería de indicaciones y aprendizaje en contexto Afinará los modelos de IA generativa con los conjuntos de datos con adaptación de rango bajo (LoRA) Alineará los modelos de IA generativa con los valores humanos con el aprendizaje por refuerzo a partir de la retroalimentación humana (RLHF) Perfeccionará el modelo con la generación mejorada por recuperación (RAG) Explorará bibliotecas como LangChain y ReAct para desarrollar agentes y acciones Creará aplicaciones de IA generativa con Amazon Bedrock No importa si es un director técnico, un profesional de aprendizaje automático (AA), un desarrollador de aplicaciones, un analista de negocios, un ingeniero de datos o un científico de datos; si tiene interés en el mundo de la IA, este libro no le dejará indiferente.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 375
Veröffentlichungsjahr: 2024
Estoy muy entusiasmado con este libro, que contiene una gran mezcla de información teórica y de fondo, así como código, secuencias de comandos y tutoriales prácticos y detallados. Disfruté al leerlo y sé que también usted lo hará. Empezando por lo básico, aprenderá sobre modelos básicos generativos, ingeniería de indicaciones y mucho más. A partir de ahí, pasará a los modelos de lenguaje grandes (LLM) y verá cómo utilizarlos con Amazon SageMaker. Después de dominar los conceptos básicos, tendrá la oportunidad de aprender sobre tipos múltiples de ajuste fino y luego llegará al corazón del libro y aprenderá a construir aplicaciones que tengan el poder de realizar razonamientos sensibles al contexto con modelos generativos de modalidades diferentes, incluyendo texto e imágenes.
—Jeff Barr, vicepresidente y jefe de divulgación de AWS
Este libro es un recurso integral para crear soluciones generativas basadas en IA con AWS. Utilizando ejemplos del mundo real, Chris, Antje y Shelbee han hecho un trabajo espectacular explicando conceptos clave, dificultades y mejores prácticas para los LLM y los modelos multimodales. Un recurso muy oportuno para acelerar el proceso de creación de soluciones de IA generativa desde el concepto hasta la producción.
—Geeta Chauhan, líder de IA aplicada en Meta
En el proceso de desarrollo e implementación de una aplicación de IA generativa hay muchos puntos de decisión complejos que determinan colectivamente si la aplicación producirá resultados de calidad alta y se puede ejecutar de una manera rentable, escalable y confiable. Este libro desmitifica las tecnologías subyacentes y proporciona una guía reflexiva que ayuda a los lectores a comprender y tomar estas decisiones y, en última instancia, a poner en marcha aplicaciones de IA generativa exitosas.
— Brent Rabowsky, director IA/AA especialista SA en AWS
Es muy raro encontrar un libro que cubra de manera integral el proceso completo de desarrollo e implementación de modelos. Si practica el aprendizaje automático (AA), este libro es una necesidad.
—Alejandro Herrera, científico de datos en Snowflake
En este libro se profundiza sobre cómo se construyen y utilizan realmente los modelos GenAI. Y se cubre todo el ciclo de vida, no solo la ingeniería de indicaciones o el ajuste. Si está pensando en usar GenAI para algo no trivial, debe leer este libro para entender qué conjuntos de habilidades y herramientas necesitará para tener éxito.
—Randy DeFauw, principal arquitecto de soluciones en AWS
No hay mejor libro para empezar con la IA generativa. Toda la información en Internet sobre el tema es extremadamente abrumadora para cualquiera. Pero este libro es una guía clara y estructurada: va desde lo básico hasta temas avanzados, como el ajuste fino con parámetros eficientes y el despliegue de LLM. También es muy práctico y además cubre la implementación en AWS. Este libro es un recurso extremadamente valioso para cualquier científico de datos o ingeniero.
—Alexey Grigorev, principal científico de datos del Grupo OLX y fundador de DataTalks.Club
Este es, de lejos, el mejor libro que he encontrado que hace que la construcción de IA generativa sea muy práctica. Antje, Chris y Shelbee reunieron un recurso excepcional que será muy valioso durante años y, quizá, se convertirá en un recurso didáctico para las universidades. Definitivamente una lectura obligada para cualquier persona que cree aplicaciones de IA generativa a escala con AWS.
—Olalekan Elesin, director de Data Science Platform en HRS Group
Si está buscando una base de aprendizaje sólida para crear e implementar productos o servicios de IA generativa, no busque más allá de la IA generativa en AWS. Guiado por la experiencia profunda de los autores Chris Fregly, Antje Barth y Shelbee Eigenbrode, con este libro hará la transición de novato de GenAI a maestro de los intrincados matices involucrados en la formación, el ajuste fino y el desarrollo de las aplicaciones. Este manual es una guía indispensable y una necesidad verdadera para cada ingeniero de IA en ciernes, gerente de producto, comercializador o líder de negocios.
—Lillian Pierson, PE, fundadora de Data-Mania
IA generativa en AWS ofrece una visión profunda de las técnicas innovadoras para crear aplicaciones que comprenden tipos diversos de datos y toman decisiones basadas en el contexto. Los lectores obtienen una visión completa, uniendo los aspectos teóricos y las herramientas prácticas necesarias para las aplicaciones de IA generativa. Este libro es una lectura obligada para aquellos que desean aprovechar todo el potencial de AWS en el ámbito de la IA generativa.
—Kesha Williams, directora de Slalom Consulting y AWS Machine Learning Hero
El panorama de la IA generativa evoluciona tan rápido que es increíble ver tanto conocimiento relevante condensado en un libro completo. ¡Bien hecho!
—Francesco Mosconi, director de ciencia de datos en Catalit
Creación de aplicaciones multimodales
Chris Fregly, Antje Barth y Shelbee Eigenbrode
Primera edición original publicada en inglés por O’Reilly con el título Generative AI on AWS, ISBN 978-1-098-15922-1 © 2024 Flux Capacitor, LLC, Antje Barth and Shelbee Eigenbrode.
This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same.
Título de la edición en español: IA generativa en AWS
Primera edición en español, 2024
© 2024 MARCOMBO, S.L.
www.marcombo.com
Diseño de portada: Karen Montgomery
Ilustración: Kate Dullea
Traducción: Miguel Ángel Torres
Corrección: Anna Alberola
Directora de producción: M.a Rosa Castillo
Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. La presente publicación contiene la opinión del autor y tiene el objetivo de informar de manera precisa y concisa. La elaboración del contenido, aunque se ha trabajado de modo escrupuloso, no puede comportar una responsabilidad específica para el autor ni el editor de los posibles errores o imprecisiones que pudiera contener la presente obra.
ISBN del libro en papel: 978-84-267-3820-2
ISBN del libro electrónico: 978-84-267-3734-2
Producción del ePub: booqlab
Prefacio
1.Casos de uso de IA generativa, fundamentos y ciclo de vida del proyecto
Casos de uso y tareas
Modelos básicos y centros de modelos
Ciclo de vida del proyecto de IA generativa
IA generativa en AWS
¿Por qué IA generativa en AWS?
Creación de aplicaciones de IA generativa con AWS
Resumen
2.Ingeniería de indicaciones y aprendizaje en contexto
Indicaciones y respuestas
Componentes léxicos
Ingeniería de indicaciones
Estructura de indicaciones
Instrucción
Contexto
Aprendizaje en contexto con inferencia con pocos golpes
Inferencia con cero golpes
Inferencia con un solo golpe
Inferencia con pocos golpes
Cuando el aprendizaje en contexto sale mal
Mejores prácticas de aprendizaje en contexto
Mejores prácticas de ingeniería de indicaciones
Parámetros de configuración de inferencia
Resumen
3.Modelos de lenguaje grandes básicos
Modelos de lenguaje grandes básicos
Analizadores léxicos
Vectores de incrustación
Transformadores
Ventana de entradas y contexto
Capa de incrustación
Codificador
Autoservicio
Decodificador
Salida softmax
Tipos de modelos básicos basados en transformadores
Conjuntos de datos para formación previa
Leyes de escalamiento
Modelos informáticos óptimos
Resumen
4.Optimizaciones de memoria y cálculo
Problemas de memoria
Tipos de datos y precisión numérica
Cuantificación
fp16
bfloat16
fp8
int8
Optimización de las capas de autoservicio
FlashAttention
Atención de consulta agrupada
Informática distribuida
Paralelismo de datos distribuidos
Paralelismo de datos totalmente fragmentados
Comparación del rendimiento de FSDP con DDP
Informática distribuida en AWS
Paralelismo de datos totalmente fragmentados con Amazon SageMaker
SDK de AWS Neuron y AWS Trainium
Resumen
5.Ajuste fino y evaluación
Ajuste fino de las instrucciones
Llama 2-Chat
Falcon-Chat
FLAN-T5
Conjunto de datos de instrucciones
Conjunto de datos de instrucciones multitarea
FLAN: ejemplo de conjunto de datos de instrucciones multitarea
Plantilla para indicaciones
Convierta un conjunto de datos personalizado en uno de instrucciones
Ajuste fino de las instrucciones
Amazon SageMaker Studio
Amazon SageMaker JumpStart
Amazon SageMaker Estimator para Hugging Face
Evaluación
Métricas de evaluación
Puntos de referencia y conjuntos de datos
Resumen
6.Ajuste fino con parámetros eficientes
Ajuste fino completo frente a PEFT
LoRA y QLoRA
Principios básicos de LoRA
Rango
Módulos y capas objetivo
Utilización de LoRA
Fusión del adaptador LoRA con el modelo original
Mantenimiento de adaptadores LoRA separados
Ajuste fino completo frente a rendimiento LoRA
QLoRA
Afinación de indicaciones e indicaciones suaves
Resumen
7.Ajuste fino con aprendizaje por refuerzo a partir de la retroalimentación humana
Alineación humana: útil, honesta e inofensiva
Panorama del aprendizaje por refuerzo
Forme un modelo de recompensa personalizado
Recopilación de datos de formación con personas en el ciclo
Ejemplo de instrucciones para etiquetadores humanos
Uso de Amazon SageMaker Ground Truth para anotaciones humanas
Prepare los datos de clasificación para formar un modelo de recompensa
Formar al modelo de recompensa
Modelo de recompensa existente: detector de toxicidad de Meta
Ajuste fino con aprendizaje por refuerzo a partir de la retroalimentación humana
Utilización del modelo de recompensa con RLHF
Algoritmo RL de optimización proximal de políticas
Ajuste fino del RLHF con PPO
Mitigación del pirateo de recompensas
Utilización del ajuste fino con parámetros eficientes con RLHF
Evaluar el modelo RLHF afinado
Evaluación cualitativa
Evaluación cuantitativa
Modelo de evaluación de la carga
Definición de la función de agregación métrica de evaluación
Comparación de las métricas de evaluación antes y después
Resumen
8.Optimización de la puesta en marcha de los modelos
Optimizaciones de modelos para inferencia
Poda
Cuantificación postformación con GPTQ
Destilación
Contenedor de inferencia de modelos grandes
AWS Inferentia: hardware específico para la inferencia
Estrategias de actualización e instalación de modelos
Pruebas A/B
Implementación en paralelo
Métricas y monitoreo
Autoescalado
Políticas de autoescalado
Definición de una política de autoescalado
Resumen
9.Aplicaciones de razonamiento sensibles al contexto usando RAG y agentes
Limitaciones de los modelos de lenguaje grandes
Alucinación
Corte de conocimiento
Generación mejorada por recuperación
Fuentes de conocimiento externas
Flujo de trabajo RAG
Carga de documentos
Agrupamiento
Recuperación y reordenación de documentos
Mejora de la indicación
Orquestación e implementación de RAG
Carga y agrupamiento de documentos
Almacenamiento y recuperación de vectores de incrustación
Cadenas de extracción
Reordenación con la relevancia marginal máxima
Agentes
Entorno ReAct
Entorno de lenguaje asistido por programas
Aplicaciones de IA generativa
FMOps: puesta en marcha del ciclo de vida del proyecto de IA generativa
Consideraciones sobre la experimentación
Consideraciones sobre el desarrollo
Consideraciones sobre la instalación en producción
Resumen
10.Modelos básicos multimodales
Casos de uso
Mejores prácticas de ingeniería de indicaciones multimodal
Generación y mejora de imágenes
Generación de imágenes
Edición y mejora de imágenes
Rellenado, pintura exterior, profundidad a la imagen
Rellenado
Pintura exterior
Profundidad a la imagen
Subtitulado de imagen y respuesta a preguntas visuales
Subtitulado de imagen
Moderación de contenido
Respuesta a preguntas visuales
Evaluación del modelo
Tareas generativas de texto a imagen
Difusión hacia delante
Razonamiento no verbal
Fundamentos de la arquitectura de difusión
Difusión hacia delante
Difusión hacia atrás
U-Net
Arquitectura de Stable Diffusion 2
Codificador de texto
U-Net y el proceso de difusión
Acondicionamiento de texto
Servicio combinado
Planificador
Decodificador de imagen
Arquitectura de Stable Diffusion XL
U-Net y el servicio combinado
Refinador
Acondicionamiento
Resumen
11.Generación controlada y ajuste fino con Stable Diffusion
ControlNet
Ajuste fino
DreamBooth
DreamBooth y PEFT-LoRA
Inversión textual
Alineación humana con aprendizaje por refuerzo a partir de la retroalimentación humana
Resumen
12.Amazon Bedrock: servicio gestionado para IA generativa
Modelos básicos de Bedrock
Modelos básicos de Amazon Titan
Modelos básicos de Stable Diffusion de Stability AI
API de inferencia de Bedrock
Modelos de lenguaje grandes
Generar código SQL
Resumir texto
Incrustaciones
Ajuste fino
Agentes
Modelos multimodales
Crear imágenes a partir de texto
Crear imágenes a partir de imágenes
Privacidad de datos y seguridad de la red
Gestión y monitoreo
Resumen
Después de leer este libro, comprenderá los casos de uso y las tareas más comunes de IA generativa abordadas por la industria y la academia hoy en día. Obtendrá un conocimiento profundo de cómo se construyen estos modelos generativos de vanguardia, así como experiencia práctica que le ayudará a elegir entre reutilizar un modelo generativo existente o construir uno desde cero. A continuación, aprenderá a adaptar estos modelos de IA generativa a los conjuntos de datos, tareas y casos de uso específicos del dominio que respaldan sus aplicaciones empresariales.
Este libro está dirigido a entusiastas de la IA/AA, científicos de datos e ingenieros que deseen aprender los fundamentos técnicos y las mejores prácticas para la formación de modelos de IA generativa, el ajuste fino y la implementación en la producción. Asumimos que ya está familiarizado con Python y con los componentes básicos de aprendizaje profundo (como redes neuronales, propagación hacia delante, activaciones, gradientes y propagación hacia atrás), lo que le permitirá entender los conceptos aquí utilizados.
Una comprensión básica de Python y de entornos de aprendizaje profundo como TensorFlow o PyTorch será suficiente para entender las muestras de código utilizadas a lo largo del libro. No es necesario familiarizarse con AWS para aprender los conceptos, pero es útil para algunas de las muestras específicas de AWS.
Profundizará en el ciclo de vida de la IA generativa y aprenderá temas como la ingeniería de indicaciones, el aprendizaje con pocos golpes en contexto, la formación previa de modelos generativos, la adaptación de dominios, la evaluación de modelos, el ajuste fino con parámetros eficientes (PEFT) y el aprendizaje por refuerzo a partir de la retroalimentación humana (RLHF).
Tendrá la oportunidad de trabajar con modelos de lenguaje grande populares como Llama 2 y Falcon, así como con modelos generativos multimodales, como Stable Diffusion e IDEFICS. Accederá a estos modelos básicos a través de Hugging Face Model Hub, Amazon SageMaker JumpStart o el servicio gestionado de Amazon Bedrock para IA genérica.
También aprenderá a implementar flujos de trabajo de razonamiento basados en agentes y de generación mejorada por recuperación (RAG)1 sensibles al contexto2. Explorará entornos y bibliotecas de aplicaciones, incluyendo LangChain, ReAct3 y modelos de lenguaje asistido por programas (PAL). Puede utilizar estos entornos y bibliotecas para acceder a sus propias fuentes de datos y API personalizadas o integrarlos con fuentes de datos externas, como la búsqueda web y los sistemas de datos asociados.
Por último, explorará todos estos conceptos generativos, entornos y bibliotecas en el contexto de casos de uso de IA generativa multimodal con modalidades diferentes de contenido, como texto, imágenes, audio y vídeo.
Y no se preocupe si no entiende todos estos conceptos todavía. A lo largo del libro, se sumergirá en cada uno de estos temas con mucho más detalle. Con todo este conocimiento y experiencia práctica, puede comenzar a crear aplicaciones de IA generativa de vanguardia que le ayuden a deleitar a los clientes, a superar a la competencia y a aumentar los ingresos.
En este libro se utilizan las siguientes convenciones tipográficas:
Cursiva
Indica términos nuevos, direcciones web o de correo electrónico, nombres de archivos y extensiones de archivos.
Ancho constante
Se utiliza para listas de programas, así como dentro de los párrafos para hacer referencia a elementos de programas, como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.
Ancho constante en negrilla
Se utiliza para llamar la atención sobre fragmentos de interés en bloques de código, así como para diferenciar entre voces múltiples en diálogos o entre el usuario humano y el asistente de IA.
Este elemento significa un consejo o sugerencia.
Este elemento significa una nota general.
El material complementario (muestras de código, ejercicios, etc.) puede descargarse en www.marcombo.info con el código IA24.
Si tiene alguna pregunta técnica o algún problema al utilizar las muestras de código, envíe un correo electrónico a [email protected].
Este libro está pensado para ayudarle a hacer su trabajo. En general, puede utilizar las muestras de código que se ofrecen con este libro en sus programas y documentación. No es necesario que nos contacte para pedir permiso, a menos que reproduzca una parte significativa del código. Por ejemplo, escribir un programa que utilice varios trozos de código de este libro no requiere permiso. La venta o distribución de ejemplos de los libros requiere autorización. Responder a una pregunta citando este libro y citando un código de ejemplo no requiere permiso. La incorporación de una cantidad significativa de muestras de código de este libro en la documentación de su producto requiere autorización.
Agradecemos, pero generalmente no exigimos, la atribución. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo: «IA generativa con AWS, de Chris Fregly, Antje Barth y Shelbee Eigenbrode (Marcombo). Copyright 2024 978-84-267-3820-2».
Si cree que la utilización de las muestras de código no se ajusta al uso legítimo o a los permisos mencionados, no dude en ponerse en contacto con nosotros.
Nos gustaría dar las gracias a todos nuestros revisores, incluyendo Brent Rabowsky, Randy DeFauw, Sean Owen, Akhil Behl, y Sireesha Muppala, PhD. Sus comentarios fueron críticos para la narrativa que seguimos en este libro. Además, su guía e intuición nos ayudaron a modular la profundidad técnica de las muestras de código que incluimos.
Dedico este libro a mi mamá, que siempre me ha inspirado a compartir conocimientos con los demás. Además, siempre has escuchado pacientemente mientras navego la vida, cuestiono las cosas y busco respuestas.
Me gustaría agradecer a mi familia por proporcionarme una gran educación y apoyarme a lo largo de mis esfuerzos profesionales. En particular, quiero dar las gracias a mi hermano, Kai, que me compró el primer ordenador portátil que tuve y se aseguró de que tuviera las herramientas adecuadas para la universidad. Este fue el catalizador inicial de mi carrera en la informática.
A mi esposo, Steve, y a mi hija, Emily, por ser siempre «mi por qué» y por su apoyo continuo, especialmente en las noches tardías y los largos fines de semana que pasé escribiendo este libro. También quiero agradecer a mi perra, Molly, por sentarse pacientemente mientras le tomaba fotos para usarlas como entrada para algunos de los modelos multimodales en este libro.
______________________
1 Patrick Lewis y otros, «Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks», arXiv, 2021.
2 Jason Wei y otros, «Chain-of-Thought Prompting Elicits Reasoning in Large Language Models», arXiv, 2022.
3 Shunyu Yao y otros, «ReAct: Synergizing Reasoning and Acting in Language Models», arXiv, 2023.
En este capítulo, verá algunas tareas de IA generativa y casos de uso en acción, obtendrá una comprensión de los modelos básicos generativos y explorará el ciclo de vida típico de un proyecto de IA generativa. Los casos de uso y las tareas que verá en este capítulo incluyen búsqueda inteligente, asistente virtual automatizado de atención al cliente, resumen de diálogos, moderación de contenido no seguro para el trabajo (NSFW), vídeos de productos personalizados, generación de código fuente y otros.
También aprenderá algunas de las opciones generativas de hardware y servicio de IA de Amazon Web Services (AWS), incluyendo Amazon Bedrock, Amazon SageMaker, Amazon CodeWhisperer, AWS Trainium y AWS Inferentia. Estas opciones de servicio y hardware proporcionan una gran flexibilidad al crear aplicaciones de razonamiento multimodal de principio a fin, sensibles al contexto, con IA generativa en AWS.
Exploremos algunos casos de uso y tareas comunes para la IA generativa.
Al igual que el aprendizaje profundo, la IA generativa es una tecnología de propósito general que se utiliza para fines diversos en muchos sectores y grupos de clientes. Hay muchos tipos de tareas multimodales de IA generativa. Hemos incluido una lista de las tareas generativas y ejemplos de uso relacionados:
Resumen de texto
Produzca una versión más corta de un texto conservando las ideas principales. Por ejemplo, resumir un artículo de prensa, un documento jurídico o un informe financiero en un número menor de palabras o párrafos para consumirlo más rápidamente. A menudo, el resumen se utiliza en las conversaciones de soporte al cliente para proporcionar una visión general rápida de la interacción entre un cliente y un representante de soporte.
Reescritura
Modifique la redacción de un texto para adaptarlo a un público, formalidad o tono diferente. Por ejemplo, puede convertir un documento legal formal en un documento menos formal utilizando menos términos legales para apelar a una audiencia no legal.
Extracción de información
Extraiga información de documentos, como nombres, direcciones, eventos o datos numéricos o números. Por ejemplo, convertir un correo electrónico en una orden de compra para un sistema de planificación de recursos empresariales (ERP) como SAP.
Respuesta a preguntas (QA) y respuesta a preguntas visuales (VQA)
Haga preguntas directamente a partir de un conjunto de documentos, imágenes, vídeos o segmentos de audio. Por ejemplo, puede configurar un asistente virtual interno dirigido a los empleados para responder preguntas sobre recursos humanos y documentos de beneficios.
Detección de contenido tóxico o dañino
Una extensión de la tarea pregunta-respuesta. Puede preguntarle a un modelo generativo si un conjunto de texto, imágenes, vídeos o fragmentos de audio contiene algún contenido tóxico o nocivo.
Clasificación y moderación de contenido
Asigne una categoría a una pieza determinada de contenido, como un documento, una imagen, un vídeo o un fragmento de audio. Por ejemplo, eliminar el correo no deseado, filtrar imágenes inapropiadas o etiquetar las solicitudes de asistencia al cliente basadas en texto.
Interfaz conversacional
Maneje conversaciones multiturno para realizar tareas a través de una interfaz similar a la de una charla. Algunos ejemplos son los asistentes virtuales para el autoservicio del cliente o las sesiones de terapia de salud mental.
Traducción
Uno de los primeros casos de uso de la IA generativa es la traducción de idiomas. Considere, por ejemplo, que el editor de este libro quiere publicar una traducción al alemán para ayudar a expandir el alcance del libro. O tal vez desee convertir los ejemplos basados en Python a Java para trabajar dentro de su aplicación empresarial existente, basada en Java.
Generación de código fuente
Cree código fuente a partir de comentarios de código de lenguaje natural, o incluso a partir de un boceto dibujado a mano, como se muestra en la figura 1-1. Aquí se genera un sitio web basado en HTML y JavaScript a partir de un boceto de interfaz de usuario trazado en el reverso de una servilleta de restaurante.
Figura 1-1.Generación de código de interfaz de usuario a partir de un boceto dibujado a mano.
Razonamiento sobre un bosquejo dibujado a mano
Razone un problema para descubrir nuevas soluciones potenciales, compensaciones o detalles latentes. Por ejemplo, pensemos en un director financiero que proporciona a los accionistas un informe financiero trimestral basado en audio, además de un informe escrito más detallado. Al razonar conjuntamente estos distintos formatos mediáticos, el modelo puede sacar algunas conclusiones sobre la salud de la empresa que no se mencionan directamente en el audio ni se exponen en el texto.
Enmascarar información personal identificable (PII)
Puede utilizar modelos generativos para enmascarar información de identificación personal de un corpus de texto determinado. Esto es útil para muchos casos de uso en los que está trabajando con datos confidenciales y desea eliminar datos de PII de sus flujos de trabajo.
Marketing personalizado y anuncios
Genere descripciones personalizadas de productos, vídeos o anuncios basados en los atributos del perfil de usuario. Considere un sitio web de comercio electrónico que quiera generar una descripción personalizada para cada producto en función de la edad o situación familiar del usuario conectado. También podría generar imágenes de productos personalizadas que incluyan adultos maduros, adultos con niños o incluso niños para atraer mejor a la demografía del usuario conectado, como se muestra en la figura 1-2.
Figura 1-2.Marketing personalizado.
En este caso, cada usuario del servicio vería potencialmente una imagen y una descripción únicas y altamente personalizadas para el mismo producto. En última instancia, esto podría conducir a más clics de productos y a mayores ventas.
En cada uno de estos casos de uso generativo y tareas un modelo crea contenido que se aproxima a la comprensión humana del lenguaje. Esto es realmente sorprendente y es posible gracias a una arquitectura de red neuronal llamada transformador, que aprenderá en el capítulo 3.
En la sección siguiente, aprenderá a acceder a los modelos básicos a través de centros de modelos.
Los modelos básicos son modelos de red neuronal muy grandes y complejos que consisten en miles de millones de parámetros (pesos). Los parámetros del modelo se aprenden durante la etapa de formación, a menudo llamada preformación. Los modelos básicos son formados con cantidades enormes de datos de formación, por lo general durante un período de muchas semanas y meses utilizando grupos grandes y distribuidos de CPU y unidades de procesamiento gráfico (GPU). Después de aprender miles de millones de parámetros, estos modelos básicos pueden representar entidades complejas, como el lenguaje humano, imágenes, vídeos y fragmentos de audio.
En la mayoría de los casos, iniciará los proyectos de IA generativa con un modelo básico existente desde un centro de modelos, como Hugging Face Model Hub, PyTorch Hub o Amazon SageMaker JumpStart. Un centro de modelos es una colección de modelos que normalmente contiene descripciones detalladas de los modelos, incluidos los casos de uso que abordan.
A lo largo de este libro, utilizaremos Hugging Face Model Hub y SageMaker JumpStart para acceder a modelos básicos, como Llama 2 de Meta (Facebook), Falcon del Instituto de Innovación Tecnológica (TII) y FLAN-T5 de Google. Se sumergirá más en los centros de modelos y los modelos básicos en el capítulo 3.
A continuación, verá el ciclo de vida del proyecto típico de IA generativa que se sigue en el esquema del resto de este libro.
Si bien no hay un ciclo de vida definitivo para proyectos de IA generativa, el entorno que se muestra en la figura 1-3 puede servirle de guía para definir las partes más importantes en el proceso de aplicación de la IA generativa. A lo largo del libro, ganará intuición, aprenderá a evitar posibles dificultades y mejorará en la toma de decisiones en cada paso del proceso.
Vamos a sumergirnos en cada componente del ciclo de vida que se muestra en la figura 1-3:
Figura 1-3.Entorno del ciclo de vida del proyecto de IA generativa.
Identifique el caso de uso
Al igual que con cualquier proyecto, primero querrá definir el alcance, incluyendo el caso de uso generativo específico y la tarea que planea abordar con la aplicación de IA generativa. Le recomendamos que comience con un solo caso de uso generativo bien documentado. Esto le ayudará a familiarizarse con el entorno y a comprender el potencial y las limitaciones de estos modelos sin tratar de optimizar el modelo para tareas diferentes al mismo tiempo. Si bien estos modelos pueden llevar a cabo tareas múltiples, empezar evaluando y optimizando el modelo a través de este tipo de tareas resulta más complicado.
Experimente y seleccione
Los modelos de IA generativa pueden llevar a cabo muchas tareas diferentes con gran éxito. Sin embargo, tendrá que decidir si un modelo básico existente es adecuado para sus necesidades de aplicación. En el capítulo 2, aprenderá a trabajar con estos modelos básicos existentes desde el primer momento utilizando técnicas denominadas «ingeniería de indicaciones y aprendizaje en contexto».
Lo más común es que empiece con un modelo básico existente (como verá en el capítulo 3). Esto mejorará en gran medida su tiempo de comercialización, ya que evitará el paso de formación previa, que es extremadamente intensivo en recursos y a menudo requiere billones de palabras, imágenes, vídeos o segmentos de audio para comenzar. Operar a esta escala implica mucho tiempo, paciencia y procesamiento; a menudo se requieren millones de horas de GPU cuando se preforma desde cero.
También querrá considerar el tamaño del modelo básico con el que decide trabajar, ya que esto afectará al hardware y al coste necesarios para formar y atender a los modelos. Si bien los modelos más grandes tienden a generalizar mejor para más tareas, este no siempre es el caso y depende del conjunto de datos utilizado durante la formación y la afinación.
Le recomendamos que pruebe modelos diferentes para su caso de uso generativo y tarea. Comience con un modelo básico existente, bien documentado, relativamente pequeño (por ejemplo, 7 mil millones de parámetros) para iterar rápidamente y aprender las formas únicas de interactuar con estos modelos de IA generativa con una cantidad relativamente pequeña de hardware (en comparación con los modelos más grandes, de 175 mil millones de parámetros).
Durante el desarrollo, normalmente comenzará con un entorno de pruebas dentro de Amazon SageMaker JumpStart o Amazon Bedrock. Esto le permite probar indicaciones y modelos diferentes rápidamente, como verá en el capítulo 2. A continuación, puede utilizar un cuaderno Jupyter o código de Python con un entorno de desarrollo integrado (IDE) como Visual Studio Code (VS Code) o cuadernos de Amazon SageMaker Studio para preparar los conjuntos de datos personalizados a usar cuando experimente con estos modelos generativos. Una vez que esté listo para escalar sus esfuerzos a un grupo distribuido más grande, migrará a la formación distribuida de tareas de Sage Maker para escalar a un grupo de procesamiento más grande, con aceleradores como GPU NVIDIA o AWS Trainium, como verá en el capítulo 4.
Si bien es posible que inicialmente pueda evitar los aceleradores, es muy probable que necesite usarlos para el desarrollo a largo plazo y la instalación de modelos más complejos. Cuanto antes aprenda los aspectos únicos, y a veces oscuros, de desarrollar con aceleradores como GPU NVIDIA o chips AWS Trainium, mejor. Afortunadamente, gran parte de la complejidad ha sido abstraída por el proveedor de hardware a través de la biblioteca NVIDIA CUDA y el SDK de AWS Neuron, respectivamente.
Adapte, alinee y mejore
Es importante adaptar los modelos generativos al dominio específico, caso de uso y tarea. Los capítulos 5, 6, 7, y 11 están dedicados a afinar los modelos multimodales de IA generativa con los conjuntos de datos personalizados para cumplir con sus objetivos empresariales.
Además, a medida que estos modelos generativos se hacen cada vez más humanos, es importante que se alineen con los valores y preferencias humanos y, en general, que se comporten bien. En los capítulos 7 y 11 se explora una técnica llamada «aprendizaje por refuerzo a partir de la retroalimentación humana (RLHF)» para alinear los modelos generativos multimodales y que sean más útiles, honestos e inofensivos (HHH). RLHF es un componente clave del campo mucho más amplio de la IA responsable.
Aunque los modelos generativos contienen una cantidad enorme de información y conocimiento, a menudo necesitan ser mejorados con noticias actuales o datos privados para el negocio. En el capítulo 9, explorará formas de mejorar los modelos generativos con fuentes de datos externas o API.
Evalúe
Para implementar correctamente las aplicaciones de IA generativa, debe iterar en gran medida. Por lo tanto, es importante establecer métricas de evaluación bien definidas y puntos de referencia para ayudar a medir la efectividad del ajuste fino. Aprenderá sobre la evaluación de modelos en el capítulo 5. Aunque no es tan sencillo como el aprendizaje automático tradicional, la evaluación de modelos ayuda a medir las mejoras de los modelos durante la etapa de adaptación y alineación; en concreto, lo bien que se alinean con las metas empresariales y preferencias humanas.
Instale e integre
Cuando finalmente tenga un modelo generativo bien ajustado y alineado, es hora de instalar el modelo para inferencia e integrarlo a la aplicación. En el capítulo 8, verá cómo optimizar el modelo de inferencia y utilizar mejor los recursos informáticos, reducir la latencia de inferencia y deleitar a los usuarios.
También verá cómo implementar los modelos con la familia de instancias de cálculo de AWS Inferentia optimizadas para la inferencia generativa mediante puntos de conexión de Amazon SageMaker. Los puntos de conexión de SageMaker son una gran opción para ofrecer modelos generativos, ya que son altamente escalables, toleran fallos y son personalizables. Ofrecen opciones de instalación y escalado flexibles, como pruebas A/B, implementación en paralelo y autoescalado, como aprenderá en el capítulo 8.
Monitoree
Al igual que con cualquier sistema de producción, debe configurar sistemas adecuados de recopilación y monitoreo de métricas para todos los componentes de la aplicación de IA generativa. En los capítulos 8 y 12, aprenderá a utilizar Amazon CloudWatch y CloudTrail para monitorear las aplicaciones de IA generativa que se ejecuten en AWS. Estos servicios son altamente personalizables, accesibles desde la consola de AWS o el kit de desarrollo de software (SDK) de AWS, e integrados con todos los servicios de AWS, incluido Amazon Bedrock, un servicio gestionado para IA generativa, que explorará en el capítulo 12.
En esta sección se describirá la pila de AWS de servicios y atributos de IA generativa diseñados específicamente, como se muestra en la figura 1-4, y se discutirán algunos de los beneficios del uso de AWS para IA generativa.
Figura 1-4.Servicios y atributos de AWS que admiten IA generativa.
Los proveedores de modelos incluyen aquellos que están desarrollando o preformando modelos básicos que requieren acceso a recursos informáticos y almacenamiento potentes y rentables. Para ello, AWS ofrece una gama de entornos e infraestructura para el desarrollo de modelos básicos. Esto incluye instancias de cálculo optimizadas para la IA generativa con opciones autogestionadas, como Amazon EC2, así como opciones gestionadas, como Amazon SageMaker, para formación e instalación de modelos.
Además, AWS ofrece aceleradores propios optimizados para la formación (AWS Trainium) y la implementación de modelos generativos (AWS Inferentia).
AWS Trainium es un acelerador diseñado específicamente para cargas de trabajo de formación de rendimiento alto y coste bajo. Del mismo modo, AWS Inferentia está diseñado específicamente para la inferencia de rendimiento alto y coste bajo. Las opciones de infraestructura en AWS que están optimizadas para IA generativa son utilizadas por los proveedores de modelos, pero también por los afinadores de modelos.
Los afinadores de modelos incluyen aquellos que están adaptando o alineando modelos básicos a su dominio específico, caso de uso y tarea. Esto normalmente requiere el acceso no solo a recursos de almacenamiento y procesamiento, sino también a herramientas que ayudan a habilitar estas tareas a través de un acceso fácil a una gama de modelos básicos, al tiempo que elimina la necesidad de gestionar la infraestructura subyacente. Además de la gama de infraestructura optimizada disponible en AWS, los afinadores de modelos también tienen acceso a una amplia gama de modelos básicos populares, así como a herramientas para adaptar o alinear modelos básicos, incluidas las funciones integradas en Amazon Bedrock y Amazon SageMaker JumpStart.
Amazon Bedrock: es un servicio totalmente gestionado que proporciona acceso a modelos de Amazon (por ejemplo, Titan) y proveedores populares de terceros (por ejemplo, AI21 Labs, Anthropic, Cohere y Stability AI). Esto le permite comenzar a experimentar rápidamente con los modelos básicos disponibles. Bedrock también le permite personalizar de forma privada los modelos básicos con sus propios datos, así como integrarlos e implementarlos en aplicaciones de IA generativa. Los agentes para Bedrock se gestionan completamente y permiten una personalización adicional con la integración de fuentes de datos externas privadas y la capacidad de completar las tareas.
Amazon SageMaker JumpStart proporciona acceso a modelos básicos públicos y privados a través de un centro de modelos que incluye la capacidad de instalar fácilmente un modelo básico en terminales de instalación de modelos de Amazon SageMaker al instante. Además, SageMaker JumpStart ofrece la funcionalidad de afinar los modelos disponibles utilizando SageMaker para formarlos. SageMaker JumpStart genera automáticamente cuadernos con código, para instalar y afinar los modelos disponibles en el centro de modelos.
Amazon SageMaker proporciona extensibilidad adicional, a través de entornos gestionados en los cuadernos de Amazon SageMaker Studio, para trabajar con cualquier modelo básico disponible, independientemente de si está disponible en SageMaker JumpStart. Como resultado, se puede trabajar con cualquier modelo accesible y nunca se está limitado a los modelos con los que se puede trabajar con Amazon SageMaker.
Adaptar un modelo a un caso de uso, tarea o dominio específico a menudo incluye mejorar el modelo con datos adicionales. AWS también ofrece opciones múltiples de implementación para almacenes vectoriales que almacenan incrustaciones vectoriales. Los almacenes vectoriales y las incrustaciones se utilizan para la generación mejorada por recuperación (RAG), para recuperar de manera eficiente información relevante de fuentes de datos externas para mejorar los datos utilizados con un modelo generativo.
Entre las opciones disponibles están el motor vectorial para Amazon OpenSearch Serverless, así como el módulo k-NN disponible para usar con Amazon OpenSearch Service. Además, tanto Amazon Aurora PostgreSQL como Amazon Relational Database Services (RDS) para PostgreSQL incluyen funciones de almacenamiento vectorial con compatibilidad integrada con pgvector .
Si quiere tener una experiencia de búsqueda semántica completamente gestionada con datos específicos de dominio, puede usar Amazon Kendra, que crea y gestiona las incrustaciones.
AWS ofrece opciones múltiples si desea acceder a modelos generativos a través de aplicaciones de IA generativa de principio a fin. En AWS, puede crear sus propias aplicaciones de IA generativa personalizadas utilizando la amplitud y profundidad de los servicios disponibles; también puede aprovechar los servicios empaquetados y totalmente gestionados.
Por ejemplo, Amazon CodeWhisperer proporciona funciones de codificación generativa en múltiples lenguajes de codificación, respaldando mejoras de productividad, como la generación de código, el análisis proactivo de vulnerabilidades y la sugerencia de soluciones de código, con sugerencias automáticas para su atribución.
AWS HealthScribe es otro servicio de IA generativa empaquetado dirigido a la industria de la salud para permitir la generación automática de notas clínicas basadas en conversaciones entre el paciente y el médico.
Por último, Amazon QuickSight Q incluye funciones generativas integradas que permiten a los usuarios hacer preguntas sobre los datos en lenguaje natural y recibir respuestas, así como visualizaciones generadas que permiten a los usuarios obtener más información sobre los datos.
En este libro nos centraremos en gran medida en las personas y tareas involucradas en la sección «Ciclo de vida del proyecto de IA generativa», así como en la construcción de aplicaciones de IA generativa. Muchos de los servicios destacados en esta sección, como Amazon SageMaker JumpStart y Amazon Bedrock, serán referenciados a lo largo de este libro, mientras se sumerge en áreas específicas del ciclo de vida del proyecto de IA generativa.
Ahora que hemos presentado algunos servicios básicos de AWS para la IA generativa, veamos algunos de los beneficios de usar AWS para crear aplicaciones de IA generativa.
Entre los beneficios principales de utilizar AWS para las cargas de trabajo de IA generativa se incluyen una mayor flexibilidad y opciones, funciones de gestión y seguridad de nivel empresarial, funciones de IA generativa de última generación, gastos operativos bajos gracias a servicios totalmente gestionados, capacidad de comenzar rápidamente con soluciones y servicios listos para usar y un historial sólido de innovación continua. Vamos a profundizar un poco más en cada uno de estos aspectos con algunos ejemplos específicos:
Mayor flexibilidad y elección
AWS ofrece flexibilidad no solo con la funcionalidad para utilizar una gama de servicios y atributos para satisfacer las necesidades de cada caso de uso, sino también en términos de elección de modelos generativos. Esto le proporciona la posibilidad no solo de elegir el modelo adecuado para un caso de uso, sino también de cambiar y evaluar continuamente modelos nuevos para aprovechar las utilidades nuevas.
Funciones de seguridad y gestión de nivel empresarial
Los servicios de AWS incorporan funciones de seguridad y gestión que son importantes para los sectores más regulados. Por ejemplo, la formación y la instalación de modelos de SageMaker y Amazon Bedrock son compatibles con funciones clave relacionadas con la protección de datos, el aislamiento de redes, el acceso controlado y la autorización, así como la detección de amenazas.
Capacidades generativas de IA de última generación
AWS ofrece opciones en modelos de IA generativa, desde modelos de Amazon y de proveedores a terceros en Amazon Bedrock, hasta modelos de código abierto y patentados ofrecidos a través de Amazon SageMaker JumpStart. Además, AWS también ha invertido en infraestructura, como AWS Trainium y AWS Inferentia, para formar e implementar modelos generativos a escala.
Gastos operativos reducidos
Como se mencionó anteriormente, muchos de los servicios y atributos de AWS dirigidos a la IA generativa se ofrecen a través de infraestructura gestionada, soluciones sin servidor o soluciones empaquetadas. Esto le permite centrarse en modelos y aplicaciones de IA generativa en lugar de gestionar la infraestructura y comenzar rápidamente con soluciones y servicios listos para usar.
Un historial sólido de innovación continua
AWS tiene una historia establecida de innovación rápida basada en años de experiencia no solo en infraestructura de nube, sino también en inteligencia artificial.
La pila de servicios y atributos de AWS para respaldar la IA generativa cubre la amplitud, profundidad y extensibilidad para respaldar cada caso de uso, ya sea un proveedor de modelos, un sintonizador o un consumidor. Además de las capacidades de IA generativa en AWS, un conjunto más amplio de servicios de AWS también le proporciona la capacidad de crear aplicaciones de IA generativa personalizadas, que se tratarán en la sección siguiente.
Una aplicación de IA generativa incluye más que modelos generativos. Requiere componentes múltiples para construir aplicaciones confiables, escalables y seguras que luego se ofrecen a los consumidores de esa aplicación, ya sean usuarios finales u otros sistemas, como se muestra en la figura 1-5.
Figura 1-5.Las aplicaciones de IA generativa incluyen más que modelos básicos.
Cuando se utiliza un servicio de IA generativa empaquetado como Amazon CodeWhisperer, todo esto se abstrae completamente y se proporciona al usuario final. Sin embargo, la construcción de aplicaciones de IA generativa personalizadas generalmente requiere una gama de servicios. AWS proporciona la variedad de servicios que a menudo se requieren para crear una aplicación de IA generativa de principio a fin. En la figura 1-6 se muestra un ejemplo de servicios de AWS que pueden usarse como parte de una aplicación de IA generativa más amplia.
Figura 1-6.Amplitud de servicios de AWS para permitir a los clientes crear aplicaciones de IA generativa.
En este capítulo, hemos explorado algunos casos comunes de uso de la IA generativa y hemos aprendido algunos fundamentos de IA generativa. También hemos visto el ejemplo de un ciclo de vida típico de un proyecto de IA generativa que incluye varias etapas, incluyendo la definición de un caso de uso, la ingeniería de indicaciones (capítulo 2), la selección de un modelo básico (capítulo 3), el ajuste fino (capítulos 5 y 6), la alineación con los valores humanos (capítulo 7), el despliegue del modelo (capítulo 8), y la integración con fuentes de datos y agentes externos (capítulo 9).
Para las partes del ciclo de vida que requieren un uso intensivo de la informática, como el ajuste fino y la alineación humana, conviene conocer los algoritmos de cuantificación y de informática distribuida (capítulo 4). Estas optimizaciones y algoritmos acelerarán el ciclo de desarrollo iterativo, que es crítico al desarrollar modelos de IA generativa.
En el capítulo 2, recibirá algunos consejos de ingeniería de indicaciones y mejores prácticas. Estos son útiles para solicitar tanto modelos básicos de solo lenguaje (capítulo 3) como modelos básicos multimodales (capítulos 10 y 11) utilizando ya sea el centro de modelos Amazon SageMaker JumpStart (capítulo 3) o el servicio de IA generativa gestionada por Amazon Bedrock (capítulo 12).
En este capítulo, aprenderá sobre formas de código bajo para interactuar con modelos de IA generativa; específicamente, ingeniería de indicaciones y aprendizaje en contexto. Verá que escribir indicaciones es tanto un arte como una ciencia, que ayuda al modelo a generar respuestas mejores y más aplicables. También proporcionamos algunas prácticas recomendadas al definir indicaciones y plantillas para obtener el máximo provecho de los modelos generativos.
También aprenderá a usar el aprendizaje en contexto para pasar varios pares de indicaciones y respuestas (por ejemplo, pares de preguntas y respuestas) en el «contexto» junto con la indicación de entrada. Este aprendizaje en contexto empuja al modelo a responder de manera similar a los pares de indicaciones y respuestas en el contexto. Esta es una de las capacidades más notables de los modelos generativos, ya que altera temporalmente el comportamiento del modelo durante la duración de esa solicitud.
Por último, aprenderá algunos de los parámetros generativos más comúnmente configurados, como la temperatura y el top k, que controlan la creatividad del modelo generativo al crear contenido.
Los modelos generativos basados en el lenguaje aceptan indicaciones como entrada y generan una respuesta. Como se verá a continuación, estas indicaciones y respuestas están formadas por componentes léxicos (tokens, en inglés) de texto.
Aunque las tareas generativas de IA pueden abarcar múltiples modalidades de contenido, a menudo implican una entrada basada en texto. Esta entrada se llama respuesta e incluye las instrucciones, el contexto y cualquier restricción utilizada para realizar una tarea determinada.
