Algo está pasando en la industria del cómputo. Hace unos días Google abrió parte de su código para proveer inteligencia artificial distribuida. Ahora es Microsoft quien sigue el ejemplo dando oportunidad para que a quien le interese pueda disponer de herramientas inteligentes para el análisis de datos, todo disponible en GitHub bajo la licencia del MIT.
Microsoft Research Asia ha puesto a disposición de todos su Microsoft Distributed Machine Learning Toolkit, el cual contiene tres componentes claves:
- DMTK Framework: un entorno flexible que soporta una interfaz unificada para paralelización de datos, estructuras híbridas de datos para modelos grandes de almacenamiento, así como sistemas grandes para modelar entrenamiento y eficiencia.
- LightDA: un algoritmo extremadamente rápido y escalable, con un sampleador O(1) Gibbs asi como una implementación distribuida.
- Distributed (Multisense) Word Embedding: una versión distribuida del algoritmo de palabras embebidas.
El DMTK parece ser el núcleo de la parte de propósito general del toolkit. Es claro que muchas técnicas de aprendizaje de máquinas no requieren de un sampleador Gibbs o de utilizar el enfoque wordvec. El DMTK es un sistema cliente escrito en C++ y permite un solo modelo que puede calcularse en un número de servidores. Microsoft dice que puede manejar un modelo con un millón de tópicos y con un vocabulario de 20 millones de palabras, o con un modelo de palabras embebido con 1000 dimensiones y 20 millones de palabras en su vocabulario o bien, una colección de documentos web com 200 millardos de tokens que utilizan un clúster de tan solo 24 máquinas. Eso antes hubiese requerido miles de computadoras.
Comparado con el enfoque de TensorFlow de Google, este no parece ser de propósito general. TensorFlow está basado en un enfoque del flujo de una gráfica hacia un modelo de computación y puede entonces ser usado para implementar cualquier sistema que pueda ser especificado en términos del flujo de una gráfica.
Es claro que los investigadores de esquemas de aprendizaje de las máquinas pueden construir sus propios algoritmos distribuidos de aprendizaje para máquinas sobre este framework con pequeñas modificaciones hacia algoritmos que puedan existir en una sola máquina. “Creemos que para poder emular la frontera del aprendizaje distribuido de máquinas, necesitamos un esfuerzo colectivo de toda la comunidad y que además, requerimos de la combinación orgánica de las innovaciones en el aprendizaje de máquinas y en las innovaciones en los sistemas. Esta creencia nos motiva fuertemente para abrir el código del proyecto DMTK”, dice Microsoft y agrega “en promedio, la calidad de la documentación no serán como lo que Google ha puesto a disposición del público pero si eres un experto, esto podría no importarte”.
Referencias: