La lokale künstliche Intelligenz Das ist längst nicht mehr nur großen Unternehmen mit riesigen Rechenzentren vorbehalten. Heute können Sie fortschrittliche KI-Modelle direkt auf Ihrem PC, Laptop oder sogar auf eingebetteten Systemen ausführen und dabei Ihre CPU, GPU oder NPU nutzen, ohne ständig auf die Cloud angewiesen zu sein und die Anforderungen zu erfüllen. Mindest- und empfohlene Anforderungen für optimale Leistung.
In diesem Artikel werden wir in Ruhe untersuchen, wie Mit ONNX Runtime können Sie KI-Modelle auf Ihrer eigenen Hardware ausführen.Ob Sie ONNX in .NET und VB.NET integrieren, es in Python, C++ oder C# verwenden oder die native Integration mit Windows ML nutzen – Sie erfahren, was das ONNX-Format ist, wie Modelle exportiert und optimiert werden, welche Rolle Ausführungsanbieter spielen und warum all dies entscheidend für schnelle, datenschutzkonforme und kostengünstige KI in Ihrem Arbeitsalltag ist. Wir zeigen Ihnen außerdem, wie… Nutzen Sie die Vorteile lokaler KI mit Ryzen. auf kompatiblen Geräten.
Was ist ONNX und welches Problem löst es?
ONNX, Akronym für Öffnen Sie den Austausch neuronaler NetzeEs handelt sich um einen offenen Standard zur Darstellung von Modellen des maschinellen Lernens und des Deep Learning. Sein Ziel ist es, Ihnen Folgendes zu ermöglichen: ein Modell in einem Framework trainieren wie PyTorch, TensorFlow, Keras, TFLite oder scikit-learn, und dann in einer anderen Umgebung ausführen, ohne sich mit spezifischen Konvertierungen herumschlagen zu müssen.
Dieses Format definiert ein Graphbasierte Serialisierung Es beschreibt die Architektur des Modells (Schichten, Verbindungen, Operationen, Datentypen usw.) und eine Reihe von Standardoperatoren (Faltungen, Aktivierungen, Normalisierungen usw.). Da es auf Graphen und nicht auf geschlossenen Binärformaten wie Pickle oder Joblib basiert, erleichtert die Interoperabilität zwischen Sprachen und Frameworks, was insbesondere in der Computer Vision und bei Anwendungen mit geringer Latenz von Vorteil ist.
Für KI-Teams ist ONNX zu einer Schlüsselkomponente geworden, weil Es verringert die Abhängigkeit von einem einzigen Lieferanten.Sie trainieren, wo immer Sie wollen, konvertieren zu ONNX und wählen dann die Inferenz-Engine, die am besten zu Ihnen passt (ONNX Runtime, TensorRT, OpenVINO usw.), auf der Hardware, die Ihnen zur Verfügung steht, sei es ein Cloud-Server, ein Desktop-PC, ein FPGA oder ein Edge-Gerät.
Der Standard wird von wichtigen Branchenakteuren wie beispielsweise unterstützt. Microsoft, NVIDIA, Intel und andere HerstellerDadurch ist ein sehr breites Ökosystem an Werkzeugen entstanden: offizielle Konverter, Bibliotheken für Konvertierung und Optimierung, Modellvisualisierung mit Netron und der bekannte ONNX Model Zoo mit vortrainierten Modellen, um sofort loslegen zu können, ohne von Grund auf trainieren zu müssen.

Wie fügt sich ONNX Runtime in Windows ML und das Windows-Ökosystem ein?
Unter Windows ist ONNX Runtime eng integriert durch Windows Machine Learning (Windows ML)Diese Schicht fungiert als Middleware, die die Hardware-Ressourcen Ihres PCs (CPU, GPU und NPU) gruppiert und verwaltet, um ONNX-Modelle mit der bestmöglichen Leistung auszuführen, ohne dass Sie sich um die Details der einzelnen Chips kümmern müssen.
Windows ML bietet eine gemeinsam genutzte Kopie der ONNX-Laufzeitumgebung Auf Systemebene ermöglicht dies Anwendungen, diese gemeinsame Umgebung zu nutzen, anstatt ihre eigene Version der ONNX-Laufzeitumgebung im Installationsprogramm zu bündeln. Dadurch wird die Anwendungsgröße reduziert, Aktualisierungen werden vereinfacht und sichergestellt, dass die jeweils optimale Version für das System verwendet wird.
Darüber hinaus ist das Betriebssystem in der Lage, spezifische Ausführungsanbieter dynamisch herunterladen für die verfügbare Hardware. Das heißt, es erkennt, ob Ihr Computer über eine NVIDIA-GPU, eine Qualcomm-NPU oder eine integrierte Intel- oder AMD-GPU verfügt und lädt das entsprechende EP herunter, das dann automatisch auf dem neuesten Stand gehalten wird, ohne dass sich der Entwickler darum kümmern muss.
Für C#-, C++- oder Python-Programmierer bietet Windows ML eine API, die die Konzepte und Muster der ONNX-Laufzeitumgebung wiederverwendet, sodass Bestehende ONNX Runtime-basierte Workloads lassen sich mit wenigen Änderungen in die Windows ML-Umgebung migrieren.Und wenn Sie mit dem Windows App SDK (Version 1.8.1 oder höher unter Windows 11 24H2 oder höher) arbeiten, ist diese Integration bereits einsatzbereit; dies ist besonders nützlich auf modernen Geräten wie z. B. Windows-Laptops mit Snapdragon X2 Elite.
ONNX-Modelle: Struktur, Typen und praktische Beispiele
Ein ONNX-Formatmodell ist im Wesentlichen ein mathematische Darstellung des gelernten Systems nach dem Training. Diese Repräsentation enthält alles Notwendige, um in einer anderen Umgebung Inferenz durchzuführen, ohne dass der ursprüngliche Code des Frameworks, in dem es trainiert wurde, erhalten bleiben muss.
In einer ONNX-Datei finden Sie die Modellarchitektur (die Schichten, die Rechenknoten, die Verbindungen zwischen ihnen und die Art der Operationen), die trainierte Gewichte (die Parameter, die das Modell während des Trainings angepasst hat) und die formale Definition von Eingänge und Ausgänge, mit ihren Dimensionen, Datentypen und Namen.
Ein in PyTorch trainiertes Bildklassifizierungsmodell kann beispielsweise nach ONNX exportiert werden, um einen Tensor mit einem normalisierten Bild als Eingabe zu akzeptieren und einen Vektor mit den Wahrscheinlichkeiten für die Zugehörigkeit zu jeder Klasse als Ausgabe zurückzugeben. Dieselbe Datei kann dann mit der ONNX-Runtime auf einem Windows-Server mit GPU oder auf einem IoT-Gerät ausgeführt werden, ohne dass das Modell geändert werden muss. Darüber hinaus gibt es Anleitungen für fortgeschrittene Bildverarbeitung. Objekte in Bildern erkennen mit KI.
Das ONNX-Ökosystem umfasst die ONNX Model ZooEin Repository mit sofort einsatzbereiten, vortrainierten Modellen: Bildklassifizierungsnetzwerke (ResNet, MobileNet und ähnliche, mit einer Größe von ca. 5–10 MB), Sprachmodelle wie GPT-2 (~500 MB) oder sehr ressourcenintensive Architekturen für Objekterkennung und -segmentierung (1–2 GB oder mehr). So können Sie hochwertige Modelle testen, ohne sie von Grund auf trainieren zu müssen.
Vorteile der Ausführung von KI auf eigener Hardware
Einer der Gründe, warum ONNX und ONNX Runtime so viel Anklang gefunden haben, ist folgender: Sie erleichtern die lokale Ausführung von KI.Das heißt, auf dem eigenen Gerät des Nutzers oder auf der firmeneigenen Infrastruktur, wodurch die Abhängigkeit von Cloud-Diensten verringert wird.
Der erste Vorteil ist der DatenprivatsphäreDurch die Vermeidung der Übermittlung von Informationen an Server Dritter wird das Risiko von Datenlecks oder Missbrauch minimiert. Dies ist besonders wichtig in Branchen, die sensible Daten verarbeiten (Gesundheitswesen, Finanzwesen, öffentliche Verwaltung oder Rechtsabteilungen von Unternehmen) und deren Daten nicht außerhalb des internen Netzwerks gelangen sollen.
Es reduziert auch erheblich wiederkehrende KostenDas liegt daran, dass Sie nicht ständig für Cloud-Computing-Instanzen bezahlen müssen, um Inferenzmodelle auszuführen. Sie investieren in Ihre eigene Hardware (oder nutzen Ihre vorhandene) und vermeiden so unerwartete Kosten am Monatsende, wenn die API-Nutzung sprunghaft ansteigt.
Ein weiterer ganz klarer Vorteil ist die geringe WartezeitDurch die Ausführung des Modells auf dem Gerät selbst wird die Netzwerklaufzeit eliminiert, was sich insbesondere bei Echtzeitanwendungen bemerkbar macht (industrielle Bildverarbeitung, interaktive Assistenten, Live-Videoverarbeitung oder Videospiele mit integrierter KI).
Schließlich bietet Ihnen das lokale Ausführen von Modellen volle Kontrolle über die BereitstellungSie können die Pipeline anpassen, Quantisierung oder Pruning anwenden, den Zugriff auf bestimmte Ressourcen beschränken, entscheiden, wann das Modell aktualisiert werden soll, und die Inferenz an die internen Vorschriften Ihres Unternehmens oder an geltende Vorschriften anpassen.
Grundvoraussetzungen für den Einstieg in ONNX Runtime in .NET und anderen Umgebungen
Wenn Sie mit der Nutzung beginnen möchten ONNX Runtime mit .NET und VB.NET Die Systemvoraussetzungen für Ihren Computer sind recht überschaubar. Sie benötigen ein unterstütztes Betriebssystem (Windows, macOS oder eine gängige Linux-Distribution) und je nach Projekt entweder .NET Framework oder .NET Core.
Im speziellen Fall von Visual Studio öffnen Sie einfach Ihre Projektmappe und Fügen Sie das NuGet-Paket Microsoft.ML.OnnxRuntime hinzu.Dieses Paket enthält die Bibliotheken, die zum Laden eines ONNX-Modells, zum Erstellen von Inferenzsitzungen und zum Aufrufen der Engine mit den entsprechenden Eingabedaten benötigt werden.
Zusätzlich zur Laufzeitumgebung benötigen Sie mindestens ein Modell im ONNX-FormatSie können das Modell selbst mit PyTorch oder TensorFlow trainieren und die Ergebnisse exportieren oder eines aus dem ONNX Model Zoo zum Testen herunterladen. Anschließend konzentrieren Sie sich auf die Vorverarbeitung der Eingabedaten und die Interpretation der Modellausgaben. Hilfe bei der Hardwareauswahl finden Sie in unserem [Link einfügen]. Leitfaden zur Auswahl guter.
Auf Rechnern mit weniger leistungsstarker Hardware ist ONNX Runtime so konzipiert, dass es Auch ohne leistungsstarke GPU effizient.Wenn Sie jedoch große, komplexe Sprach-, generative oder Bildverarbeitungsmodelle verarbeiten möchten, macht sich der Einsatz einer modernen GPU oder, noch besser, einer dedizierten NPU bei den Reaktionszeiten bemerkbar.
Schritt-für-Schritt-Anleitung zur Verwendung der ONNX-Laufzeitumgebung: Sitzungen, Inferenz und Kompilierung
Der typische Workflow mit ONNX Runtime besteht aus Laden Sie ein Modell, erstellen Sie eine Inferenzsitzung und führen Sie Vorhersagen aus.Obwohl der konkrete Code je nach Programmiersprache variiert, ist die zugrundeliegende Philosophie in allen Sprachen sehr ähnlich.
Zuerst geben Sie den Pfad zur .onnx-Datei an und Sie erstellen eine Inferenzsitzung mit den gewünschten Optionen (z. B. Konfiguration der zulässigen Ausführungsanbieter oder Anpassung von Optimierungsparametern). In .NET erfolgt dies über die von Microsoft.ML.OnnxRuntime bereitgestellten Klassen; in Python verwenden Sie die onnxruntime-API direkt.
Als Nächstes konstruieren Sie die Menge von Eingaben für das ModellTypischerweise werden ein oder mehrere Tensoren mit der vom Modell erwarteten Form und dem erwarteten Datentyp (vorverarbeitete Bilder, tokenisierter Text, numerische Vektoren usw.) übergeben. Diese Eingaben werden in einer Wörterbuch- oder Map-Struktur zusammengefasst, die den Eingabenamen mit seinem Wert verknüpft.
Sobald die Eingabe vorbereitet ist, rufen Sie die Methode auf. SitzungsausführungDie Modellausgaben werden ebenfalls als Tensoren zurückgegeben. Anschließend müssen diese Ergebnisse nur noch nachbearbeitet werden, um sie in ein verständliches Format (Bezeichnungen, Punktzahlen, generierter Text, Begrenzungsrahmen usw.) umzuwandeln und in der Anwendung zu verwenden.
Seit Version 1.22 der ONNX Runtime gibt es einen fortgeschritteneren Ansatz: Modelle in eine optimierte Darstellung kompilieren vor der Produktionsfreigabe. Neue APIs, wie beispielsweise jene des OrtCompileApi-Frameworks, kapseln die Kompilierungsschritte besser, sodass die Laufzeitumgebung hardwarespezifische Artefakte generiert und die Leistung weiter verbessert.
Windows ML, Hardwareausführung und automatische Verwaltungsanbieter
Im Windows-Ökosystem dient Windows ML als intelligente Orchestrierungsschicht über ONNX Runtime. Es verwendet nicht nur seine Inferenz-Engine wieder, sondern verwaltet auch automatisch, welcher Ausführungsanbieter für jede Maschine und jedes Modell am besten geeignet ist.
Un Ausführungsanbieter (EP) Im Grunde handelt es sich um eine Komponente, die weiß, wie bestimmte KI-Operationen für ein bestimmtes Backend (CPU, GPU, NPU oder spezialisierte Beschleuniger) optimiert werden können, indem sie die notwendigen Kernel registriert und an der Partitionierung des Operationsgraphen teilnimmt, sodass jeder Teil auf dem effizientesten Gerät ausgeführt wird.
Windows ML bietet mehrere bemerkenswerte Vorteile: Automatischer Download und Verwaltung von EPs hardwarespezifische Funktionen, Verwendung einer gemeinsamen ONNX-Laufzeitumgebung auf Systemebene (wodurch die Anwendungsgröße drastisch reduziert wird) und Kompatibilität mit einer Vielzahl von Konfigurationen (x64-Desktop-PCs, ARM64-Systeme, Windows-Server usw.).
Der automatisierte Bereitstellungsprozess umfasst typischerweise folgende Schritte: Während der Installation einer auf dem Windows App SDK basierenden App wird Windows ML initialisiert; die Laufzeitumgebung erkennt die verfügbare Hardware; die optimalen Erweiterungspakete (EPs) werden heruntergeladen (z. B. TensorRT für eine RTX-GPU, ein spezifisches EP für die Snapdragon X NPU oder der OpenVINO-Stack für Intel); und von dort aus Die Anwendung kann sofort mit der Ausführung von KI-Modellen beginnen..
Dank dieser Architektur müssen Entwickler weder spezifische Treiber oder Bibliotheken für jeden Hersteller bereitstellen noch separate Anwendungsversionen für jede Hardware pflegen. Windows ML übernimmt das. Abstraktion der Backend-Details und sicherzustellen, dass die Inferenz mit der bestmöglichen Leistung durchgeführt wird.
Modellkonvertierung zu ONNX und typischer Entwicklungsablauf
Um von ONNX Runtime zu profitieren, ist der erste Schritt folgender: Konvertieren Sie Ihre Modelle in das ONNX-Format.Der gängigste Workflow in Computer Vision- und allgemeinen ML-Projekten kombiniert diese Phasen: Training, Export, Optimierung und Bereitstellung.
Man trainiert das Modell typischerweise im bevorzugten Framework (zum Beispiel ein Bildklassifizierungsnetzwerk in PyTorch oder ein Objekterkennungsnetzwerk in TensorFlow) und sobald man die gewünschte Leistung erreicht hat, Exportiere es nach ONNXIn PyTorch wird die Funktion torch.onnx.export verwendet, während in TensorFlow üblicherweise das Tool tf2onnx oder andere, in High-Level-Bibliotheken integrierte Tools zum Einsatz kommen.
Bei diesem Export empfiehlt es sich, eine Einstellung vorzunehmen. kompatible Opset-Version (z. B. Version 15, die weit verbreitet ist), um Probleme mit älteren Inferenz-Engines zu vermeiden. Nach der Generierung der ONNX-Datei können Sie diese mit Tools wie Netron untersuchen, um sicherzustellen, dass der Graph wie erwartet aussieht und keine exotischen, nicht standardkonformen Operatoren enthält.
Vor der Produktionsfreigabe wenden viele Teams eine Phase der Modelloptimierung: Quantisierung zur Reduzierung der Größe und Verbesserung der Geschwindigkeit, Gewichts- und Filterbeschneidung, Parametergruppierung oder sogar Wissensdestillation, also die Übertragung von Informationen von einem großen Modell in ein kleineres, das auf Geräten mit begrenzten Ressourcen besser handhabbar ist.
Sobald das Modell in ONNX vorhanden und optimiert ist, wird es in die ONNX Runtime oder in Plattformen wie Windows ML, TensorRT oder OpenVINO integriert und in der Zielumgebung bereitgestellt: Cloud-Server, Industrie-PCs, Edge-Geräte oder mobile und Desktop-Anwendungen.
Hardwarebeschleunigung und Inferenzleistung mit ONNX Runtime
El Inferenzleistung Dies ist einer der Hauptgründe für die Wahl der ONNX-Laufzeitumgebung. In vielen praktischen Vergleichen wurden deutliche Verbesserungen beim Ausführen von Modellen beobachtet, die von PyTorch oder TensorFlow konvertiert wurden. Reaktionszeiten und Ressourcenverbrauch.
Bei Anwendungsfällen mit einer Batchgröße von 1 (sehr typisch bei interaktiven Schnittstellen oder Echtzeit-Bildverarbeitung) bietet ONNX Runtime üblicherweise Folgendes an: anfängliche Inferenzgeschwindigkeiten 20 % höher Im Vergleich zu PyTorch wurden bei längeren Ausführungen Beschleunigungen um das bis zu Fünffache erzielt, bei gleichzeitig deutlicher Reduzierung der CPU-Auslastung ohne Erhöhung der Latenz.
Diese Verbesserungen sind auf Optimierungen wie die folgenden zurückzuführen: Kernelfusion, Graphvereinfachung und QuantisierungDadurch können weniger effektive Operationen durchgeführt werden, um dasselbe Ergebnis zu erzielen. Gleichzeitig maximiert die Möglichkeit, den Graphen zu segmentieren und bestimmte Teile GPUs oder NPUs zuzuweisen, die Hardwareauslastung.
ONNX Runtime unterstützt eine Vielzahl von Beschleunigern: NVIDIA CUDA und TensorRT für dedizierte GPUs, Intel OpenVINO und oneDNN für CPUs und VPUs, AMD ROCm, Qualcomm QNN, Apple CoreML und Android NNAPI für mobile Geräte sowie DirectML in Windows-Umgebungen. breite Kompatibilität mit EPs Dadurch kann dasselbe ONNX-Modell auf vielen verschiedenen Plattformen effizient ausgeführt werden.
All dies macht ONNX Runtime zur idealen Wahl für Anwendungen von maschinelles Sehen, eingebettete Systeme und Edge-Geräte die Echtzeitreaktionen und einen sehr geringen Verbrauch von RAM und CPU erfordern.
In diesem Kontext haben sich ONNX und ONNX Runtime als solide Brücke zwischen dem Training in gängigen Frameworks und der optimierten Ausführung auf jeder Art von Hardware etabliert und bieten die richtige Mischung aus Leistung, Flexibilität und Datenschutz, um Modelle der künstlichen Intelligenz ohne unnötige Komplikationen auf Ihre eigene Hardware zu bringen.

