Inteligencia artificial open source para desarrolladores
La tecnología de open source y la inteligencia artificial: una combinación transformadora
La inteligencia artificial (IA) y las operaciones de machine learning (MLOps) o aprendizaje automático transforman las aplicaciones y los procesos de desarrollo.
Las soluciones innovadoras basadas en modelos de inteligencia artificial ofrecen nuevas posibilidades para crear contenido, mejorar los procesos de toma de decisiones y personalizar las experiencias de los usuarios. Los flujos de trabajo de MLOps modernos optimizan la integración, la implementación y la gestión de los modelos de inteligencia artificial en los entornos de producción, para asegurarse de que sean confiables y funcionen bien. En conjunto, la inteligencia artificial y las MLOps permiten que los desarrolladores sean más ágiles y respondan rápidamente a las necesidades empresariales cambiantes con aplicaciones dinámicas, flujos de trabajo eficientes y ciclos de desarrollo más cortos.
Las herramientas de inteligencia artificial open source son de gran ayuda para los equipos de desarrollo en términos de flexibilidad y personalización. Con estas herramientas, los desarrolladores pueden modificar y adaptar las aplicaciones inteligentes para satisfacer las necesidades empresariales con soluciones personalizadas. Como los proyectos open source fomentan la colaboración dentro de una amplia comunidad de usuarios y colaboradores, admiten mejoras constantes y el desarrollo de funciones nuevas en las tecnologías de inteligencia artificial más importantes. Gracias a esta capacidad de adaptación, las empresas pueden personalizar las herramientas de inteligencia artificial para satisfacer sus necesidades. Son la opción ideal para los proyectos que requieren funciones especializadas.
Planificación de la estrategia de desarrollo
Para lograr resultados significativos, es necesario adoptar un enfoque estructurado a la hora de desarrollar aplicaciones que usan inteligencia artificial. Cada paso del proceso debe analizarse con cuidado para asegurarse de que la aplicación cumpla los objetivos previstos y funcione de manera responsable y eficiente. Estos pasos permiten crear soluciones sólidas y confiables basadas en la inteligencia artificial; abarcan desde establecer objetivos claros hasta seleccionar un modelo y garantizar prácticas éticas.
- Identifica los objetivos de la inteligencia artificial. Comienza describiendo claramente el problema que quieres solucionar con tu aplicación que usa inteligencia artificial. Determina las tareas específicas que debe realizar la aplicación. Estas tareas pueden implicar procesos de generación, clasificación, conversación, resumen o funciones relacionadas con código.
- Evalúa los datos disponibles. Evalúa minuciosamente los datos, ya quesu calidad y alcance determinan el éxito del modelo. Por lo general, los modelos de inteligencia artificial generativa requieren conjuntos de datos de entrenamiento grandes, mientras que los modelos de inteligencia artificial predictiva pueden dar buenos resultados con conjuntos de datos etiquetados más pequeños. Asegúrate de que los datos sean relevantes, diversos y representativos de los escenarios que encontrará la aplicación. Aborda cualquier falta o sesgo en los datos para evitar resultados subjetivos o imprecisos.
- Analiza las tareas de la inteligencia artificial. Elige un enfoque para la inteligencia artificial en función de los requisitos de la aplicación. Los modelos de inteligencia artificial generativa son mejores a la hora de comprender los matices del lenguaje, generar resultados creativos, realizar tareas de aumento de datos y contestar al instante. Por todo esto, son la opción ideal para crear contenido, mantener conversaciones y resumir textos. Para las tareas estructuradas con resultados bien definidos, como la segmentación de imágenes y la detección de fraudes, así como en aplicaciones que requieren soluciones inmediatas, los modelos de inteligencia artificial predictiva, como las redes neuronales convolucionales (CNN) y los árboles de decisiones, se demoran menos tiempo en la inferencia. En algunos casos, combinar ambos enfoques puede ser efectivo. Por ejemplo, los chatbots de soporte para clientes pueden usar modelos de inteligencia artificial predictiva para clasificar las intenciones y modelos de inteligencia artificial generativa para procesar lenguaje natural.
- Selecciona los modelos adecuados. Con los modelos listos para usar de las interfaces de programación de aplicaciones (API) o los servicios gestionados de terceros, puedes agregar funciones avanzadas de inteligencia artificial a las aplicaciones de manera eficiente. Con estos modelos, puedes integrar funciones complejas, como el procesamiento de lenguaje natural, el reconocimiento de imágenes y el análisis predictivo, sin necesidad de tener mucha experiencia en inteligencia artificial o machine learning. Al simplificar el entrenamiento y el mantenimiento de los modelos, las API y los servicios gestionados de terceros te permiten ofrecer funciones de inteligencia artificial que potencian la participación de los usuarios y el rendimiento de las aplicaciones.
- Asegúrate de que se cumplan los mandatos éticos. Las aplicaciones que usan inteligencia artificial suelen trabajar con información confidencial y pueden influir de manera significativa en las decisiones que se toman. Ten en cuenta los aspectos éticos de las acciones y las predicciones de la aplicación. Prioriza la transparencia, la equidad y la responsabilidad para evitar consecuencias no deseadas y generar confianza entre los usuarios.
Destinatarios de este ebook
Este ebook se creó pensando en los desarrolladores y los analistas de datos principiantes e intermedios que deseen aplicar las herramientas, las plataformas y las estrategias de la inteligencia artificial open source en sus proyectos. Hace hincapié en los aspectos prácticos del desarrollo y te ayuda con las tareas de selección, integración, perfeccionamiento e implementación del modelo para crear aplicaciones innovadoras basadas en la inteligencia artificial.
Diseño de aplicaciones innovadoras que usen inteligencia artificial
La inteligencia artificial abarca diversas tecnologías que sirven para diferentes propósitos. Entre ellas, la inteligencia artificial predictiva y la generativa son tecnologías clave, cada una con funciones distintas, para crear aplicaciones inteligentes. La inteligencia artificial predictiva se dedica a analizar los datos actuales para pronosticar resultados o tendencias. Utiliza datos históricos para predecir eventos, comportamientos o condiciones. Con esas predicciones, los usuarios pueden tomar decisiones informadas en función de posibles situaciones. Por otro lado, la inteligencia artificial generativa crea contenido o datos nuevos según los patrones aprendidos a partir de la información existente. Puede generar texto, imágenes u otros elementos multimedia que se asemejen a sus datos de entrenamiento, lo cual brinda soluciones innovadoras para la creación y la personalización de contenido. Mientras la inteligencia artificial predictiva proporciona información sobre futuras posibilidades, la generativa crea resultados a partir de los patrones aprendidos.
Inteligencia artificial predictiva
Diseñar aplicaciones que usan inteligencia artificial suele comenzar con la selección del modelo adecuado para la tarea. En el caso de la inteligencia artificial predictiva, implica elegir un modelo o una arquitectura ya entrenados que se adapten a tus necesidades. Entre los modelos comunes, se incluyen ResNet para clasificar imágenes, YOLO (You Only Look Once) para detectar objetos e Isolation Forest para detectar anomalías. Al seleccionar un modelo, es fundamental tener en cuenta su tamaño y complejidad en relación con la velocidad de inferencia (la velocidad con la que un modelo entrenado realiza predicciones a partir de nuevos datos). Si tu empresa tiene una práctica de inteligencia artificial establecida, también tienes la opción de diseñar tu propio modelo de inteligencia artificial predictiva con los datos de la empresa. Con las bibliotecas open source y los marcos de deep learning, como OpenCV, scikit-learn, TensorFlow y PyTorch, puedes integrar de manera eficiente tus modelos internos y externos con las aplicaciones que usan inteligencia artificial.
Preparar los datos y evaluar el modelo son los próximos pasos fundamentales. Si analizas los datos detenidamente, podrás comprender mejor sus características y abordar cualquier posible problema. Al experimentar con diferentes arquitecturas de modelos o pesos entrenados previamente, puedes encontrar el equilibrio óptimo entre el rendimiento y la velocidad de inferencia. La validación rigurosa con un conjunto de datos de prueba independiente garantiza buenos resultados cuando los modelos se usen para tareas generales.
Después de seleccionar y validar un modelo, sigue el proceso de perfeccionamiento e implementación. Es posible que debas procesar previamente los datos con distintas técnicas, como el cambio de tamaño y la normalización. Cuando se utilizan modelos entrenados con anterioridad, es fundamental perfeccionarlos con conjuntos de datos específicos. Además, en algunos casos, las técnicas posteriores al procesamiento pueden mejorar los resultados del modelo. Al supervisar el rendimiento del modelo en la etapa de producción (lo cual incluye evaluar cuánto se tardan las inferencias y cómo se usan los recursos), puedes volver a entrenarlo y optimizarlo de manera eficiente para que siga dando buenos resultados. Al supervisar los modelos en busca de desajustes en los datos, te aseguras de que la información que se ve durante la inferencia no difiera demasiado de la que se usó para entrenar o ajustar el modelo.
Como los modelos de inteligencia artificial predictiva en general realizan inferencias más rápido que los modelos generativos, suelen ser ideales para las aplicaciones que requieren resultados inmediatos. Al combinar la inteligencia artificial predictiva con la generativa, puedes crear soluciones más completas. Sin embargo, estas soluciones pueden extender el tiempo de ejecución del modelo y volverlo más complejo.
Inteligencia artificial generativa
El primer paso para desarrollar aplicaciones que usan inteligencia artificial generativa es seleccionar el modelo de lenguaje de gran tamaño (LLM) adecuado. Hay varias opciones open source para elegir, como Bidirectional Encoder Representations from Transformers (BERT), Text-to-Text Transfer Transformer (T5) y los modelos Granite, cada uno con su fortaleza para distintas tareas. Es importante elegir un LLM que se ajuste a los objetivos de tu aplicación. Por ejemplo, Granite-7B-Starter se puede mejorar para que resuma textos sobre seguros y señale los factores de riesgo, la cobertura y las responsabilidades, mientras que BERT se destaca en el análisis de opiniones.
Evaluar el rendimiento de los modelos es fundamental, ya que los LLM varían en cuanto a precisión, fluidez y eficacia general en las tareas relevantes para tus aplicaciones. Además, los modelos con funciones avanzadas, como GPT-3 y algunas variantes de Granite, pueden requerir una gran cantidad de recursos informáticos, incluidas las costosas unidades de procesamiento gráfico (GPU), por lo que es clave equilibrar estas necesidades con la infraestructura y el presupuesto disponibles. Además, si cuentas con acceso a suficientes datos de buena calidad para el perfeccionamiento, puedes asegurarte de que los LLM ofrezcan un rendimiento óptimo para cumplir los requisitos de las aplicaciones.
Los marcos como Langchain simplifican la integración de los LLM en las aplicaciones. Esto te permite concentrarte en la lógica básica de la aplicación. Estos marcos brindan herramientas para aplicar la ingeniería de peticiones y el encadenamiento de modelos, a la vez que mejoran los elementos que usan LLM con memoria o contexto.
Una vez que hayas seleccionado el LLM y los marcos adecuados, tendrás todo lo que necesitas para agregar funciones generativas a tus aplicaciones. Este proceso implica mejorar el rendimiento del modelo y diseñar peticiones precisas y efectivas que guíen a la inteligencia artificial para que brinde los resultados deseados. Para la mejora continua, es clave establecer ciclos de retroalimentación sólidos, ya que garantiza que el modelo se adapte y mejore sus resultados con el tiempo.
Con las peticiones, le indicas el resultado que quieres al LLM. Si ingresas indicaciones claras y concisas, utilizas plantillas para las instrucciones estructuradas y aplicas técnicas como el encadenamiento para guiar al LLM en las tareas complejas, puedes mejorar considerablemente la eficacia del modelo. A través de estas estrategias, te aseguras de que los modelos de inteligencia artificial generen respuestas coherentes y relevantes, incluso con interacciones de varios pasos.
El ciclo de aprendizaje por refuerzo a partir de la retroalimentación humana (RLHF) es fundamental para perfeccionar el LLM. Después de implementar el modelo, recopila las interacciones de los usuarios y utiliza estos comentarios para ajustar el rendimiento del LLM. Gracias a este proceso repetitivo, tu modelo aprende de los errores y mejora constantemente, lo que potencia su capacidad para ofrecer resultados precisos y relevantes a medida que se adapta a los casos prácticos reales.
El perfeccionamiento permite personalizar aún más los LLM ya entrenados para que se adapten a tu área o tarea específica. Al entrenar modelos con conjuntos de datos más pequeños y específicos, puedes mejorar el rendimiento y personalizar los resultados para cumplir los requisitos de tu aplicación. Con herramientas como Hugging Face Transformers, puedes aprovechar los conocimientos del modelo entrenado previamente mientras lo ajustas para tus fines. El método de alineación de modelos de InstructLab te permite coordinar los resultados del modelo con los valores de tu empresa o las necesidades de los usuarios. De este modo, te aseguras de que las respuestas sean precisas y adecuadas para el contexto.
La generación aumentada por recuperación (RAG) combina los LLM con los sistemas de recuperación de información. Por dicha combinación, los modelos pueden acceder a los datos relevantes de fuentes externas e incorporarlos durante la generación. Este enfoque mejora la precisión y la coherencia de los resultados. Además, suele utilizarse cuando se amplían los resultados de los LLM con datos internos y corporativos. Las funciones integradas de RAG de Langchain optimizan este proceso, especialmente cuando se utilizan modelos de Granite para generar respuestas precisas y relevantes para el contexto.
Los agentes son sistemas autónomos que funcionan en un entorno definido para lograr objetivos específicos. Al incorporar comportamientos interactivos y adaptables, estos sistemas pueden modificar su contexto operativo de forma dinámica para responder a las condiciones cambiantes. Esto les permite completar tareas complejas y tomar decisiones inmediatas. Para desarrollar estos agentes, se deben diseñar sistemas con varios elementos que planifiquen, ejecuten y evalúen acciones en función de los resultados del modelo de inteligencia artificial. Al organizar las tareas complejas, como tomar decisiones de forma inmediata e integrar las fuentes de datos y las API externas, puedes mejorar las funciones operativas del sistema.
El encadenamiento de modelos conecta varios modelos o procesos de inteligencia artificial en un flujo de trabajo coherente, en el que cada modelo se basa en los resultados del anterior. Este enfoque te permite desarrollar aplicaciones capaces de gestionar tareas complejas con interacciones de varios pasos. Al utilizar las funciones de diferentes modelos en una secuencia coordinada, puedes diseñar sistemas eficientes que se adapten a tus requisitos.
Si evalúas minuciosamente el flujo de trabajo de tu aplicación con la inteligencia artificial integrada, te aseguras de obtener una experiencia sencilla y eficiente. Al evaluar con rigurosidad todo el sistema, puedes identificar y abordar cualquier problema o ineficiencia, lo cual te permite ajustar la aplicación para mejorar la funcionalidad y la facilidad de uso. Este proceso repetitivo no solo mejora el rendimiento, sino que también ajusta la aplicación a las necesidades y las expectativas de los usuarios.
Evaluación y comparación de los LLM
- Genera peticiones. Crea diversas peticiones para evaluar las capacidades creativas y generativas del modelo. Ajusta las peticiones para obtener las mejores respuestas en diversos casos.
- Experimenta con los datos. Prueba los modelos con datos propietarios exclusivos de tu aplicación. Ajusta las peticiones y la configuración a fin de optimizar el rendimiento del modelo para tareas específicas.
- Determina cuál es el estándar de rendimiento. Evalúa y compara el rendimiento de los modelos con los resultados de tus experimentos.
Primer ejemplo: Chatbot de soporte para clientes
- Problema: Las empresas de servicios deben abordar las preguntas y los problemas de los clientes de manera rápida y eficiente, durante todo el día, todos los días.
- Datos: Registros de chat, documentación del producto y artículos de la base de conocimientos
- Modelos: Granite-7B-Starter adaptado para las conversaciones y la clasificación de intenciones, y mejorado con RAG para la recuperación de información
- Aspectos éticos: Garantizar la privacidad de los datos, eliminar los sesgos y brindar transparencia a los usuarios
- Implementación y repetición: Implementa el chatbot, supervisa las interacciones, recopila comentarios, vuelve a entrenar los modelos y actualiza la base de conocimientos con regularidad.
Diseño de un chatbot con API de terceros
- Servicio de modelo: API de ChatGPT de OpenAI, a través del cliente de REST de Quarkus
- Otros aspectos que se deben tener en cuenta: Clasificación de intenciones e integración de la base de conocimientos
Segundo ejemplo: Evaluación de riesgos de seguros
- Problema: Para optimizar los procesos de evaluación de riesgos, las aseguradoras deben resumir documentos complejos de forma automática.
- Datos: Un conjunto completo de documentos de seguros que incluye pólizas, reclamos e informes médicos
- Modelo: Granite-7B-Starter ajustado para resumir textos de seguros con especial atención en los factores de riesgo, la cobertura y las responsabilidades
- Aspectos éticos: Priorizar la precisión, garantizar el cumplimiento normativo y mantener la estricta privacidad de los datos
- Implementación y repetición: Incorpora modelos al flujo de trabajo de evaluación de riesgos, recopila comentarios y perfecciona los modelos para mejorar los resultados de la tarea.
Evaluación de los riesgos para seguros con las API de terceros
- Servicio de modelo: API de Google Gemini a través del cliente de REST de Quarkus
- Otros aspectos que se deben tener en cuenta: Perfeccionamiento y procesamiento previo de los datos
Para desarrollar aplicaciones innovadoras que usen inteligencia artificial, es fundamental tener conocimientos sobre la ingeniería de peticiones, el perfeccionamiento, la RAG y los agentes. Cada método ofrece herramientas y estrategias distintas para abordar desafíos complejos y mejorar las funciones interactivas de las aplicaciones que usan inteligencia artificial. Aplicar estas técnicas correctamente te permitirá crear sistemas basados en inteligencia artificial más efectivos, inteligentes y con mayor capacidad de respuesta que cumplan los objetivos empresariales más importantes.
Red Hat® OpenShift® AI se basa en Red Hat OpenShift para ofrecer una plataforma integral destinada al diseño, el entrenamiento, el perfeccionamiento, la implementación y la supervisión de los modelos y las aplicaciones y, al mismo tiempo, cumple con las exigencias de las soluciones de inteligencia artificial modernas sobre cargas de trabajo y rendimiento. Incluye herramientas y entornos que aumentan la productividad del desarrollo de inteligencia artificial:
- Jupyter Notebooks y PyTorch facilitan la experimentación y el desarrollo colaborativo, lo cual agiliza la transición de los prototipos a la producción.
- Red Hat OpenShift Pipelines automatiza los flujos de trabajo de integración e implementación continuas (CI/CD) para garantizar la distribución eficiente y sin problemas de los modelos.
- Las herramientas mejoradas de supervisión y observabilidad controlan el rendimiento y el estado de los modelos en el momento. También controlan que no haya desajustes ni sesgos en los datos, lo que colabora con el mantenimiento y los ajustes preventivos.
Red Hat OpenShift AI también optimiza el desarrollo y la implementación de las aplicaciones que usan inteligencia artificial en los entornos de nube híbrida. Las funciones mejoradas de distribución de modelos, como la compatibilidad con servidores de modelos y tiempos de ejecución como KServe, vLLM y Text Generation Inference Server (TGIS), te permiten implementar modelos de inteligencia artificial de manera sencilla y flexible. Red Hat OpenShift AI extiende las funciones de distribución de modelos al extremo de la red para que puedas ofrecer soluciones basadas en inteligencia artificial en entornos con pocos recursos. El acceso de autoservicio a los aceleradores de hardware te permite repetir y optimizar las aplicaciones rápidamente.
Red Hat Enterprise Linux® AI es una plataforma de modelos base que permite desarrollar, probar y ejecutar LLM de Granite sin inconvenientes para las aplicaciones empresariales. Garantiza la portabilidad entre los entornos de nube híbrida, lo cual facilita el posterior ajuste de los flujos de trabajo de inteligencia artificial con Red Hat OpenShift AI.
Por último, la extensión Podman Desktop AI Lab ofrece una configuración optimizada para desarrollar y probar aplicaciones que usan inteligencia artificial de forma local, de modo que puedas simular los entornos de producción de manera precisa y eficiente.
Todo listo para desarrollar soluciones
Comienza a diseñar aplicaciones que usen inteligencia artificial hoy mismo con Red Hat OpenShift AI.
Esta herramienta simplifica los flujos de trabajo complejos, agiliza los ciclos de desarrollo y aporta más opciones de implementación. Al reducir el tiempo y el esfuerzo necesarios para diseñar e implementar modelos de inteligencia artificial, puedes centrarte en la innovación y crear soluciones atractivas en menos tiempo.
Comienza a utilizar Red Hat OpenShift AI sin costo
Accede a Red Hat OpenShift AI en el entorno de prueba (sandbox) para desarrolladores.
Aprende a usar Red Hat OpenShift AI
Accede a planes de capacitación interactivos para diversos casos prácticos de inteligencia artificial.