Neue Arm-basierte Copilot+ PCs von Microsoft und Partnern
Microsoft und seine Hardware-Partner haben kürzlich ihre Copilot+ PCs mit Arm-CPUs und integrierten neuronalen Verarbeitungseinheiten vorgestellt. Diese Geräte stellen eine interessante Abkehr von den bisherigen Mainstream-x64-Plattformen dar. Sie fokussieren sich zunächst auf Qualcomms Snapdragon X Arm-Prozessoren sowie die neuesten Builds von Microsofts Windows on Arm. Ein solcher PC läuft bereits auf dem 24H2-Build von Windows 11, mindestens ein paar Monate bevor 24H2 andere Hardware erreicht.
Leistungsstarke Hardware und Akkulaufzeit
Der Copilot+ bietet alle Funktionen eines modernen Laptops und überzeugt durch seine Schnelligkeit. Die Akkulaufzeit ist ausgezeichnet. Arm-native Benchmarks schneiden genauso gut oder in einigen Fällen besser ab als die meisten auf Intel oder AMD basierenden Hardware. Diese PCs konkurrieren sogar mit Apples M2- und M3-Arm-Prozessoren. Daher eignen sie sich ideal für die meisten gängigen Entwicklungsarbeiten mit Visual Studio und Visual Studio Code. Beide Entwicklungswerkzeuge haben Arm64-Builds, sodass Entwickler nicht durch die zusätzliche Komplexität des Windows On Arm Prism-Emulationslayers beeinträchtigt werden.
Arm-PCs für die Arm-Entwicklung
Entwickler können mit GitHub oder einem anderen Versionskontrollsystem zur Verwaltung von Code schnell ein Repository klonen, einen neuen Branch einrichten, erstellen, testen und lokale Änderungen vornehmen. Anschließend pushen sie ihren Branch zum Hauptrepository, um Pull-Requests für die Zusammenführung von Änderungen zu verwenden. Dieser Ansatz beschleunigt die Entwicklung von Arm-Versionen bestehender Anwendungen, da leistungsfähige Hardware nun Teil des Softwareentwicklungslebenszyklus ist.
Diese neue Generation von Hardware bringt eine breitere Auswahl an Quellen mit sich. Unternehmen mit Einkaufsvereinbarungen mit Dell, HP oder Lenovo können schnell Arm-Hardware zu ihrem Bestand hinzufügen und müssen nicht auf Microsofts Surface beschränkt bleiben.
Die integrierte neuronale Verarbeitungseinheit (NPU)
Das interessanteste Merkmal der neuen Geräte ist die integrierte neuronale Verarbeitungseinheit (NPU). Diese bietet eine zusätzliche Rechenleistung von mindestens 40 TOPs. Die NPU ermöglicht fortschrittliche lokale Inferenzfähigkeiten für PCs und unterstützt kleine Sprachmodelle und andere Funktionen des maschinellen Lernens. Microsoft demonstriert diese zunächst mit einem Live-Untertitelungstool und verschiedenen Echtzeit-Videofiltern im Verarbeitungspfad der Gerätekamera. Das geplante Recall AI-Indexierungstool wird überarbeitet, um Sicherheitsbedenken zu begegnen.
Erstellen Sie Ihre eigene KI auf KI-Hardware
Die gebündelten KI-Apps sind interessant und potenziell nützlich. Sie zeigen die Fähigkeiten der Hardware auf. Microsoft setzt auf seine Entwickler, um komplexere Anwendungen zu liefern, die die Hardware an ihre Grenzen bringen können. Dafür dient das Copilot Runtime, das die ONNX-Inferenz-Laufzeit unterstützt. Falls nicht in der ausgelieferten Windows-Version enthalten, bietet es auch eine Version der DirectML-Inferenz-API für Copilot+ PCs und deren Qualcomm NPU.
Die Unterstützung von DirectML vereinfacht den Bau und Betrieb von KI-Anwendungen. Microsoft hat bereits einige der notwendigen Tools zum Erstellen eigener KI-Anwendungen bereitgestellt. Dennoch fehlen viele Teile, was die KI-Entwicklung schwierig macht.
Wo fangen Sie an?
Ein guter Startpunkt ist das KI-Toolkit für Visual Studio Code. Es hilft Entwicklern, kleine Sprachmodelle auszuprobieren und anzupassen. Diese Modelle laufen auf PCs und Laptops mit CPU, GPU und NPU. Die neuesten Builds unterstützen Arm64, sodass das KI-Toolkit und Visual Studio Code auf den Entwicklungsgeräten installiert werden können. Die Installation erfolgt schnell mithilfe der integrierten Marketplace-Tools. Es wird empfohlen, sowohl die Python- als auch die C#-Tools zu installieren sowie Tools zum Verbinden mit GitHub oder anderen Quellcode-Repositories. Weitere nützliche Funktionen sind die Azure-Unterstützung und die erforderlichen Erweiterungen, um mit dem Windows-Subsystem für Linux (WSL) zu arbeiten.
Arbeiten mit dem KI-Toolkit für Visual Studio
Nach der Installation bewerten Entwickler das KI-Toolkit, um eine Bibliothek kleiner Sprachmodelle zu bewerten. Diese Modelle sind für den Einsatz auf PCs und Edge-Hardware gedacht. Derzeit stehen fünf Modelle zur Verfügung: vier verschiedene Versionen von Microsofts eigenem Phi-3 und eine Instanz von Mistral 7b. Diese Modelle werden lokal heruntergeladen. Der Modell-Spielplatz des KI-Toolkits kann genutzt werden, um mit Kontextanweisungen und Benutzereingaben zu experimentieren. Der Modell-Spielplatz verwendet jedoch die NPU nicht, daher bekommen Entwickler kein Gefühl dafür, wie das Modell auf der NPU ausgeführt wird. Dennoch ist es gut, mit der Entwicklung des Kontexts für die Anwendung zu experimentieren und zu sehen, wie das Modell auf Benutzereingaben reagiert. Eine Möglichkeit, eine vollständig ausgestattete Anwendung um das Modell herum zu erstellen, wäre hilfreich. Dies könnte durch die Implementierung von Prompt Flow oder eines ähnlichen KI-Orchestrierungstools geschehen, um das kleine Sprachmodell mit eigenen Daten zu verankern.
Feinabstimmung von Modellen
Entwickler können ein Modell auf einem Copilot+ PC nicht feinabstimmen. Diese PCs erfüllen die meisten Anforderungen. Sie unterstützen die richtigen Arm64-WSL-Builds von Ubuntu, aber die Qualcomm-Hardware enthält keine Nvidia-GPU. Die NPU ist nur für die Inferenz ausgelegt und bietet daher nicht die für die Feinabstimmung von Algorithmen erforderlichen Funktionen.
Dennoch können Arm-Geräte als Teil eines Feinabstimmungs-Workflows verwendet werden. Sie lassen sich mit einer cloudbasierten virtuellen Maschine nutzen, die über eine GPU verfügt. Sowohl Microsoft Dev Box als auch GitHub Codespaces bieten Optionen für virtuelle Maschinen mit GPU-Unterstützung, obwohl diese teuer sein können, wenn eine große Aufgabe ausgeführt wird. Alternativ kann ein PC mit einer Nvidia-GPU verwendet werden, wenn vertrauliche Daten verarbeitet werden.
Integration des Modells in eine Anwendung
Nachdem ein Modell zufriedenstellend ist, integrieren Entwickler es in eine Anwendung. Derzeit gibt es eine große Lücke im KI-Entwicklungsworkflow des Copilot+ PC. Entwickler können nicht direkt vom KI-Toolkit zum Code-Editing übergehen. Stattdessen müssen sie das versteckte Verzeichnis finden, das die lokale Kopie des getesteten Modells enthält. Alternativ lässt sich eine abgestimmte Version von einem Feinabstimmungsdienst herunterladen. Anschließend richten sie eine ONNX-Laufzeit ein, die die NPU des PCs unterstützt. Diese nutzen sie dann, um Code zu erstellen und zu testen.
Erstellen einer KI-Laufzeit für Qualcomm NPUs
Eine Arm-ONNX-Umgebung lässt sich aus Quellen erstellen, doch sind alle benötigten Teile bereits verfügbar. Entwickler müssen lediglich eine eigene Laufzeitumgebung zusammenstellen. Das KI-Toolkit enthält einen grundlegenden Webserver-Endpunkt für ein geladenes Modell. Entwickler können Tools wie Postman verwenden, um zu sehen, wie er mit REST-Eingaben und -Ausgaben funktioniert, als ob er in einer Webanwendung verwendet würde.
Es gibt eine Arm64-Build von Python 3 für Windows sowie eine vorkompilierte Version des ONNX-Ausführungsanbieters für Qualcomms QNN-NPUs. Dies ermöglicht es, Python-Code innerhalb von Visual Studio Code zu erstellen und zu testen, sobald das Modell mit der CPU-Inferenz im KI-Toolkit validiert wurde. Dies ist zwar nicht der ideale Ansatz, bietet jedoch einen Weg, einen Copilot+ PC als KI-Entwicklungsumgebung zu verwenden. Diese Umgebung könnte sogar mit der Python-Version des Semantic Kernel AI-Agenten-Orchestrierungsframeworks von Microsoft genutzt werden.
Auch C#-Entwickler profitieren von der Unterstützung. Es gibt ein .NET-Build des QNN-ONNX-Tools auf NuGet. Dadurch können lokale Modelle schnell in den Code integriert werden. Das KI-Toolkit und Python ermöglichen es, Modelle zu validieren, bevor sie in .NET-Anwendungen eingebettet werden.
Begrenzungen und Zukunftsperspektiven
Die Einschränkungen des QNN-ONNX-Tools erfordern, dass Entwickler sicherstellen, dass alle verwendeten Modelle quantisiert sind, um 8-Bit- oder 16-Bit-Integer zu nutzen. Die Dokumentation sollte überprüft werden, bevor ein Standardmodell verwendet wird, um zu sehen, ob Änderungen erforderlich sind, bevor es in Anwendungen eingesetzt wird.
Die Copilot+ PC-Plattform und die dazugehörige Copilot-Laufzeit wirken vielversprechend. Allerdings ist die Toolchain noch fragmentiert. Entwickler müssen derzeit aus der IDE heraustreten, um vom Modell zum Code zur Anwendung zu gelangen. Es ist jedoch absehbar, dass eine zukünftige Version des KI-Toolkits für Visual Studio Code die QNN-ONNX-Laufzeiten bündelt und sie über DirectML für die .NET-Anwendungsentwicklung verfügbar macht. Diese zukünftige Version muss eher früher als später erscheinen, da die Geräte bereits im Handel erhältlich sind.