Desarrollar una aplicación de IA generativa
Este documento te ayuda a afrontar los retos de cada fase del desarrollo de una aplicación de IA generativa. En él se describe cómo seleccionar un modelo, personalizar su salida para que se ajuste a tus necesidades, evaluar las personalizaciones y desplegar el modelo. En este documento se da por hecho que ya tienes un caso práctico en mente y que es adecuado para la IA generativa. Para obtener información sobre cómo desarrollar un caso práctico, consulta el artículo Evaluar y definir un caso práctico de IA generativa para tu empresa.
Antes de empezar 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 funciones de IA y crear una hoja de ruta para aprovechar todo su potencial, consulta el taller sobre el nivel de preparación para la IA. Si tienes previsto desarrollar flujos de trabajo automatizados con IA generativa, evalúa si es necesario que los humanos participen en las fases de toma de decisiones críticas. La revisión humana puede ayudar a tomar decisiones como garantizar un uso responsable, cumplir requisitos de control de calidad específicos o monitorizar el contenido generado.
Modelos de IA generativa
Los modelos fundacionales de IA generativa se entrenan con conjuntos de datos de varios terabytes de texto, imágenes, código u 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 vídeos, a partir de los datos de entrenamiento.
Los modelos fundacionales forman la base sobre la que se crean numerosas aplicaciones de IA generativa. Las funciones de los modelos se traducen en capacidades emergentes: con una instrucción de petición de texto sencilla, los modelos fundacionales de IA generativa pueden aprender a realizar diversas tareas, como traducir idiomas, responder preguntas, escribir un poema o escribir código, sin necesidad de recibir un entrenamiento explícito para cada tarea. Los modelos fundacionales de IA generativa también pueden adaptarse para realizar tareas específicas con algunas técnicas de peticiones o se pueden ajustar con un mínimo de datos de entrenamiento adicionales.
Los modelos de lenguaje extensos (LLMs) se entrenan con texto y son un ejemplo de modelos fundacionales que suelen basarse en arquitecturas de aprendizaje profundo, como el Transformer que desarrolló Google en el 2017. Los LLMs se pueden entrenar con miles de millones de muestras de texto y otros contenidos, y se pueden personalizar para dominios específicos.
Otros modelos multimodales amplían la capacidad de una aplicación de IA generativa para procesar información de múltiples modalidades, como imágenes, vídeos, audio y texto. Las peticiones multimodales combinan varios formatos de entrada, como texto, imágenes y audio. Por ejemplo, puedes introducir una imagen y pedirle a una aplicación de IA generativa que enumere o describa los objetos que aparecen en ella. Los modelos de Gemini de Google se han diseñado desde cero para ser multimodales y pueden razonar sin problemas a partir de texto, imágenes, vídeo, audio y código. Google CloudModel Garden y Vertex AI pueden ayudarte a encontrar y personalizar una amplia gama de modelos fundacionales de Google, de código abierto y de terceros.
Elige un modelo
Cuando elijas un modelo, ten en cuenta su modalidad, tamaño y coste. Elige el modelo más asequible que cumpla tus requisitos de calidad de respuesta y latencia.
- 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 ha entrenado el modelo, como texto, imágenes y vídeo. Por lo general, tu caso práctico y la modalidad del modelo están estrechamente relacionados. Si tu caso práctico implica la generación de texto a imagen, debes buscar 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 prácticos multimodales, pero el coste y la latencia pueden ser mayores.
- Los modelos de Vertex AI ofrecen una gran lista de modelos de IA generativa que puedes usar.
- Model Garden ofrece una lista de modelos de aprendizaje automático propios y de código abierto enGoogle Cloud.
- Tamaño: el tamaño de un modelo se mide normalmente por el número de parámetros. Por lo general, un modelo más grande puede aprender patrones y relaciones más complejos en los datos, lo que puede dar lugar a respuestas de mayor calidad. Como los modelos más grandes de la misma familia pueden tener una latencia y unos costes más elevados, es posible que tengas que experimentar y evaluar modelos para determinar qué tamaño de modelo se adapta mejor a tu caso práctico.
Coste: el coste de un modelo está relacionado con sus funciones, que suelen estar relacionadas con el número de parámetros del modelo. Los modelos también se pueden medir y cobrar de forma diferente. Por ejemplo, algunos modelos se cobran en función del número de tokens de entrada y salida. Otros modelos se cobran en función del número de horas de nodo que se utilicen mientras el modelo esté desplegado.
Para obtener información sobre los precios de los modelos de IA generativa en Vertex AI, consulta los precios de Vertex AI.
Para obtener información sobre el coste de desplegar modelos en Google Kubernetes Engine (GKE), consulta los precios de GKE.
Funciones: no todos los modelos admiten funciones como el ajuste y la destilación. Si esas funciones son importantes para ti, consulta las funciones que admite cada modelo.
Diseñar peticiones
El diseño de peticiones es el proceso de crear pares de peticiones y respuestas para proporcionar a los modelos de lenguaje contexto e instrucciones adicionales. Después de crear las peticiones, se las proporcionas al modelo como un conjunto de datos de peticiones para el preentrenamiento. Cuando un modelo ofrece predicciones, responde con las instrucciones que le has dado.
Si quieres obtener un resultado específico, puedes usar estrategias de diseño de peticiones, como indicar al modelo que complete una entrada parcial o darle ejemplos de respuestas ideales. Para obtener más información, consulta la introducción al diseño de peticiones.
Personalizar un modelo
Después de diseñar la petición, puede que las respuestas de un modelo funcionen bien, por lo que no tendrás que personalizarlo. Si el modelo no funciona bien (por ejemplo, si tiene alucinaciones), puedes usar técnicas de personalización adicionales. En las siguientes secciones se presentan estas técnicas y se explica cómo influyen estas opciones en los resultados del modelo.
Llamadas de funciones y extensiones
Las llamadas de función y las extensiones de Vertex AI amplían las funciones de tu modelo. Ten en cuenta los casos prácticos de tu aplicación y en qué situaciones podría no ser suficiente usar solo un modelo. Puedes ayudar al modelo añadiendo llamadas de función o extensiones. Por ejemplo, tu modelo puede extraer información del calendario a partir de texto y, después, usar una extensión para buscar y reservar una cita.
Aunque puedes usar las llamadas de funciones y las extensiones indistintamente, hay algunas diferencias generales. Las llamadas a funciones son operaciones asíncronas y no es necesario que incluyas credenciales en tu código. Las extensiones de Vertex AI ofrecen opciones precompiladas que puedes usar para tareas complejas, de modo que no tengas que escribir tus propias funciones. Sin embargo, como las extensiones de Vertex AI devuelven y llaman a funciones por ti, requieren que incluyas credenciales en tu código.
Fundamentación
La fundamentación consiste en mejorar las respuestas del modelo anclándolas a fuentes de información verificables. Para fundamentar un modelo, conéctalo a una fuente de datos. Basar un modelo en datos ayuda a mejorar la fiabilidad del contenido generado, ya que reduce las alucinaciones.
La generación aumentada por recuperación (RAG) es una técnica de grounding habitual. La RAG usa la función de búsqueda para encontrar información pertinente y, a continuación, la añade a una petición del modelo. Cuando usas RAG, los resultados se basan en hechos y en la información más reciente. La búsqueda RAG usa incrustaciones 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 información sobre la vinculación en Vertex AI, consulta la descripción general de la vinculación. Para obtener información sobre cómo configurar un flujo de trabajo de inserción en AlloyDB para PostgreSQL, consulta el ejemplo de flujo de trabajo de inserción.
Ajuste de modelos
Las tareas especializadas, como entrenar un modelo de lenguaje con una terminología específica, pueden requerir más entrenamiento del que puedes llevar a cabo solo con el diseño de las peticiones. En ese caso, puedes usar el ajuste del modelo para mejorar el rendimiento y hacer que el modelo se ajuste a requisitos de salida específicos.
Para personalizar un modelo, debes crear un conjunto de datos de entrenamiento y, a continuación, seleccionar un método de personalización, como la personalización supervisada, la personalización mediante aprendizaje por refuerzo a partir de comentarios humanos o la destilación de modelos. El tamaño del conjunto de datos y los métodos de ajuste dependen del modelo y de lo que quieras optimizar. 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 de modelos, consulta Ajustar modelos de cimentación de lenguaje.
Evaluar un modelo
La evaluación de modelos te ayuda a determinar cómo afectan tus peticiones y personalizaciones al rendimiento de un modelo. Cada método de evaluación tiene sus propios puntos fuertes y débiles que se deben 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 no tener en cuenta el contexto y los matices del lenguaje natural. Para mitigar estas deficiencias, utiliza una amplia gama de métricas en combinación con evaluaciones humanas.
La IA generativa en Vertex AI ofrece una evaluación automática en paralelo, que te permite comparar la salida de dos modelos con los datos reales. Un tercer modelo te ayuda a seleccionar las respuestas de mayor calidad. La evaluación automática en paralelo está a la altura de los evaluadores humanos, pero es más rápida y está disponible bajo demanda. Sin embargo, para hacer las comparaciones, este método requiere un modelo más grande que los que estás evaluando, lo que puede provocar sesgos inherentes. Por lo tanto, debes seguir realizando 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 peticiones y respuestas ideales (validadas en el terreno) que creas. Cuando crees tu conjunto de datos, incluye un conjunto diverso de ejemplos que se ajusten a la tarea que estés evaluando para obtener resultados significativos.
Desplegar un modelo
Al desplegar un modelo, se asocian un endpoint y recursos de máquina física a tu modelo para ofrecer predicciones online de baja latencia. No todos los modelos requieren implementación. Por ejemplo, los modelos fundacionales de Google que están disponibles en la IA generativa de Vertex AI ya tienen endpoints. Los endpoints son específicos de tu proyecto de Google Cloud y están disponibles inmediatamente para que los uses. Sin embargo, si ajustas alguno de esos modelos, debes implementarlo en un endpoint.
Cuando despliegues un modelo, decide si prefieres hacerlo en un entorno totalmente gestionado o en un entorno autogestionado. En un entorno totalmente gestionado, seleccionas los recursos físicos que necesitas, como el tipo de máquina y el tipo de acelerador, y Vertex AI crea instancias de los recursos y los gestiona por ti. Por ejemplo, para habilitar las predicciones online en las que Vertex AI gestiona los recursos de despliegue, consulta Desplegar un modelo en un endpoint. En un entorno autogestionado, tienes un control más preciso sobre tus recursos, pero debes gestionarlos por tu cuenta. En los entornos autogestionados, puedes servir modelos en plataformas como GKE.
Una vez que hayas decidido el tipo de entorno en el que quieres implementar la aplicación, ten en cuenta 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 reducir los costes, puedes tolerar una latencia más alta con máquinas de menor coste. 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 cuaderno Determinar el tipo de máquina ideal para usar en los endpoints de Vertex AI.
Una IA responsable
Generative AI en Vertex AI se ha diseñado teniendo en cuenta los principios de IA de Google. Sin embargo, es importante que pruebes los modelos para asegurarte de que se usan 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 práctico, ten en cuenta las limitaciones de los modelos de IA generativa para poder mitigar adecuadamente el uso inadecuado y los problemas no intencionados. Un ejemplo de limitación de un modelo es que solo es tan bueno como los datos que se utilizan. Si proporcionas al modelo datos no óptimos (por ejemplo, datos inexactos o incompletos), no puedes esperar que funcione de forma óptima. Verifica que los datos de entrada y las peticiones sean precisos. De lo contrario, el modelo puede tener un rendimiento no óptimo o generar resultados falsos. Para obtener más información sobre las limitaciones de los modelos de IA generativa, consulta IA responsable.
Siguientes pasos
- Prueba los tutoriales de cuadernos de Vertex AI.
- Consulta información sobre las operaciones de aprendizaje automático (MLOps) para la IA generativa.