Home
Login

Framework d'apprentissage profond efficace et léger, optimisé pour les appareils mobiles et embarqués, prenant en charge l'inférence et l'entraînement de modèles.

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

MNN - Framework d'apprentissage profond léger open source d'Alibaba

Aperçu du projet

MNN est un framework d'apprentissage profond efficace et léger qui prend en charge l'inférence et l'entraînement de modèles d'apprentissage profond, avec des performances de pointe dans l'industrie en matière d'inférence et d'entraînement sur les appareils. Actuellement, MNN est intégré à plus de 30 applications Alibaba, telles que Taobao, Tmall, Youku, DingTalk, Xianyu, etc., couvrant plus de 70 scénarios d'utilisation tels que la diffusion en direct, la prise de vue de courtes vidéos, la recherche et la recommandation, la photographie instantanée, le marketing interactif, la distribution de droits et le contrôle des risques de sécurité.

Adresse GitHub: https://github.com/alibaba/MNN

Caractéristiques principales

1. Extrême légèreté

  • Plateforme iOS: La taille de la bibliothèque statique pour les plateformes armv7+arm64 est d'environ 12 Mo, et l'augmentation du fichier exécutable après la liaison est d'environ 2 Mo.
  • Plateforme Android: La taille de la bibliothèque .so principale est d'environ 800 Ko (armv7a - c++_shared)
  • L'utilisation de MNN_BUILD_MINI peut réduire la taille du package d'environ 25 %.
  • Prise en charge de la quantification FP16/Int8, ce qui peut réduire la taille du modèle de 50 % à 70 %.

2. Large prise en charge des modèles

  • Prise en charge des frameworks: TensorFlow, Caffe, ONNX, Torchscripts
  • Types de réseaux: CNN, RNN, GAN, Transformer et autres réseaux neuronaux courants
  • Prise en charge des opérateurs:
    • 178 opérateurs TensorFlow
    • 52 opérateurs Caffe
    • 163 opérateurs Torchscripts
    • 158 opérateurs ONNX

3. Compatibilité multiplateforme

  • Plateformes mobiles: iOS 8.0+, Android 4.3+
  • Appareils embarqués: Appareils prenant en charge l'interface POSIX
  • Calcul hybride multi-appareils: Collaboration CPU et GPU
  • Appareils IoT: Applications également sur les appareils IoT

4. Optimisation des hautes performances

  • Un grand nombre de codes d'assemblage optimisés exploitent pleinement les CPU ARM/x64
  • Utilisation de Metal/OpenCL/Vulkan pour prendre en charge l'inférence GPU sur les appareils mobiles
  • Utilisation de CUDA et Tensor Core pour prendre en charge les GPU NVIDIA
  • L'algorithme de convolution Winograd est largement utilisé pour les convolutions symétriques 3x3, 4x4, 5x5, 6x6, 7x7, etc.
  • Prise en charge du calcul en demi-précision FP16 de l'architecture ARM v8.2, avec une augmentation de la vitesse de 2 fois
  • Prise en charge de ARM v8.2 sdot et VNNI, avec une augmentation de la vitesse de 2,5 fois

Matrice de prise en charge de l'architecture

Architecture/Précision 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

Légende: S - Fortement recommandé | A - Bonne prise en charge | B - Prise en charge avec des problèmes | C - Non pris en charge

Composants principaux

1. MNN-Converter

Outil de conversion de modèles, prend en charge la conversion de modèles d'autres frameworks en modèles MNN :

  • Prise en charge de TensorFlow(lite), Caffe, ONNX, Torchscripts
  • Effectue une optimisation du graphe pour réduire la quantité de calcul

2. MNN-Compress

Outil de compression de modèles, réduit la taille du modèle et améliore les performances

3. MNN-Express

Prend en charge l'exécution de modèles de flux de contrôle, en utilisant les opérateurs MNN pour le calcul général

4. MNN-CV

Bibliothèque de traitement d'images légère, similaire à OpenCV mais basée sur MNN

5. MNN-Train

Prend en charge l'entraînement des modèles MNN

Applications phares

MNN-LLM

Solution d'exécution de modèles de langage de grande taille développée sur la base du moteur MNN, dans le but de déployer localement des modèles LLM sur la plateforme de chacun (téléphone mobile/PC/IoT). Prend en charge :

  • Les principaux modèles de langage de grande taille tels que Qianwen, Baichuan, Zhipu, LLAMA, etc.
  • Applications Android LLM en mode complet
  • Génération de texte, compréhension d'images, transcription vocale, génération d'images à partir de texte

MNN-Diffusion

Solution d'exécution de modèles de diffusion stable basée sur le moteur MNN, prenant en charge le déploiement local de modèles de diffusion stable sur diverses plateformes.

Réalisations académiques

Les résultats de recherche liés à MNN ont été publiés dans les principales conférences sur les systèmes OSDI'22 et MLSys 2020, ce qui prouve son influence dans les milieux universitaires et industriels.

Outils de développement

MNN Workbench

Peut être téléchargé sur le site officiel de MNN, offrant :

  • Modèles pré-entraînés
  • Outils de formation visuels
  • Déploiement de modèles en un clic sur les appareils

API Python

Fournit aux ingénieurs en apprentissage automatique une interface Python facile à utiliser, sans avoir à écrire de code C++ pour l'inférence, l'entraînement et le traitement d'images.

Conclusion

MNN, en tant que framework d'apprentissage profond open source d'Alibaba, est devenu un excellent choix pour le déploiement de l'IA sur les appareils mobiles et embarqués grâce à ses caractéristiques de légèreté, de hautes performances et de multiplateforme. Qu'il s'agisse de l'inférence de modèles CNN traditionnels ou du déploiement des derniers modèles de langage de grande taille, MNN fournit une solution complète et constitue un ensemble d'outils précieux pour les développeurs d'IA.

Star History Chart