Die Integration von KI in Ihre Windows-Anwendung kann über 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 eigene Plattformen wie TensorFlow oder PyTorch zu trainieren und dann über OnnxRuntime in Ihre Anwendung zu integrieren. Die Windows Copilot Runtime bietet APIs für verschiedene Funktionen, einschließlich OCR oder unter Verwendung des Phi Silica-Modells. 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 Verwenden von Machine Learning-Modellen in Ihrer Windows-App .
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 Linux-basierte KI-Tools unter Windows auszuführen.
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 unbedingt Entwickeln von verantwortungsvollen generativen KI-Anwendungen und -Features unter Windows.
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.
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. Weitere Informationen finden Sie unter Übersicht über das KI-Toolkit für Visual Studio Code.
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.
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.
Open Network Neural Exchange, kurz 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 es trainiert wurde.
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.
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 und TensorFlow wird häufig für die Branchenbereitstellung verwendet. ONNX ist ein standardisiertes Modellaustauschformat, das die Lücke zwischen diesen beiden überbrückt, sodass Sie bei Bedarf zwischen Frameworks wechseln und plattformübergreifend kompatibel sind.
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.
Um den Typ der CPU, GPU oder NPU auf Ihrem Windows-Gerät sowie ihre Leistung zu überprüfen, öffnen Sie den Task-Manager (STRG+ALT+ENTF), und wählen Sie dann die Registerkarte Leistung aus. Hier können Sie die CPU, den Arbeitsspeicher, das WLAN, die GPU und/oder NPU anzeigen, zusammen mit Informationen zur Geschwindigkeit, Auslastungsrate und anderen Daten.
WinML oder Windows Machine Learning ist eine allgemeine API zum Bereitstellen von hardwarebeschleunigten Machine Learning (ML)-Modellen auf Windows-Geräten, mit der Entwickler die Funktionen des Geräts nutzen können, um modellbasierte Ableitungen durchzuführen. Der Fokus liegt auf dem Laden, Bindung und Auswerten des Modells. WinML verwendet das ONNX-Modellformat.
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.
In Machine Learning umfasst die Modellschulung das Einfüttern eines Datasets in ein Modell (ein LLM oder SLM), sodass es aus den Daten lernen kann, damit 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.
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.
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.
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.
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.
Was sind die Unterschiede zwischen einem Wissenschaftliche Fachkraft für Daten, ML-Ingenieur und App-Entwickler, der KI-Features in ihrer App anwenden möchte?
Der Prozess zum Erstellen und Verwenden von ML-Modellen umfasst drei Standardrollen: Wissenschaftliche Fachkraft für Daten: 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-Ingenieure: 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, Benutzeroberfläche und UX. Sie verwenden Tools wie Windows Copilot Runtime, 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.