Desarrolla una aplicación de IA generativa
Este documento te ayuda a aprender a abordar los desafíos en cada etapa del desarrollo de una aplicación de IA generativa. Se describe cómo seleccionar un modelo, personalizar su resultado para satisfacer tus necesidades, evaluar tus personalizaciones y, luego, implementar tu modelo. En este documento, se supone que ya tienes un caso de uso en mente y que es adecuado para la IA generativa. Para obtener información sobre cómo desarrollar un caso de uso, consulta Evalúa y define tu caso de uso empresarial de IA generativa.
Antes de comenzar a desarrollar una aplicación de IA generativa, evalúa la preparación técnica de tu organización (infraestructura y capacidades). Si deseas obtener información sobre cómo evaluar tus capacidades de IA y crear una hoja de ruta para aprovechar su potencial, consulta Taller de preparación para IA. Si planeas desarrollar flujos de trabajo automatizados por la IA generativa, evalúa si se deben incluir personas en el bucle de las etapas de decisión críticas. La revisión manual puede ayudar con decisiones como garantizar un uso responsable, cumplir con los requisitos específicos de control de calidad o supervisar el contenido generado.
Modelos de IA generativa
Los modelos de base de IA generativa se entrenan con conjuntos de datos de varios terabytes de texto, imágenes, código y otro contenido multimedia. Los datos y la arquitectura del modelo permiten que los modelos identifiquen patrones complejos, obtengan una comprensión profunda y contextual, y produzcan contenido nuevo, como texto, imágenes, música o videos basados en los datos de entrenamiento.
Los modelos de base forman el núcleo sobre el que se compilan varias aplicaciones de IA generativa. Las capacidades de los modelos se traducen en capacidades emergentes: con una instrucción de texto simple, los modelos de base de IA generativa pueden aprender a realizar una variedad de tareas, como traducir idiomas, responder preguntas, escribir un poema, o escribir código, sin entrenamiento explícito para cada tarea Los modelos de base de IA generativa también pueden adaptarse para realizar tareas específicas con algunas técnicas de instrucciones o se pueden ajustar con datos de entrenamiento adicionales mínimos.
Modelos de lenguaje grande (LLM) se entrenan con texto, son un ejemplo de modelos de base que generalmente se basan en arquitecturas de aprendizaje profundo, como el Transformer que desarrolló Google en 2017. Los LLM se pueden entrenar con miles de millones de muestras de texto y otros contenidos, y un LLM se puede personalizar para dominios específicos.
Otros modelos multimodales extienden la capacidad de una aplicación de IA generativa para procesar información de varias modalidades, lo que incluye imágenes, videos, audio y texto. Los mensajes multimodales combinan varios formatos de entrada, como texto, imágenes y audio. Por ejemplo, puedes ingresar una imagen y pedirle a una aplicación de IA generativa que enumere o describa los objetos en la imagen. Los modelos de Gemini de Google se compilan desde cero para la multimodalidad y pueden razonar sin problemas en texto, imágenes, video, audio y código. Model Garden y Vertex AI de Google Cloud puede ayudarte a encontrar y personalizar una variedad de modelos base de Google, de código abierto y de fuentes externas.
Elige un modelo
Cuando elijas un modelo, ten en cuenta su modalidad, tamaño y costo. Elige el modelo más asequible que cumpla con tus requisitos de calidad y latencia de respuesta.
- Modalidad: Como se describió en la sección anterior, la modalidad de un modelo corresponde a categorías de datos de alto nivel para las que se entrena un modelo, como texto, imágenes y video. Por lo general, tu caso de uso y la modalidad del modelo están estrechamente asociados. Si tu caso de uso implica la generación de texto a imagen, debes encontrar un modelo entrenado con datos de imágenes y texto. Si necesitas la flexibilidad de varias modalidades, como en la búsqueda multimodal, hay modelos que también admiten casos de uso multimodales, pero el costo y la latencia pueden ser más altos.
- Los modelos de Vertex AI ofrecen una gran lista de modelos de IA generativa que puedes usar.
- Model Garden proporciona una lista de ofertas de modelos de AA de código abierto y de origen en Google Cloud.
- Tamaño: Por lo general, el tamaño de un modelo se mide mediante la cantidad de parámetros. En general, un modelo más grande puede aprender patrones y relaciones más complejos dentro de los datos, lo que puede generar respuestas de mayor calidad. Debido a que los modelos más grandes en la misma familia pueden tener una latencia y costos más altos, es posible que debas experimentar y evaluar modelos para determinar qué tamaño de modelo funciona mejor para tu caso de uso.
Costo: El costo de un modelo está relacionado con sus capacidades, que, por lo general, se relaciona con el recuento de parámetros del modelo. Los modelos también se pueden medir y cobrar de manera diferente. Por ejemplo, algunos modelos se cobran según la cantidad de tokens de entrada y salida. Los demás modelos se cobran según la cantidad de horas de procesamiento de nodo que se usen mientras el modelo esté implementado.
Para obtener información sobre los precios de los modelos de IA generativa en Vertex AI, consulta Precios de Vertex AI.
Para obtener información sobre el costo de implementar modelos en Google Kubernetes Engine (GKE), consulta Precios de GKE.
Atributos: No todos los modelos admiten funciones como el ajuste y la extracción. Si esas capacidades son importantes para ti, verifica los atributos que admite cada modelo.
Diseña instrucciones
El diseño de instrucciones es el proceso de crear pares de instrucciones y respuestas para proporcionar instrucciones y contexto adicionales a los modelos de lenguaje. Después de crear los mensajes, los alimentas al modelo como un conjunto de datos de mensajes para el entrenamiento previo. Cuando un modelo entrega predicciones, responde con tus instrucciones integradas.
Si quieres obtener un resultado específico, puedes usar estrategias de diseño de prompts, como indicarle al modelo que complete una entrada parcial o darle ejemplos de respuestas ideales. Para obtener más información, consulta Introducción al diseño de instrucciones.
Personaliza un modelo
Después del diseño del prompt, es posible que las respuestas de un modelo funcionen bien, por lo que no necesitas personalizarlo. Si el modelo no tiene un buen rendimiento (por ejemplo, si tiene alucinaciones), puedes usar técnicas de personalización adicionales. En las siguientes secciones, se presentan estas técnicas y pueden ayudarte a comprender cómo estas opciones influyen en la salida del modelo.
Llamada a función y extensiones
Las llamadas a funciones y las extensiones de Vertex AI expanden las capacidades de tu modelo. Considera los casos de uso de tu aplicación y en los que usar solo un modelo podría no ser suficiente. Para ayudar al modelo, puedes agregar llamadas a función o extensiones. Por ejemplo, tu modelo puede extraer información de calendario a partir del texto y, luego, usar una extensión para buscar y reservar una reserva.
Aunque puedes usar la llamada a función y las extensiones de forma indistinta, existen algunas diferencias de alto nivel. La llamada a función es una operación asíncrona y no necesitas incluir credenciales en tu código. Las extensiones de Vertex AI proporcionan opciones compiladas previamente que puedes usar para tareas complejas de modo que no necesites escribir tus propias funciones. Sin embargo, debido a que Vertex AI Extensions muestra y llama a las funciones por ti, las extensiones requieren que incluyas credenciales en tu código.
Fundamentos
La base hace referencia al aumento de las respuestas del modelo mediante la ancla en fuentes de información verificables. Para fundamentar un modelo, debes conectarlo a una fuente de datos. La fundamentación de un modelo ayuda a mejorar la confiabilidad del contenido generado mediante la reducción de las alucinaciones.
La generación aumentada de recuperación (RAG) es una técnica de fundamentación de uso frecuente. RAG usa la función de búsqueda para encontrar información relevante y, luego, la agrega a una instrucción del modelo. Cuando usas RAG, el resultado se basa en hechos y la información más reciente. La búsqueda RAG usa incorporaciones vectoriales y bases de datos vectoriales, que almacenan datos como representaciones numéricas de datos no estructurados, como imágenes y texto. Para obtener más información, consulta Qué es una base de datos vectorial.
Para obtener más información sobre los fundamentos de Vertex AI, consulta Descripción general de base. Si deseas obtener información para configurar un flujo de trabajo de incorporaciones en AlloyDB para PostgreSQL, consulta el flujo de trabajo de incorporación de ejemplo.
Ajuste de modelo
Las tareas especializadas, como entrenar un modelo de lenguaje con terminología específica, pueden requerir más entrenamiento que el que puedes realizar solo con el diseño de instrucciones. En ese caso, puedes usar el ajuste del modelo para mejorar el rendimiento y hacer que el modelo cumpla con los requisitos de salida específicos.
Para ajustar un modelo, debes compilar un conjunto de datos de entrenamiento y, luego, seleccionar un método de ajuste, como el ajuste supervisado, el aprendizaje por refuerzo con retroalimentación humana (RLHF) o la síntesis de modelos. El tamaño del conjunto de datos y los métodos de ajuste dependen de tu modelo y de lo que estés optimizando. Por ejemplo, las tareas especializadas y de especialidad requieren un conjunto de datos más pequeño para obtener mejoras significativas. Para obtener más información sobre el ajuste del modelo, consulta Ajusta los modelos base de lenguaje.
Evaluar un modelo
La evaluación de modelos te ayuda a evaluar cómo tus mensajes y personalizaciones afectan el rendimiento de un modelo. Cada método de evaluación tiene sus propias fortalezas y debilidades que se deben considerar. Por ejemplo, las evaluaciones basadas en métricas se pueden automatizar y escalar con rapidez con una forma cuantificable de medir el rendimiento. Sin embargo, las métricas pueden simplificar demasiado los resultados y perder el contexto y los matices del lenguaje natural. Para mitigar estas deficiencias, usa una amplia gama de métricas en combinación con evaluaciones manuales.
La IA generativa en Vertex AI ofrece una evaluación en paralelo automática, que te permite comparar el resultado de dos modelos con la verdad fundamental. Un tercer modelo te ayuda a seleccionar las respuestas de mayor calidad. La evaluación en paralelo automática está a la par de los evaluadores humanos, pero es más rápida y está disponible a pedido. Sin embargo, para realizar las comparaciones, este método requiere un modelo que sea más grande que los modelos que estás evaluando, que pueden presentar sesgos inherentes. Por lo tanto, debes realizar algunas evaluaciones manuales.
Para todos los métodos de evaluación, necesitas un conjunto de datos de evaluación. Un conjunto de datos de evaluación incluye pares de mensajes y de verdad fundamental (respuesta ideal) que creas. Cuando compiles tu conjunto de datos, incluye un conjunto diverso de ejemplos que se alineen con la tarea que evalúas para obtener resultados significativos.
Implementar un modelo
La implementación de un modelo asocia un extremo y los recursos de máquina física con el modelo para entregar predicciones en línea de baja latencia. No todos los modelos requieren implementación. Por ejemplo, los modelos de base de Google que están disponibles en la IA generativa en Vertex AI ya tienen extremos. Los extremos son específicos de tu proyecto de Google Cloud y están disponibles de inmediato para que los uses. Sin embargo, si ajustas cualquiera de esos modelos, debes implementarlos en un extremo.
Cuando implementes un modelo, decide si prefieres implementarlos en un entorno completamente administrado o en un entorno autoadministrado. En un entorno completamente administrado, selecciona los recursos físicos que necesitas, como el tipo de máquina y el tipo de acelerador, y, luego, Vertex AI crea una instancia y administra los recursos por ti. Por ejemplo, para habilitar las predicciones en línea en las que Vertex AI administra los recursos de implementación por ti, consulta Implementa un modelo en un extremo. En un entorno autoadministrado, tienes un control más detallado sobre tus recursos, pero los administras por tu cuenta. Con los entornos autoadministrados, puedes entregar modelos en plataformas como GKE.
Después de decidir en qué tipo de entorno deseas implementar, considera el tráfico previsto, los requisitos de latencia y el presupuesto. Debes equilibrar estos factores con tus recursos físicos. Por ejemplo, si una prioridad es un costo menor, es posible que puedas tolerar una latencia más alta con máquinas de menor costo. Los entornos de prueba son un buen ejemplo de esta compensación. Si deseas obtener más información sobre cómo elegir un tipo de máquina, consulta el notebook Determina el tipo de máquina ideal para usar con los extremos de Vertex AI.
IA responsable
La IA generativa en Vertex AI se diseñó con los principios de la IA de Google. Sin embargo, es importante que pruebes los modelos para asegurarte de que se usen de forma segura y responsable. Debido a la increíble versatilidad de los LLMs, es difícil predecir respuestas no deseadas o imprevistas.
Cuando desarrolles aplicaciones para tu caso de uso, considera las limitaciones de los modelos de IA generativa para que puedas mitigar de forma adecuada el posible uso inadecuado y los problemas no deseados. Un ejemplo de limitación de modelo es que un modelo es tan bueno como los datos que usas. Si le asignas al modelo datos deficientes, como datos inexactos o incompletos, no puedes esperar un rendimiento óptimo. Verifica que tus datos de entrada y mensajes sean precisos. De lo contrario, el modelo puede tener un rendimiento deficiente o resultados de modelo falsos. Para obtener más información sobre las limitaciones del modelo de IA generativa, consulta IA responsable.
¿Qué sigue?
- Prueba los instructivos de notebooks de Vertex AI.
- Obtén información sobre las operaciones de aprendizaje automático (MLOps) para la IA generativa.