Häufig gestellte Fragen zur Verwendung von KI in Windows-Apps

Allgemein

Wie kann ich KI in meine Windows-Client-App integrieren?

Die Integration von KI in Ihre Windows-Anwendung kann durch zwei primäre Methoden erreicht werden: ein lokales Modell oder ein cloudbasiertes Modell. Für die lokale Modelloption haben Sie die Möglichkeit, ein bereits vorhandenes Modell zu nutzen, oder ein eigenes Modell auf Plattformen wie TensorFlow oder PyTorch zu trainieren und dann über OnnxRuntime in Ihre Anwendung zu integrieren. Microsoft Foundry auf Windows bietet APIs für verschiedene Funktionen, einschließlich OCR oder unter Verwendung des Phi-Silikatmodells. Andererseits ermöglicht das Hosten Ihres Modells in der Cloud und der Zugriff auf das Modell über eine REST-API, dass Ihre Anwendung optimiert bleibt, indem ressourcenintensive Aufgaben an die Cloud delegiert werden. Weitere Informationen finden Sie unter Use Machine Learning models in your Windows app.

Benötige ich die neueste Version von Windows 11 und eine Copilot+ PC mit einer NPU, um KI-Features zu verwenden?

Es gibt viele Möglichkeiten, KI-Workloads auszuführen, sowohl durch die lokale Installation und Ausführung von Modellen auf Ihrem Windows-Gerät als auch durch das Ausführen von cloudbasierten Modellen (siehe Erste Schritte mit KI auf Windows), jedoch erfordern die von den Windows AI APIs unterstützten KI-Funktionen derzeit einen Copilot+ PC mit einer NPU.

Welche Programmiersprachen eignen sich am besten für die Entwicklung von KI in Windows Client-Apps?

Sie können jede Programmiersprache verwenden, die Sie bevorzugen. Beispielsweise wird C# häufig zum Erstellen von Windows Client-Apps verwendet. Wenn Sie mehr Kontrolle über Details auf niedriger Ebene benötigen, ist C++ eine hervorragende Option. Alternativ können Sie Python verwenden. Sie können auch die Windows-Subsystem für Linux (WSL) verwenden, um linuxbasierte KI-Tools auf Windows auszuführen.

Was sind die besten KI-Frameworks für Windows-Client-Apps?

Es wird empfohlen , OnnxRuntime zu verwenden.

Wie sollte ich datenschutz- und sicherheitsrelevante Daten bei der Verwendung von KI in Windows-Client-Apps behandeln?

Die Achtung des Datenschutzes und der Sicherheit von Benutzerdaten ist bei der Entwicklung von KI-basierten Apps unerlässlich. Sie sollten bewährte Methoden für die Datenverarbeitung befolgen, z. B. das Verschlüsseln vertraulicher Daten, die Verwendung sicherer Verbindungen und das Einholen der Benutzereinwilligung vor dem Sammeln von Daten. Sie sollten auch transparent sein, wie Sie Daten verwenden und Benutzern die Kontrolle über ihre Daten geben. Lesen Sie auch Entwickeln von verantwortungsvollen generativen KI-Anwendungen und Features auf Windows.

Welche Systemanforderungen gelten für die Ausführung von KI in Windows Client-Apps?

Systemanforderungen für Windows Apps, die KI verwenden, hängen von der Komplexität des KI-Modells und der verwendeten Hardwarebeschleunigung ab. Bei einfachen Modellen ist möglicherweise eine moderne CPU ausreichend, aber für komplexere Modelle ist möglicherweise eine GPU oder NPU erforderlich. Sie sollten auch die Speicher- und Speicheranforderungen Ihrer App sowie die für cloudbasierte KI-Dienste erforderliche Netzwerkbandbreite berücksichtigen.

Wie optimieren Sie die KI-Leistung in Windows Client-Apps?

Um die KI-Leistung in Windows-Apps zu optimieren, sollten Sie die Verwendung der Hardwarebeschleunigung, z. B. GPUs oder NPUs, in Betracht ziehen, um modellbasierte Rückschlüsse zu beschleunigen. Windows Copilot+ Laptops sind für KI-Workloads optimiert und können eine erhebliche Leistungssteigerung für KI-Aufgaben bieten. Siehe auch die Übersicht über das Foundry Toolkit für Visual Studio Code.

Kann ich vortrainierte KI-Modelle in meiner Windows-Client-App verwenden?

Ja, Sie können bereits trainierte KI-Modelle in Ihrer Windows-App verwenden. Sie können vorab trainierte Modelle aus dem Internet herunterladen oder einen cloudbasierten KI-Dienst verwenden, um auf vorab trainierte Modelle zuzugreifen. Anschließend können Sie diese Modelle mithilfe eines Frameworks wie OnnxRuntime in Ihre App integrieren.

Was ist DirectML?

DirectML ist eine Low-Level-API für maschinelles Lernen, die GPU-Beschleunigung für allgemeine Machine Learning-Aufgaben in einem breiten Spektrum unterstützter Hardware und Treiber bietet, einschließlich aller DirectX 12-fähigen GPUs von Anbietern wie AMD, Intel, NVIDIA und Qualcomm.

Was ist ONNX?

Open Neural Network Exchange oder ONNX ist ein offenes Standardformat für die Darstellung von ML-Modellen. Beliebte ML-Modell-Frameworks wie PyTorch, TensorFlow, SciKit-Learn, Keras, Chainer, MATLAB usw. können exportiert oder in das Standard-ONNX-Format konvertiert werden. Sobald das Modell im ONNX-Format vorliegt, kann es auf einer Vielzahl von Plattformen und Geräten ausgeführt werden. ONNX eignet sich gut für die Verwendung eines ML-Modells in einem anderen Format als in dem, in dem es trainiert wurde.

Was ist ORT?

OnnxRuntime (ORT) ist ein einheitliches Laufzeittool zum Ausführen von Modellen in verschiedenen Frameworks (PyTorch, TensorFlow usw.), das Hardwarebeschleuniger (Geräte-CPUs, GPUs oder NPUs) unterstützt.

Wie unterscheidet sich ONNX von anderen ML-Frameworks wie PyTorch oder TensorFlow?

PyTorch und TensorFlow werden zum Entwickeln, Trainieren und Ausführen von Deep Learning-Modellen verwendet, die in KI-Anwendungen verwendet werden. PyTorch wird häufig für Forschung verwendet, TensorFlow wird häufig für die Branchenbereitstellung verwendet, und ONNX ist ein standardisiertes Modellaustauschformat , das die Lücke überbrückt, sodass Sie bei Bedarf zwischen Frameworks wechseln und plattformübergreifend kompatibel sind.

Was ist ein NPU? Wie unterscheidet sich dieses Gerät von einer CPU und GPU?

Eine neurale Verarbeitungseinheit oder NPU ist ein dedizierter KI-Chip, der speziell zur Durchführung von KI-Aufgaben entwickelt wurde. Der Fokus einer NPU unterscheidet sich von der einer CPU oder GPU. Ein Zentralprozessor oder CPU ist der primäre Prozessor auf einem Computer, der für die Ausführung von Anweisungen und allgemeinen Berechnungen verantwortlich ist. Ein Grafikprozessor oder GPU ist ein spezieller Prozessor, der zum Rendern von Grafiken entwickelt und für die parallele Verarbeitung optimiert ist. Er ist in der Lage, komplexe Bilder für Videobearbeitungs- und Spielaufgaben zu rendern.

NPUs wurden entwickelt, um Deep Learning-Algorithmen zu beschleunigen und einige der Arbeiten von der CPU oder GPU eines Computers zu entfernen, damit das Gerät effizienter arbeiten kann. NPUs wurden für die Beschleunigung neuraler Netzwerkaufgaben entwickelt. Sie zeichnen sich für die parallele Verarbeitung großer Datenmengen aus, wodurch sie ideal für allgemeine KI-Aufgaben wie Bilderkennung oder Verarbeitung natürlicher Sprachen geeignet sind. Beispielsweise kann die NPU während einer Bilderkennungsaufgabe für die Objekterkennung oder Bildbeschleunigung verantwortlich sein, während die GPU für das Bild-Rendering verantwortlich ist.

Wie kann ich herausfinden, welche Art von CPU, GPU oder NPU mein Gerät hat?

Um den Cpu-, GPU- oder NPU-Typ auf Ihrem Windows Gerät zu überprüfen und ihre Leistung zu überprüfen, öffnen Sie den Task-Manager (STRG+UMSCHALT+ESC), und wählen Sie dann die Registerkarte Performance aus, und Sie können die CPU, den Arbeitsspeicher, das WLAN, die GPU und/oder die NPU ihres Computers zusammen mit Informationen zur Geschwindigkeit anzeigen, Auslastungsrate und andere Daten.

Was ist Windows ML?

Windows ML (Machine Learning) ermöglicht es Ihrer App, eine gemeinsam genutzte systemweite Kopie der ONNX-Runtime (ORT, siehe oben) zu verwenden und fügt Unterstützung hinzu, um anbieterspezifische Execution-Anbieter (EPs) dynamisch herunterzuladen, damit Ihre Modellinferenz optimal über die Vielzahl von CPUs, GPUs und NPUs im Windows-Ökosystem optimiert werden kann, ohne dass Ihre App schwere Laufzeiten oder EPs selbst tragen muss.

Hilfreiche KI-Konzepte

Was ist ein großes Sprachmodell (LLM)?

Ein LLM ist eine Art von Machine Learning (ML)-Modell, das für die Fähigkeit bekannt ist, allgemeine Sprachgenerierung und -verständnis zu erreichen. LLMs sind künstliche neurale Netzwerke, die Fähigkeiten erwerben, indem sie statistische Beziehungen aus riesigen Textdokumenten während eines rechenintensiven selbstbeaufsichtigten und halbbeaufsichtigten Schulungsprozesses erlernen. LLMs werden häufig für die Textgenerierung verwendet, eine Form der generativen KI, die aufgrund einiger Eingabetexte Wörter (oder „Token“) generiert, die wiederum wahrscheinlich kohärente und kontextbezogene Sätze erstellen. Es gibt auch Kleine Sprachmodelle (SMALL Language Models, SLMs), die weniger Parameter und eine begrenzte Kapazität aufweisen, aber möglicherweise effizienter (weniger Rechenressourcen erfordern), kosteneffizient und ideal für bestimmte Domänen sind.

Was ist ML-Modellschulung?

In Machine Learning umfasst die Modellschulung das Einfüttern eines Datasets in ein Modell (LLM oder SLM), sodass es aus den Daten lernen kann, sodass das Modell Vorhersagen oder Entscheidungen basierend auf diesen Daten treffen kann und Muster erkennt. Es kann auch eine iterative Anpassung der Modellparameter zur Optimierung der Leistung umfassen.

Was bedeutet Schlussfolgerungen ziehen?

Der Prozess der Verwendung eines trainierten Machine Learning-Modells, um Vorhersagen oder Klassifizierungen für neue, nicht gesehene Daten zu erstellen, wird als „Rückschließen“ bezeichnet. Sobald ein Sprachmodell auf einem Dataset trainiert wurde und seine zugrunde liegenden Muster und Beziehungen lernt, ist es bereit, dieses Wissen auf reale Szenarien anzuwenden. Rückschluss ist der Moment der Wahrheit eines KI-Modells, ein Test, wie gut es während des Trainings gelernte Informationen anwenden kann, um eine Vorhersage zu treffen oder eine Aufgabe zu lösen. Der Prozess der Verwendung eines vorhandenen Modells für Rückschlüsse unterscheidet sich von der Schulungsphase, die die Verwendung von Schulungs- und Validierungsdaten erfordert, um das Modell zu entwickeln und seine Parameter zu optimieren.

Was ist die Anpassung von ML-Modellen?

Die Feinabstimmung ist ein wichtiger Schritt im maschinellen Lernen, bei dem ein vortrainiertes Modell angepasst wird, um eine bestimmte Aufgabe auszuführen. Anstatt ein Modell von Grund auf neu zu trainieren, beginnt die Feinabstimmung mit einem vorhandenen Modell (in der Regel trainiert auf einem großen Dataset) und passt seine Parameter mithilfe eines kleineren, aufgabenspezifischen Datasets an. Durch die Feinabstimmung lernt das Modell aufgabenspezifische Features und behält dabei das allgemeine Wissen bei, das während der Vorschulung erworben wurde, was zu einer verbesserten Leistung für bestimmte Anwendungen führt.

Was ist Prompt Engineering?

Prompt-Engineering ist ein strategischer Ansatz, der mit generativer KI verwendet wird, um das Verhalten und die Antworten eines Sprachmodells zu gestalten. Es umfasst sorgfältiges Erstellen von Eingabeaufforderungen oder Abfragen, um das gewünschte Ergebnis aus einem Sprachmodell (z. B. GPT-3 oder GPT-4) zu erzielen. Durch das Entwerfen einer effektiven Eingabeaufforderung können Sie ein ML-Modell leiten, um den gewünschten Antworttyp zu erzeugen. Techniken umfassen das Anpassen des Wordings, das Angeben des Kontexts oder die Verwendung von Steuerelementcodes, um die Modellausgabe zu beeinflussen.

Was ist Hardwarebeschleunigung (in Bezug auf ML-Modellschulungen)?

Hardwarebeschleunigung bezieht sich auf die Verwendung spezialisierter Computer-Hardware, die entwickelt wurde, um KI-Anwendungen über das hinaus zu beschleunigen, was mit allgemeinen CPUs erreichbar ist. Die Hardwarebeschleunigung verbessert die Geschwindigkeit, Energieeffizienz und die Gesamtleistung von Machine Learning-Aufgaben, z. B. Schulungsmodelle, Erstellen von Vorhersagen oder Entladen der Berechnung auf dedizierte Hardware-Komponenten, die bei paralleler Verarbeitung für Deep Learning-Workloads auszeichnen. GPUs und NPUs sind Beispiele für Hardwarebeschleuniger.

Welche Unterschiede bestehen zwischen einem Wissenschaftliche Fachkraft für Daten, ML Engineer und App-Entwickler, der KI-Features in ihrer App anwenden möchte?

Der Prozess der Erstellung und Verwendung von ML-Modellen umfasst drei Hauptrollen: Data Scientists: Verantwortlich für die Definition des Problems, das Sammeln und Analysieren der Daten, das Auswählen und Trainieren des ML-Algorithmus sowie das Auswerten und Interpretieren der Ergebnisse. Sie verwenden Tools wie Python, R, Jupyter Notebook, TensorFlow, PyTorch und Scikit-Lernen, um diese Aufgaben auszuführen. ML Engineers: Verantwortlich für die Bereitstellung, Überwachung und Wartung der ML-Modelle in Produktionsumgebungen. Sie verwenden Tools wie Docker, Kubernetes, Azure ML, AWS SageMaker und Google Cloud AI Platform, um die Skalierbarkeit, Zuverlässigkeit und Sicherheit der ML-Modelle sicherzustellen. App-Entwickler: Verantwortlich für die Integration der ML-Modelle in die App-Logik, UI und UX. Sie verwenden Tools wie Microsoft Foundry auf Windows, OnnxRuntime oder REST-APIs und verarbeiten die Benutzereingabe- und Modellausgabe. Jede Rolle umfasst unterschiedliche Zuständigkeiten und Fähigkeiten, aber die Zusammenarbeit und Kommunikation zwischen diesen Rollen ist erforderlich, um die besten Ergebnisse zu erzielen. Je nach Größe und Komplexität des Projekts können diese Rollen von derselben Person oder von verschiedenen Teams ausgeführt werden.