Verwenden Ihres ONNX-Modells mit Windows Machine Learning

In diesem Leitfaden werden App-Entwickler bei der Arbeit mit Ki- und Machine Learning-Modellen (Machine Learning, ML) vertraut sein, indem sie allgemeine Fragen beantworten, grundlegende Konzepte und Ressourcen freigeben und Empfehlungen zur Verwendung von KI- und ML-Modellen in einer Windows-App anbieten.

Machine Learning (ML) ist ein Zweig der Künstlichen Intelligenz (AI), mit dem Computer aus Daten lernen und Vorhersagen oder Entscheidungen treffen können.

ML-Modelle sind Algorithmen, die auf Daten trainiert und dann bereitgestellt werden können, um verschiedene Aufgaben auszuführen, z. B. Inhaltsgenerierung, Begründung über Inhalte, Bilderkennung, Verarbeitung natürlicher Sprache, Stimmungsanalyse und vieles mehr.

Wie können Windows-Anwendungen ML-Modelle nutzen?

Einige Möglichkeiten, wie Windows-Anwendungen ML-Modelle nutzen können, um ihre Funktionalität und Benutzererfahrung zu verbessern, umfassen:

  • Apps können generative KI-Modelle verwenden, um komplexe Themen zu verstehen, um komplexe Themen zusammenzufassen, neu zu schreiben, zu berichten oder zu erweitern.
  • Apps können Modelle verwenden, die Freiforminhalte in ein strukturiertes Format umwandeln, das Ihre App verstehen kann.
  • Apps können Semantik-Suchmodelle verwenden, mit denen Benutzer nach Inhalten suchen können, indem sie bedeutungsbezogen und schnell verwandte Inhalte finden.
  • Apps können Modelle für die Verarbeitung natürlicher Sprachen verwenden, um über komplexe Anforderungen in natürlicher Sprache zu verfügen, und Aktionen zum Ausführen der Benutzeranforderung zu planen und auszuführen.
  • Apps können Bildbearbeitungsmodelle verwenden, um Bilder intelligent zu ändern, Bilder zu löschen oder Themen hinzuzufügen, hochskalieren oder neue Inhalte zu generieren.
  • Apps können predictive Diagnostic-Modelle verwenden, um Probleme zu identifizieren und vorherzusagen und den Benutzer zu leiten oder für sie zu tun.

ML-Modelle in KI-gesicherten APIs

Die Windows Copilot Runtime verbindet verschiedene Möglichkeiten der Interaktion mit dem Betriebssystem, die KI nutzen. Dazu gehören einsatzbereite KI-gesicherte Features und APIs, die wir als Windows Copilot Library bezeichnen. Informationen zu diesen einsatzbereiten Features und APIs, die einige der oben aufgeführten Szenarien unterstützen, finden Sie unter "Erste Schritte mit KI-gesicherten APIs" in Ihrer Windows-App .

Die Windows Copilot Library-Modelle werden lokal und direkt auf dem Windows-Gerät ausgeführt. Sie können jedoch auch ein cloudbasiertes Modell über eine einsatzbereite API verwenden. Unabhängig davon, ob sie lokal oder in der Cloud ausgeführt werden, abstrahieren diese APIs das zugrunde liegende ML-Modell, sodass Sie keine Optimierung, Formatierung oder Feinabstimmung durchführen müssen.

Sie können jedoch ihr eigenes ML-Modell finden, das lokal unter Windows verwendet werden soll. Möglicherweise müssen Sie dieses Modell optimieren, damit es auf Windows-Geräten ordnungsgemäß ausgeführt wird oder ein Modell optimiert wird, damit es mit Ihren eigenen angepassten Daten trainiert wird, die für Ihren speziellen Anwendungsfall oder Ihr Unternehmen spezifisch sind. In diesem Artikel werden einige der Konzepte, Tools und Open Source-Bibliotheken behandelt, die Sie durch diesen Prozess führen können.

Lokales Ausführen eines kleinen Sprachmodells im Vergleich zu einem großen Sprachmodell in der Cloud

Kleine Sprachmodelle (SMALL Language Models, SLMs) sind so konzipiert, dass sie kompakt und effizient sind, häufig für bestimmte Aufgaben oder Aufgaben trainiert werden Standard für kleinere Datasets, um das Speichern und Ausführen des Modells lokal mit einer schnelleren Ableitungszeit zu ermöglichen. SLMs sind in der Menge der Daten eingeschränkt, die verwendet werden, um sie zu trainieren, nicht so umfangreiche Kenntnisse oder komplexe Begründungen wie ein Großes Sprachmodell (LLM). SLMs können jedoch eine sicherere und kostengünstigere Alternative zu LLMs bereitstellen, wenn sie lokal verwendet werden, da sie weniger Rechenleistung für die Ausführung und verbesserung des Datenschutzes erfordern, indem Sie Ihre Chatinformationen sicher lokal auf Ihrem Gerät speichern.

SLMs eignen sich besser für die lokale Verwendung, da das Ausführen eines ML-Modells auf einem Gerät bedeutet, dass die Größe die Speicher- und Verarbeitungsfunktion des Geräts, auf dem es ausgeführt wird, nicht überschreiten darf. Die meisten LLMs wären zu groß, um lokal ausgeführt zu werden.

Die Microsoft Phi-2 - und Phi-3-Modelle sind Beispiele für SLMs.

Große Sprachmodelle (LLMs) wurden auf riesige Datenmengen mit einer größeren Anzahl von Parametern trainiert, wodurch sie für den Speicher komplexer und größer werden. Aufgrund ihrer Größe können LLMs in der Lage sein, differenziertere und komplexere Muster in den Daten zu verstehen, die ein breiteres Spektrum an Wissen mit der Fähigkeit zum Arbeiten mit komplexeren Mustern abdecken. Außerdem benötigen sie für Schulungen und Ableitungen wichtigere Rechenressourcen. Die meisten LLMs können nicht auf einem lokalen Gerät ausgeführt werden.

Die OpenAI-Sprachmodelle GPT-4o, GPT-4 Turbo, GPT-3.5 Turbo, DALL-E und Whisper sind alle Beispiele für LLMs.

Weitere Anleitungen zum Unterschied zwischen der lokalen Verwendung eines SLM im Vergleich zu einer LLM in der Cloud finden Sie unter Überlegungen zur Verwendung lokaler und cloudbasierter KI-gesicherter APIs in Ihrer Windows-App.

Suchen von Open Source ML-Modellen im Web

Open Source ML-Modelle , die einsatzbereit sind und mit Ihren eigenen Daten oder Vorlieben angepasst werden können, stehen an verschiedenen Stellen zur Verfügung, ein paar der beliebtesten sind:

  • Hugging Face: Ein Hub von über 10.000 vortrainierten ML-Modellen für die Verarbeitung natürlicher Sprachen, unterstützt von der Transformers-Bibliothek. Sie finden Modelle für die Textklassifizierung, Die Fragebeantwortung, Zusammenfassung, Übersetzung, Generation und vieles mehr.
  • ONNX Model Zoo: Eine Sammlung von vortrainierten ML-Modellen im ONNX-Format, die ein breites Spektrum von Aufgaben abdecken Standard und Aufgaben wie Computervision, natürliche Sprachverarbeitung, Sprache und vieles mehr.
  • Qualcomm AI Hub: Eine Plattform, die Zugriff auf eine Vielzahl von ML-Modellen und -Tools bietet, die für Qualcomm Snapdragon-Geräte optimiert sind. Sie finden Modelle für die Bild-, Video-, Audio- und Sensorverarbeitung sowie Frameworks, Bibliotheken und SDKs zum Erstellen und Bereitstellen von ML-Anwendungen auf mobilen Geräten. Qualcomm AI Hub bietet außerdem Lernprogramme, Leitfäden und Community-Unterstützung für Entwickler und Forscher an.
  • Pytorch Hub: Ein vortrainiertes Modellrepository, das die Recherchierbarkeit erleichtert und neue Forschung ermöglicht. Es handelt sich um eine einfache API und einen Workflow, der die grundlegenden Bausteine zur Verbesserung der Reproduzierbarkeit der maschinellen Lernforschung bereitstellt. PyTorch Hub besteht aus einem vorab trainierten Modellrepository, das speziell zur Erleichterung der Recherch-Reproduzierbarkeit entwickelt wurde.
  • TensorFlow Hub: Ein Repository von vordefinierten ML-Modellen und wiederverwendbaren Komponenten für TensorFlow, das ein beliebtes Framework zum Erstellen und Trainieren von ML-Modellen ist. Sie können Modelle für Bild-, Text-, Video- und Audioverarbeitung sowie Lern- und Feinabstimmungen finden.
  • Modell zoo: Eine Plattform, die die besten Open Source ML-Modelle für verschiedene Frameworks und Aufgaben kuratiert und bewertet. Sie können Modelle nach Kategorie, Framework, Lizenz und Bewertung durchsuchen und Denos, Code und Papiere für jedes Modell anzeigen.

Einige Modellbibliotheken sollen nicht über eine App angepasst und verteilt werden, sind aber hilfreiche Tools für die praktische Erkundung und Ermittlung als Teil des Entwicklungslebenszyklus, z. B.:

  • Ollama: Ollama ist ein Marktplatz von einsatzbereiten ML-Modellen für verschiedene Aufgaben wie Gesichtserkennung, Stimmungsanalyse oder Spracherkennung. Sie können die Modelle mit wenigen Klicks durchsuchen, testen und in Ihre App integrieren.
  • LM Studio: Lmstudio ist ein Tool, mit dem Sie benutzerdefinierte ML-Modelle aus Ihren eigenen Daten mithilfe einer Drag-and-Drop-Schnittstelle erstellen können. Sie können aus verschiedenen ML-Algorithmen wählen, Ihre Daten vorverarbeiten und visualisieren sowie Ihre Modelle trainieren und auswerten.

Wenn Sie ein ML-Modell mit dem Ziel finden, es in Ihrer Windows-App zu verwenden, empfehlen wir dringend, die Anleitung zum Entwickeln verantwortlicher generativer KI-Anwendungen und -Features unter Windows zu befolgen. Dieser Leitfaden hilft Ihnen dabei, Governancerichtlinien, Praktiken und Prozesse zu verstehen, Risiken zu identifizieren, Testmethoden zu empfehlen, Sicherheitsmaßnahmen wie Moderatoren und Filter zu nutzen und bei der Auswahl eines Modells, das sicher und verantwortlich für die Arbeit mit einem Modell ist, spezifische Überlegungen herauszurufen.

Gewusst wie ein ML-Modell für die Ausführung unter Windows optimieren?

Es gibt verschiedene Möglichkeiten zum Verwenden von ML-Modellen in Windows-Apps, je nach Typ, Quelle und Format der Modelle und app-Typ.

Einige der Formate, die Sie in ML-Modellen finden, umfassen:

  • ONNX: Ein offener Standard zum Darstellen und Austauschen von ML-Modellen über verschiedene Frameworks und Plattformen hinweg. Wenn Sie ein vordefiniertes ML-Modell im ONNX-Format finden, können Sie ONNX Runtime (ORT) verwenden, um das Modell in Ihrer Windows-App zu laden und auszuführen. ORT ermöglicht es Ihnen, auf die hardwarebeschleunigten Ableitungsfunktionen Ihres Geräts zuzugreifen und die Leistung Ihres ML-Modells zu optimieren. Wenn Sie ein vordefiniertes ML-Modell in einem anderen Format haben, z. B. PyTorch oder TensorFlow, können Sie es mit einem Modelloptimierungstool wie Olive in ONNX konvertieren. Hilfe zur Verwendung von Olive finden Sie unter Feinabstimmung von SLM mit Microsoft Olive (Journey Series for Generative AI Application Architecture). Lernprogramme zum Erstellen und Verwenden von ONNX-Modellen finden Sie in ONNX-Lernprogrammen auf GitHub. Beispiele zur Verwendung von ONNX-Modellen in einer Windows-App finden Sie in der KI im Windows-Beispielkatalog.

  • PyTorch: Ein sehr beliebtes Open Source Deep Learning Framework, das mit einer Python- und C++-Schnittstelle verfügbar ist. Dies wird wahrscheinlich das am häufigsten verwendete Format für ML-Modelle sein. Wenn Sie PyTorch ML-Modelle in Ihrer Windows-App (C# oder C++) oder in einer Web-App verwenden möchten, können Sie TorchSharp und LibTorch verwenden, die .NET- und C++-Bindungen für die PyTorch-Bibliothek sind. Mit TorchSharp und LibTorch können Sie Tensoren erstellen, laden und bearbeiten, neurale Netzwerke erstellen und ausführen sowie Modelle mit dem PyTorch-Format speichern und laden. Beispiele finden Sie unter "TorchSharp Examples", "TorchScript for Deployment", "PyTorch C++-Beispiele". Informationen zu Web-Apps finden Sie unter "Erstellen einer Webanwendung mit ONNX Runtime. Beispiele zum Ausführen von PyTorch-Modellen mit DirectML finden Sie in der KI im Windows-Beispielkatalog.

  • TensorFlow ist eine weitere beliebte Open-Source-Softwarebibliothek für maschinelles Lernen und künstliche Intelligenz, die zum Erstellen und Bereitstellen von Machine Learning-Modellen für verschiedene Aufgaben verwendet wird.

  • WebNN-API für Web-Apps: Ein Webstandard für den Zugriff auf neurale Netzwerkhardwarebeschleunigung in Browsern basierend auf webIDL- und JavaScript-APIs. Es ermöglicht Webentwicklern, machine Learning-Modelle effizient auf clientseitiger Seite zu erstellen und auszuführen, ohne sich auf Clouddienste oder systemeigene Bibliotheken zu verlassen. Weitere Informationen finden Sie in den Beispielen auf GitHub WebNN-Beispiele mit ONNX Runtime in der KI im Windows-Beispielkatalog.

Gewusst wie ein ML-Modell mit meinen angepassten Daten optimieren, die unter Windows ausgeführt werden sollen?

AI Toolkit für Visual Studio Code ist eine VS Code-Erweiterung, mit der Sie KI-Modelle lokal herunterladen und ausführen können. Die AI Tookit kann Ihnen auch bei folgendem Helfen helfen:

  • Testen von Modellen in einem intuitiven Playground oder in Ihrer Anwendung mit einer REST-API.
  • Optimieren Sie Ihr KI-Modell sowohl lokal als auch in der Cloud (auf einem virtuellen Computer), um neue Fähigkeiten zu erstellen, die Zuverlässigkeit der Antworten zu verbessern, den Ton und das Format der Antwort festzulegen.
  • Feinabstimmung beliebter kleinsprachiger Modelle (SLMs), wie Phi-3 und Mistral.
  • Stellen Sie Ihr KI-Feature entweder in der Cloud oder mit einer Anwendung bereit, die auf einem Gerät ausgeführt wird.

Wie kann ich die Hardwarebeschleunigung für eine bessere Leistung mit KI-Features nutzen

DirectML ist eine API auf niedriger Ebene, mit der Ihre Windows-Gerätehardware die Leistung von ML-Modellen mithilfe der Geräte-GPU oder NPU beschleunigen kann. Das Koppeln von DirectML mit der ONNX Runtime ist in der Regel die einfachste Möglichkeit für Entwickler, hardwarebeschleunigte KI an ihre Benutzer zu übertragen. Weitere Informationen: Übersicht über DirectML.