Home
Login

Framework de aprendizaje profundo eficiente y ligero, optimizado para dispositivos móviles e integrados, que admite la inferencia y el entrenamiento de modelos.

Apache-2.0C++ 12.0kalibabaMNN Last Updated: 2025-06-20

MNN - Marco de Aprendizaje Profundo Ligero de Código Abierto de Alibaba

Resumen del Proyecto

MNN es un marco de aprendizaje profundo eficiente y ligero que admite la inferencia y el entrenamiento de modelos de aprendizaje profundo, con un rendimiento líder en la industria en inferencia y entrenamiento en el dispositivo. Actualmente, MNN se ha integrado en más de 30 aplicaciones de Alibaba, como Taobao, Tmall, Youku, DingTalk, Xianyu, etc., cubriendo más de 70 escenarios de uso, como transmisión en vivo, grabación de videos cortos, búsqueda y recomendación, "拍立淘" (Pai Li Tao - Snap & Shop), marketing interactivo, distribución de derechos y control de riesgos de seguridad.

Dirección de GitHub: https://github.com/alibaba/MNN

Características Principales

1. Ligereza Extrema

  • Plataforma iOS: El tamaño de la biblioteca estática para las plataformas armv7+arm64 es de aproximadamente 12 MB, y el incremento del archivo ejecutable después de la vinculación es de aproximadamente 2 MB.
  • Plataforma Android: El tamaño de la biblioteca .so central es de aproximadamente 800 KB (armv7a - c++_shared)
  • El uso de MNN_BUILD_MINI puede reducir el tamaño del paquete en aproximadamente un 25%.
  • Soporte para cuantificación FP16/Int8, que puede reducir el tamaño del modelo en un 50%-70%.

2. Amplio Soporte de Modelos

  • Soporte de Marcos: TensorFlow, Caffe, ONNX, Torchscripts
  • Tipos de Redes: CNN, RNN, GAN, Transformer y otras redes neuronales comunes.
  • Soporte de Operadores:
    • 178 operadores de TensorFlow
    • 52 operadores de Caffe
    • 163 operadores de Torchscripts
    • 158 operadores de ONNX

3. Compatibilidad Multiplataforma

  • Plataformas Móviles: iOS 8.0+, Android 4.3+
  • Dispositivos Embebidos: Dispositivos que admiten la interfaz POSIX
  • Computación Híbrida Multi-Dispositivo: CPU y GPU trabajando en colaboración
  • Dispositivos IoT: También tiene aplicaciones en dispositivos de Internet de las Cosas.

4. Optimización de Alto Rendimiento

  • Una gran cantidad de código ensamblador optimizado aprovecha al máximo las CPU ARM/x64
  • Soporte para inferencia de GPU en dispositivos móviles utilizando Metal/OpenCL/Vulkan
  • Soporte para NVIDIA GPU utilizando CUDA y Tensor Core
  • El algoritmo de convolución Winograd se utiliza ampliamente para convoluciones simétricas de 3x3, 4x4, 5x5, 6x6, 7x7, etc.
  • Soporte para cálculo de media precisión FP16 en la arquitectura ARM v8.2, con una mejora de velocidad de 2 veces.
  • Soporte para ARM v8.2 sdot y VNNI, con una mejora de velocidad de 2.5 veces.

Matriz de Soporte de Arquitectura

Arquitectura/Precisión Normal FP16 BF16 Int8
CPU
Native B C B B
x86/x64-SSE4.1 A B B A
x86/x64-AVX2 S B B A
x86/x64-AVX512 S B B S
ARMv7a S S(ARMv8.2) S S
ARMv8 S S(ARMv8.2) S(ARMv8.6) S
GPU
OpenCL A S C S
Vulkan A A C A
Metal A S C S
CUDA A S C A
NPU
CoreML A C C C
HIAI A C C C
NNAPI B B C B

Leyenda: S-Altamente Recomendado | A-Buen Soporte | B-Soporte con Problemas | C-No Soportado

Componentes Centrales

1. MNN-Converter

Herramienta de conversión de modelos, que admite la conversión de modelos de otros marcos a modelos MNN:

  • Soporte para TensorFlow(lite), Caffe, ONNX, Torchscripts
  • Realiza optimización de gráficos para reducir la cantidad de cálculo

2. MNN-Compress

Herramienta de compresión de modelos, reduce el tamaño del modelo y mejora el rendimiento

3. MNN-Express

Admite la ejecución de modelos de flujo de control, utilizando operadores MNN para la computación de propósito general

4. MNN-CV

Biblioteca de procesamiento de imágenes ligera, similar a OpenCV pero implementada basada en MNN

5. MNN-Train

Soporte para el entrenamiento de modelos MNN

Aplicaciones Destacadas

MNN-LLM

Solución de tiempo de ejecución de modelos de lenguaje grandes desarrollada sobre la base del motor MNN, con el objetivo de implementar modelos LLM localmente en la plataforma de cada persona (teléfono móvil/PC/IoT). Soporta:

  • Modelos de lenguaje grandes convencionales como Qianwen, Baichuan, Zhipu, LLAMA, etc.
  • Aplicación Android LLM de modalidad completa
  • Generación de texto, comprensión de imágenes, voz a texto, generación de imágenes a partir de texto

MNN-Diffusion

Solución de tiempo de ejecución de modelos de difusión estable basada en el motor MNN, que admite la implementación local de modelos de difusión estable en varias plataformas.

Logros Académicos

Los resultados de la investigación relacionada con MNN se han publicado en las principales conferencias de sistemas OSDI'22 y MLSys 2020, lo que demuestra su influencia en la academia y la industria.

Herramientas de Desarrollo

MNN Workbench

Se puede descargar desde el sitio web oficial de MNN, proporcionando:

  • Modelos pre-entrenados
  • Herramientas de entrenamiento visuales
  • Implementación de modelos con un solo clic en el dispositivo

API de Python

Proporciona una interfaz Python fácil de usar para ingenieros de aprendizaje automático, sin necesidad de escribir código C++ para inferencia, entrenamiento y procesamiento de imágenes.

Resumen

MNN, como un marco de aprendizaje profundo de código abierto de Alibaba, se ha convertido en una excelente opción para la implementación de IA móvil e integrada debido a sus características de ligereza, alto rendimiento y multiplataforma. Ya sea la inferencia de modelos CNN tradicionales o la implementación de los últimos modelos de lenguaje grandes, MNN proporciona una solución completa y es un conjunto de herramientas indispensable para los desarrolladores de IA.

Star History Chart