Desarrollo de IA generativa con Podman AI Lab, InstructLab y OpenShift AI

Integración de IA generativa en el desarrollo de aplicaciones

  • La integración de la IA generativa en el proceso de desarrollo de aplicaciones permite a los desarrolladores crear aplicaciones inteligentes que aprovechan modelos avanzados. En la sesión, se presentarán demostraciones prácticas que incluyen inferencia de modelos de Hugging Face localmente y su despliegue en entornos de Kubernetes.
  • El presentador, Cedric Claburn, establecerá una base sobre cómo construir, ejecutar y desplegar aplicaciones inteligentes que pueden interactuar con datos y modelos disponibles.
  • Se abordarán casos de uso amplios, que van desde la extracción de información de reseñas hasta la realización de consultas SQL a partir de lenguaje natural, mostrando el amplio espectro de aplicaciones de la IA generativa en el entorno empresarial.

«Más del 80% de las empresas tendrán algún tipo de IA generativa integrada en sus aplicaciones para 2026.»

Prototipado y selección de modelos de IA

  • Un enfoque clave es la ideación y el prototipado utilizando modelos de lenguaje extendido (LLMs) desde repositorios como Hugging Face, donde se pueden probar distintas configuraciones y modelos para satisfacer necesidades específicas.
  • La exploración de modelos es crucial; hay más de medio millón de modelos de código abierto disponibles en Hugging Face, lo que permite a los desarrolladores elegir el modelo ideal para su caso de uso.
  • Se discutirá cómo evaluar y refinar modelos, así como la construcción de aplicaciones inteligentes que puedan conectarse efectivamente a datos relevantes y flujos de trabajo organizacionales.

«Hugging Face cuenta con más de medio millón de diferentes modelos de código abierto que podemos comenzar a utilizar hoy.»

Implementación de IA generativa y gestión de costos

  • La sesión también se centrará en la operacionalización de la IA generativa, abarcando cómo mantener un modelo en producción y cómo integrar las aplicaciones existentes con nuevos modelos.
  • Pese a la facilidad de acceso a los modelos de IA a través de APIs, los costos asociados pueden crecer rápidamente, especialmente después de que una aplicación llega a producción.
  • Las nuevas tecnologías de código abierto, como llama C++, permiten a los desarrolladores desplegar modelos en sus entornos locales, lo que brinda más control sobre la personalización, costos y seguridad de los datos, al eliminar dependencias externas.

«Gracias a las nuevas tecnologías, los desarrolladores pueden configurar y comenzar a trabajar con IA generativa en sus entornos locales de manera mucho más rápida.»

Desarrollo de aplicaciones con contenedores

  • Se está utilizando una carpeta de aplicación conectada a un modelo que se sirve mediante un punto final. Este sistema permite dividir el texto de un archivo PDF que se está consultando, utilizando una plantilla de prompt personalizada que añade acreditaciones interesantes, haciendo que la biografía suene más impresionante.
  • En la demostración, se está ejecutando una aplicación simple en Streamlit que permite al usuario introducir su biografía y recibir un resumen mejorado. Aunque el autor no tiene instalado LangChain, las dependencias están incluidas en la imagen del contenedor, gracias al uso de Red Hat UBI (universal base image).
  • Se presenta el resultado, en el cual se destacan logros como ser un «tecnólogo de software muy aclamado» y se mencionan contribuciones a la comunidad de código abierto. A pesar de ser solo parcialmente cierto, el resumen es un buen ejemplo del funcionamiento de una aplicación contenedora y del modelo servidor.

«Es un buen resumen, sin duda, aunque es solo parcialmente cierto.»

Interacción con el servidor de modelos y creación de servicios

  • El usuario puede interactuar con el servidor de modelos de manera eficiente, accediendo a registros tanto del servidor como de la aplicación de Streamlit mediante el entorno de pod. Además, se menciona que se puede trabajar con modelos específicos como servicios, lo que permite añadir código base para conectar y utilizar modelos en otras aplicaciones.
  • Se trata sobre el uso de tecnologías como Java para implementar servicios que utilicen estos modelos, facilitando así la integración en aplicaciones existentes. Este enfoque brinda una forma sencilla de comenzar a trabajar con servidores de modelos, aprovechando la infraestructura de contenedores.

«Este es un gran comienzo para ver nuestro servidor de modelos funcionando.»

Entrenamiento y ajuste fino de modelos AI

  • Se destaca cómo los modelos pueden ser entrenados y ajustados localmente sin necesidad de hardware costoso. En este caso, se utilizará un modelo popular llamado «mixture of experts» para responder preguntas.
  • La interacción con el modelo incluye ajustar parámetros, como el número máximo de tokens para obtener respuestas más concretas. Sin embargo, se critica que los modelos a veces pueden dar respuestas incorrectas o «alucinar» debido a la calidad de los datos en los que fueron entrenados inicialmente.
  • Para corregir esto, se presenta un proyecto de código abierto llamado InstructLab, que permite contribuir datos y habilidades a un modelo, mejorando la calidad y pertinencia de las respuestas ofrecidas. Esto facilita el proceso de entrenamiento de modelos AI con datos más específicos.

«Los modelos son buenos en muchas cosas, pero no siempre dan la respuesta correcta.»

Uso de InstructLab para mejorar modelos

  • A través de InstructLab, se obtiene de forma sencilla datos sintéticos para entrenar modelos. Se muestra cómo un desarrollador puede agregar información sobre ganadores de grandes jackpots en Las Vegas en un formato YAML, haciendo que sea accesible y útil para su uso en modelos AI.
  • El usuario muestra cómo generar datos de entrenamiento sintético a partir de preguntas y respuestas, lo que contribuye a enriquecer la información del modelo para responder mejor a preguntas específicas. Después del proceso, el modelo se actualiza con este nuevo conocimiento y puede ser compartido a través de plataformas como Hugging Face.
  • Este proceso demuestra que incluso sin hardware potente, es posible realizar ajustes significativos a los modelos en un tiempo reducido.

«Puedo mejorar este modelo directamente desde mi laptop sin necesidad de una GPU.»

Pasar a un entorno de producción

  • Se discute sobre los retos de trasladar modelos del entorno de desarrollo a producción, especialmente en un entorno de Kubernetes. Es necesario recopilar datos de distintas fuentes, posiblemente utilizando herramientas como Kafka, para llevar a cabo un análisis profundo.
  • Se enfatiza la importancia de la colaboración entre científicos de datos y desarrolladores, quienes deben trabajar juntos para crear o expandir modelos que luego se integran en aplicaciones. Es imperativo tener en cuenta la monitorización y optimización continua de dichos modelos en producción.
  • Mover modelos a producción requiere una cuidadosa planificación y consideración de diversos factores que van más allá de la simple implementación inicial.

«Es más complejo llevar los modelos a producción que desarrollarlos localmente.»

Componentes del stack de IA

  • Para desarrollar inteligencia artificial (IA), necesitamos una serie de bibliotecas de aprendizaje automático para crear y trabajar con nuevos modelos, como por ejemplo Lane Chain.
  • Es esencial contar con entornos adecuados para que los científicos de datos trabajen, como Jupyter, y que los desarrolladores utilicen herramientas como VS Code.
  • Además, se requieren herramientas para la visualización de datos y el procesamiento de etiquetas, como Spark, Airflow y Ray, así como para la automatización del ajuste fino de modelos utilizando herramientas como Kubeflow o MLflow.

«Se requiere un stack amplio no solo para la IA y MLOps, sino también para la plataforma de aplicaciones que necesitamos para ejecutar nuestros modelos.»

Integración de herramientas en OpenShift AI

  • En Red Hat, se ha creado un proyecto comunitario llamado Open Data Hub que recopila una variedad de proyectos de código abierto relacionados con la ciencia de datos, IA y MLOps.
  • Esto permite completar todo el ciclo de vida del modelo, desde el desarrollo hasta la implementación y monitoreo, colaborando de manera efectiva con diferentes equipos de la organización.
  • Las herramientas incluyen entornos de Jupyter, automatización con Kubeflow, y el servicio de modelos a través de KServe, integrando todos estos elementos en OpenShift AI.

«Hemos recopilado herramientas de uso común en la industria para trabajar con estos modelos y servirlos.»

Ejemplo práctico de generación de modelos

  • Durante la presentación, se mostró un ejemplo práctico usando el modelo Stable Diffusion importado de Hugging Face para generar imágenes a partir de un prompt.
  • Se realizó un proceso de entrenamiento y ajuste fino del modelo utilizando imágenes de un perro llamado «Teddy», con el fin de personalizar el modelo para generar fotos específicas.
  • El proceso incluyó la configuración de las opciones de entrenamiento y la incorporación de un entorno de trabajo para los científicos de datos.

«El objetivo es entrenar el modelo base en un caso de uso específico y obtener un producto final para nuestros desarrolladores.»

Despliegue y automatización en la nube

  • Se destacó la implementación de una aplicación utilizando Developer Hub, basada en el proyecto Backstage, que facilita la creación y despliegue de aplicaciones en Kubernetes.
  • Los desarrolladores no necesitan preocuparse por la creación de implementaciones de Kubernetes o las prácticas de GitOps, lo que les permite centrarse en escribir código.
  • El flujo de trabajo incluye la creación de una nueva aplicación y la implementación de un pipeline para construir la aplicación y desplegarla en el clúster.

«Los desarrolladores pueden enfocarse en su código sin preocuparse por la complejidad del despliegue.»

Servicio del modelo y herramientas de visualización

  • Se está desplegando un servicio de modelo que permite realizar inferencias, y se expone a través de plataformas como Developer Hub. Esto facilita a los desarrolladores monitorear problemas dentro de los repositorios, así como los objetos de CI y CD en Kubernetes.
  • Una vez que se crea y se escribe la imagen en el registro interno, es una excelente oportunidad para que los desarrolladores tengan una visión integral de su aplicación habilitada por IA generativa.

«Es una manera realmente genial para mí como desarrollador ver todo en un solo lugar al trabajar con esta aplicación habilitada por IA generativa.»

Desarrollo local y despliegue en Kubernetes

  • El desarrollador discute cómo ha estado entrenando el modelo de forma local y afinándolo para su uso en un entorno de producción, como un clúster de Kubernetes. Se enfatiza la posibilidad de alternar entre entornos de desarrollo locales y de producción, lo que es crucial para el desarrollo eficiente de aplicaciones habilitadas por IA generativa.
  • Además, se menciona un ejemplo divertido en el que se utiliza un modelo en una aplicación Flask para generar imágenes en un contexto específico, como estar frente al puente Golden Gate.

«Hemos pasado por el proceso de trabajar con el modelo local en mi máquina, entrenándolo y afinándolo.»

Summary from youtubesummarized.com

Añadir un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *