Avance del aprendizaje automático con KerasCV y KerasNLP: una descripción general completa

Keras es una herramienta de aprendizaje automático ampliamente utilizada, conocida por sus abstracciones de alto nivel y su facilidad de uso, lo que permite una experimentación rápida. Los avances recientes en CV y ​​PNL han introducido desafíos, como el costo prohibitivo de entrenar modelos grandes y de última generación. El acceso a modelos previamente entrenados de código abierto es crucial. Además, la complejidad del preprocesamiento y el cálculo de métricas ha aumentado debido a diversas técnicas y marcos como JAX, TensorFlow y PyTorch. Mejorar el rendimiento del entrenamiento del modelo de PNL también es difícil, ya que herramientas como el compilador XLA ofrecen aceleraciones pero agregan complejidad a las operaciones tensoriales.

Los investigadores del equipo Keras de Google LLC presentan KerasCV y KerasNLP, extensiones de la API de Keras para CV y ​​NLP. Estos paquetes son compatibles con JAX, TensorFlow y PyTorch, lo que enfatiza la facilidad de uso y el rendimiento. Presentan un diseño modular, que ofrece bloques de construcción para modelos y preprocesamiento de datos en un nivel bajo y modelos de tareas previamente entrenados para arquitecturas populares como Stable Diffusion y GPT-2 en un nivel alto. Estos modelos incluyen preprocesamiento integrado, pesos previamente entrenados y capacidades de ajuste fino. Las bibliotecas admiten la compilación XLA y utilizan tf de TensorFlow. API de datos para un preprocesamiento eficiente. Son de código abierto y están disponibles en GitHub.

La biblioteca HuggingFace Transformers es paralela a KerasNLP y KerasCV y ofrece puntos de control de modelos previamente entrenados para muchas arquitecturas de transformadores. Mientras que HuggingFace utiliza un enfoque de “repetición”, KerasNLP adopta un enfoque en capas para reimplementar modelos de lenguaje grandes con un código mínimo. Ambos métodos tienen sus pros y sus contras. KerasCV y KerasNLP publican todos los modelos previamente entrenados en Kaggle Models, a los que se puede acceder en los cuadernos de competencia de Kaggle incluso en el modo sin Internet. La Tabla 1 compara el tiempo promedio por paso de entrenamiento o inferencia para modelos como SAM, Gemma, BERT y Mistral en diferentes versiones y marcos de Keras.

La API de Keras Domain Packages adopta un diseño en capas con tres niveles de abstracción principales. Foundational Components ofrece módulos componibles para crear canalizaciones de preprocesamiento, modelos y lógica de evaluación, que se pueden utilizar independientemente del ecosistema de Keras. Los Backbones previamente entrenados proporcionan modelos listos para realizar ajustes con tokenizadores coincidentes para PNL. Los modelos de tareas están especializados para tareas como generación de texto o detección de objetos, y combinan módulos de nivel inferior para una interfaz unificada de entrenamiento e inferencia. Estos modelos se pueden utilizar con los marcos PyTorch, TensorFlow y JAX. KerasCV y KerasNLP admiten la API de distribución unificada de Keras para un paralelismo perfecto de modelos y datos, simplificando la transición del entrenamiento de un solo dispositivo al de múltiples dispositivos.

El rendimiento del marco varía según el modelo específico, y Keras 3 permite a los usuarios elegir el backend más rápido para sus tareas, superando constantemente a Keras 2, como se muestra en la Tabla 1. Las pruebas comparativas se realizaron utilizando una única GPU NVIDIA A100 con 40 GB de memoria en Google Cloud Compute. Motor (a2-highgpu-1g) con 12 vCPU y 85 GB de memoria de host. Se utilizó el mismo tamaño de lote en todos los marcos para el mismo modelo y tarea (ajustar o predecir). Se emplearon diferentes tamaños de lotes para distintos modelos y funciones para optimizar el uso de la memoria y la utilización de la GPU. Gemma y Mistral utilizaron el mismo tamaño de lote debido a sus parámetros similares.

En conclusión, hay planes para mejorar las capacidades del proyecto en el futuro, particularmente ampliando la gama de modelos multimodales para soportar diversas aplicaciones. Además, los esfuerzos se centrarán en perfeccionar las integraciones con soluciones de servicio de modelos grandes específicas de backend para garantizar una implementación y escalabilidad fluidas. KerasCV y KerasNLP presentan kits de herramientas versátiles que incluyen componentes modulares para la creación rápida de prototipos de modelos y una variedad de pilares y modelos de tareas previamente entrenados para tareas de procesamiento de lenguaje natural y visión por computadora. Estos recursos están dirigidos a usuarios de JAX, TensorFlow o PyTorch y ofrecen rendimiento de inferencia y capacitación de última generación. Guías de usuario completas para KerasCV y KerasNLP están disponibles en Keras.io.


Revisar la Papel. Todo el crédito por esta investigación va a los investigadores de este proyecto. Además, no olvides seguirnos en Gorjeo. Únete a nuestro Canal de telegramas, Canal de discordiay LinkedIn Grarriba.

Si te gusta nuestro trabajo, te encantará nuestro Boletin informativo..

No olvides unirte a nuestro SubReddit de 43k+ ML | Además, consulte nuestro Plataforma de eventos de IA


A Sana Hassan, pasante de consultoría en Marktechpost y estudiante de doble titulación en IIT Madras, le apasiona aplicar la tecnología y la inteligencia artificial para abordar los desafíos del mundo real. Con un gran interés en resolver problemas prácticos, aporta una nueva perspectiva a la intersección de la IA y las soluciones de la vida real.