MLX o ML Explore: El framework de Apple para Inteligencia Artificial
El diseño de MLX está inspirado en frameworks existentes como PyTorch o JAX, pero a diferencia de estos, ofrece un soporte para un modelo de memoria unificada, lo que significa que los arrays pueden vivir en memoria compartida y las operaciones pueden realizarse en cualquier tipo de dispositivo (CPU o GPU) sin tener que hacerse copias de datos, no como en otros frameworks donde por ejemplo es necesario mover estructuras de datos un dispositivo a otro.
Figura 2: Libro de Machine Learning aplicado a Ciberseguridad de Carmen Torrano, Fran Ramírez, Paloma Recuero, José Torres y Santiago Hernández |
Para poder realizar la instalación de MLX debes comprender algunos conceptos básicos. En esta página se puede consultar toda la documentación necesaria para empezar a utilizar este framework. En el caso de usar Python, simplemente habría que hacer pip install mlx.
Figura 4: Libros de Python para Pentesters y Hacking con Python de Daniel Echeverri publicados en 0xWord. |
import mlx.core as mx
Y ya podemos proceder a la creación del array:
a = mx.array([1, 2, 3, 4])
b = mx.array((9, 8, 7, 6))
mx.add(a, b, stream=mx.cpu)
mx.add(a, b, stream=mx.gpu)
Si no existen dependencias entre las operaciones estas se ejecutarán en paralelo. En caso de existir alguna, MLX gestionará automáticamente que se ejecute la operación dependiente al finalizar la independiente. En el repositorio oficial de MLX puedes ver ejemplos para generar imágenes con Stable Diffusion, generar texto con un modelo de lenguaje y transcribir audios con Whisper, entre otros.
Acercando la IA avanzada al iPhone
El pasado 12 de Diciembre de este año, Apple ha publicado el artículo «LLM in a flash: Efficient Large Language Model Inference with Limited Memory«, destacando un posible avance significativo en el campo del procesamiento de lenguaje natural. Los LLMs se están convirtiendo en algo esencial como asistentes en nuestra vida cotidiana, pero su alta demanda de recursos computacionales y de memoria representa un desafío, especialmente en dispositivos con DRAM limitada. El artículo aborda esta problemática mediante un enfoque que consiste en almacenar los parámetros de los LLMs en memoria flash, transfiriéndolos a DRAM según sea necesario. Este método no solo mejora la eficiencia, sino que también permite la ejecución de modelos que exceden la capacidad de memoria DRAM disponible.
En el documento, se introducen dos técnicas principales para optimizar este proceso. La primera, conocida como Windowing, reduce la transferencia de datos mediante la reutilización de neuronas ya activadas. La segunda técnica, Row-Column Bundling, se adapta a las fortalezas de acceso secuencial de la memoria flash, permitiendo leer datos en bloques más grandes. Estas innovaciones colectivas posibilitan la ejecución de modelos hasta dos veces más grandes que la capacidad de DRAM disponible, logrando un aumento notable en la velocidad de inferencia, que varía entre 4 y 25 veces más rápido que los métodos de carga convencionales.
Figura 7: Libro de Hacking iOS:iPhone & iPad (2ª Edicón) en 0xWord de Chema Alonso, Ioseba Palop, Pablo Gonzáleez y Alejandro Ramos entre otros. |
Conclusiones
Aunque Apple ha mantenido un perfil relativamente bajo en el escenario de la IA Generativa hasta ahora, el lanzamiento de MLX podría ser un indicativo de futuras iniciativas y desarrollos. Es una declaración de intenciones, a través de ML Explore y las nuevas investigaciones Apple está facilitando un terreno fértil para la innovación y el desarrollo en IA, lo que podría tener implicaciones significativas para el futuro de la tecnología y su integración en nuestra vida cotidiana.
Powered by WPeMatico