Home
Login

Ein effizientes und leichtgewichtiges Deep-Learning-Framework, optimiert für mobile und eingebettete Geräte, das Modellinferenz und -training unterstützt.

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

MNN - Alibaba Open-Source Leichtgewichtiges Deep-Learning-Framework

Projektübersicht

MNN ist ein effizientes, leichtgewichtiges Deep-Learning-Framework, das Inferenz und Training von Deep-Learning-Modellen unterstützt und in Bezug auf die Leistung bei Inferenz und Training auf Geräten branchenführend ist. Derzeit ist MNN in mehr als 30 Anwendungen von Alibaba integriert, wie z. B. Taobao, Tmall, Youku, DingTalk, Xianyu usw., und deckt mehr als 70 Anwendungsszenarien ab, darunter Live-Streaming, Kurzvideoaufnahmen, Such- und Empfehlungsdienste, "Tap to Buy", interaktives Marketing, Rechtevergabe und Sicherheitsrisikokontrolle.

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

Kernfunktionen

1. Ultimative Leichtgewichtigkeit

  • iOS-Plattform: Die statische Bibliothek für die Plattformen armv7+arm64 ist ca. 12 MB groß, die inkrementelle Größe der ausführbaren Datei nach dem Verlinken beträgt ca. 2 MB.
  • Android-Plattform: Die Größe der Kern-SO-Bibliothek beträgt ca. 800 KB (armv7a - c++_shared).
  • Die Verwendung von MNN_BUILD_MINI kann die Paketgröße um ca. 25 % reduzieren.
  • Unterstützt FP16/Int8-Quantisierung, wodurch die Modellgröße um 50 % bis 70 % reduziert werden kann.

2. Breite Modellunterstützung

  • Framework-Unterstützung: TensorFlow, Caffe, ONNX, Torchscripts
  • Netzwerktypen: CNN, RNN, GAN, Transformer und andere gängige neuronale Netze
  • Operatorunterstützung:
    • 178 TensorFlow-Operatoren
    • 52 Caffe-Operatoren
    • 163 Torchscripts-Operatoren
    • 158 ONNX-Operatoren

3. Plattformübergreifende Kompatibilität

  • Mobile Plattformen: iOS 8.0+, Android 4.3+
  • Eingebettete Geräte: Geräte, die die POSIX-Schnittstelle unterstützen
  • Hybride Mehrgeräteberechnung: CPU und GPU arbeiten zusammen
  • IoT-Geräte: Auch in IoT-Geräten im Einsatz

4. Hochleistungsoptimierung

  • Umfangreich optimierter Assembler-Code nutzt ARM/x64-CPUs voll aus
  • Unterstützung der GPU-Inferenz auf mobilen Geräten mit Metal/OpenCL/Vulkan
  • Unterstützung von NVIDIA-GPUs mit CUDA und Tensor Core
  • Der Winograd-Faltungsalgorithmus wird häufig für symmetrische Faltungen von 3x3, 4x4, 5x5, 6x6, 7x7 usw. verwendet.
  • ARM v8.2 Architektur FP16 Halbpräzisionsberechnungsunterstützung, 2x Geschwindigkeitssteigerung
  • ARM v8.2 sdot und VNNI Unterstützung, 2.5x Geschwindigkeitssteigerung

Architektur-Support-Matrix

Architektur/Genauigkeit 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

Erläuterung: S - Sehr empfehlenswert | A - Gut unterstützt | B - Unterstützt, aber mit Problemen | C - Nicht unterstützt

Kernkomponenten

1. MNN-Converter

Modellkonvertierungstool, das die Konvertierung von Modellen anderer Frameworks in MNN-Modelle unterstützt:

  • Unterstützt TensorFlow(lite), Caffe, ONNX, Torchscripts
  • Führt Diagrammoptimierungen durch, um die Rechenlast zu reduzieren

2. MNN-Compress

Modellkomprimierungstool, das die Modellgröße reduziert und die Leistung verbessert

3. MNN-Express

Unterstützt die Ausführung von Modellen mit Kontrollfluss und verwendet MNN-Operatoren für allgemeine Berechnungen

4. MNN-CV

Leichtgewichtige Bildverarbeitungsbibliothek, ähnlich wie OpenCV, aber basierend auf MNN implementiert

5. MNN-Train

Unterstützt das Training von MNN-Modellen

Besondere Anwendungen

MNN-LLM

Eine auf der MNN-Engine basierende Laufzeitlösung für große Sprachmodelle, die darauf abzielt, LLM-Modelle lokal auf der Plattform jedes Einzelnen (Handy/PC/IoT) bereitzustellen. Unterstützt:

  • Mainstream-Sprachmodelle wie Qianwen, Baichuan, Zhipu, LLAMA usw.
  • Vollmodale LLM-Android-Anwendung
  • Texterzeugung, Bildverständnis, Sprache-zu-Text, Text-zu-Bild-Erzeugung

MNN-Diffusion

Eine auf der MNN-Engine basierende Laufzeitlösung für stabile Diffusionsmodelle, die die lokale Bereitstellung stabiler Diffusionsmodelle auf verschiedenen Plattformen unterstützt.

Akademische Erfolge

MNN-bezogene Forschungsergebnisse wurden auf den Top-Systemkonferenzen OSDI'22 und MLSys 2020 veröffentlicht, was seinen Einfluss in der akademischen Welt und der Industrie beweist.

Entwicklungswerkzeuge

MNN Workbench

Kann von der MNN-Website heruntergeladen werden und bietet:

  • Vorab trainierte Modelle
  • Visualisierungstools für das Training
  • Ein-Klick-Modellbereitstellung auf Geräten

Python API

Bietet Machine-Learning-Ingenieuren eine einfach zu bedienende Python-Schnittstelle, mit der Inferenz, Training und Bildverarbeitung ohne C++-Code durchgeführt werden können.

Zusammenfassung

MNN ist ein von Alibaba Open Source entwickeltes Deep-Learning-Framework, das sich durch seine Leichtgewichtigkeit, hohe Leistung und plattformübergreifende Eigenschaften auszeichnet und eine ausgezeichnete Wahl für die Bereitstellung von KI auf mobilen Geräten und eingebetteten Systemen darstellt. Ob traditionelle CNN-Modellinferenz oder die Bereitstellung der neuesten großen Sprachmodelle, MNN bietet eine umfassende Lösung und ist ein unschätzbares Toolkit für KI-Entwickler.

Star History Chart