Zugang aus Übersee: www.kdjingpai.com
Ctrl + D Lesezeichen für diese Seite

MNN ist Alibabas Open-Source-Framework für Deep Learning, das sich auf die Modellbereitstellung für mobile und eingebettete Geräte konzentriert. Es unterstützt effiziente Modellinferenz und -training und wird in einer Vielzahl von Alibaba-Geschäftsszenarien wie Taobao, Nail und Youku usw. eingesetzt. MNN ist plattformübergreifend kompatibel, unterstützt iOS, Android und eingebettete Geräte und optimiert die Rechenleistung von CPU und GPU. MNN-LLM ist eine Lösung für die Ausführung von Sprachmodellen, die auf der Grundlage von MNN entwickelt wurde. Sie unterstützt die lokale Ausführung mehrerer großer Sprachmodelle und garantiert den Datenschutz. Das Framework ist Open-Source auf GitHub, mit einer aktiven Community, umfangreicher Dokumentation und Beispielen, die für Entwickler geeignet sind, um schnell loszulegen.

MNN: Ein leichtgewichtiges und effizientes Deep Learning Inferenz-Framework-1

 

Funktionsliste

  • Unterstützung für mehrere Deep-Learning-Modellformate, einschließlich TensorFlow, Caffe, ONNX und TorchScript.
  • Bietet eine effiziente Modellinferenz mit Unterstützung für neuronale Netze wie CNN, RNN, GAN und Transformer.
  • Unterstützung für hybride Berechnungen mit mehreren Geräten auf CPU und GPU (Metal, OpenCL, Vulkan).
  • MNN-LLM ermöglicht die Ausführung großer Sprachmodelle auf Mobiltelefonen und PCs.
  • Unterstützt Modellquantisierung (z.B. FP16 und Int8), wodurch die Modellgröße 50%-70% reduziert wird.
  • Bietet MNN-Express zur Unterstützung der Kontrollflussmodellierung und der allgemeinen Datenverarbeitung.
  • MNN-CV, eine leichtgewichtige, OpenCV-ähnliche Bildverarbeitungsbibliothek, ist integriert.
  • Unterstützung für MNN-Train zum Trainieren von MNN-Modellen.
  • Bietet multimodale Anwendungen wie MNN-LLM-Android mit Unterstützung für Text-, Bild- und Audioverarbeitung.

 

Hilfe verwenden

Einbauverfahren

Um MNN lokal zu verwenden, müssen Sie zunächst den Projektcode aus einem GitHub-Repository klonen. Hier sind die detaillierten Installationsschritte:

  1. Klon-Lager
    Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus, um das MNN-Repository zu klonen:

    git clone https://github.com/alibaba/MNN.git
    
  2. Installation von Abhängigkeiten
    MNN unterstützt iOS 8.0+, Android 4.3+ und eingebettete Geräte mit POSIX-Schnittstelle. Stellen Sie sicher, dass die erforderlichen Kompilierungswerkzeuge auf Ihrem System installiert sind:

    • Linux/macOSInstallieren Sie CMake (3.10 oder höher), Git und GCC/Clang.
      sudo apt-get install cmake git build-essential
      
    • Android (Betriebssystem)Installieren Sie Android NDK (r17 oder höher).
    • iOSStellen Sie sicher, dass Xcode und die Metal-Unterstützung installiert sind.
  3. Zusammenstellung MNN
    Gehen Sie in das MNN-Verzeichnis, erstellen Sie einen Build-Ordner und starten Sie CMake:

    cd MNN
    mkdir build && cd build
    cmake .. -DMNN_BUILD_MINI=ON
    make -j4
    

    ausnutzen MNN_BUILD_MINI Verringert die Paketgröße um etwa 25% für Geräte mit eingeschränkten Ressourcen. Nach der Kompilierung befinden sich die resultierenden ausführbaren Dateien und Bibliotheken im Verzeichnis build Katalog.

  4. MNN-LLM Android-App installieren
    Für die MNN-LLM-Android-App können Sie die vorkompilierte APK-Datei von der GitHub-Releases-Seite herunterladen oder sie selbst erstellen:

    • Laden Sie den Quellcode herunter:project/android/apps/MnnLlmApp.
    • Öffnen Sie das Projekt mit Android Studio, konfigurieren Sie den NDK-Pfad und klicken Sie auf Build > Build APK.
    • Installieren Sie die APK auf Ihrem Android-Gerät, das Android 4.3 oder höher unterstützen sollte.

Modellinferenz mit MNN

Die Kernfunktion von MNN ist die Modellinferenz. Im Folgenden werden die einzelnen Schritte beschrieben:

  1. Modellumwandlung
    MNN unterstützt TensorFlow, Caffe, ONNX und andere Modellformate. Die Modelle müssen in das MNN-Format konvertiert werden:

    • Angenommen, es gibt ein TensorFlow-Modell model.pbführen Sie den folgenden Befehl aus:
      ./MNNConvert -f TF --modelFile model.pb --MNNModel model.mnn --bizCode MNN
      
    • umgewandelt model.mnn Dokumente können zur Argumentation verwendet werden.
  2. Laden und Ausführen von Modellen
    MNN bietet C++- und Python-APIs für die Inferenz. Hier ist ein einfaches C++ Beispiel:

    #include <MNN/Interpreter.hpp>
    int main() {
    auto mnnNet = MNN::Interpreter::createFromFile("model.mnn");
    auto session = mnnNet->createSession();
    // 输入数据
    auto input = mnnNet->getSessionInput(session, nullptr);
    // 运行推理
    mnnNet->runSession(session);
    // 获取输出
    auto output = mnnNet->getSessionOutput(session, nullptr);
    return 0;
    }
    

    Entwickler können sich beziehen auf demo/ Beispielcode im Verzeichnis.

  3. Verwendung von MNN-LLM
    MNN-LLM unterstützt die Ausführung großer Sprachmodelle (z.B. Qwen, Llama) auf dem Handy. Nach der Installation der MNN-LLM Android App:

    • Öffnen Sie die Anwendung und durchsuchen Sie die Liste der unterstützten Modelle.
    • Klicken Sie auf , um das Modell herunterzuladen (z.B. Qwen-7B) und das Modell wird lokal auf dem Gerät gespeichert.
    • Geben Sie eine Texteingabe ein, und die App gibt das generierte Ergebnis zurück.
    • Unterstützung multimodaler Aufgaben, wie Bildbeschreibung oder Audio zu Text, die Bedienung ist ähnlich, einfach die entsprechende Datei hochladen.
      Die App läuft komplett offline und die Daten werden nicht auf den Server hochgeladen, um die Privatsphäre zu schützen.
  4. Leistung optimieren
    • ausnutzen FP16 vielleicht Int8 Quantitative Modellierung zur Reduzierung des Speicherbedarfs.
    • Aktivieren Sie die GPU-Beschleunigung (erfordert Geräteunterstützung für Metal oder Vulkan).
    • Bei komplexen Modellen ist die MNN-Express Optimierung der Kontrollflussberechnungen.

Bildverarbeitung mit MNN-CV

MNN-CV bietet leichtgewichtige Bildverarbeitungsfunktionen ähnlich wie OpenCV. Beispielcode:

#include <MNN/ImageProcess.hpp>
int main() {
MNN::CV::ImageProcess::Config config;
config.destFormat = MNN::CV::RGB;
auto process = MNN::CV::ImageProcess::create(config);
// 加载图像
process->convert(imageData, width, height, 0, output);
return 0;
}

Entwickler können sich beziehen auf include/MNN/ImageProcess.hpp Erhalten Sie mehr Funktionen.

 

Anwendungsszenario

  1. KI-Anwendungen für Mobiltelefone
    MNN unterstützt die Bildsuche, Empfehlungssysteme und Live-Effekte in Anwendungen wie Taobao und Nail. Taobao beispielsweise nutzt MNN für die Erkennung von Produktbildern, damit Nutzer durch Hochladen von Bildern schnell ähnliche Produkte finden können.
  2. Einsatz eingebetteter Geräte
    MNN unterstützt IoT-Geräte für Smart-Home- oder Industrieszenarien. Die Ausführung eines Gesichtserkennungsmodells in einer intelligenten Kamera dauert beispielsweise nur 5 Millisekunden, um ein Einzelbild zu verarbeiten.
  3. lokalisiertes Sprachmodell
    MNN-LLM ermöglicht es den Nutzern, große Sprachmodelle auf ihren Mobiltelefonen auszuführen, die sich für datenschutzsensitive Szenarien wie die lokale Zusammenfassung von Dokumenten oder Sprachassistenten eignen.
  4. multimodale Aufgabe
    Die MNN-LLM-Android-App unterstützt Bildbeschreibungen, die Umwandlung von Audio in Text und andere Funktionen für die Hauswartung, Sprachnotizen und andere Szenarien.

 

QA

  1. Welche Modellformate werden von MNN unterstützt?
    MNN unterstützt die Formate TensorFlow, Caffe, ONNX und TorchScript und deckt 178 TensorFlow-Operationen, 158 ONNX-Operationen und mehr ab.
  2. Wie kann MNN auf Low-End-Geräten ausgeführt werden?
    ausnutzen MNN_BUILD_MINI Kompilieroption, um die Paketgröße zu reduzieren und die Int8 Quantitative Reduzierung des Speicherbedarfs.
  3. Unterstützt MNN-LLM externe Modelle?
    Derzeit muss die App neu kompiliert werden, um externe Modelle zu laden, und es gibt offizielle Pläne, den Modellimport in Zukunft zu verbessern.
  4. Wie schneidet MNN ab?
    MNN ist über 20% schneller als TensorFlow Lite auf Modellen wie MobileNet, und MNN-LLM ist 8,6x schneller als llama.cpp für Inferenz auf Android.
0Lesezeichen
0Gelobt

Empfohlen

Sie können keine AI-Tools finden? Versuchen Sie es hier!

Geben Sie einfach das Schlüsselwort Barrierefreiheit Bing-SucheDer Bereich KI-Tools auf dieser Website bietet eine schnelle und einfache Möglichkeit, alle KI-Tools auf dieser Website zu finden.

Posteingang

Kontakt

zurück zum Anfang

de_DEDeutsch