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. En él, se describe cómo seleccionar un modelo, personalizar el resultado del modelo para satisfacer tus necesidades, evaluar tus personalizaciones y, luego, implementar el 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 (capacidades e infraestructura). Para 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 circuito para las etapas de decisión críticas. La revisión humana puede ayudar con decisiones como garantizar el uso responsable, cumplir con 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 o 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 numerosas aplicaciones de IA generativa. Las capacidades de los modelos se traducen en habilidades emergentes: con una simple instrucción de texto, 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 otro contenido, y se pueden personalizar para dominios específicos.
Otros multimodales modelos extienden la capacidad de una aplicación de IA generativa para procesar información de varias modalidades, incluidas imágenes, videos, audio y texto. Las instrucciones 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 de 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. Google Cloud Model Garden y Vertex AI pueden ayudarte a encontrar y personalizar una variedad de modelos de 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 económico que cumpla con los requisitos de calidad y latencia de respuesta.
- Modalidad: Como se describe 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 texto e imagen. 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 origen y de código abierto en Google Cloud.
- Tamaño: El tamaño de un modelo suele medirse por 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 de 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 suele relacionarse con la cantidad 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. Otros modelos se cobran según la cantidad de horas de nodo que se usan mientras se implementa el modelo.
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.
Funciones: No todos los modelos admiten funciones como el ajuste y la destilación. Si esas capacidades son importantes para ti, consulta las funciones que admite cada modelo.
Diseña instrucciones
El diseño de instrucciones es el proceso de crear pares de instrucciones y respuestas para proporcionarles a los modelos de lenguaje contexto e instrucciones adicionales. Después de escribir las instrucciones, las envías al modelo como un conjunto de datos de instrucciones 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 instrucciones, como indicarle al modelo que complete la 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 de instrucciones, es posible que las respuestas de un modelo funcionen bien, por lo que no es necesario personalizarlo. Si el modelo no funciona bien, por ejemplo, si alucina, puedes usar técnicas de personalización adicionales. En las siguientes secciones, se presentan esas técnicas y se te ayuda a comprender cómo estas opciones influyen en el resultado 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. Puedes ayudar al modelo agregando llamadas a funciones o extensiones. Por ejemplo, tu modelo puede extraer información del calendario del texto y, luego, usar una extensión para encontrar y reservar una reserva.
Aunque puedes usar llamadas a funciones y extensiones de forma indistinta, existen algunas diferencias de alto nivel. La llamada a función es una operación asíncrona y no es necesario que incluyas credenciales en tu código. Las extensiones de Vertex AI proporcionan opciones precompiladas que puedes usar para tareas complejas, de modo que no necesitas escribir tus propias funciones. Sin embargo, debido a que las extensiones de Vertex AI muestran y llaman a funciones por ti, las extensiones requieren que incluyas credenciales en tu código.
Fundamentos
La fundamentación se refiere a aumentar las respuestas del modelo anclándolas a fuentes de información verificables. Para fundamentar un modelo, conéctalo 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 funcionalidad de búsqueda para encontrar información pertinente y, luego, la agrega a una instrucción del modelo. Cuando usas RAG, el resultado se basa en hechos y en la información más reciente. La búsqueda de RAG usa embeddings de vectores y bases de datos vectoriales, que almacenan datos como representaciones numéricas de datos no estructurados, como texto e imágenes. 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. Para obtener información sobre cómo configurar un flujo de trabajo de incorporación en AlloyDB para PostgreSQL, consulta el ejemplo de flujo de trabajo de incorporación.
Ajuste de modelo
Las tareas especializadas, como entrenar un modelo de lenguaje en terminología específica, pueden requerir más entrenamiento del que puedes hacer con el diseño de instrucciones por sí solos. En ese caso, puedes usar el ajuste de modelo para mejorar el rendimiento y hacer que el modelo cumpla con 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 destilación 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 nicho 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 instrucciones y personalizaciones afectan el rendimiento de un modelo. Cada método de evaluación tiene sus propias ventajas y desventajas que debes tener en cuenta. Por ejemplo, las evaluaciones basadas en métricas se pueden automatizar y escalar rápidamente con una forma cuantificable de medir el rendimiento. Sin embargo, las métricas pueden simplificar demasiado los resultados y omitir el contexto y los matices del lenguaje natural. Para mitigar estas deficiencias, usa una amplia variedad de métricas en combinación con evaluaciones humanas.
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 automática en paralelo 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 más grande que los modelos que estás evaluando, lo que puede mostrar sesgos inherentes. Por lo tanto, debes realizar algunas evaluaciones humanas.
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 instrucciones y 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 estás evaluando para obtener resultados significativos.
Implementar un modelo
La implementación de un modelo asocia un extremo y recursos físicos de la máquina con tu modelo para entregar predicciones en línea con 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 Google Cloud proyecto y están disponibles de inmediato para tu uso. Sin embargo, si ajustas alguno de esos modelos, debes implementarlos en un extremo.
Cuando implementes un modelo, decide si prefieres implementarlo en un entorno completamente administrado o en un entorno autoadministrado. En un entorno completamente administrado, seleccionas los recursos físicos que necesitas, como el tipo de máquina y el tipo de acelerador, y, luego, Vertex AI crea instancias y administra los recursos por ti. Por ejemplo, para habilitar 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 realizar la implementación, considera el tráfico previsto, los requisitos de latencia y el presupuesto. Debes equilibrar estos factores con tus recursos físicos. Por ejemplo, si la prioridad es un costo más bajo, 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. Para obtener más información sobre cómo elegir un tipo de máquina, consulta el notebook Cómo determinar el tipo de máquina ideal para usar en extremos de Vertex AI.
IA responsable
La IA generativa en Vertex AI se diseñó teniendo en cuenta los principios de IA de Google. Sin embargo, es importante que pruebes los modelos para asegurarte de que se usen de manera 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, ten en cuenta 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 del modelo es que un modelo es tan bueno como los datos que usas. Si le proporcionas al modelo datos deficientes, como datos inexactos o incompletos, no puedes esperar un rendimiento óptimo. Verifica que tus datos de entrada y tus instrucciones 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 de los modelos 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.