24 puntos por xguru 2023-12-07 | 2 comentarios | Compartir por WhatsApp
  • Un framework de arreglos creado por el equipo de investigación de machine learning de Apple, diseñado para ejecutar machine learning de forma eficiente y flexible en Apple Silicon
  • Ofrece una API de Python casi idéntica a Numpy, y también cuenta con una API de C++ que incluye toda la funcionalidad
  • Diferencias con Numpy
    • Composable function transformations: MLX incluye transformaciones de funciones componibles para diferenciación automática, vectorización automática y optimización del grafo computacional
    • Lazy Computation: los cálculos en MLX son lazy. Los arreglos solo se materializan cuando es necesario
    • Multidispositivo: puede ejecutar operaciones en todos los dispositivos compatibles (CPU, GPU, ...)
  • Construcción dinámica de grafos: el grafo computacional de MLX se construye de forma dinámica. Cambiar la forma de los argumentos de una función no ralentiza la velocidad de compilación, y la depuración es simple e intuitiva
  • Está inspirado en frameworks como PyTorch, Jax y ArrayFire
    • Una diferencia notable entre estos frameworks y MLX es el Unified Memory Model
    • Los arreglos de MLX se almacenan en memoria compartida. Las operaciones sobre arreglos de MLX pueden realizarse en todos los tipos de dispositivos compatibles sin copiar datos
    • Actualmente, los tipos de dispositivos compatibles son CPU y GPU
  • Incluye varios ejemplos
    • Entrenamiento de modelos de lenguaje Transformer
    • Generación de texto a gran escala con LLaMA y ajuste fino con LoRA
    • Generación de imágenes con Stable Diffusion
    • Reconocimiento de voz con OpenAI's Whisper

2 comentarios

 
mjhong0708 2023-12-07

Construcción de grafos dinámicos: el grafo computacional de MLX se construye dinámicamente. Incluso si cambias la forma de los argumentos de una función, la velocidad de compilación no se vuelve más lenta, y depurar resulta simple e intuitivo.

Esto sí se ve realmente bien. Trabajo mucho con datos dinámicos, así que siempre me costó bastante usar JAX...

 
haebom 2023-12-07

Oh, esto está bueno. Lo voy a probar.