DE102022125334A1 - Skalierungssystem für ein mascihnenlernmodell mit energieeffizientem netzwerkdatentransfer für leistungsbewusste hardware - Google Patents

Skalierungssystem für ein mascihnenlernmodell mit energieeffizientem netzwerkdatentransfer für leistungsbewusste hardware Download PDF

Info

Publication number
DE102022125334A1
DE102022125334A1 DE102022125334.1A DE102022125334A DE102022125334A1 DE 102022125334 A1 DE102022125334 A1 DE 102022125334A1 DE 102022125334 A DE102022125334 A DE 102022125334A DE 102022125334 A1 DE102022125334 A1 DE 102022125334A1
Authority
DE
Germany
Prior art keywords
model
platform
models
mlms
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102022125334.1A
Other languages
English (en)
Inventor
Daniel J. Cummings
Juan Pablo Munoz
Souvik Kundu
Sharath Nittur Sridhar
Maciej Szankin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102022125334A1 publication Critical patent/DE102022125334A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/285Selection of pattern recognition techniques, e.g. of classifiers in a multi-classifier system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/776Validation; Performance evaluation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Databases & Information Systems (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Die vorliegende Offenbarung betrifft ein Maschinenlemmodellaustausch- bzw. MLMS-Framework, das Maschinenlern- bzw. ML-Modelle auf eine energie- und kommunikationseffiziente Weise auswählt und ändert, während die ML-Modelle an Echtzeitänderungen in Systembeschränkungen angepasst werden. Das MLMS-Framework umfasst eine ML-Modell-Suchstrategie, die ML-Modelle für eine breite Vielfalt von Rechensystem- und/oder Umgebungsänderungen flexibel anpassen kann. Energie- und Kommunikationseffizienz werden durch Verwenden eines ähnlichkeitsbasierten ML-Modellauswahlprozesses erreicht, der ein Ersatz-ML-Modell auswählt, das die größte Überschneidung bei vortrainierten Parametern aus einem gegenwärtig eingesetzten ML-Modell aufweist, um den Aufwand für Speicherschreiboperationen zu minimieren. Andere Ausführungsformen können beschrieben und/oder beansprucht werden.

Description

  • TECHNISCHES GEBIET
  • Hierin beschriebene Ausführungsformen betreffen allgemein Technologien mit künstlicher Intelligenz (KI), maschinellem Lernen (ML) und neuronale Architektursuche (NAS) und insbesondere Techniken zur hardwarebewussten KI/ML-Modellsuche.
  • HINTERGRUND
  • Maschinelles Lernen (ML) ist die Studie von Computeralgorithmen, die sich automatisch durch Erfahrung und durch die Verwendung von Daten verbessern. Das Durchführen von maschinellem Lernen beinhaltet das Erstellen eines statistischen Modells (oder einfach eines „Modells“), das dazu ausgelegt ist, Daten zu verarbeiten, um Vorhersagen und/oder Inferenzen zu treffen. ML-Algorithmen bauen Modelle unter Verwendung von Probendaten (als „Trainingsdaten“ bezeichnet) und/oder basierend auf vergangener Erfahrung auf, um Vorhersagen oder Entscheidungen zu treffen, ohne explizit dafür programmiert zu sein. Die Effizienz eines ML-Modells basiert hinsichtlich Ressourcenverbrauch, Geschwindigkeit, Genauigkeit und anderen Leistungsfähigkeitsmetriken teilweise auf der Anzahl und Art von Modellparametern und/oder Hyperparametern, die für das ML-Modell verwendet werden. Änderungen an Modellparametern und/oder Hyperparametern können die Leistungsfähigkeit eines gegebenen ML-Modells stark beeinflussen. Insbesondere kann das Reduzieren der Anzahl von Parametern die Genauigkeit eines Modells verringern, kann aber dem Modell ermöglichen, schneller zu laufen und weniger Speicher zu verwenden, als dies mit einer größeren Anzahl von Parametern der Fall wäre.
  • Ein ML-Modell-Design ist ein langwieriger Prozess, der einen stark iterativen Zyklus des Trainings und der Validierung beinhaltet, um die Struktur, Parameter und/oder Hyperparameter eines gegebenen ML-Modells abzustimmen. Das Training und die Validierung können besonders zeitaufwendig und ressourcenintensiv für größere ML-Architekturen sein, wie etwa tiefe neuronale Netzwerke (DNNs) und dergleichen. Herkömmliche ML-Designtechniken können auch relativ große Mengen an Rechenressourcen über die Reichweite vieler Benutzer hinaus erfordern. Darüber hinaus sind diese ML-Modelle (z. B. DNNs) in vielen Fällen nicht besonders für Inferenz über verschiedene Hardwareplattformen (z. B. verschiedene zentrale Verarbeitungseinheiten (CPUs), Grafikverarbeitungseinheiten (GPUs), mobile Vorrichtungen, System-on-a-Chip- bzw. SoC-Vorrichtungen, Internet-der-Dinge- bzw. IoT-Vorrichtungen usw.) optimiert.
  • Anstatt ein ML-Modell manuell zu entwerfen, können NAS-Algorithmen (NAS: Neural Architecture Search) verwendet werden, um automatisch ein ideales ML-Modell für eine bestimmte Aufgabe zu entdecken (siehe z. B. Abdelfattah et al., „Zero-Cost Proxies for Lightweight NAS“. ArXiv abs/2101.08134 (20 Jan. 2021) („[Abdelfattah]“)). NAS ist ein Prozess zum Automatisieren von Architekturentwicklung. NAS kann jedoch auch zeitaufwändig und rechenintensiv sein. Typischerweise kann das Verwenden von NAS viele Stunden oder Tage dauern, um ein einzelnes neuronales Netzwerk vollständig zu trainieren (siehe [Abdelfattah]). Herkömmliche NAS-Techniken sind zeitaufwändig und rechenressourcenhungrig.
  • Figurenliste
  • In den Zeichnungen, die nicht notwendigerweise maßstabsgetreu gezeichnet sind, können ähnliche Bezugszeichen ähnliche Komponenten in unterschiedlichen Ansichten beschreiben. Gleiche Ziffern mit unterschiedlichen Buchstabensuffixen können unterschiedliche Instanzen ähnlicher Komponenten repräsentieren. Einige Ausführungsformen sind in den Figuren der zugehörigen Zeichnungen beispielhaft und nicht einschränkend veranschaulicht. Es zeigen:
    • 1 stellt einen Überblick über ein Maschinenlernmodell-Austausch- bzw. MLMS-Systems (Machine Learning Model Swap) gemäß verschiedenen Ausführungsformen dar. 2 stellt ein Beispiel für eine Teilnetzcodierung gemäß verschiedenen Ausführungsformen dar. 3 stellt beispielhafte MLMS gemäß verschiedenen Ausführungsformen dar.
    • 4 stellt ein beispielhaftes neuronales Netzwerk (NN) dar. 5a veranschaulicht eine beispielhafte Beschleunigerarchitektur. 5b veranschaulicht beispielhafte Komponenten eines Datenverarbeitungssystems. 6 stellen beispielhafte Prozeduren dar, die verwendet werden können, um die verschiedenen hier erörterten Ausführungsformen umzusetzen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die vorliegende Offenbarung betrifft Techniken zum Optimieren von Modellen künstlicher Intelligenz (KI) und/oder maschinellem Lernen (ML), um den Ressourcenverbrauch zu reduzieren, während die KI/ML-Modellleistungsfähigkeit verbessert wird. Insbesondere stellt die vorliegende Offenbarung ein ML-Architektursuchframework (MLAS) bereit, das generalisierte und/oder Hardware- bzw. HW-bewusste ML-Architekturen einschließt.
  • KI/ML-Forscher treiben den Stand der Technik immer weiter voran, indem sie neue ML-Modelle und -Algorithmen (z. B. einschließlich DNNs) für unterschiedliche Anwendungsdomänen (z. B. Computer Vision, Sprachübersetzung usw.) erzeugen. In vielen Fällen werden die ML-Modelle auf der HW-Plattform erstellt und evaluiert, die dem Forscher zu der Zeit zur Verfügung steht (z. B. ein Desktop-Computer mit einer verbraucherbasierten Standardplattform und/oder einer Grafikverarbeitungseinheit (GPU)). Des Weiteren können Forscher möglicherweise nur einen schmalen Satz von Leistungsfähigkeitsmetriken (z. B. Genauigkeit) bei der Evaluierung des ML-Modells berücksichtigen. Daher wird das ML-Modell inhärent für die HW-Plattform optimiert, die dem Forscher zum Zeitpunkt der Forschung und der speziellen erforschten Metriken zur Verfügung steht. Benutzer, die versuchen, das gleiche Problem zu lösen, für das das ML-Modell entworfen wurde, haben möglicherweise nur Zugriff auf andere HW-Plattformen als die, die von KI/ML-Forschern verwendet werden, oder können eine bestimmte HW-Plattform zum Einsatz eines bestimmten ML-Modells im Auge haben. Des Weiteren können einige Benutzer an unterschiedlichen und/oder mehreren Leistungsfähigkeitsmetriken (z. B. Genauigkeit, Latenz, Leistungsverbrauch usw.) interessiert sein. Die Leistungsfähigkeit des durch den Forscher bereitgestellten ML-Modells ist dann für diese Benutzer suboptimal.
  • Das Optimieren eines ML-Modells für einzelne HW-Plattformen und spezifische Leistungsfähigkeitsmetriken ist jedoch ein sehr zeitaufwändiger Aufwand, der hochspezialisiertes Wissen erfordert. Diese Art von Optimierung erfolgt typischerweise manuell mit einem großen Umfang an tiefem Verständnis der HW-Plattform, da gewisse Charakteristiken der HW-Plattform (z. B. Taktgeschwindigkeit, Anzahl von Prozessorkernen, Menge an Cachespeicher usw.) den Optimierungsprozess beeinflussen werden. Der Optimierungsprozess wird auch durch die Charakteristiken der Eingabedaten in das ML-Modell (z. B. Batch-Größe, Bildgröße, Anzahl von Epochen/Iterationen usw.) beeinflusst. Schließlich würde jegliche Änderung an den Leistungsfähigkeitsmetriken (z. B. von Latenz zu Leistungsverbrauch übergehend), den Eingabedatencharakteristiken (z. B. Erhöhen der Batch-Größe), den HW-Charakteristiken (z. B. Erhöhen der Anzahl von Prozessorkernen) oder der HW-Plattform (z. B. von einer GPU zu CPU übergehend) einen erneuten Start dieses aufwändigen Optimierungsprozesses erfordern.
  • Darüber hinaus werden KI/ML-Anwendungen in einer großen Vielfalt von Hardwareplattformen verwendet, die verschiedene Marktsegmente, wie etwa Cloud-, Edge- und Client-Vorrichtungen, überspannen. Da Datenverarbeitungssysteme und Netzwerktechnologien sich immer weiter verbreiten, können unterschiedliche Datenverarbeitungssysteme/-vorrichtungen in einer Vielzahl von Umgebungen eingesetzt werden, die diese Systeme/Vorrichtungen unterschiedlichen Umgebungsbedingungen aussetzen. In einem ersten Beispiel können, wenn Teile von Servern von der Cloud (z. B. Datenzentren) zu Edge-Computing-Umgebungen migriert werden, diese Server Umgebungsbedingungen erfahren, die sich von jenen unterscheiden, die typischerweise innerhalb eines Datenzentrums auftreten. In einem anderen Beispiel müssen IoT-Vorrichtungen, wie etwa autonome Sensoren, möglicherweise in einer Vielzahl von Umgebungen von innerhalb von Fabriken oder Herstellungsanlagen, innerhalb anderer Vorrichtungen, in städtischen Umgebungen und Gebieten eingesetzt werden.
  • Obwohl es einen starken Industrie- und Forschungsfokus auf ML-Modelloptimierung für unterschiedliche HW-Plattformen gibt, liegt wenig Fokus darauf, wie ML-Modelle (z. B. DNNs) innerhalb einer speziellen HW-Plattform auf effiziente Weise ausgewählt und bereitgestellt (oder ausgetauscht) werden sollten. Die vorliegende Offenbarung stellt ein ML-Modell-Skalierungs- bzw. MLMS-System bereit, das ML-Modelle auf eine energie- und kommunikationseffiziente Weise auswählt und bereitstellt, während gleichzeitig Echtzeitänderungen von System-/HW-Beschränkungen berücksichtigt werden. Des Weiteren ist das hier erörterte MLMS-System beim Anpassen an eine breite Vielfalt von HW-Plattformkombinationen sehr robust.
  • Derzeit gibt es keine Lösungen, die das Auswählen und Austauschen von ML-Modellen auf eine energie- und kommunikationseffiziente (Datentransfer) Weise direkt adressieren. Indirekt definieren, für eine Modellanpassung, bestehende Lösungen, die sich auf das Anpassen von ML-Modellen in Bezug auf sich ändernde HW-Leistungsbeschränkungen fokussieren, spezifische und separate Modelle für jeden möglichen Hardwareleistungsmodus, zum Beispiel durch Definieren eines kleineren DNN-Modells mit weniger Parametern für eine HW-Plattform, die in einem Niederleistungsmodus arbeitet, und eines separaten größeren Modells für die HW-Plattform, die in dem Hochleistungsmodus arbeitet (siehe z. B. Howard et al., „Searching for MobileNetV3“, Proceedings of the IEEE/Computer Vision Foundation (CVF) Int'1 Conference on Computer Vision (ICCV 2019), S. 1314-1324 (Okt. 2019) („[Howard]“), dessen Inhalt hiermit durch Bezugnahme in seiner Gesamtheit aufgenommen wird). Wenn jedoch relativ kleine Änderungen der HW-Konfigurationen berücksichtigt werden, kann es etwa 1019 unterschiedliche Lösungen geben, die zum Trainieren dieser separaten ML-Modelle durchsucht werden müssen. Des Weiteren korreliert die ML-Modell-Parameterzählung mit Multiplizier-und-Akkumulations- bzw. MAC-Operationen und somit dem Leistungsverbrauch. Daher würde bei den existierenden Lösungen jeder Hardwareleistungsmodus erfordern, dass eine manuelle Suche oder ein NAS durchgeführt wird. Diese existierenden Lösungen vernachlässigen den Energie-/Kommunikationsaufwand des Einsetzens oder Ersetzens eines ML-Modells (z. B. DNN-Modelle oder dergleichen). Keine gegenwärtig existierenden Lösungen passen an, wie ML-Modelle basierend auf sich ändernden Systembeschränkungen eingesetzt und/oder ersetzt werden.
  • Die vorliegende Offenbarung stellt ein MLMS-System bereit, das ML-Modelle (z. B. Teilnetze) auf eine energie- und kommunikationseffiziente Weise auswählt und ändert, während die ML-Modelle (z. B. Teilnetze) an Änderungen in Echtzeit (oder nahezu Echtzeit) in System- (HW-Plattform-) Beschränkungen angepasst werden. Das hier erörterte MLMS-System ist agnostisch gegenüber einem bestimmten Ansatz, der für die ML-Modell-Suche (z. B. NAS) und für die ML-Modell-Gewichtsteilung (z. B. Supernetz) verwendet wird. Das MLMS-System implementiert eine einzigartige und robuste ML-Modellsuch- und -austauschstrategie, die ML-Modelle für eine breite Vielfalt detektierter operativer Rechensystemsänderungen und/oder Umgebungsänderungen flexibel anpassen kann. Energie- und Kommunikationseffizienz werden durch Verwenden eines ähnlichkeitsbasierten ML-Modellauswahlprozesses erreicht, wobei das MLMS-System ein Ersatz-ML-Modell, das die größte Überschneidung in vortrainierten Parametern aufweist, aus einem gegenwärtig eingesetzten ML-Modell (z. B. einem vortrainierten Supernetz) auswählt, um den Auf wand für Speicherschreiboperationen zu minimieren.
  • Das hier erörterte MLMS-System ermöglicht, dass Vorhersage-/Inferenzaufgaben auf einer HW-Plattform unter dynamisch variierenden Umgebungsbedingungen (z. B. Temperatur, Batterieladung) und HW-Konfigurationen (z. B. genutzte Kerne, Leistungsmodi usw.) durchgeführt werden, während das gleiche oder ein ähnliches Leistungsniveau von Vorhersage-/Inferenzergebnissen (z. B. Genauigkeit, Latenz usw.) beibehalten wird, als würde die HW-Plattform in einer stabileren Umgebung und/oder mit statischen HW-Konfigurationen betrieben. Des Weiteren stellt das hier erörterte MLMS-System eine relativ niedrige dynamische Leistungssignatur (z. B. während des ML-Modellaustauschens) und eine relativ schnelle Speicherschreibzeit und/oder Modellladezeit während Modellaustauschoperationen bereit.
  • Das MLMS-System passt ML-Modelle holistisch an einen breiten Bereich von KI/ML-Anwendungen (z. B. Bilderkennung, Segmentierung, Empfehlung, Sprachübersetzung usw.) und Hardwareszenarien für verschiedene Leistungskennzahlen (KPIs: Key Performance Indicators) wie Leistung, Durchsatz, Leistungsfähigkeit und dergleichen an. Die Einbeziehung des energieeffizienten ML-Modellaustauschens reduziert die Datentransferkosten einer KI/ML-Anwendung (hinsichtlich des Ressourcenverbrauchs) und stellt einen einzigartigen Vorteil für die Leistung und Leistungsfähigkeit für ressourcenbeschränkte HW-Plattformen, wie etwa zum Beispiel Edge-Computing-Knoten, IoT-Vorrichtungen, SoCs und/oder dergleichen bereit. Des Weiteren werden durch die Straffung elastischer Supernetzansätze mit dem hier erörterten MLMS-System robuste und hochadaptive ML-Modellaustauschfähigkeiten umgesetzt, die eine optimale Modellauswahl für einen weiten Bereich von Systembeschränkungen und Konfigurationen in Echtzeit (oder nahezu Echtzeit) garantieren.
  • 1. MASCHINENLERN-BZW. ML-MODELLAUSTAUSCH-FRAMEWORK
  • 1.1. SYSTEMÜBERSICHT
  • 1 zeigt die Hauptkomponenten und Interaktionen eines ML-Modellskalierungs- bzw. MLMS-Systems 100. Das MLMS-System 100 stellt ein holistisches System bereit, das ML-Modelle auf eine energie- und kommunikationseffiziente Weise auswählt und ändert und gleichzeitig die Modelle an Echtzeitänderungen bei Systembeschränkungen, Bedingungen und/oder Konfigurationen anpasst. Das MLMS-System 100 ist agnostisch gegenüber dem bestimmten ML-Modell, das betrieben/bereitgestellt wird. Das MLMS-System 100 erreicht Energie- und Kommunikationseffizienz durch Verwenden eines ähnlichkeitsbasierten Teilnetzauswahlprozesses, bei dem ein Teilnetz aus einem Pool von Teilnetzwerken ausgewählt wird, das die größte Überschneidung in vortrainierten Parametern aus dem bestehenden Teilnetz aufweist, um den Aufwand für Speicherschreiboperationen zu minimieren. Das MLMS-System 100 umfasst eine MLMS-Engine 140 und einen ML-Modellanpassungsentscheider 120, der einen Leistungsfähigkeitsauditor 125 umfasst. Die MLMS-Engine 140 umfasst eine MLMS-Schnittstelle (MLMSI) 110, einen Teilnetzselektor 141, der Inferenzmodellergebnisse 142 und Anwendungsqualitätsmetriken 143 über den ML-Modellanpassungsentscheider 120 an den Leistungsfähigkeitsauditor 125 bereitstellt.
  • In 1 stellt eine Client-Vorrichtung 101 der MLMSI 110a eine ML-Konfiguration (config) bereit. In diesem Beispiel ist die Client-Vorrichtung 101 als ein Laptop-Computer gezeigt, die Client-Vorrichtung 101 kann jedoch eine beliebige andere Art von Client- oder Benutzervorrichtung sein, wie etwa jene hier erörterten. Um mit der MLMSI 110a zu interagieren, betreibt die Client-Vorrichtung 101 eine MLMSI-Client-Anwendung (App) 110b (im Folgenden als „MLMSI 110b“ bezeichnet), die ein geeigneter Client, wie etwa ein Webbrowser, eine Desktop-App, eine mobile App, eine Web-App und/oder ein anderes ähnliches Element sein kann, das dazu ausgelegt ist, mit der MLMSI 110a über ein geeignetes Kommunikationsprotokoll (z. B. HTTP (Hypertext Transfer Protocol) (oder Varianten davon), MQTT (Message Queue Telemetrie Transport), RTSP (Real Time Streaming Protocol) und/oder dergleichen) zu arbeiten. Die MLMSI 110a ermöglicht einem Benutzer der Client-Vorrichtung 101, zu verwalten (oder zu spezifizieren), wie das MLMS-System 100 nach einer optimalen ML-Architektur suchen soll.
  • Für Zwecke der vorliegenden Offenbarung kann sich der Begriff „ML-Architektur“ auf ein spezielles ML-Modell mit einem speziellen Satz von ML-Parametern und/oder ein solches ML-Modell beziehen, das dazu ausgelegt ist, auf einer speziellen HW-Plattform betrieben zu werden. Hier kann sich der Satz von ML-Parametern auf „Modellparameter“ (auch einfach als „Parameter“ bezeichnet) und/oder „Hyperparameter“ beziehen. Modellparameter sind Parameter, die mittels Training abgeleitet werden, wohingegen Hyperparameter Parameter sind, deren Werte verwendet werden, um Aspekte des Lernprozesses zu steuern, und gewöhnlich eingestellt werden müssen, bevor ein ML-Modell ausgeführt wird (z. B. Gewichtungen usw.). Zusätzlich dazu können zum Zweck der vorliegenden Offenbarung Hyperparameter als Architekturhyperparameter oder Trainingshyperparameter klassifiziert werden. Architekturhyperparameter sind Hyperparameter, die mit Architekturaspekten eines ML-Modells in Zusammenhang stehen, wie etwa zum Beispiel der Anzahl von Schichten in einem DNN, spezifischen Schichttypen in einem DNN (z. B. Faltungsschichten, Mehrschichtwahrnehmungs- bzw. MLP-Schichten usw.), Anzahl von Ausgabekanälen, Kernel-Größe und/oder dergleichen. Trainingshyperparameter sind Hyperparameter, die den Trainingsprozess eines ML-Modells steuern, wie etwa zum Beispiel Anzahl von Epochen, Lernrate und dergleichen. Für Zwecke der vorliegenden Offenbarung kann sich der Ausdruck „ML-Parameter“, wie hierin verwendet, auf Modellparameter, Hyperparameter oder sowohl Modellparameter als auch Hyperparameter beziehen, es sei denn, der Kontext gibt etwas anderes vor.
  • Die MLMSI 1 10a ist eine serverseitige App oder dergleichen, die es einem Benutzer ermöglicht, dem System 100 unter Verwendung ihrer MLMSI 110b Eingaben bereitzustellen. Zum Beispiel stellen die MLMSI 110a und die MLMSI 110b (zusammen als „MLMSI 110“ bezeichnet) eine Plattform oder ein Framework bereit, die/das es ML-Modell-Designern, -Entwicklern und/oder anderen Typen von Benutzern ermöglicht, ML-Modelle und/oder ML-Anwendungen zu erzeugen, zu bearbeiten und/oder zu manipulieren. Die MLMSI 110 umfasst eine grafische Benutzeroberfläche (GUI), die verschiedene grafische Elemente/Objekte beinhaltet, die Benutzern ermöglichen, verschiedene ML-Architektursuchparameter und/oder ein (vortrainiertes) Supernetz und/oder andere ähnliche ML-Modellaspekte hinzuzufügen, zu aktualisieren und/oder zu ändern. Dies MLMSI 110 ermöglicht auch dem Benutzer der Client-Vorrichtung 101, ML-Architekturen/Modelle, die durch das MLMS-System 100 entdeckt werden, zu erhalten (z. B. herunterzuladen). Bei manchen Implementierungen kann die MLMSI 110b eine Befehlszeilenschnittstelle und/oder eine Entwicklungsumgebung sein, die gleich oder ähnlich einer Softwareentwicklungsumgebung (SDE), einer integrierten Entwicklungsumgebung (IDE), einem Softwareentwicklungskit (SDK), einer Softwareentwicklungsplattform (SDP) usw. ist, die zur App-Entwicklung verwendet werden. Bei verschiedenen Implementierungen kann die MLMSI 110 einen geeigneten Dateiübertragungsmechanismus oder eine geeignete Hochladen-Komponente beinhalten, der/die es dem Benutzer der Client-Vorrichtung 101 ermöglicht, die ML-Konfiguration zu dem System 100 zu liefern. Zusätzlich dazu beinhaltet die MLMSI 110a Anwendungsprogrammierschnittstellen (APIs) zum Zugreifen auf die anderen Teilsysteme des Systems 100, verwaltet ML-Suchparameteraktualisierungen (z. B. neue oder aktualisierte ML-Konfiguration) und ruft jede unterstützte ML-Operationsbibliothek auf (z. B. wie durch die ML-Konfiguration angegeben).
  • Bei alternativen Implementierungen kann das MLMS-System 100 von demselben Rechenknoten (z. B. Client-Vorrichtung, Edge-Computing-Knoten, Netzwerkzugangsknoten, Cloud-Dienst, Drohne, Netzwerkgerät usw.) betrieben werden. Bei diesen Implementierungen kann die MLMSI 110 eine geeignete Anwendungsprogrammierschnittstelle (API), Middleware oder irgendeine andere Schnittstelle zwischen einer oder mehreren Anwendungen und/oder Komponenten des Rechenknotens sein.
  • Bei verschiedenen Implementierungen beinhaltet die ML-Konfiguration ein Referenz-ML-Modell 130 (hierin als ein „Supemetzwerk 130“ oder „Supernetz 130“ bezeichnet), Anwendungsqualitätsmetriken, Systembeschränkungen und/oder Leistungsfähigkeitsauditoreinstellungen. Das Supernetz 130 kann ein ML-Modell sein, das für eine bestimmte KI/ML-Aufgabe konfiguriert und/oder trainiert ist, von der das MLMS-System 100 ein kleineres und/oder abgeleitetes ML-Modell (hierin als ein „Teilnetzwerk“ oder „Teilnetz“ bezeichnet) entdecken oder erzeugen soll. Das Supernetz kann einen überparametrisierten Satz von Operationen enthalten, aus denen ein oder mehrere Teilnetze 135 während des Betriebs des MLMS-Systems 100 ausgewählt werden. Als ein Beispiel kann ein Supernetz 130 ein relativ großes, überparametrisiertes und/oder dichtes ML-Modell sein, das ein Endbenutzer entwickelt hat, das aber hinsichtlich Berechnung, Speicherung und/oder Stromverbrauch teuer ist. Dieses Supernetz 130 kann Parameter und/oder Gewichtungen beinhalten, die nicht wesentlich zur Vorhersage- und/oder Inferenzbestimmung beitragen, und diese Parameter und/oder Gewichtungen tragen zur Gesamtrechenkomplexität und -dichte des Supernetzwerks bei. Daher enthält das Supernetz 130 ein oder mehrere kleinere Teilnetze (z. B. die Teilnetze 135 im Teilnetz-Pool 147 in 1), die, wenn sie isoliert trainiert werden, mit verschiedenen Zielen und/oder Leistungsfähigkeitsmetriken übereinstimmen und/oder Kompromisse für diese anbieten können, wie etwa Genauigkeit und/oder Latenz des ursprünglichen Supernetzwerks 130, wenn sie für die gleiche Anzahl von Iterationen oder Epochen trainiert werden. Ein Supernetz 130 ermöglicht viele Kompromisse in Zielen angesichts der Teilnetze 135, in einigen Fällen ist jedoch nicht garantiert, dass die Teilnetze 135 bei jedem Ziel das Supernetz 130 schlagen. Bei manchen Implementierungen kann das benutzerbereitgestellte Supernetz 130 vortrainiert werden, oder das MLMS-System 100 kann das Supernetz 130 trainieren. Des Weiteren kann das Supernetz 130 ein elastisches Supernetz 130 sein, das ein Supernetz mit elastischen ML-Parametern sein kann. Hier bezieht sich „Elastizität“ auf eine Komponente in dem Supernetz 130, und ihr entsprechender Operator kann sich in mehreren Dimensionen ändern. Zum Beispiel würde dies in faltenden Netzwerken die Auswahl verschiedener Kernelgrößen (z. B. elastischer Kernel), Tiefen einer Gruppe von Elementen (z. B. elastische Tiefe) und Anzahl von Kanälen der ausgewählten Komponenten (z. B. elastische Breite) ermöglichen. Im Kontext der vorliegenden Offenbarung bezieht sich der Begriff „elastisch“ auf die Fähigkeit eines elastischen Supernetzes 130, unterschiedliche ML-Parameter und/oder Teilnetze 135 hinzuzufügen und/oder zu entfernen, ohne das laufende Framework und/oder das laufende ML-Modell neu zu starten. Zusätzlich oder alternativ kann ein elastisches Teilnetz 135 eine Modellkomponente (z. B. Blocktiefe) in Bezug auf ein anderes Teilnetz 135 „hinzufügen“ oder „entfernen“. Die elastischen Parameter werden derart vektorisiert, dass die MLMS-Engine 140 die verschiedenen Teilnetze 135 verfolgen kann, um den energieeffizienten Austausch durchzuführen (siehe z. B. 2, die im Folgenden erörtert wird). Bei anderen Implementierungen können andere Datenstrukturen, wie etwa Rechengraphen, anstelle einer Vektorisierung verwendet werden. Herkömmliche Ansätze trainieren und feinabstimmen typischerweise separate ML-Modelle für unterschiedliche HW-Plattformen, und diese ML-Modelle können sehr unterschiedliche Architekturkonfigurationen, Signaturen und/oder Fingerabdrücke aufweisen, die ein effizientes Austauschen viel schwieriger machen würden.
  • Die Anwendungsqualitätsmetriken sind Werte und/oder Schwellen, die verwendet werden, um einen oder mehrere Vorhersage- oder Inferenzergebnisindikatoren zu bestimmen, die der Endbenutzer als wichtig erachtet, um eine akzeptable Grenze/einen akzeptablen Bereich solcher Ergebnisse zu verfolgen. Die Vorhersage- oder Inferenzergebnisindikatoren können auf einer oder mehreren Leistungsfähigkeitsmetriken des gegenwärtig eingesetzten Supernetzes 130 oder des Teilnetzes 135 basieren, die zum Auslösen eines MLMS verwendet werden. Beispiele für die Leistungsfähigkeitsmetriken, die für die Anwendungsqualitätsmetriken verwendet werden können, werden im Folgenden in Abschnitt 1.4 erörtert.
  • Die Systembeschränkungen sind Werte und/oder Schwellen, die verwendet werden, um eine oder mehrere Systemzustandsänderungen, deren Verfolgung der Endbenutzer als wichtig erachtet, und/oder akzeptable Bereiche/Grenzen für solche (operativen) Systemstatusänderungen zu bestimmen. Die Systembeschränkungen können zum Beispiel spezifische Spannungs- oder Stromlastbereiche/-werte eines oder mehrerer HW-Bauelemente, Speichernutzungsbereiche/-werte, Prozessornutzungsbereiche/-werte, Leistungs-/Energiepegel, Betriebssystem- bzw. BS-Status/-Indikatoren, zu erfüllende (oder nicht erfüllende) Anwendungsanforderungen und/oder eine oder mehrere Kombinationen davon angeben, die verwendet werden sollten, um einen neuen MLMS auszulösen. Beispiele für die unterschiedlichen Typen von Parametern, Metriken und/oder Maßnahmen, die für die Systembeschränkungen verwendet werden können, werden im Folgenden in Abschnitt 1.2 erörtert.
  • Die Leistungsfähigkeitsauditoreinstellungen sind Werte, Parameter usw., die verwendet werden, um eine Kombination von Änderungen von Vorhersage-/Inferenzergebnissen 142, Qualitätsmetriken 143 und Kontextinformationen 105 (z. B. Software- bzw. SW- und/oder HW-Bedingungen) zu bestimmen, die eine neue Suche und einen MLMS auslösen. Zum Beispiel können die Leistungsfähigkeitsauditoreinstellungen unterschiedliche Kombinationen der Anwendungsqualitätsmetriken und/oder Systembeschränkungen definieren, die zum Auslösen eines MLMS verwendet werden sollten. Bei manchen Implementierungen können die Leistungsfähigkeitsauditoreinstellungen unterschiedliche Suchparameter beinhalten, die durch den Teilnetzselektor 141 verwendet werden sollen, um basierend auf den detektierten Systembeschränkungen/operativen Änderungen nach einem geeigneten Ersatzteilnetz 135 zu suchen.
  • Zusätzlich oder alternativ beinhaltet die ML-Konfiguration Werte, Variablen, Objekte, Daten oder andere Informationen, die eine oder mehrere der KI/ML-Domäne(n), KI/ML-Aufgabe(n), einen oder mehrere geeignete Datensätze, unterstützte Bibliotheken (z. B. PyTorch, TensorFlow, Apache™ MXNet usw.), HW-Plattforminformationen (HPI), Leistungsfähigkeitsmetriken (z. B. Latenz, Genauigkeit, Leistungsverbrauch usw.), ML-Parameter und/oder andere ähnliche Parameter, Informationen und/oder Daten umfassen oder anzeigen.
  • Die KI/ML-Aufgaben können ein gewünschtes zu lösendes Problem beschreiben, und die KI/ML-Domäne kann ein zu erreichendes gewünschtes Ziel beschreiben. Beispiele für ML-Aufgaben beinhalten Clustering, Klassifizierung, Regression, Anomaliedetektion, Datenbereinigung, automatisiertes ML (autoML), Assoziationsregellernen, bestärkendes Lernen, strukturierte Vorhersage, Merkmals-Engineering, Merkmalslemen, Online-Lernen, überwachtes Lernen, halbüberwachtes Lernen (SSL), unüberwachtes Lernen, Maschinenlerneinstufung (MLR: Machine Learning Ranking), Grammatikinduktion und/oder dergleichen. ML-Domänen umfassen Schlussfolgerung und Problemlösung, Wissensrepräsentation und/oder Ontologie, automatisierte Planung, Verarbeitung natürlicher Sprache (NLP), Wahrnehmung (z. B. Computer Vision, Spracherkennung usw.), autonome Bewegung und Manipulation (z. B. Lokalisierung, Roboterbewegung/-fortbewegung, autonomes Fahren usw.), soziale Intelligenz, bestärkendes Lernen usw.
  • Die ML-Konfiguration kann auch einen angemessen formatierten Datensatz (oder einen Verweis auf einen solchen Datensatz) beinhalten. Hier bezieht sich ein angemessen formatierter Datensatz auf einen Datensatz, der einer spezifischen ML-Architektur, einer spezifizierten KI/ML-Aufgabe und/oder einer KI/ML-Domäne entspricht. Zum Beispiel würde sich ein Datensatz, der für die NLP-Domäne verwendet würde, wahrscheinlich von einem Datensatz unterscheiden, der für die Computer-Vision-Domäne verwendet wird. Der Datensatz/die Datensätze ist/sind Datensammlungen, die eine oder mehrere Datenbanktabellen, elektronische Dokumente, Dateien und/oder andere Datenstrukturen beinhalten können. Der Datensatz/die Datensätze kann/können in einem beliebigen geeigneten Format vorliegen, wie etwa einem Spalten-Dateiformat (z. B. Hierarchical Data Format (HDF) einschließlich HDF4, HDF5 usw.; Hadoop Distributed File System (HDFS); Apache® Parquet; Petastorm usw.), ein tabellares Format (z. B. kommagetrennte Werte (csv), Tabellenkalkulationsdateiformate (z. B..xlsx usw.) usw.), ein Datenserialisierungsformat (z. B. Apache® Parquet, ASN.1, Extensible Data Notation (EDN), Efficient XML Interchange (EXI), Google® Protobufs, Google® FlatBuffers, MessagePack, Ethereum® Recursive Length Prefix (RLP), XML, YAML usw.), Attribute-Relation File Format (ARFF) und/oder dergleichen. Zusätzlich oder alternativ dazu können der eine oder die mehreren Datensätze für einen bestimmten Typ von KI/ML-Aufgabe spezifisch sein, wie etwa zum Beispiel den Stanford Question Answering-Datensatz (SQuAD), ein Java®-Korpus und/oder der MNLI-Datensatz (MNLI: Multi-Genre Natural Language Inferenc) für NLP-Aufgaben, die ImageNet- und/oder die Cityscapes-Datensätze für die Computer-Vision- bzw. CV-Domäne, die MNIST-Datenbank (Modified National Institute of Standards and Technology) für Objekterkennungsaufgaben und/oder dergleichen. Zusätzlich oder alternativ dazu können der eine oder die mehreren Datensätze ein oder mehrere angepasste Sätze von Daten sein, die durch den Benutzer der Client-Vorrichtung 101 gesammelt und/oder vorbereitet werden.
  • Zusätzlich kann die ML-Konfiguration HPI beinhalten. Die HPI kann Konfiguration, Spezifikationen, technische Details, Charakteristiken und/oder andere Aspekte einer gewünschten HW-Plattform und/oder einzelner HW-Komponenten, auf denen der Benutzer beabsichtigt, ein ML-Modell 130/135 einzusetzen, beinhalten. In einigen Implementierungen kann die ML-Konfiguration eine bestimmte Kennung (ID) oder Informationen für eine spezifische HW-Plattform (z. B. Systemmodell, Marke oder Produktlinie, Modellnummer, Generationen- oder Versionsnummer, eine SKU (Stock Keeping Unit), Produktliniensuffix, Seriennummer, Vorrichtungs-ID, Vorrichtungsname, Produkt-ID usw.) beinhalten, die dann verwendet werden würden, um relevante Informationen dieser Plattform für die MI,-Architektursuche zu erhalten. In einem Beispiel dieser Implementierungen kann die ML-Konfiguration ein gewünschtes System oder eine gewünschte Vorrichtung spezifizieren, wie etwa „Dell® PowerEdge® R750 Rack Server“, „Intel® Quark™ SE Mikrocontroller C1000 Plattform“, „Mobotix® M73“, „Samsung® Galaxy® S21 Ultra 5G“ oder dergleichen. Zusätzlich oder alternativ dazu kann der Benutzer eine spezifische Cloud-Computing-Plattform/einen spezifischen Cloud-Computing-Dienst (und optional verfügbare Ressourcen basierend auf ihrer Cloud-Dienstsubskription, den Kontodetails usw.) eingeben oder anderweitig angeben, wie etwa zum Beispiel durch Spezifizieren von Google Cloud® Vertex AI, Amazon® SageMaker™, Microsoft® Azure Machine Learning und/oder dergleichen.
  • Zusätzlich oder alternativ können ähnliche IDs/Informationen für einzelne HW-Komponenten (z. B. Prozessor(en), Speichervorrichtungen, Chipsatz, Sensortypen usw.) bereitgestellt werden, wie etwa zum Beispiel eine ID/Informationen für einen spezifischen Prozessor, einzelne Speichervorrichtungen, einzelne Speicherungsvorrichtungen, eine Hauptplatine, eine Basisplatine, E/A-Vorrichtungen, Netzwerkkarte usw. Zusätzlich oder alternativ dazu kann die ML-Konfiguration Spezifikationen verschiedener HW-Vorrichtungen oder Plattformen beinhalten, wie etwa zum Beispiel Prozessorspezifikationen (z. B. Anzahl von Kernen oder Threads, Taktfrequenz oder Taktrate (z. B. Basistaktrate und/oder verstärkte Taktrate), Cache-Größe, Busgeschwindigkeit, Speicherbandbreite, Thermal Design Power (TDP) usw.), Speichervorrichtungsspezifikationen (z. B. Kapazität, Zellentyp, Stick-Typ, Taktfrequenz usw.), Speicherungsvorrichtungsspezifikationen (z. B. Lese-/Schreibgeschwindigkeiten, Eingabe-/Ausgabeoperationen pro Sekunde (IOPS), Speicherungskapazität, Speicherzellentyp usw.) und/oder andere ähnliche Spezifikationen, wie etwa Lithografie oder Halbleitertechnologie, die zum Herstellen einer integrierten Schaltung verwendet wird, und/oder dergleichen.
  • Bei einer beliebigen der hierin erörterten Implementierungen kann die ML-Konfiguration ein Informationsobjekt, eine Datei, ein elektronisches Dokument usw. in einer beliebigen geeigneten Form oder einem beliebigen geeigneten Format sein, wie etwa zum Beispiel ein geeignetes Markup-Sprachdokument (z. B. HyperText Markup Language (HTML), Extensible Markup Language (XML), AI Markup Language (AML), JavaScript Object Notation (JSON), Generalized Markup Language (GML), Standardized GML (SGML), Predictive Model Markup Language (PMML) usw.), ein Modelldateiformat (z. B. Google®-Protokollpufferdateien (protobufs, .pb-Dateierweiterung), Keras (.h5-Dateierweiterung), Python (.pkl-Dateierweiterung), PyTorch-Modelle (.pt-Dateierweiterung), Kern-ML-Modell (.mlmodel-Dateierweiterung) usw.), ein Spalten-Dateiformat (z. B. wie die hier erörterten), ein tabellares Dateiformat (z. B. die hier erörterten) und/oder dergleichen.
  • Nachdem die Client-Vorrichtung 101 eine ML-Konfiguration und/oder das Supernetz 130 über die MLMSI 110 für die MLMS-Engine 140 bereitstellt, wird das Supernetz 130 in einem ML-Modell-Pool 145 platziert. Der ML-Modell-Pool 145 kann Teil der MLMS-Engine 140 sein oder kann entfernt von der MLMS-Engine 140 sein (z. B. als Teil eines Cloud-Computing-Dienstes und eines Edge-Computing-Dienstes und/oder dergleichen). Bei jeder Implementierung hat der Teilnetzselektor 141 Zugriff auf den ML-Modell-Pool 145. Der ML-Modell-Pool 145 enthält auch einen Teilnetz-Pool 147, der verschiedene Teilnetze 135 beinhaltet, die jeweils aus dem Supernetz 130 angepasst und für unterschiedliche operative Bedingungen und/oder Systembeschränkungen einer Ziel-HW-Plattform optimiert sind. Es ist anzumerken, dass der Klarheit halber in 1 nicht alle Teilnetze 135 gekennzeichnet sind. Die Teilnetze 135 können aus dem Supernetz 130 gemäß den Prozessen erzeugt werden, die erörtert werden in US-Anmeldung Nr. 17/497,736 (Aktenzeichen 136727-266649 (AD8302-US)) („[AD8302-US]“), US-Anmeldung Nr. 17/505,568 , eingereicht am 19. Okt. 2021 (Aktenzeichen 136727-266650 (AD8304-US)) („[AD8304-US]“), US-Anmeldung Nr. 17/504,282 , eingereicht am 18. Okt. 2021 (Aktenzeichen 136727-266651 (AD8305-US)) („[AD8305-US]“) und/oder US-Anmeldung Nr. 17/504,996 , eingereicht am 19. Okt. 2021 (Aktenzeichen 136727-266651 (AD8308-US)) („[AD8308-US]“), deren Inhalte hier durch Bezugnahme in ihrer Gesamtheit aufgenommen werden. Zusätzlich oder alternativ kann ML-Modelloptimierung, einschließlich HW-bewusster Modellkomprimierung, wie etwa Abschneiden und Quantisierung, auch verwendet werden, um die Teilnetze 135 zu erzeugen. Diese Verfahren stellen statische ML-Architekturen mit festen Parametern, FLOPs und/oder Latenzwerten bereit, die auf einer HW-Plattform durchgeführt werden sollen, die feste (sich nicht ändernde) Ressourcen bereitstellt (hinsichtlich Berechnungseinheit/Tensoroperation, Speicher oder Kernen). Ansätze, wie etwa Quantisierung, könnten jedoch mit dem MLMS-System 100 in Verbindung mit der Teilnetzauswahl 141 integriert werden (siehe z. B. Zhu et al., „Trained Ternary Quantization“, arXiv:1612.01064v3 [cs.LG] (23. Feb. 2017), Rastegari et al. „XNOR-Net: Imagenet Classification Using Binary Convolutional Neural Networks“, European Conference on Computer Vision, Springer, Cham., S. 525-542 (08. Okt. 2016), Frankle et al., „The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks“, arXiv:1803.03635v5 [cs.LG] (04. März 2019) und Han et al., „Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding“, arXiv:1510.00149v5 [cs.CV] (15 Feb. 2016), deren jeweilige Inhalte hier durch Bezugnahme in ihrer Gesamtheit aufgenommen werden.) Zusätzlich oder alternativ dazu kann die MLMS-Engine 140 (oder der Teilnetzselektor 141) eine oder mehrere ML-Suchfunktionen und/oder NAS-Algorithmen, wie etwa die hierin erörterten, verwenden, um geeignete Teilnetze 135 zum Befüllen des Teilnetz-Pools 147 zu entdecken.
  • Der Empfang der ML-Konfiguration und/oder des Supernetzes 130 bewirkt, dass der Leistungsfähigkeitsauditor 125 seine(n) Hintergrundprozess(e) beginnt, um die HW-Plattform zu überwachen, auf der das Supernetz 130 eingesetzt wird (z. B. Rechenknoten 550 oder dergleichen). Bei manchen Implementierungen kann die HW-Plattform die Client-Vorrichtung 101 sein. Bei manchen Implementierungen kann die HW-Plattform irgendein anderer gewünschter Rechenknoten oder eine andere gewünschte Vorrichtung sein, auf dem bzw. der der Benutzer ein ML-Modell einsetzen möchte oder irgendeine KI/ML-Aufgabe durchführen möchte. Zum Beispiel kann der Benutzer der Client-Vorrichtung 101 die HW-Plattform als eine oder mehrere IoT-Vorrichtungen, autonome Sensoren, Drohnen oder Roboter, autonome Fahrzeuge, Netzwerkgeräte, Netzwerkelemente (z. B. Basisstation(en), Zugangspunkt(e), Gateway-Vorrichtungen usw.), einen Edge-Computing-Dienst (wobei z. B. das ML-Modell eine Edge-Anwendung ist), einen Cloud-Computing-Dienst (bei dem z. B. das ML-Modell in einer virtuellen Maschine oder einem Container eingesetzt wird) und/oder dergleichen angeben. Bei manchen Implementierungen kann der Benutzer der Client-Vorrichtung 101 mehrere unterschiedliche Arten von HW-Plattformen angeben, auf denen dieselben oder unterschiedliche ML-Modelle einzusetzen sind. In einigen Implementierungen kann die HW-Plattform die gleiche Plattform sein, die die MLMS-Engine 130 betreibt, wie etwa wenn die HW-Plattform eine hoch spezialisierte Drohne oder ein autonomes Fahrzeug ist.
  • Während des Betriebs überwacht der Leistungsfähigkeitsauditor 125 die ML-Modellleistungsfähigkeit basierend auf den Inferenzmodellergebnissen 142 und den Anwendungsqualitätsmetriken 143, die durch die MLMS-Engine 140 über die ML-Modellüberwachungs-APIs des ML-Modellanpassungsentscheiders 120 bereitgestellt werden. Der Leistungsfähigkeitsauditor 125 verwendet diese Daten/Informationen, um auf Änderungen der Inferenz-/Vorhersageleistungsfähigkeit in Bezug auf eine oder mehrere gewünschte Leistungsfähigkeitsmetriken (z. B. Genauigkeit, Latenz und/oder andere ähnliche Metriken, wie etwa die hier erörterten) zu überwachen. Die Leistungsmetriken beinhalten irgendeine Form von Messung(en) der Leistungsfähigkeit der erzeugten/entdeckten ML-Modelle/Teilnetze 135. Zumindest in einigen Ausführungsformen können die Leistungsfähigkeitsmetriken als Leistungsfähigkeitsindikatoren, Leistungskennzahlen (KPIs: Key Performance Indicators) und/oder dergleichen bezeichnet werden. Beispiele für die Leistungsfähigkeitsmetriken werden im Folgenden in Abschnitt 1.4 erörtert. Die Leistungsfähigkeitsmetriken , die überwacht werden, können auf der bestimmten KI/ML-Aufgabe und/oder KI/ML-Domäne des Supernetzes 130basieren.
  • Der Leistungsfähigkeitsauditor 125 überwacht auch verschiedene Kontextinformationen 105, einschließlich des Betriebsmodus (MO) 106 (auch als „Vollchip-Leistungsmodus 106“ oder dergleichen bezeichnet), Systemzustandsinformationen (SSI) 107, physische Umgebungsinformationen (PEI) 108 und/oder Vernetzungsumgebungsinformationen (NEB) 109. Weitere Einzelheiten der Kontextinformationen 105 werden im Folgenden in Abschnitt 1.2 ausführlicher erläutert.
  • Bei verschiedenen Implementierungen können verschiedene Kontextzustände (z. B. durch Metriken 142, 143, MO 106, SSI 107, PEI 108 und/oder NEB 109 angegeben) einander informieren und werden zusammen durch den Leistungsfähigkeitsauditor 125 verwendet, um eine Statusänderung der HW-Plattform zu bestimmen, auf der das Supernetz 130 (oder ein Teilnetz) arbeitet. Die Statusänderung kann eine beliebige Änderung einer oder mehrerer Betriebsbedingungen der HW-Plattform sein, wie durch die verschiedenen Metriken/Schwellen/Einstellungen in der ML-Konfiguration definiert. Wenn zum Beispiel eine Änderung der Inferenzlatenz (die z. B. durch die Metriken 142, 143 angegeben wird) detektiert wird und/oder die eine oder die mehreren HW-Komponenten Informationen weiterleiten, dass diese HW-Komponente(n) Zugriff auf mehrere Kerne/Threads verloren hat/haben (z. B. durch die Rechenkapazität 107 angegeben), löst der Leistungsfähigkeitsauditor 125 den Teilnetzselektor 141 aus, um eine Teilnetzsuche durchzuführen, um ein besseres Ersatzteilnetz für die neuen Hardwarebeschränkungen. Der Leistungsauditor 125 löst die Teilnetzsuche aus, indem er einen Statusänderungsindikator 127 (auch als „Auslöser 127“ bezeichnet) erzeugt und diesen direkt oder über die MLMSI 110a an den Teilnetzselektor 141 sendet. Der Statusänderungsindikator 127 kann Informationen über die geänderten HW-Bedingungen und/oder Inferenzmetriken 142, 143 beinhalten, um den Teilnetzselektor 141 beim Identifizieren eines geeigneten Ersatz-ML-Modells (z. B. Teilnetz) aus dem Teilnetz-Pool 147 zu unterstützen.
  • Das Ersetzen eines ML-Modells (z. B. Teilnetz 135), das sich an die HW-Änderungen anpasst, würde normalerweise eine signifikante Menge an Datentransferkosten (z. B. dynamische Schreibleistung) erfordern, um die Gewichtungen/Parameter zwischen Modellen zu übertragen. Um diese Datentransferkosten weiter zu reduzieren, wird eine energie- und kommunikationseffiziente MLMS-Strategie (im Folgenden erörtert) eingesetzt, die die Datentransferkosten mindert und/oder anderen Ressourcenverbrauchsaufwand mindert. Sobald ein Ersatz-Teilnetz 135 ausgewählt ist, überwacht der Leistungsfähigkeitsauditor 125 weiterhin die Inferenzergebnisse 142, die Qualitätsmetriken 143 und die Kontextinformationen 105 (z. B. HW-Plattformzustände usw.) auf Indikatoren, die die nächste Suche auslösen können.
  • Der Teilnetzselektor 141 kann eine oder mehrere ML-Suchfunktionen und/oder NAS-A1-gorithmen verwenden, um ein geeignetes Teilnetz 147 aus dem Teilnetz-Pool 147 zu identifizieren. In einigen Implementierungen kann der Teilnetzselektor 141 einen evolutionären Mehrzielalgorithmus (MOEA) implementieren, wie etwa jene, die erörtert werden in Huang et al., „Survey on Multi-Objective Evolutionary Algorithms“, IOP Conf. Series: J. of Physics: Conf. Series, Bd. 1288, Nr. 1, S. 012057 (01. Aug. 2019) („[Huang]“) und Deb, „Multi-Objective Optimization Using Evolutionary Algorithms“, Indian Institute of Technology- Kanpur, Dept. of Mechanical Engineering, Kanpur, India, KanGAL-Bericht Nr. 2011003 (10. Feb. 2011), abrufbar unter: https://www.egr.msu.edu/~kdeb/papers/k2011003.pdf („[Deb1]“), deren Inhalte hiermit durch Bezugnahme in ihrer Gesamtheit aufgenommen werden (siehe auch Eiben et al., „Introduction to evolutionary computing“, 2. Auflage, Springer, Berlin (2015) („[Eiben]“), dessen Inhalt hiermit durch Bezugnahme in seiner Gesamtheit aufgenommen wird). Zusätzlich oder alternativ dazu kann der Teilnetzselektor 141 eine verbesserte evolutionäre Algorithmussuche unter Verwendung von Diversitätsbewahrung implementieren (siehe z. B. Deb et al., „A Fast and Elitist Multiobjective Genetic Algorithm: NSGA-II“, IEEE Transactions on Evolutionary Computation, Bd. 6, Nr. 2, (Apr. 2002) („[Deb2]“) und Igel et al., „Covariance Matrix Adaptation for Multi-objective Optimization“, Evolutionary Computation, Bd. 15, Nr. 1, S. 1-28 (01. März 2007) („[Igel]“), deren Inhalte hiermit durch Bezugnahme in ihrer Gesamtheit aufgenommen werden). Zusätzlich oder alternativ dazu kann der Teilnetzselektor 141 eine erweiterte evolutionäre Algorithmussuche unter Verwendung von Vermeidung nicht funktionaler Architekturen implementieren (siehe z. B. Stanley et al., „Evolving Neural Networks Through Augmented Topologies“, Evolutionary Computation, Bd. 10, Nr. 2, S. 99-127 (10. Juni 2002) („[Stanley]“), dessen Inhalt hiermit durch Bezugnahme in seiner Gesamtheit aufgenommen wird). Zusätzlich oder alternativ dazu kann der Teilnetzselektor 141 den SPEA-2 (Strength Pareto Evolutionary Algorithm 2, evolutionärer Stärke-Pareto-Algorithmus 2) implementieren (siehe z. B. Zitzler et al., „SPEA2: Improving the Performance of the Strength Pareto Evolutionary Algorithm“, Technischer Bericht 103, Computer Engineering and Communication Networks Lab (TIK), Eidgenössische Technische Hochschule (ETH) Zürich, CH, Tik-Report 103 (Mai 2001), dessen Inhalt hiermit durch Bezugnahme in seiner Gesamtheit aufgenommen wird). Zusätzlich oder alternativ dazu kann der Teilnetzselektor 141 einen NSGA-II (Non-dominated Sorting Genetic Algorithm-II, nicht dominierter genetischer Sortieralgorithmus II) implementieren (siehe z. B. [Deb2] und Lu et al., „NSGA-Net: Neural Architecture Search using Multi-Objective Genetic Algorithm“, arXiv:1810.03522v2 [cs.CV] (18. Apr. 2019) („[Lu]“), dessen Inhalt hiermit durch Bezugnahme in seiner Gesamtheit aufgenommen wird) und/oder den erweiterten NSGA-II, wie in [AD8304-US] erörtert. Zusätzlich oder alternativ dazu kann der Teilnetzselektor 141 die Mehrziel-ML-Architektursuche implementieren, wie in [AD8308-US] erörtert.
  • Zusätzlich oder alternativ kann der Teilnetzselektor 141 einen anderen geeigneten NAS-Algorithmus implementieren, wie etwa zum Beispiel den, der erörtert wird in Lius et al., „DARTS: Differentiable Architecture Search“, arXiv:1806.09055v2 [cs.LG] (23. Apr. 2019) („[Liu]“), Cai et al., „Once-for-All: Train One Network and Specialize it for Efficient Deployment“, arXiv:1908.09791v5 [cs.LG] (29. Apr. 2020) („[Cai1]“) und Cai et al., „ProxylessNAS: Direct Neural Architecture Search on Target Task and Hardware“, arXiv: 1812.00332v2 [cs.LG] (23. Feb. 2019) („[Cai2]“), Wang et al., „HAT: Hardware-Aware Transformers for Efficient Natural Language Processing“, arXiv:2005.14187v1 [cs.CL] (28. Mai 2020) („[Wang]“), Wang et al., „Multi-Objective Neural Architecture Search Based on Diverse Structures and Adaptive Recommendation“, arXiv:2007.02749v2 [cs.CV] (13. Aug. 2020) („[Wang2]“), Guerrero-Viu et al., „Bag of Baselines for Multi-objective Joint Neural Architecture Search and Hyperparameter Optimization“, arXiv:2105.01015v1 [cs.LG] (03. Mai 2021) („[Guerrero-Viu]“), Xie et al., „Weight-Sharing Neural Architecture Search: A Battle to Shrink the Optimization Gap“, arXiv:2008.01475v2 [cs.CV] (05. Aug. 2020), deren jeweilige Inhalte hier durch Bezugnahme in ihrer Gesamtheit aufgenommen werden.
  • Obwohl Supernetz-NAS-Verfahren der Echtzeit-ML-Modellauswahl förderlich sind, könnten verschiedene ML-Modell-Suchalgorithmen und/oder andere NAS-Ansätze ersetzt werden. Bei manchen Implementierungen ist der Suchalgorithmus, der durch den Teilnetzselektor 141 verwendet wird, modular und flexibel, wobei unterschiedliche Suchfunktionen, einschließlich neuer Algorithmen des Stands der Technik, leicht in die MLMS-Engine 140 hinein und aus dieser heraus ausgetauscht werden können. Auf diese Weise können unterschiedliche Suchfunktionen verwendet werden, die besser für eine bestimmte ML-Architektur und/oder einen spezifischen Typ von Teilnetz 135 geeignet sind, was Rechenressourcen einsparen und/oder Effizienzen dazu bereitstellen kann, wie diese Ressourcen verwendet werden. In einigen Implementierungen kann ein Endbenutzer (z. B. Benutzer der Client-Vorrichtung 101) in der ML-Konfiguration den bestimmten Suchfunktions-/NAS-Algorithmus spezifizieren, den er für den Auswahlprozess verwenden möchte.
  • 1.2. KONTEXTINFORMATIONEN
  • Wie zuvor angegeben, kann ein Statusänderungsereignis 127 eine neue ML-Modellsuche und/oder einen neuen Austausch basierend auf den anfänglich definierten Schwellendefinitionen und/oder -werten für den Leistungsfähigkeitsauditor 125 (z. B. den Anwendungsqualitätsmetrikschwellen, HW-Beschränkungsschwellen und/oder Leistungsfähigkeitsauditoreinstellungen) auslösen. Wenn dies geschieht, wird eine neue Teilnetzsuche gestartet, gefolgt von einer neuen Teilnetzauswahl (z. B. durch den Teilnetzselektor 141), die die neuen Leistungsfähigkeits- und/oder HW-Beschränkungskriterien erfüllt. Zum Beispiel kann die Leistungsfähigkeit einer eingesetzten ML-Anwendung verbessert werden, indem die eingesetzte ML-Anwendung an Änderungen des dynamischen Zustands der zugrundeliegenden HW für Kategorien, wie etwa MO 106, SS1 107, PEI 108 und/oder NEB 109, angepasst wird. Das Auslösen einer neuen Teilnetzsuche basiert auf Kontextinformationen 105 der HW-Plattform.
  • Die Kontextinformationen 105 können auf einem aktuellen Systemkontext basieren. Der Systemkontext der HW-Plattform (auch als „Plattformkontext“, „Kontextinformationen“ oder einfach „Kontext“ bezeichnet) kann eine beliebige Art von Informationen darüber sein, wie die HW-Plattform arbeitet und/oder unter welchen Bedingungen die HW-Plattform arbeitet. Der Systemkontext kann einen Betriebsmodus der HW-Plattform (z. B. MO 106), einen Systemzustand der HW-Plattform (z. B. SSI 107), eine physische Umgebung der HW-Plattform (z. B. PEI 108) und/oder eine Netzwerkumgebung der HW-Plattform (z. B. NDI 109) umfassen oder angeben. Zusätzlich oder alternativ kann der Kontext andere Informationen, sowohl außerhalb als auch innerhalb der HW-Plattform, Daten und/oder Schlussfolgerungen umfassen, die aus diesen Informationen und Daten gezogen werden können.
  • Die MOs 106 (oder „Leistungsmodi 106“), wie etwa Schlafmodus, Ruhemodus, Normalmodus (Wachzustand), Burst usw., sind in den Leistungseinstellungen auf der HW-Plattform (z. B. Firmware oder dergleichen) definiert und werden ausgelöst, wenn bestimmte Bedingungen oder Kriterien erfüllt sind (z. B. Inaktivität, Tageszeit, interne Temperatur usw.).
  • Die SSI 107 kann Daten über die Betriebsbedingungen und/oder Hardwareleistungsmetriken der HW-Plattform (oder einzelne HW-Komponenten der HW-Plattform) beinhalten oder angeben, wie etwa zum Beispiel Temperatur einzelner Komponenten, Komponentenlast, Prozessorleistungsfähigkeit, Rechenkapazität, Speicher- und/oder Speicherungsnutzung, Menge an freiem Speicher/Speicherplatz, Leistungsquellenzustand (z. B. Leistungsverbrauch, Spannungspegel, Strompegel usw.) und/oder Batteriezustand (z. B. verfügbare Leistung/Energie, thermische Daten der Batterie usw.), BS- und/oder Anwendungsparameter und Anforderungen wie Rechenanforderungen, Eingabe-/Ausgabemerkmale und Volumen ausgetauschter Daten (Hochladen oder Herunterladen); Überlastungsbedingungen, die eine Anwendung oder die HW-Plattform selbst erfahren; und/oder dergleichen. Die Rechenkapazität gibt die Anzahl verfügbarer Kerne und/oder Threads an. Die Anzahl verfügbarer Kerne und/oder Threads kann sich aufgrund eines Leistungsmodus oder eines Feldereignisses ändern, wie etwa eines harten Strahlungsereignisses, eines Siliciumdefekts, der aus einem Problem wie etwa Selbsterwärmung oder Elektromigration resultiert, und/oder dergleichen.
  • Der Herstellungsprozess (auch als „Halbleiterprozess“ bezeichnet) kann als ein Typ von SSI 107 angesehen werden. Der Halbleiterprozess verweist auf die speziellen Regeln bezüglich der minimalen Größe und Beabstandung für Merkmale auf jeder Schicht eines Chips, einer integrierten Schaltung oder eines anderen HW-Elements. Der Halbleiterprozess und/oder die spezifischen HW-Elemente weisen im Laufe der Zeit eindeutige Siliciumalterungseffekte (VT) auf, die Transistorschwellenspannungen und somit Leistung und Leistungsfähigkeit ändern. Außerdem kommt es bei der Wafersortierung und Einteilung bekanntermaßen zu Abschrägungen beim Siliciumfertigungsprozess oder Prozesslosen (z. B. Schnell-Schnell (FF), Langsam-Schnell (SF), Langsam-Langsam (SS), Schnell-Langsam (FS), Typisch-Typisch (TT)) und diese können die Leistungs-/Leistungsfähigkeitscharakteristiken der HW-Plattform hinsichtlich Zwischenverbindungs- und Transistorcharakteristiken (z. B. Leckverlust, Kapazität usw.) informieren. Aus diesen Informationen können erwartete Leistungsnutzung und/oder Leistungsfähigkeitscharakteristiken basierend auf dem Alter der HW-Plattform und verschiedenen Aspekten des Siliciumherstellungsprozesses selbst bestimmt werden.
  • Die PEI 108 können Daten über Elemente außerhalb der HW-Plattform beinhalten oder angeben, die verschiedene Komponenten und Peripheriegeräte beinhalten, wie etwa Batterien, Sensoren, Aktuatoren usw., und die Umgebung, die die HW-Plattform umgibt, wie etwa zum Beispiel gegenwärtige (Außen-)Temperatur, Luftfeuchte, Feuchtigkeit, Meereshöhe, Umgebungslicht, Umgebungsgeräusche/Lautstärke, Informationen/Daten bezüglich geografischer Objekte (z. B. Höhen) und/oder von Menschen erzeugter Objekte (z. B. Gebäude, Fernstraßen usw.), Wetterdaten für einen gegebenen Ort und/oder andere ähnliche Umgebungsmessungen. Umgebungszustände wie Temperatur haben exponentielle Auswirkungen auf den Siliciumleistungsverbrauch, da sie eine Transistorschwellenspannung und einen Zwischenverbindungswiderstand ändern. Verschiedene interne und externe Sensoren, wie etwa die hier erörterten, können verwendet werden, um die PEI 1 08 zu sammeln.
  • Die NEI 108 können Daten über ein oder mehrere Netzwerke beinhalten oder angeben, mit denen die HW-Plattform verbunden ist oder sich verbinden/sich daran anbinden kann. Als Beispiele können die NEI 108 eines oder mehrere der Folgenden beinhalten: Bandbreite (BW), Netzwerk- oder Zellenlast, Latenz, Jitter, Alpha-Fairness („α-Fairness“), Umlaufzeit (RTT), Anzahl von Interrupts, Außer-Reihenfolge-Lieferung von Datenpaketen, Übertragungsleistung, Bitfehlerrate, Bitfehlerquote (BER), Blockfehlerrate (BLER), Paketverzögerungsmessungen, Paketverlustrate, Paketempfangsrate (PRR), Paketverwerfungsrate, Datenvolumenmessungen, Netzwerkkonnektivitätsmetriken, Datenübertragungsraten, Netzwerk- und/oder Sitzungsparameter (z. B. Netzwerk-ID/Adressen, Sitzungs-ID, Portnummern usw.), Sicherheitsaspekte eines aktuell angebundenen Netzwerks, Ende-zu-Ende- bzw. e2e-Verzögerung, Signal-Rausch-Verhältnis (SNR), Signal-Rausch-und-Störungs-Verhältnis (SINR), Signal-plus-Rauschen-plus-Verzerrung-zu-Rauschen-plus-Verzerrungs-Verhältnis (SINAD), Träger-zu-Störungs-plus-Rausch-Verhältnis (CINR), additives weißes Gaußsches Rauschen (AWGN), Energie-pro-Bit-zu-Rauschleistungsdichte-Verhältnis (Eb/N0), Energie-pro-Bit-zu-Störungsleistungsdichteverhältnis (Ec/I0), Spitzezu-Durchschnitt-Leistungsverhältnis (PAPR), Referenzsignalempfangsleistung (RSRP), Empfangssignalstärkenindikator (RSSI), Referenzsignalempfangsqualität (RSRQ), Kanalqualitätsindikator- bzw. CQI-bezogene Messungen, Modulation-Coding-Scheme- bzw. MCS-bezogene Messungen, Messungen bezüglich virtualisierter Ressourcen, Dienstgüte- bzw. QoS-Messungen und/oder QoS-Flussmetriken, Mobilitätsverwaltungs- bzw. MM-Informationen, GNSS-Timing von Zellrahmen für UE-Positionierung für E-UTRAN oder 5G/NR (z. B. ein Timing zwischen einer AP- oder RAN-Knoten-Referenzzeit und einer GNSS-spezifischen Referenzzeit für einen gegebenen GNSS), GNSS-Codemessungen, GNSS-Trägerphasenmessungen und/oder akkumulierter Delta-Bereich (ADR), Kanalstörungsmessung, thermische Rauschleistungsmessung, empfangene Störungsleistungsmessung und/oder andere ähnliche Messungen. Die RSRP-, RSSI- und/oder RSRQ-Messungen können RSRP-, RSSI- und/oder RSRQ-Messungen zellenspezifischer Referenzsignale, Kanalzustandsinformationsreferenzsignale (CSI-RS) und/oder Synchronisationssignale (SS) oder SS-Blöcke für 3GPP-Netzwerke (z. B. LTE oder 5G/NR) und RSRP-, RSSI- und/oder RSRQ-Messungen verschiedener Beacon-, Fast-Initial-Link-Setup(FILS)-Entdeckungsframes oder Sondierungsantwortframes für IEEE 802.11 WLAN/WiFi-Netze beinhalten. Andere Messungen können zusätzlich oder alternativ verwendet werden, wie etwa jene, die in 3GPP TS 36.214 v16.2.0 (2021-03-31), 3GPP TS 38.215 v16.4.0 (2020-12), 3GPP TS 28.552 v17.3.1 (2021-06-24), IEEE 802.11-2020, „IEEE Standard for Information Technology--Telecommunications and Information Exchange between Systems - Local and Metropolitan Area Networks--Specific Requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications“ (2021-02-26) und/oder dergleichen erörtert werden.
  • Bei manchen Implementierungen können die Kontexte 105 auf einer Vorbeurteilung eines Betriebszustands der HW-Plattform basieren, die auf zuvor angegebenen Kontexten 105 basieren kann. Das kann zum Beispiel das Evaluieren von sowohl Rechen- als auch Kommunikationsressourcen, die für unterschiedliche Datentransfers benötigt werden, Schwellenkriterien oder eines gewünschten Zuverlässigkeitsniveaus, einer Menge oder eines Typs von Rechenknotenfähigkeiten (z. B. eine bestimmte Prozessorgeschwindigkeit, eine gewisse Speicher-/Speicherungskapazität, RAT-Schaltungsanordnungen, die durch die HW-Plattform implementiert werden usw.), eines Typs von Betriebsbeschränkungen, unter denen die HW-Plattform arbeitet (z. B. Funkbedingungen und/oder Verbindungsqualität, umgebenden Umgebungsbedingungen (z. B. Temperatur, Feuchtigkeit, Meereshöhe usw.), Komponententemperatur usw.) und/oder dergleichen umfassen.
  • Die Kontextinformationen 105 können durch Plattform- und/oder Umgebungserfassungsmechanismen erfasst und/oder gesammelt werden. Die Plattform- und/oder Umgebungserfassungsmechanismen können eine Systemüberwachung beinhalten, die dazu ausgelegt ist, Systemressourcen und Leistungsfähigkeit der HW-Plattform zu überwachen und ausführliche Informationen über die HW- und SW-Teilsysteme, die durch die HW-Plattform implementiert werden, zu identifizieren. Die Systemüberwachung ist ausgelegt zum Überwachen und Zusammenstellen von Informationen über installierte HW-Vorrichtungen (z. B. einzelne Sensoren und/oder einzelne Aktuatoren, die in die HW-Plattform eingebettet oder an diese angebunden sind), Treiber, Anwendungen, Systemeinstellungen, System-SW-Programme, KI-Agenten, Kernel-Erweiterungen/-Module usw., die durch die HW-Plattform implementiert werden.
  • Bei manchen Implementierungen überwacht die Systemüberwachung Daten von Plattform-/Systemerfassungsmechanismen, die zum Beispiel Temperatursensoren einer oder mehrerer interner Komponenten (z. B. digitale Prozessorwärmesensoren (DTS), Systemspeicherwärmesensoren auf einem Die (TSOD), Thermoelement, Widerstandstemperaturdetektor (RTD), Thermistoren, Bipolartransistor (BJT) usw.), Berührungssensoren, Beschleunigungsmesser, Gyroskope, Höhenmesser, Feuchtigkeitssensoren, Luftfeuchtesensoren, Lichtsensoren; Umgebungslichtsensoren, Drucksensoren, signalbezogene Sensoren (z. B. Infrarot (IR), Laser usw.), Benutzeranwesenheitsdetektions- bzw. UPD-Vorrichtungen, Plattformleistungssensoren, Drucksensoren, Magnetometer, Näherungssensoren (z. B. IR-basiert), biometrische Sensoren und/oder dergleichen umfassen können und stellt diese zusammen. Zusätzlich oder alternativ dazu können die Erfassungsmechanismen Elektrizitätserfassungselemente zum Messen von Elektrizität beinhalten, die von der HW-Plattform erzeugt oder verbraucht wird, wie etwa zum Beispiel elektromechanische Elektrizitätsmessgeräte, Seebeck-Effekt-Vorrichtungen, integrierte Hall-Effekt-Schaltungsanordnungen (ICs), einen faseroptischen Stromsensor (FOCS), Zählerschaltungsanordnungen, umfassend beispielsweise Digitalsignalprozessoren (DSPs), Analog-Digital-Wandler (ADC), Spezialmikroprozessoren und/oder dergleichen.
  • Zusätzlich oder alternativ überwacht die Systemüberwachung Informationen über installierte Hardwarevorrichtungen, die in die HW-Plattform eingebettet oder an diese angebunden sind, Treiber, Anwendungen, Systemeinstellungen, Systemsoftwareprogramme, Software-Agenten und/oder KI-Agenten, Kernel-Erweiterungen/-Module usw., die durch die HW-Plattform implementiert werden, und stellt diese zusammen. Die zusammengestellten Informationen geben aktuelle Kontextinformationen 105 an, einschließlich zum Beispiel Systemstatus; Prozessornutzung oder -ausnutzung; Prozessorfrequenz; Prozessortemperatur; gegenwärtig laufende Prozesse oder Aufgaben; Speichernutzung, -ausnutzung und/oder verfügbaren Speicherplatz; Indikatoren für Speicher-Selbstüberwachungsanalyse- und Meldungstechnologie (SMART); Systemverfügbarkeit; Netzwerkadressen (z. B. IP-Adressen oder dergleichen); Netzwerkverbindungen; Batterieladung; Batteriepegelschwelle; Kraftstoffpegel; Systemname oder Kennung(en); Benutzerkennung(en); Benutzerberechtigungen; Benutzersubskriptionsdaten; das Datum und die Zeit; und/oder andere ähnliche Daten/Informationen, wie etwa die zuvor genannten Rechenknotenfähigkeiten. Die Systemüberwachung stellt die Systeminformationen in einem geeigneten Format zusammen (z. B. Klartext, Rich Text Format (RTF), XML, JSON usw.) und exportiert die zusammengestellten Informationen an den ML-Modellanpassungsentscheider 120 und/oder den Leistungsfähigkeitsauditor 125.
  • Ein System vom Supernetztyp, das eine robuste und feinkörnige Vielfalt von Teilnetzoptionen 147 bietet, die für eine beliebige Kombination der vorgenannten Kontextinformationen 105 geeignet sind. Einige Kontextbedingungen 105 ändern sich im Laufe der Zeit langsam (z. B. Siliciumalterungseffekte), während andere stark zyklisch sind (z. B. Batterieladung). Ein HW-bewusster Aspekt des MLMS-Systems 100 besteht darin, dass das MLMS-System 100 verwendet werden kann, um zu informieren, welches Teilnetz 135 zum Ersetzen eines aktuell bereitgestellten/implementierten Teilnetzes 135 zu verwenden ist. Während sich der vorliegend besprochene Ersatz-/Austauschalgorithmus (siehe z. B. Tabelle 1 weiter unten) auf das Finden eines energie/kommunikationseffizientesten Teilnetzes 135 als Ersatz bezieht, könnten die Kontextinformationen 105 zusätzlich oder alternativ verwendet werden, um zu bestimmen, wie streng die Auswahl der Ersatzteilnetze 135 sein sollte.
  • 1.3. TEILNETZAUSWAHL- UND -AUSTAUSCHSTRATEGIE
  • Eine energie- und kommunikationseffiziente Strategie zum Auswählen und Einsetzen von ML-Modellen in Echtzeit (oder nahezu Echtzeit) unter Verwendung eines ähnlichkeitsbasierten Teilnetzauswahlprozesses ist unter Bezugnahme auf 2 und 3 gezeigt und beschrieben. In diesen Ausführungsformen ein Teilnetz 135, das die größte Überschneidung in vortrainierten Parametern von dem existierenden Teilnetz 135 für eine Zielvorrichtung (z. B. Rechenknoten 550) aufweist. Diese Mechanismen helfen der Zielvorrichtung, sich an neue Systemzustände und/oder HW-Bedingungen/Beschränkungen anzupassen, beschränken aber auch den Datentransferressourcenverbrauch, wenn das neue Teilnetz 135 in den Speicher geschrieben wird. Zum Ersten bieten Supernetzwerke 130 eine Vielfalt von Teilnetzoptionen 147 an, die in 2 gezeigt sind. Des Weiteren startet die energie- und kommunikationseffiziente Teilnetzersatz-/-austauschstrategie mit dem Durchführen einer ML-Modellsuche (z. B. NAS oder dergleichen) an einem Supernetz 130, wie in 3 gezeigt.
  • 2 zeigt ein Beispiel für eine Teilnetzcodierung in einem Supernetz-Gewichtungsteilungs-/Parameterabbildungs-Framework gemäß verschiedenen Ausführungsformen. Aspekte von Gewichtungsteilungsansätzen werden in Zhang et al., „Deeper Insights into Weight Sharing in Neural Architecture Search“, arXiv:2001.01431vl [cs.LG] (06. Jan. 2020) und Li et al., „Geometry-Aware Gradient Algorithms for Neural Architecture Search“, arXiv:2004.07802v5 [cs.LG] (18. März 2021) erörtert, deren Inhalte hier durch Bezugnahme in ihrer Gesamtheit aufgenommen werden. Das Beispiel aus 2 basiert auf der MobileNetV3-Architektur, die in [Howard] und [Cai1] besprochen wird. Obwohl 2 ein Supernetzparameterabbildungsbeispiel basierend auf MobileNetV3 zeigt, können in anderen Implementierungen viele unterschiedliche Permutationen, Datenstrukturen und/oder Typen von Supernetzen 130 und/oder Teilnetzen 135 verwendet werden.
  • In 2 ist ein Berechnungsgraph 201 eines faltenden neuronalen Netzwerks (CNN) zur Bildklassifizierung gezeigt, der verschiedene Faltungsschichten unterschiedlicher Blockgrößen umfasst, die in den Vektor 200 vektorisiert werden, umfassend Kernel, Erweiterungsverhältnis (oder Breite) und Tiefenkomponenten. Die Vektorisierung ergibt einen Vektor 200, der fünfundvierzig elastische Parameter umfasst, wie in 2 gezeigt. Der Berechnungsgraph 201 zeigt verschiedene Schichten, von denen jede gemäß ihrem Erweiterungsverhältnis und ihrer Kernelgröße bezeichnet ist. Zum Beispiel gibt „MB4 3x3“ einen mobilen Block mit einem Erweiterungsverhältnis von 4 und einer Kernelgröße von 3x3 an.
  • Jede Tiefenkomponente in dem Vektor 200 repräsentiert einen Block in dem CNN, wobei der Wert in jeder Komponente eine Anzahl von Faltungsschichten in jedem Block repräsentiert, zum Beispiel beinhaltet ein erster Block (B0) 2 Schichten, ein zweiter Block (B1) beinhaltet 3 Schichten, ein dritter Block (B2) beinhaltet 2 Schichten, ein vierter Block (B3) beinhaltet 4 Schichten und ein fünfter Block (B4) beinhaltet 4 Schichten. Daher enthält der Satz von Werten für die Tiefenkomponente des Vektors 200 die Werte 2, 3 oder 4 (z. B. in 2 durch „Tiefe = {2,3,4}“ angegeben). Jede Kernelgrößenkomponente gibt eine Kernelgröße jeder Schicht an. Zum Beispiel weist eine erste Schicht in dem ersten Block (Index 0) eine Kernelgröße von 3 auf, eine zweite Schicht in dem dritten Block (Index 9) weist eine Kernelgröße von 5 auf, eine dritte Schicht in dem fünften Block (Index 18) weist eine Kernelgröße von 7 auf und so weiter. Daher enthält der Satz von Werten für die Kernelgröße des Vektors 200 die Werte 3, 5 oder 7 (z. B. in 2 durch „Kernelgröße = {3,5,7}“ angegeben). Außerdem gibt jede Erweiterungsverhältnis- (Breiten-Komponente ein Erweiterungsverhältnis jeder Schicht an. Zum Beispiel weist eine erste Schicht in dem ersten Block (Index 0) ein Erweiterungsverhältnis (Breite) von 4 auf, eine zweite Schicht in dem dritten Block (Index 9) weist ein Erweiterungsverhältnis (Breite) von 3 auf, eine vierte Schicht in dem fünften Block (Index 18) weist ein Erweiterungsverhältnis (Breite) von 6 auf und so weiter. Daher enthält der Satz von Werten für die Erweiterungsverhältniskomponente des Vektors 200 die Werte 3, 4 oder 6 (z. B. in 2 durch „Erweiterungsverhältnis (Breite) = {3,4,6}“ angegeben). In der beispielhaften Teilnetzkonfiguration von 2 werden nicht verwendete Parameter (z. B. in 2 durch den Wert „X“ angegeben) erhalten, wenn weniger als das Maximum von 4 Schichten (z. B. 2 oder 3 Schichten) in einem Block vorhanden ist. Diese nicht verwendeten Parameter tragen nicht wesentlich zu der Vorhersage oder Inferenzbestimmung bei und können entfernt werden, um die Gesamtgröße des ML-Modells zu reduzieren.
  • Wie aus dem Vektor 200 ersichtlich ist, weist jeder Modellparametertyp (z. B. Kernel, Breite und Tiefe) drei Optionen auf, die zu 1019 möglichen Teilnetzkombinationen 135 führen. Gemäß verschiedenen Ausführungsformen führt der Teilnetzselektor 141 Teilnetzaustauschvorgänge durch, die energieeffizient sind, indem Parameter identifiziert werden, die die gleichen wie jene im aktuellen Teilnetz 135 sind. Hier kann der Teilnetzselektor 141 ein Ersatzteilnetz 135 bestimmen, um das aktuelle Teilnetz 135, das durch den Vektor 200 repräsentiert wird, zu ersetzen, das Ersatzteilnetz 135 in einen Vektor umwandeln und nur Werte in dem aktuellen Vektor 200 ändern, die sich von jenen in dem vektorisierten Ersatzteilnetz 135 unterscheiden. Falls zum Beispiel das vektorisierte Ersatzteilnetz 135 einen Wert von 5 bei Index 0 in dem Kemelmodellparameter aufweist, dann kann der Teilnetzselektor 141 den aktuellen Wert (z. B. „3“) durch den neuen Wert „5“ bei Index 0 im Kernelmodellparameter ersetzen. Falls das vektorisierte Ersatzteilnetz 135 jedoch einen Wert von 3 bei Index 0 in dem Kernelmodellparameter aufweist, dann ändert der Teilnetzselektor 141 möglicherweise den aktuellen Wert (z. B. „3“) bei Index 0 im Kernelmodellparameter nicht. Auf diese Weise muss der Teilnetzselektor 141 keine andere Adresse ersetzen oder finden, um den neuen Wert zu schreiben, was dynamische Schreibleistung bei einem Minimum hält.
  • 3 zeigt ein Beispiel der effizienzbewussten Teilnetzmodellauswahl nach der Durchführung der Teilnetzsuche gemäß verschiedenen Ausführungsformen. Die Supernetzsuchergebnisse 301 zeigen alle entdeckten Teilnetze 335, die während einer Teilnetzsuche gefunden werden, was das bestehende Supernetz 330 und einen Satz von Kandidatenersatzteilnetzen 340 umfasst (einzelne Teilnetze in dem Satz von Kandidatenersatzteilnetzen 340 können hierin als „Ersatzteilnetze 340“, „Kandidatenteilnetze 340“ oder dergleichen bezeichnet werden). Hier liegen die entdeckten Teilnetze 335 in der Form einer Pareto-Front (oder Pareto-Grenze) vor, die einen Satz von ML-Modellen/Teilnetzen 340 beinhaltet, die Pareto-effiziente Lösungen sind. Die effizienzbewussten Teilnetzauswahlen 341 umfassen vektorisierte Teilnetzkonfigurationen 342 (siehe z. B. 2), bei denen es sich um vektorisierte Versionen der Teilnetze aus dem Satz von Kandidatenersatzteilnetzen 340 handelt. Diese Teilnetze können gemäß einem oder mehreren Supernetzparametern vektorisiert werden. Zusätzlich ist auch eine vektorisierte Version des Supernetzes 330 (vektorisiertes Supernetz 333) im Vergleich zu den vektorisierten Teilnetzkonfigurationen 342 gezeigt.
  • In Ausführungsformen implementiert der Teilnetzselektor 141 eine Suchfunktion und/oder einen NAS-Algorithmus, um so viele Teilnetzkandidaten 340 wie möglich für die neuen Kontextinformationen (z. B. neue HW-Konfiguration) zu identifizieren, die die Suche hervorbringen. Falls sich zum Beispiel die Prozessorkernanzahlverfügbarkeit geändert hat und nun das bestehende Teilnetz 135 nicht so optimal ist, kann sich die neue Suche auf ein Latenzregime konzentrieren, das eine Zielschwelle erfüllt, wie durch die Systemeingaben (oder ML-Konfiguration) definiert. Von den möglichen Teilnetzkandidaten 340, die gefunden werden, wird einem Teilnetz 340 in dem Satz von Kandidaten 340 Präferenz gegeben, das am engsten mit dem existierenden Teilnetz 135 in Beziehung steht. Die Bestimmung des am engsten verwandten Teilnetzes 340 basiert auf dem Supernetztyp-Gewichtungs-/Parameterteilungsschema, wie etwa dem Vektorisierungsschema, das zuvor mit Bezug auf 2 besprochen wurde, das verwendet werden kann, um die Gesamttransferkosten für jeden der Kandidaten 340 zu berechnen. Das Teilnetz 340 mit minimalen Gesamttransferkosten (z. B. in Bezug auf die anderen Kandidatenteilnetze 340) wird als ein neues aktives Teilnetz ausgewählt.
  • Bei verschiedenen Implementierungen kann die Ziel-HW-Plattform ressourcenbeschränkt sein und ist somit möglicherweise nicht in der Lage, mehrere Ersatzmodellgewichtungen zu unterstützen. Außerdem kann bei verschiedenen HW-Begrenzungsszenarien die Nachfrage nach der Unterstützung verschiedener Modelltypen unzulässig aufwändig sein. Bei derartigen Szenarien kann eine Online-Ersatzstrategie verwendet werden, um die bestehenden Modelle mit den neuen Ersatzmodellgewichtungen auszutauschen. Dies kann jedoch wiederum die Datentransferenergiekosten erhöhen. Um die Datentransferenergie zu begrenzen, ein optimiertes Ersatz- oder Austauschmodell durch Lösen einer Beschränkungsoptimierung. Tabelle 1 zeigt einen beispielhaften Algorithmus einer ML-Modellsuch- und -austauschstrategie.
    Figure DE102022125334A1_0001
    Figure DE102022125334A1_0002
  • Der ML-Modellsuch- und -austauschalgorithmus versucht, eine nächstgelegene mögliche Übereinstimmung in Bezug auf ein Ersatzteilnetz 340 zu finden, das eine Mindestmenge an Datentransferenergieverbrauch im Vergleich zu anderen Kandidatenteilnetzen 340 verursacht. Für dieses Szenario kann angenommen werden, dass das Teilnetz 135, das gegenwärtig auf der HW-Plattform eingesetzt wird („eingesetztes Teilnetz fd“), bekannt ist. Der Algorithmus für die ML-Modellsuch- und -austauschstrategie weist zwei Stufen auf, umfassend Stufe 1 (Zeilen 2 bis 9), die eine Kandidatenersatzmodellsuche ist, und Stufe 2 (Zeilen 12 bis 17), die ein Auswahlfunktionsmodell für ein Kandidatenersatzmodell ist.
  • In Phase 1 (Zeilen 2 bis 9) entdeckt der Teilnetzselektor 141 einen Satz von Kandidatenteilnetzen 340, die ähnliche Leistungsfähigkeitscharakteristiken aufweisen, die dazu konfiguriert sind, die gleichen oder ähnliche KI/ML-Aufgaben zu lösen (oder innerhalb einer gleichen KI/ML-Domäne liegen), und eine ähnliche Systembeschränkung C wie das eingesetzte Teilnetz fd erfüllen. Die Bedingung C ist eine Beschränkung der HW-Plattform, als wenn das eingesetzte Teilnetz fdauf der HW-Plattform eingesetzt wurde. Hier kann die Beschränkung Ceinen spezifischen Systemkontext 105 (z. B. eine Kombination der verschiedenen Kontextinformationen 105) der HW-Plattform repräsentieren, wenn das eingesetzte Teilnetz fd eingesetzt wurde (oder einen Systemkontext 105, für den das eingesetzte Teilnetz fd optimiert ist).
  • Wenn die Bedingung C erfüllt ist, bestimmt der Teilnetzselektor 141 bei Zeile 6 die Leistungsfähigkeit einzelner Kandidatenteilnetze 340 („Ersatzteilnetz fj“) und die Leistungsfähigkeit des eingesetzten Teilnetzes fd. Wenn in Zeile 6 ein Unterschied zwischen der Leistungsfähigkeit des eingesetzten Teilnetzes fd und der Leistungsfähigkeit des potenziellen Ersatzteilnetzes fj innerhalb einer gewissen Alpha-Grenze liegt (Spielraum für Leistungsfähigkeitsdifferenz α), dann wird dieses Ersatzteilnetz fj als ein geeignetes Ersatzteilnetz fj für das eingesetzte Teilnetz fd angesehen. Dies erfolgt durch das erste Argument in Zeile 6 (z. B. „|nΐ,- nd| ≤ α“).
  • Ein zweites Argument der Zeile 6 (z. B. „(fd - fj) ≤ H (δ)“) bestimmt, ob das potenzielle Ersatzteilnetz fj eine zusätzliche Beschränkung H(δ)erfüllt, die den geänderten Systemkontext 105 repräsentieren kann. Mit anderen Worten, das erste Argument der Zeile 6 prüft, ob das potenzielle Ersatzteilnetz fj ähnlich dem eingesetzten Teilnetz fd funktioniert, und das zweite Argument prüft, ob das potenzielle Ersetzungsnetz fj die zusätzliche Beschränkung H(δ) erfüllt, die durch eine Änderung in der zugrundeliegenden HW-Plattform auferlegt wird. Wenn das potenzielle Ersatzteilnetz fj beide Bedingungen/Argumente erfüllt, dann wird das potenzielle Ersatzteilnetz fj zu dem Satz von Kandidatenteilnetzen 340 („Listmodel“) hinzugefügt. Die Listmodel enthält alle Modelle, die die Genauigkeit und sowohl die Einsatzbeschränkung C (z. B. FLOPs) als auch eine zusätzliche Beschränkung H(δ) erfüllen, die aufgrund der dynamischen Änderung des Systemzustands/der Systembedingungen auftreten können (z. B. Batteriestatus, Temperatur usw.). Wenn der Satz von Kandidatenteilnetzen 340 entschieden ist, geht der Teilnetzselektor 141 zu Phase 2 über.
  • In Phase 2 (Zeilen 12 bis 17) wählt der Teilnetzselektor 141 ein optimales Ersatzteilnetz fj aus allen Kandidatenteilnetzen 340 in dem Satz von Kandidatenteilnetzen 340 primär basierend auf den Datentransferkosten der Kandidatenteilnetze 340aus. Der Teilnetzselektor 141 bestimmt bei den Zeilen 12 bis 17, welches potenzielle Ersatzteilnetz fj in dem Satz von Kandidatenteilnetzen 340 mit der Ziel-HW-Vorrichtung ausgetauscht (bereitgestellt) werden sollte. Insbesondere bewertet der Teilnetzselektor 141 die Transferkosten einzelner Kandidatenteilnetze fj , wenn sie für das eingesetzte Teilnetz fd ausgetauscht werden. Das potenzielle Ersatzteilnetz fj mit den geringsten Datentransferkosten fsend wird schließlich von dem ML-Modellsuch- und -austauschalgorithmus zurückgegeben und auf der Ziel-HW-Plattform bereitgestellt.
  • 1.4. LEISTUNGSFÄHIGKEITSMETRIKEN
  • Die Leistungsfähigkeitsmetriken, die durch die MLMS-Engine 140 und/oder den Teilnetzselektor 141 gemessen werden können, können auf der/den bestimmten KI/ML-Aufgabe(n) und/oder einer oder mehreren anderen Eingaben/Parametern der ML-Konfiguration basieren. Die Leistungsfähigkeitsmetriken können modellbasierte Metriken und plattformbasierte Metriken beinhalten. Die modellbasierten Metriken sind Metriken bezüglich der Leistungsfähigkeit des Modells selbst und/oder ohne Berücksichtigung der zugrundeliegenden HW-Plattform. Die plattformbasierten Metriken sind Metriken bezüglich der Leistungsfähigkeit der zugrundeliegenden HW-Plattform beim Betreiben des ML-Modells.
  • Die modellbasierten Metriken können auf dem bestimmten Typ von KI/ML-Modell und/oder der KI/ML-Domäne basieren. Beispielsweise können regressionsbezogene Metriken für regressionsbasierte ML-Modelle vorhergesagt werden. Beispiele für regressionsbezogene Metriken beinhalten Fehlerwert, mittlerer Fehler, mittlerer absoluter Fehler (MAE), mittlerer reziproker Rang (MRR), mittlerer quadratischer Fehler (MSE), Wurzel-MSE (RMSE), Korrelationskoeffizient (R), Bestimmungskoeffizient (R2), Golbraikh- und Tropsha-Kriterium und/oder andere ähnliche regressionsbezogene Metriken, wie etwa jene, die in Naser et al., „Insights into Performance Fitness and Error Metrics for Machine Learning“, arXiv:2006.00887v1 (17. Mai 2020) („[Naser]“) erörtert werden, das hiermit durch Bezugnahme in seiner Gesamtheit aufgenommen wird.
  • In einem anderen Beispiel können korrelationsbezogene Metriken für korrelationsbezogene Metriken vorhergesagt werden. Beispiele für korrelationsbezogene Metriken beinhalten Genauigkeit, Präzision (auch als positiver prädiktiver Wert (PPV) bezeichnet), mittlere durchschnittliche Präzision (mAP), negativer prädiktiver Wert (NPV), Trefferquote (auch als Wahr-positiv-Rate (TPR) oder Sensitivität bezeichnet), Spezifität (auch als Wahr-negativ-Rate (TNR) oder Selektivität bezeichnet), Falsch-positiv-Rate, Falsch-negativ-Rate, F-Maß (z. B. F1-Maß, F2-Maß, Fβ-Maß usw.), Matthews-Korrelationskoeffizient (MCC), Ausprägung, Empfängerbetriebscharakteristik (ROC: Receiver Operating Characteristic), Bereich unter der ROC-Kurve (AUC), Distanzmaß und/oder andere ähnliche korrelationsbezogene Metriken, wie etwa die in [Naser] erörterten.
  • Zusätzliche oder alternative modellbasierte Metriken können auch vorhergesagt werden, wie etwa zum Beispiel kumulativer Gewinn (CG), diskontierter CG (DCG), normierter DCG (NDCG), Signal-Rausch-Verhältnis (SNR), Spitzen-SNR (PSNR), strukturelle Ähnlichkeit (SSIM), Schnittpunkt über Union (IoU), Perplexität, BLEU(Bilingual Evaluation Understudy)-Bewertung, Inzeptionsbewertung, Wasserstein-Metrik, Frechet-Inzeptionsdistanz (FID), String-Metrik, Bearbeitungsdistanz, Levenshtein-Distanz, Damerau-Levenshtein-Distanz, Anzahl von Evaluierungsinstanzen (z. B. Iterationen, Epochen oder Episoden), Lernrate (z. B. die Geschwindigkeit, mit der der Algorithmus optimale Gewichtungen erreicht (konvergiert), Lernratenabfall (oder Gewichtungsabfall), Anzahl und/oder Art von Berechnungen, Anzahl und/oder Typ von Multiplikation-und-Akkumulation (MACs), Anzahl und/oder Art von Multiplikation-Addition(MAdds)-Operationen und /oder andere ähnliche Leistungsfähigkeitsmetriken in Bezug auf die Leistungsfähigkeit des ML-Modells.
  • Beispiele für die plattformbasierten Metriken beinhalten Latenz, Reaktionszeit, Durchsatz (z. B. Verarbeitungsrate eines Prozessors oder einer Plattform/eines Systems), Verfügbarkeit und/oder Zuverlässigkeit, Leistungsverbrauch (z. B. Leistungsfähigkeit pro Watt usw.), Transistoranzahl, Ausführungszeit (z. B. Zeitmenge zum Erhalten einer Vorhersage, Inferenz usw.), Speichergrundfläche, Speichernutzung, Prozessornutzung, Prozessorzeit, Anzahl von Berechnungen, Anweisungen pro Sekunde (IPS), Gleitkommaoperationen pro Sekunde (FLOPS) und/oder andere ähnliche Leistungsfähigkeitsmetriken in Bezug auf die Leistungsfähigkeit des ML-Modells und/oder der zugrundeliegenden HW-Plattform, die zum Betreiben des ML-Modells zu verwenden ist.
  • Zusätzlich oder alternativ dazu können Proxy-Metriken (z. B. eine Metrik oder ein Attribut, die/das als eine Vertretung oder Ersatz einer anderen Metrik oder eines anderen Attributs verwendet wird) zum Vorhersagen der ML-Modell-Leistungsfähigkeit verwendet werden. Für beliebige der oben erwähnten Leistungsfähigkeitsmetriken kann die gesamte, mittlere und/oder irgendeine andere Verteilung solcher Metriken unter Verwendung eines oder mehrerer beliebiger geeigneter Datensammlungs- und/oder Messmechanismen vorhergesagt und/oder gemessen werden.
  • 1.5. BEISPIELHAFTE ANWENDUNGSFÄLLE
  • Das MLMS-System 100 kann für verschiedene Szenarien verwendet werden, wie etwa unvorhersehbare Vor-Ort-Szenarien, wenn Echtzeit-KI/ML-Anwendungsaufgaben durch eine HW-Plattform mit sich ändernden Systemzuständen/Kontexten ausgeführt werden müssen, wie etwa Rechen- und/oder Speicherungsfähigkeiten (z. B. autonome Fahrzeuge, IoT-Vorrichtungen, Edge-Computing-Plattformen und dergleichen).
  • Ein anderer Anwendungsfall beinhaltet Systeme, die vor Ort eingesetzt werden, die keine kontinuierliche Verbindung zu einer Cloud oder einem Edge-Verwaltungssystem aufweisen. In diesem Beispiel kann ein Sensorarray, das an einem entfernten Ort mit nur einer Batterie- und/oder Solarleistungsquelle und dem MLMS-System 100 eingesetzt wird, Teil der Cloud oder des Edge-Verwaltungssystems sein, die verschiedene Aspekte des Sensorarrays verwaltet. Das Sensorarray ist in der Lage, den energieeffizienten Aspekt des MLMS-Systems 100 auszunutzen, wenn es das ML-Modell für unterschiedliche Leistungsmodi (z. B. Niedrigleistungsmodus in der Nacht oder dergleichen) oder HW-Fehler anpasst, die zu Verlusten an der Berechnungsbandbreite geführt haben (z. B. Verlust eines oder mehrerer Prozessorkerne).
  • Ein anderer Anwendungsfall beinhaltet eine fernbetriebene Drohne, die einen Großteil ihrer Leistung/Energie in Batterien gespeichert hat, die erforderlich sind, um die Drohne betriebsbereit zu halten, und die Drohne muss ihr Leistungs-/Energiebudget so effizient wie möglich einsparen. In dieser beispielhaften Implementierung kann die MLMS-Engine 140 als ein Untersystem der Drohne betrieben werden. In diesem Anwendungsfall kann das MLMS-System 100, wenn die Batterie sich erschöpft oder keine Hochpräzisions-Inferenz/-Vorhersagen erforderlich sind, das ML-Modell der Drohne herunterskalieren, um zusätzliche Energieeinsparungen zu ermöglichen, wodurch die Betriebszeit der Drohne verlängert wird, bevor eine Batterieladung benötigt wird.
  • Ein anderer Anwendungsfall beinhaltet eine IoT-Vorrichtung mit einer Bilderfassungsvorrichtung (z. B. einer Kamera für sichtbares Licht oder einer Kamera für nicht sichtbares Licht), die ein ML-Objekterkennungsmodell betreibt. In dieser beispielhaften Implementierung kann die MLMS-Engine 140 Teil eines Cloud-Computing-Dienstes oder eines Edge-Computing-Netzwerks sein, das kommunikativ mit der IoT-Vorrichtung gekoppelt ist. Hier stellt die MLMS-Engine 140 der IoT-Vorrichtung unterschiedliche Teilnetze basierend auf einer von der IoT-Vorrichtung erhaltenen Rückmeldung bereit (z. B. tauscht sie ein/aus). In einem Beispiel dieses Anwendungsfalls kann die IoT-Vorrichtung mit einem ersten Teilnetz versehen sein, das zum Arbeiten in Umgebungen mit hoher Sichtbarkeit (z. B. starkem Sonnenlicht) optimiert ist, und wenn die IoT-Vorrichtung Bedingungen mit geringer Sichtbarkeit (z. B. Nacht, Regen, Nebel usw.) detektiert, wird eine Anzeige der Bedingungen mit geringer Sichtbarkeit an die MLMS-Engine 140 gesendet, und die MLMS-Engine 140 stellt die IoT-Vorrichtung mit einem zweiten Teilnetz bereit, das zum Detektieren von Objekten unter Bedingungen mit geringer Sichtbarkeit optimiert ist. In diesem Beispiel können unterschiedliche Teilnetze für unterschiedliche Bedingungen optimiert sein, zum Beispiel kann ein Teilnetz zur Objektdetektion unter Nachtzeitbedingungen optimiert sein, während ein anderes Teilnetz zur Objektdetektion unter regnerischen Bedingungen optimiert sein kann, und noch ein anderes Teilnetz kann zur Objektdetektion unter nebligen Bedingungen optimiert sein.
  • Ein anderer Anwendungsfall beinhaltet einen Edge-Computing-Knoten, der ein verteiltes Lern- und/oder ein föderiertes ML-Modell betreibt, wobei der Edge-Computing-Knoten Lernauf gaben an verschiedene Client-Vorrichtungen 101 und/oder Netzwerkzugangsknoten (NANs) verteilt (siehe zum Beispiel Int'1 Pub. Nr. 2021/158313 eingereicht am 26. Dezember 2020 (Aktenzeichen AD4106-PCT), deren Inhalt hiermit durch Bezugnahme in seiner Gesamtheit aufgenommen wird). In dieser beispielhaften Implementierung kann das MLMS-System 100 ein(e) oder mehrere Edge-Anwendungen und/oder Dienste sein, die durch den Edge-Computing-Knoten betrieben werden. Zusätzlich oder alternativ dazu können die MLMS-Engine 140 und der Leistungsfähigkeitsauditor 125 Teil derselben Edge-Anwendung (App) und/oder desselben Dienstes sein oder können separate Edge-Apps/Dienste sein, die dazu konfiguriert sind, über eine oder mehrere geeignete Edge-APIs miteinander zu interagieren. In diesem beispielhaften Anwendungsfall stellt die MLMS-Engine 140 verschiedene Teilnetze 135 eines föderierten ML-Modells 130 basierend auf einer von den verschiedenen Client-Vorrichtungen 101 erhaltenen Rückmeldung bereit (z. B. tauscht sie ein/aus). Die Rückmeldung kann basieren auf der Fähigkeit (oder Unfähigkeit) der Client-Vorrichtungen 101, Lernaufgaben (z. B. Gradienten usw.) in einer aktuellen oder nächsten Trainingsrunde, Epoche, Folge usw. zu berechnen oder anderweitig abzuschließen; einer oder mehreren Signalstärke- und/oder Qualitätsmessungen (z. B. erhalten von den Client-Vorrichtungen 101, Netzwerkelementen und/oder Kernnetzwerkfunktionen); Daten/Messungen über aktuelle oder zukünftige Umgebungsbedingungen (z. B. erhalten von den Client-Vorrichtungen 101, Netzwerkelementen, Kernnetzwerkfunktionen, App-Servern, Cloud-Diensten usw.); und/oder anderen ähnlichen Messungen und/oder Daten.
  • 2. ASPEKTE DER KÜNSTLICHEN INTELLIGENZ UND DES MASCHINELLEN LERNENS
  • Maschinelles Lernen (ML) beinhaltet Programmieren von Rechensystemen, um ein Leistungsfähigkeitskriterium unter Verwendung beispielhafter (Trainings)-Daten und/oder vergangener Erfahrung zu optimieren. ML bezieht sich auf die Verwendung und Entwicklung von Computersystemen, die zum Lernen und Anpassen in der Lage sind, ohne expliziten Anweisungen zu folgen, indem Algorithmen und statistische Modelle verwendet werden, um Muster in Daten zu analysieren und aus ihnen Inferenzen zu ziehen. ML beinhaltet die Verwendung von Algorithmen zum Durchführen einer oder mehrerer spezifischer Aufgaben, ohne explizite Anweisungen zum Durchführen der einen oder der mehreren spezifischen Aufgaben zu verwenden, sondern stattdessen auf Grundlage erlernter Muster und/oder Inferenzen. ML verwendet Statistik, um ein oder mehrere mathematische Modelle (auch als „ML-Modelle“ oder einfach „Modelle“ bezeichnet) zu erstellen, um Vorhersagen oder Entscheidungen basierend auf Probendaten (z. B. Trainingsdaten) zu treffen. Das Modell ist so definiert, dass es einen Satz von Parametern aufweist, und Lernen ist die Ausführung eines Computerprogramms zum Optimieren der Parameter des Modells unter Verwendung der Trainingsdaten oder der vergangenen Erfahrung. Das trainierte Modell kann ein prädiktives Modell, das Vorhersagen basierend auf einem Eingabedatensatz trifft, ein deskriptives Modell, das Wissen aus einem Eingabedatensatz gewinnt, oder sowohl prädiktiv als auch deskriptiv sein. Sobald das Modell gelernt (trainiert) ist, kann es verwendet werden, um Inferenzen (z. B. Vorhersagen) zu treffen.
  • ML-Algorithmen führen einen Trainingsprozess an einem Trainingsdatensatz durch, um ein zugrundeliegendes ML-Modell zu schätzen. Ein ML-Algorithmus ist ein Computerprogramm, das aus Erfahrung in Bezug auf manche Aufgabe(n) und manche Leistungsfähigkeitsmessung(en)/-metrik(en) lernt, und ein ML-Modell ist ein Objekt oder eine Datenstruktur, das/die erzeugt wird, nachdem ein ML-Algorithmus mit Trainingsdaten trainiert wurde. Mit anderen Worten kann der Begriff „ML-Modell“ oder „Modell“ die Ausgabe eines ML-Algorithmus beschreiben, der mit Trainingsdaten trainiert wird. Nach dem Training kann ein ML-Modell verwendet werden, um Vorhersagen über neue Datensätze zu treffen. Zusätzlich können separat trainierte KI/ML-Modelle in einer KI/ML-Pipeline während der Inferenz- oder Vorhersageerzeugung miteinander verkettet werden. Obwohl sich der Begriff „ML-Algorithmus“ auf andere Konzepte als der Begriff „ML-Modell“ bezieht, können diese Begriffe für die Zwecke der vorliegenden Offenbarung austauschbar verwendet werden. Es können beliebige der hier erörterten ML-Techniken vollständig oder teilweise und Varianten und/oder Kombinationen davon für beliebige der hier erörterten beispielhaften Ausführungsformen genutzt werden.
  • ML kann unter anderem Erhalten und Bereinigen eines Datensatzes, Durchführen einer Merkmalsauswahl, Auswählen eines ML-Algorithmus, Teilen des Datensatzes in Trainingsdaten und Testdaten, Trainieren eines Modells (z. B. unter Verwendung des ausgewählten ML-Algorithmus), Testen des Modells, Optimieren oder Abstimmen des Modells und Bestimmen von Metriken für das Modell erfordern. Manche dieser Aufgaben können in Abhängigkeit von dem Verwendungsfall und/oder der verwendeten Implementierung optional sein oder weggelassen werden.
  • ML-Algorithmen nehmen Modellparameter (oder einfach „Parameter“) und/oder Hyperparameter an, die verwendet werden können, um bestimmte Eigenschaften des Trainingsprozesses und des resultierenden Modells zu steuern. Modellparameter sind Parameter, Werte, Charakteristiken, Konfigurationsvariablen und/oder Eigenschaften, die während des Trainings gelernt werden. Modellparameter werden üblicherweise von einem Modell benötigt, wenn Vorhersagen getroffen werden, und ihre Werte definieren die Fähigkeit des Modells für ein bestimmtes Problem. Hyperparameter sind zumindest bei manchen Ausführungsformen Charakteristiken, Eigenschaften und/oder Parameter für einen ML-Prozess, die nicht während eines Trainingsprozesses gelernt werden können. Hyperparameter werden üblicherweise gesetzt, bevor das Training stattfindet, und können in Prozessen verwendet werden, um dabei zu helfen, Modellparameter zu schätzen.
  • ML-Techniken fallen im Allgemeinen in die folgenden Haupttypen von Lernproblemkategorien: überwachtes Lernen, unüberwachtes Lernen und bestärkendes Lernen. Überwachtes Lernen beinhaltet das Erstellen von Modellen aus einem Datensatz, der sowohl die Eingaben als auch die gewünschten Ausgaben enthält. Unüberwachtes Lernen ist eine ML-Aufgabe, die darauf abzielt, eine Funktion zu lernen, um eine verborgene Struktur von nicht gelabelten Daten zu beschreiben. Unüberwachtes Lernen beinhaltet das Erstellen von Modellen aus einem Datensatz, der nur Eingaben und keine gewünschten Ausgabe-Labels enthält. Bestärkendes Lernen (RL) ist eine zielausgerichtete Lerntechnik, bei der ein RL-Agent darauf abzielt, ein Langzeitziel zu optimieren, indem er mit einer Umgebung interagiert. Manche Implementierungen von KI und ML verwenden Daten und neuronale Netzwerke (NNs) auf eine Weise, die die Arbeit eines biologischen Gehirns nachahmt. Ein Beispiel für eine solche Implementierung ist in 4 gezeigt.
  • 4 veranschaulicht ein beispielhaftes NN 400, das zur Verwendung durch eines oder mehrere der Rechensysteme (oder Teilsysteme) der verschiedenen hier erörterten Implementierungen, die teilweise durch einen HW-Beschleuniger implementiert sind, und/oder dergleichen geeignet sein kann. Das NN 400 kann ein tiefes neuronales Netzwerk (DNN) sein, das als ein künstliches Gehirn eines Rechenknotens oder Netzwerks von Rechenknoten verwendet wird, um sehr große und komplizierte Beobachtungsräume zu handhaben. Zusätzlich oder alternativ dazu kann das NN 400 irgendein anderer Topologietyp (oder eine Kombination von Topologien) sein, wie etwa ein faltendes NN (CNN), ein tiefes CNN (DCN), ein rekurrentes NN (RNN), ein Netzwerk mit langem Kurzzeitgedächtnis (LSTM), ein entfaltendes NN (DNN), eine Gated Recurrent Unit (GRU), ein Deep-Belief-NN, ein vorwärtsgekoppeltes NN (FFN), ein tiefes FNN (DFF), ein Deep-Stacking-Netzwerk, eine Markov-Kette, ein Perzeptions-NN, ein Bayes-Netzwerk (BN) oder Bayes-NN (BNN), ein dynamisches BN (DBN), ein lineares dynamisches System (LDS), ein Switching-LDS (SLDS), optische NNs (ONNs), ein NN für bestärkendes Lernen (RL) und/oder tiefes RL (DRL) und/oder dergleichen. NNs werden üblicherweise für überwachtes Lernen verwendet, können aber für unüberwachtes Lernen und/oder RL verwendet werden.
  • Das NN 400 kann eine Vielfalt von ML-Techniken umfassen, wobei eine Sammlung verbundener künstlicher Neuronen 410, die Neuronen (lose) in einem biologischen Gehirn modellieren, die Signale an andere Neuronen/Knoten 410 übertragen. Die Neuronen 410 können auch als Knoten 410, Verarbeitungselemente (PEs) 410 oder dergleichen bezeichnet werden. Die Verbindungen 420 (oder Kanten 420) zwischen den Knoten 410 sind (lose) an Synapsen eines biologischen Gehirns modelliert und übermitteln die Signale zwischen den Knoten 410. Es ist anzumerken, dass in 4 der Klarheit halber nicht alle Neuronen 410 und Kanten 420 gekennzeichnet sind.
  • Jedes Neuron 410 weist eine oder mehrere Eingaben auf und produziert eine Ausgabe, die an ein oder mehrere andere Neuronen 410 gesendet werden kann (die Eingaben und Ausgaben können als „Signale“ bezeichnet werden). Eingaben in die Neuronen 410 der Eingabeschicht Lx können Merkmalswerte einer Probe externer Daten (z. B. Eingabevariablen xi) sein. Die Eingabevariablen xi können als ein Vektor eingestellt werden, der relevante Daten (z. B. Beobachtungen, ML-Merkmale usw.) enthält. Die Eingaben in die verborgenen Einheiten 410 der verborgenen Schichten La, Lb und Lc können auf den Ausgaben anderer Neuronen 410 basieren. Die Ausgaben der finalen Ausgabeneuronen 410 der Ausgabeschicht Ly (z. B. Ausgabevariablen yj) beinhalten Vorhersagen, Inferenzen und/oder erfüllen eine gewünschte/konfigurierte Aufgabe. Die Ausgabevariablen yj können in Form von Bestimmungen, Inferenzen, Vorhersagen und/oder Bewertungen vorliegen. Zusätzlich oder alternativ dazu können die Ausgabevariablen yj als ein Vektor eingestellt werden, der die relevanten Daten (z. B. Bestimmungen, Inferenzen, Vorhersagen, Bewertungen und/oder dergleichen) enthält.
  • Im Zusammenhang mit ML ist ein „ML-Merkmal“ (oder einfach „Merkmal“) eine individuelle messbare Eigenschaft oder Charakteristik eines Phänomens, das beobachtet wird. Merkmale werden üblicherweise unter Verwendung von Zahlen/Ziffern (z. B. Ganzzahlen), Strings, Variablen, Ordinalen, Real-Werten, Kategorien und/oder dergleichen repräsentiert. Zusätzlich oder alternativ dazu sind ML-Merkmale einzelne Variablen, die unabhängige Variablen sein können, basierend auf einem beobachtbaren Phänomen, das quantifiziert und aufgezeichnet werden kann. ML-Modelle verwenden ein oder mehrere Merkmale, um Vorhersagen oder Inferenzen vorzunehmen. Bei manchen Implementierungen können neue Merkmale aus alten Merkmalen abgeleitet werden.
  • Neuronen 410 können eine Schwelle aufweisen, sodass ein Signal nur gesendet wird, wenn das aggregierte Signal diese Schwelle überschreitet. Ein Knoten 410 kann eine Aktivierungsfunktion beinhalten, die die Ausgabe dieses Knotens 410 bei einer gegebenen Eingabe oder einem gegebenen Satz von Eingaben definiert. Zusätzlich oder alternativ dazu kann ein Knoten 410 eine Ausbreitungsfunktion beinhalten, die die Eingabe in ein Neuron 410 aus den Ausgaben seiner Vorgängerneuronen 410 und ihren Verbindungen 420 als eine gewichtete Summe berechnet. Ein Vorspannungsterm kann außerdem zum Ergebnis der Ausbreitungsfunktion hinzugefügt werden.
  • Das NN 400 beinhaltet auch Verbindungen 420, von denen manche die Ausgabe zumindest eines Neurons 410 als eine Eingabe in zumindest ein anderes Neuron 410 bereitstellen. Jeder Verbindung 420 kann eine Gewichtung zugewiesen werden, die ihre relative Bedeutung repräsentiert. Die Gewichtungen können auch mit fortschreitendem Lernen angepasst werden. Die Gewichtung erhöht oder verringert die Stärke des Signals an einer Verbindung 420.
  • Die Neuronen 410 können in eine oder mehrere Schichten L aggregiert oder gruppiert werden, wobei unterschiedliche Schichten L unterschiedliche Transformationen an ihren Eingaben durchführen können. In 4 umfasst das NN 400 eine Eingabeschicht Lx, eine oder mehrere verborgene Schichten La, Lb und Lc und eine Ausgabeschicht Ly (wobei a, b, c, x und y Zahlen sein können), wobei jede Schicht L ein oder mehrere Neuronen 410 umfasst. Signale wandern von der ersten Schicht (z. B. der Eingabeschicht L1) zu der letzten Schicht (z. B. der Ausgabeschicht Ly), möglicherweise nach dem mehrmaligen Traversieren der verborgenen Schichten La, Lb und Lc. In 4 empfängt die Eingabeschicht La Daten von Eingabevariablen xi (wobei i = 1, ... p, wobei p eine Zahl ist). Die verborgenen Schichten La, Lb und Lc verarbeiten die Eingaben xi, und schließlich stellt die Ausgabeschicht Ly Ausgabevariablen yj bereit (wobei j = 1, ..., p', wobei p' eine Zahl ist, die gleich p oder davon verschieden ist). Im Beispiel von 4 gibt es zur Vereinfachung der Veranschaulichung nur drei verborgene Schichten La, Lb und Lc im ANN 400, jedoch kann das ANN 400 viel mehr (oder weniger) verborgene Schichten La, Lb und Lc beinhalten, als gezeigt sind.
  • 3. BEISPIELHAFTE HARDWARE- UND SOFTWAREKONFIGURA TIONEN UND -ANORDNUNGEN
  • 5a ist eine beispielhafte Beschleunigerarchitektur 500 gemäß verschiedenen Ausführungsformen. Die Beschleunigerarchitektur 500 stellt Funktionalität eines neuronalen Netzwerks (NN) für eine Anwendungslogik 512 bereit und kann daher als NN-Beschleunigerarchitektur 500, DNN-Beschleunigerarchitektur 500 und/oder dergleichen bezeichnet werden.
  • Die Anwendungslogik 512 kann Anwendungs-SW- und/oder HW-Komponenten beinhalten, die zum Durchführen von Spezifikationsfunktionen verwendet werden. Die Anwendungslogik 512 leitet Daten 514 an eine Inferenz-Engine 516 weiter. Die Inferenz-Engine 516 ist ein Laufzeitelement, das eine vereinheitlichte Anwendungsprogrammierschnittstelle (API) bereitstellt, die eine ANN-Inferenz (z. B. DNN(s) oder dergleichen) mit der Anwendungslogik 512 integriert, um ein Ergebnis 518 (oder eine Ausgabe) für die Anwendungslogik 512 bereitzustellen.
  • Um die Inferenz bereitzustellen, verwendet die Inferenz-Engine 516 ein Modell 520, das steuert, wie die DNN-Inferenz an den Daten 514 vorgenommen wird, um das Ergebnis 518 zu erzeugen. Insbesondere beinhaltet das Modell 520 eine Topologie von Schichten eines NN. Die Topologie beinhaltet eine Eingabeschicht, die die Daten 514 empfängt, eine Ausgabeschicht, die das Ergebnis 518 ausgibt, und eine oder mehrere verborgene Schichten zwischen der Eingabe- und Ausgabeschicht, die Verarbeitung zwischen den Daten 14 und dem Ergebnis 518 bereitstellen. Die Topologie kann in einem geeigneten Informationsobjekt gespeichert sein, wie einer Extensible Markup Language (XML), JavaScript Object Notation (JSON) und/oder einer anderen geeigneten Datenstruktur, Datei und/oder dergleichen. Das Modell 520 kann auch Gewichtungen und/oder Vorspannungen für Ergebnisse für eine beliebige der Schichten beinhalten, während die Daten 514 in der Inferenz unter Verwendung des DNN verarbeitet werden.
  • Die Inferenz-Engine 516 kann unter Verwendung von HW-Einheit(en) 522 implementiert und/oder mit dieser verbunden werden. Die Inferenz-Engine 516 ist zumindest in einigen Ausführungsformen ein Element, das logische Regeln auf eine Wissensbasis anwendet, um neue Informationen abzuleiten. Die Wissensbasis ist zumindest in einigen Ausführungsformen eine beliebige Technologie, die verwendet wird, um komplexe strukturierte und/oder unstrukturierte Informationen zu speichern, die durch ein Rechensystem (z. B. Rechenknoten 550 von 5) verwendet werden. Die Wissensbasis kann Speicherungsvorrichtungen, Repositorys, Datenbankverwaltungssysteme und/oder andere ähnliche Elemente beinhalten.
  • Des Weiteren beinhaltet die Inferenz-Engine 516 einen oder mehrere Beschleuniger 524, die eine HW-Beschleunigung für die DNN-Inferenz unter Verwendung einer oder mehrerer HW-Einheiten 522 bereitstellen. Der eine oder die mehreren Beschleuniger 524 sind SW- und/oder HW-Element(e), die speziell als HW-Beschleunigung für KI/ML-Anwendungen und/oder KI/ML-Aufgaben zugeschnitten/gestaltet sind. Der eine oder die mehreren Beschleuniger 524 können ein oder mehrere Verarbeitungselement- bzw. PE-Arrays und/oder eine Multiplikation-und-Akkumulation- bzw. MAC-Architektur in der Form mehrerer synaptischer Strukturen 525 beinhalten. Der eine oder die mehreren Beschleuniger 524 können der im Folgenden beschriebenen Beschleunigungsschaltungsanordnung 564 aus 5 entsprechen.
  • Die HW-Einheit(en) 522 kann (können) einen oder mehrere Prozessoren und/oder eine oder mehrere programmierbare Vorrichtungen beinhalten. Als Beispiele können die Prozessoren Zentralverarbeitungseinheiten (CPUs), Grafikverarbeitungseinheiten (GPUs), dedizierte anwendungsspezifische integrierte Schaltungen (ASICs) für KI-Beschleuniger, Visionsverarbeitungseinheiten (VPUs), Tensorverarbeitungseinheiten (TPUs) und/oder Edge-TPUs, eine neuronale Rechen-Engine (NCE), Pixel-Visual-Core (PVC), eine photonische integrierte Schaltung (PIC) oder eine optische/photonische Rechenvorrichtung und/oder dergleichen beinhalten. Die programmierbaren Vorrichtungen können zum Beispiel Logikarrays, programmierbare Logikvorrichtungen (PLDs), wie komplexe PLDs (CPLDs), feldprogrammierbare Gate-Arrays (FPGAs), programmierbare ASICs, ein programmierbares System-on-Chip (SoC) und dergleichen beinhalten. Der eine oder die mehreren Prozessoren und/oder die programmierbaren Vorrichtungen können der Prozessorschaltungsanordnung 552 und/oder der Beschleunigungsschaltungsanordnung 564 von 5 entsprechen.
  • 5b veranschaulicht ein Beispiel für Komponenten, die in einem Rechenknoten 550 zum Implementieren der hier beschriebenen Techniken (z. B. Operationen, Prozesse, Verfahren und Methoden) vorhanden sein können. 5b stellt eine Ansicht der Komponenten des Knotens 550 bereit, wenn als Teil einer Rechenvorrichtung implementiert (z. B. als eine Mobilvorrichtung, eine Basisstation, ein Servercomputer, ein Gateway, ein Gerät usw.). Bei manchen Implementierungen kann der Rechenknoten 550 eine HW-Plattform sein, auf der ein ML-Modell eingesetzt wird, das durch ein Ersatz-ML-Modell gemäß den verschiedenen hierin besprochenen Ausführungsformen ersetzt werden kann. Bei manchen Implementierungen kann der Rechenknoten 550 die Client-Vorrichtung 101 sein. Bei manchen Implementierungen kann der Rechenknoten 550 ein Anwendungsserver, ein Edge-Server, ein Cloud-Rechenknoten oder eine andere ähnliche Vorrichtung/ein anderes ähnliches System sein, die/das dazu ausgelegt ist, das MLMS-System 100 (oder Teile davon) zu betreiben. In einem Beispiel kann der Rechenknoten 550 ein Anwendungsserver sein, der die MLMSI 110b betreibt, und ein anderer Rechenknoten 550 kann ein Edge-, ein Cloud-Computing-Knoten oder irgendeine andere Art von Knoten sein, der die MLAS-Engine 140 und den Leistungsfähigkeitsauditor 125 betreibt. In einem anderen Beispiel kann der Rechenknoten 550 ein Anwendungsserver sein, der die MLMSI 110b betreibt, ein anderer Rechenknoten 550 kann ein Edge- oder Cloud-Computing-Knoten sein, der die MLAS-Engine 140 betreibt, und noch ein anderer Rechenknoten 550 kann ein Edge- oder Cloud-Computing-Knoten sein, der den Leistungsfähigkeitsauditor 125 betreibt. Zusätzlich oder alternativ dazu kann der Rechenknoten 550 ein Anwendungsserver, ein Edge-Server, ein Cloud-Computing-Knoten oder dergleichen sein, der einen Teil oder den gesamten Prozess 600 betreibt, der zuvor erörtert wurde. Der Rechenknoten 550 kann beliebige Kombinationen der hier referenzierten HW- oder logischen Komponenten beinhalten, und er kann eine beliebige Vorrichtung beinhalten oder mit dieser gekoppelt sein, die mit einem Edge-Kommunikationsnetzwerk oder einer Kombination solcher Netzwerke verwendbar ist. Die Komponenten können als ICs, Abschnitte davon, diskrete elektronische Vorrichtungen oder andere Module, Befehlssätze, programmierbare Logik oder Algorithmen, HW, HW-Beschleuniger, Software (SW), Firmware oder eine Kombination davon, die in dem Rechenknoten 550 angepasst ist, oder als Komponenten, die anderweitig in einem Gehäuse eines größeren Systems integriert sind, implementiert sein. Für eine Ausführungsform kann zumindest ein Prozessor 552 zusammen mit einer Rechenlogik 582 gekapselt und konfiguriert sein, um Aspekte verschiedener hier beschriebener beispielhafter Ausführungsformen umzusetzen, um ein System-in-Package (SiP) oder ein System-on-Chip (SoC) zu bilden.
  • Der Knoten 550 beinhaltet eine Prozessorschaltungsanordnung in Form eines oder mehrerer Prozessoren 552. Die Prozessorschaltungsanordnung 552 beinhaltet eine Schaltungsanordnung, wie unter anderem einen oder mehrere Prozessorkerne und eines oder mehrere von CacheSpeicher, Low-Drop-Out-Spannungsreglern (LDOs), Interrupt-Steuerungen, seriellen Schnittstellen, wie SPI, I2C oder einer universellen programmierbaren seriellen Schnittstellenschaltung, einer Echtzeituhr (RTC), Timer-Zählern, einschließlich Intervall- und Watchdog-Timern, Universal-E/A, Speicherkartensteuerungen, wie Secure Digital/Multimedia Card (SD/MMC) oder dergleichen, Schnittstellen, Mobile Industry Processor Interface-Schnittstellen (MIPI-Schnittstellen) und Joint Test Access Group-Testzugangsports (JTAG-Testzugangsports). Bei manchen Implementierungen kann die Prozessorschaltungsanordnung 552 einen oder mehrere HW-Beschleuniger (z. B. gleich oder ähnlich der Beschleunigungsschaltungsanordnung 564) beinhalten, die Mikroprozessoren, programmierbare Verarbeitungsvorrichtungen (z. B. FPGA, ASIC usw.) oder dergleichen sein können. Der eine oder die mehreren Beschleuniger können zum Beispiel Computer-Vision- und/oder Deep-Learning-Beschleuniger beinhalten. Bei manchen Implementierungen kann die Prozessorschaltungsanordnung 552 eine On-Chip-Speicherschaltungsanordnung beinhalten, die einen beliebigen geeigneten flüchtigen und/oder nicht-flüchtigen Speicher, wie DRAM, SRAM, EPROM, EEPROM, Flash-Speicher, Festkörperspeicher und/oder einen beliebigen anderen Typ von Speichervorrichtungstechnologie, wie die hier erörterten, beinhalten kann
  • Die Prozessorschaltungsanordnung 552 kann zum Beispiel einen oder mehrere Prozessorkerne (CPUs), Anwendungsprozessoren, GPUs, RISC-Prozessoren, Acom-RISC-Machine-Prozessoren (ARM-Prozessoren), CISC-Prozessoren, einen oder mehrere DSPs, ein oder mehrere FPGAs, eine oder mehrere PLDs, eine oder mehrere ASICs, einen oder mehrere Basisbandprozessoren, eine oder mehrere integrierte Hochfrequenzschaltungen (RFIC), eine(n) oder mehrere Mikroprozessoren oder -steuerungen, einen Mehrkernprozessor, einen Multithread-Prozessor, einen Ultraniedrigspannungsprozessor, einen eingebetteten Prozessor oder beliebige andere bekannte Verarbeitungselemente oder eine beliebige geeignete Kombination davon beinhalten. Die Prozessoren (oder Kerne) 552 können mit einem Speicher/einer Speicherung gekoppelt sein oder diese beinhalten und konfiguriert sein, um Anweisungen 581 auszuführen, die im Speicher/in der Speicherung gespeichert sind, um zu ermöglichen, dass verschiedene Anwendungen oder Betriebssysteme auf der Plattform 550 ausgeführt werden. Die Prozessoren (oder die Kerne) 552 sind dazu ausgelegt, Anwendungs-SW zu betreiben, um einem Benutzer der Plattform 550 einen spezifischen Dienst bereitzustellen. In einigen Ausführungsformen können der eine oder die mehreren Prozessoren 552 Spezialprozessor(en)/-steuerung(en) sein, der (die) konfiguriert (oder konfigurierbar) ist (sind), um gemäß den verschiedenen hier angegebenen Ausführungsformen zu arbeiten.
  • Als Beispiele können der eine oder die mehreren Prozessoren 552 einen Intel®-Architecture Core™-basierten Prozessor, wie einen i3-, einen i5-, einen i7-, einen i9-basierten Prozessor; einen Intel®-Mikrocontroller-basierten Prozessor, wie einen Quark™, einen Atom™ oder einen anderen MCU-basierten Prozessor; (einen) Pentium®-Prozessor(en), (einen) Xeon®-Prozessor(en) oder einen anderen derartigen Prozessor, der von der Intel® Corporation, Santa Clara, Kalifornien, erhältlich ist, beinhalten. Eine beliebige Anzahl anderer Prozessoren kann jedoch verwendet werden, wie eines oder mehrere aus einer Advanced Micro Devices(AMD)-Zen®-Architektur, wie (einem) Ryzen®- oder EPYC®-Prozessor(en), beschleunigten Verarbeitungseinheiten (APUs), MxGPUs, (einem) Epyc®-Prozessor(en) oder dergleichen; (einem) A5-A12- und/oder S1-S4-Prozessor(en) von Apple® Inc., (einem) Snapdragon™- oder Centriq™-Prozessor(en) von Qualcomm® Technologies, Inc., (einem) Texas Instruments, Inc.® Open Multimedia Applications Platform(OMAP)™-Prozessor(en); einem MIPS-basierten Design von MIPS Technologies, Inc., wie Prozessoren der MIPS Warrior M-Klasse, Warrior I-Klasse und Warrior P-Klasse; einem ARM-basierten Design, lizenziert von ARM Holdings, Ltd., wie der ARM Cortex-A-, Cortex-Rund Cortex-M-Prozessorfamilie; dem von Cavium™, Inc. bereitgestellten ThunderX2® oder dergleichen. Bei manchen Implementierungen können der eine oder die mehreren Prozessoren 552 ein Teil eines System-on-Chip (SoC), System-in-Package (SiP), eines Multi-Chip-Gehäuses (MCP) und/oder dergleichen sein, wobei der eine oder die mehreren Prozessoren 552 und andere Komponenten in einer einzigen integrierten Schaltung oder einem einzigen Gehäuse, wie den Edison™- oder Galileo™-SoC-Platinen von der Intel® Corporation, gebildet sind. Andere Beispiele für den einen oder die mehreren Prozessoren 552 sind an anderer Stelle in der vorliegenden Offenbarung erwähnt.
  • Der Knoten 550 kann eine Beschleunigungsschaltungsanordnung 564 beinhalten oder mit dieser gekoppelt sein, die durch einen oder mehrere KI/ML-Beschleuniger, einen neuronalen Rechenstick, neuromorphe HW, ein FPGA, eine Anordnung von GPUs, einen oder mehrere SoCs (einschließlich programmierbarer SoCs), eine oder mehrere CPUs, einen oder mehrere Digitalsignalprozessoren, dedizierte ASICs (einschließlich programmierbarer ASICs), PLDs, wie komplexe (CPLDs) oder hochkomplexe PLDs (HCPLDs), und/oder andere Formen spezialisierter Prozessoren oder Schaltungsanordnung, die zum Erfüllen einer oder mehrerer spezialisierter Aufgaben ausgelegt sind, umgesetzt werden können. Diese Aufgaben können eine KI/ML-Verarbeitung (z. B. einschließlich Trainings-, Inferenz- und Klassifizierungsoperationen), visuelle Datenverarbeitung, Netzwerkdatenverarbeitung, Objektdetektion, Regelanalyse oder dergleichen beinhalten. Bei FPGA-basierten Implementierungen kann die Beschleunigungsschaltungsanordnung 564 Logikblöcke oder Logik-Fabric und andere miteinander verbundene Ressourcen umfassen, die programmiert (konfiguriert) sein können, um verschiedene Funktionen durchzuführen, wie die Prozeduren, Verfahren, Funktionen usw. der verschiedenen hier erörterten Ausführungsformen. Bei solchen Implementierungen kann die Beschleunigungsschaltungsanordnung 564 auch Speicherzellen (z. B. EPROM, EEPROM, Flash-Speicher, statischen Speicher (z. B. SRAM, Anti-Fuses usw.) beinhalten, die zum Speichern von Logikblöcken, Logik-Fabric, Daten usw. in LUTs und dergleichen verwendet werden.
  • Bei manchen Implementierungen können die Prozessorschaltungsanordnung 552 und/oder die Beschleunigungsschaltungsanordnung 564 HW-Elemente beinhalten, die speziell für eine Maschinenlernfunktionalität zugeschnitten sind, wie zum Betreiben des Durchführens von ANN-Operationen, wie den hier erörterten. Bei diesen Implementierungen können die Prozessorschaltungsanordnung 552 und/oder die Beschleunigungsschaltungsanordnung 564 ein KI-Engine-Chip sein oder diesen beinhalten, der viele unterschiedliche Arten von KI-Befehlssätzen ausführen kann, sobald er mit den geeigneten Gewichtungen und dem geeigneten Trainingscode geladen ist. Zusätzlich oder alternativ dazu können die Prozessorschaltungsanordnung 552 und/oder die Beschleunigungsschaltungsanordnung 564 ein oder mehrere KI-Beschleuniger sein oder diese beinhalten, die einer oder mehrere der zuvor erwähnten HW-Beschleuniger sein können, die zur HW-Beschleunigung von KI-Anwendungen gestaltet sind. Als Beispiele können dieser eine oder diese mehreren Prozessoren oder Beschleuniger ein Cluster von GPUs für künstliche Intelligenz (KI), Tensorverarbeitungseinheiten (TPUs), die von Google® Inc. entwickelt werden, Real-KI-Prozessoren (RAPs™), die von AlphaICs® bereitgestellt werden, Nervana™ Neural Network Processors (NNPs), die von der Intel® Corp. bereitgestellt werden, eine Intel® Movidius™ Myriad™ X Vision Processing Unit (VPU), NVIDIA® PX™-basierte GPUs, der NM500-Chip, der von General Vision® bereitgestellt wird, HW 3, die von der Tesla®, Inc. bereitgestellt wird, ein Epiphany™basierter Prozessor, der von Adapteva® bereitgestellt wird, oder dergleichen sein. Bei manchen Ausführungsformen können die Prozessorschaltungsanordnung 552 und/oder die Beschleunigungsschaltungsanordnung 564 und/oder die HW-Beschleunigerschaltungsanordnung als KI-Beschleunigungs-Coprozessor(en) implementiert sein, wie der Hexagon 685 DSP, der von Qualcomm® bereitgestellt wird, der PowerVR 2NX Neural Net Accelerator (NNA), der von Imagination Technologies Limited® bereitgestellt wird, der Neural Engine-Kern innerhalb des Apple® A11- oder A12-Bionic-SoC, die Neural Processing Unit (NPU) innerhalb des HiSilicon Kirin 970, das von Huawei® bereitgestellt wird, und/oder dergleichen. Bei manchen HW-basierten Implementierungen können einzelne Teilsysteme des Knotens 550 durch den bzw. die jeweiligen KI-Beschleunigungs-Coprozessor(en), KI-GPUs, TPUs oder HW-Beschleuniger (z. B. FPGAs, ASICs, DSPs, SoCs usw.) usw. betrieben werden, die mit geeigneten Logikblöcken, einem Bitstrom/Bitströmen usw. konfiguriert sind, um ihre jeweiligen Funktionen durchzuführen.
  • Der Knoten 550 beinhaltet auch einen Systemspeicher 554. Eine beliebige Anzahl an Speichervorrichtungen kann verwendet werden, um eine gegebene Menge an Systemspeicher bereitzustellen. Als Beispiele kann der Speicher 554 flüchtiger Speicher, wie Direktzugriffsspeicher (RAM), statischer RAM (SRAM), dynamischer RAM (DRAM), synchroner DRAM (SDRAM), RAMBUS® dynamischer Direktzugriffsspeicher (RDRAM®) und/oder ein beliebiger anderer gewünschter Typ von flüchtiger Speichervorrichtung, sein oder diesen beinhalten. Zusätzlich oder alternativ dazu kann der Speicher 554 ein nicht-flüchtiger Speicher, wie Nur-Lese-Speicher (ROM), löschbarer programmierbarer ROM (EPROM), elektrisch löschbarer programmierbarer (EEPROM), Flash-Speicher, nicht-flüchtiger RAM, ferroelektrischer RAM, Phasenwechselspeicher (PCM), Flash-Speicher und/oder ein beliebiger anderer gewünschter Typ von nicht-flüchtiger Speichervorrichtung, sein oder diesen beinhalten. Der Zugriff auf den Speicher 554 wird durch eine Speichersteuerung gesteuert. Die einzelnen Speichervorrichtungen können von einer beliebigen Anzahl von verschiedenen Gehäusetypen sein, wie Single Die Package (SDP), Dual Die Package (DDP) oder Quad Die Package (Q17P). Eine beliebige Anzahl anderer Speicherimplementierungen kann verwendet werden, wie Dual Inline Memory Modules (DIMMs) verschiedener Varianten, einschließlich unter anderem microDIMMs oder MiniDIMMs.
  • Die Speicherungsschaltungsanordnung 558 stellt eine dauerhafte Speicherung von Informationen, wie Daten, Anwendungen, Betriebssystemen und dergleichen, bereit. In einem Beispiel kann die Speicherung 558 über ein Festkörperplattenlaufwerk (SSDD) und/oder einen elektrisch löschbaren Hochgeschwindigkeitsspeicher (allgemein als „Flash-Speicher“ bezeichnet) implementiert sein. Andere Vorrichtungen, die für die Speicherung 558 verwendet werden können, beinhalten Flash-Speicherkarten, wie etwa SD-Karten, microSD-Karten, XD-Bildkarten und dergleichen und USB-Flash-Laufwerke. In einem Beispiel kann die Speichervorrichtung Speichervorrichtungen sein oder beinhalten, die Chalkogenidglas, NAND-Flash-Speicher mit mehreren Schwellenpegeln, NOR-Flash-Speicher, Einzel- oder Mehrfachpegel-Phasenwechselspeicher (PCM), einen resistiven Speicher, Nanodrahtspeicher, ferroelektrischen Transistor-Direktzugriffsspeicher (FeTRAM), antiferroelektrischen Speicher, magnetoresistiven Direktzugriffsspeicher (MRAM), Speicher, der Memristortechnologie beinhaltet, Phasenwechsel-RAM (PRAM), resistiven Speicher, einschließlich der Metalloxid-Basis, der Sauerstoffleerstellenbasis und des Direktzugriffsspeichers mit leitfähiger Brücke (CB-RAM), oder Spin-Transfer-Torque-MRAM (STT-MRAM), eine auf spintronischem Magnetübergangsspeicher basierte Vorrichtung, eine Magnettunnelübergangs-basierte (MTJ-basierte) Vorrichtung, eine Domänenwand- und Spin-Orbit-Transfer-basierte (DW- und SOT-basierte) Vorrichtung, eine thyristorbasierte Speichervorrichtung, ein Festplattenlaufwerk (HDD), ein Mikro-HDD oder eine Kombination davon und/oder einen beliebigen anderen Speicher verwenden. Die Speicherschaltungsanordnung 554 und/oder die Speicherungsschaltungsanordnung 558 können auch dreidimensionale (3D) Crosspoint-Speicher (XPOINT-Speicher) von Intel® und Micron® beinhalten.
  • Die Speicherschaltungsanordnung 554 und/oder die Speicherschaltungsanordnung 558 sind konfiguriert, um Rechenlogik 583 in Form von SW-, Firmware-, Mikrocode- oder HW-Ebenen-Anweisungen zu speichern, um die hier beschriebenen Techniken zu implementieren. Die Rechenlogik 583 kann eingesetzt werden, um Arbeitskopien und/oder permanente Kopien von Programmieranweisungen oder Daten zum Erzeugen der Programmieranweisungen für den Betrieb verschiedener Komponenten des Systems 500 (z. B. Treiber, Bibliotheken, Anwendungsprogrammierschnittstellen (APIs) usw.), eines Betriebssystems des Systems 500, einer oder mehrerer Anwendungen und/oder zum Ausführen der hier erörterten Ausführungsformen zu speichern. Die Rechenlogik 583 kann als Anweisungen 582 oder Daten zum Erzeugen der Anweisungen 582, auf die dann zur Ausführung durch die Prozessorschaltungsanordnung 552 zugegriffen wird, um die hier beschriebenen Funktionen auszuführen, gespeichert oder in die Speicherschaltungsanordnung 554 geladen werden. Die Prozessorschaltungsanordnung 552 und/oder die Beschleunigungsschaltungsanordnung 564 greifen über das IX 556 auf die Speicherschaltungsanordnung 554 und/oder die Speicherungsschaltungsanordnung 558 zu. Die Anweisungen 582 weisen die Prozessorschaltungsanordnung 552 an, eine spezifische Sequenz oder einen spezifischen Fluss von Aktionen durchzuführen, wie zum Beispiel in Bezug auf ein oder mehrere Flussdiagramme und ein oder mehrere Blockdiagramme von Operationen und Funktionalität, die zuvor dargestellt wurde, beschrieben. Die verschiedenen Elemente können durch Assembler-Anweisungen, die durch die Prozessorschaltungsanordnung 552 unterstützt werden, oder höhere Sprachen, die in Anweisungen 581 kompiliert werden können, oder Daten zum Erzeugen der Anweisungen 581, die durch die Prozessorschaltungsanordnung 552 ausgeführt werden sollen, implementiert werden. Die permanente Kopie der Programmieranweisungen kann im Werk oder vor Ort durch zum Beispiel ein Verteilungsmedium (nicht gezeigt), durch eine Kommunikationsschnittstelle (z. B. von einem Verteilungsserver (nicht gezeigt)), Over-The-Air (OTA) oder eine beliebige Kombination davon in persistente Speicherungsvorrichtungen der Speicherungsschaltungsanordnung 558 platziert werden.
  • Das IX 556 koppelt den Prozessor 552 mit einer Kommunikationsschaltungsanordnung 566 zur Kommunikation mit anderen Vorrichtungen, wie einem entfernten Server (nicht gezeigt) und dergleichen. Die Kommunikationsschaltungsanordnung 566 ist ein HW-Element oder eine Sammlung von HW-Elementen, das/die zum Kommunizieren über ein oder mehrere Netzwerke 563 und/oder mit anderen Vorrichtungen verwendet wird/werden. In einem Beispiel ist oder beinhaltet die Kommunikationsschaltungsanordnung 566 eine Sendeempfängerschaltungsanordnung, die konfiguriert ist, um drahtlose Kommunikationen unter Verwendung einer beliebigen Anzahl von Frequenzen und Protokollen zu ermöglichen, wie zum Beispiel das Institute of Electrical and Electronics Engineers (IEEE) 802.11 (und/oder Varianten davon), IEEE 802.15.4, Bluetooth® und/oder Bluetooth® Low Energy (BLE), ZigBee®, LoRaWAN™ (Long Range Wide Area Network), ein zellulares Protokoll, wie 3GPP LTE und/oder 5. Generation (5G)/New Radio (NR) und/oder dergleichen. Zusätzlich oder alternativ dazu ist oder beinhaltet die Kommunikationsschaltungsanordnung 566 eine oder mehrere Netzwerkschnittstellensteuerungen (NICs), um eine drahtgebundene Kommunikation unter Verwendung von zum Beispiel einer Ethernet-Verbindung, Controller Area Network (CAN), Local Interconnect Network (LIN), DeviceNet, ControlNet, Data Highway+ oder PROFINET unter vielen anderen zu ermöglichen. In manchen Ausführungsformen kann die Kommunikationsschaltungsanordnung 566 einen Beschleuniger 524 einschließlich einer oder mehrerer synaptischer Vorrichtungen/Strukturen 525 usw., wie zuvor beschrieben, beinhalten oder anderweitig mit diesem gekoppelt sein.
  • Das IX 556 koppelt auch den Prozessor 552 mit einer Schnittstellenschaltungsanordnung 570, die zum Verbinden des Knotens 550 mit einer oder mehreren externen Vorrichtungen 572 verwendet wird. Die externen Vorrichtungen 572 können zum Beispiel Sensoren, Aktuatoren, Positionsbestimmungsschaltungsanordnungen (z. B. eine Schaltungsanordnung für Global Navigation Satellite System (GNSS)/Global Positioning System (GPS)), Client-Vorrichtungen, Server, Netzwerkelemente und/oder Netzwerkgeräte (z. B. Switches, Hubs, Router usw.), HW-Beschleuniger 500, integrierte Photonikvorrichtungen (z. B. eine integrierte Schaltung (IC) für Optical Neural Network (ONN) und/oder dergleichen) und/oder andere ähnliche Vorrichtungen beinhalten.
  • Die Sensoren beinhaltet Vorrichtungen, Module oder Teilsysteme, deren Zweck es ist, Ereignisse oder Änderungen in ihrer Umgebung zu detektieren und die Informationen (Sensordaten) über die detektierten Ereignisse an eine andere Vorrichtung, ein anderes Modul, ein anderes Teilsystem usw. zu senden. Beispiele für solche Sensoren beinhalten unter anderem Trägheitsmesseinheiten (IMU), die Beschleunigungsmesser, Gyroskope und/oder Magnetometer umfassen; mikroelektromechanische Systeme (MEMS) oder nanoelektromechanische Systeme (NEMS), die 3-Achsen-Beschleunigungsmesser, 3-Achsen-Gyroskope und/oder Magnetometer umfassen; Niveausensoren; Durchflusssensoren; Temperatursensoren (z. B. Thermistoren, die Sensoren zum Messen der Temperatur interner Komponenten und Sensoren zum Messen einer Temperatur außerhalb des Rechenknotens 550 beinhalten); Drucksensoren; barometrische Drucksensoren; Gravimeter; Höhenmesser; Bildaufnahmevorrichtungen (z. B. Kameras); Lichtdetektions- und Entfernungsmesssensoren (LiDAR-Sensoren); Näherungssensoren (z. B. einen Infrarotstrahlungsdetektor und dergleichen); Tiefensensoren, Umgebungslichtsensoren; optische Lichtsensoren; Ultraschallsendeempfänger; Mikrofone und dergleichen.
  • Die Aktuatoren ermöglichen es dem Rechenknoten 550, seinen Zustand, seine Position und/oder seine Ausrichtung zu ändern oder einen Mechanismus oder ein System zu bewegen oder zu steuern. Die Aktuatoren umfassen elektrische und/oder mechanische Vorrichtungen zum Bewegen oder Steuern eines Mechanismus oder Systems und wandelt Energie (z. B. elektrischen Strom oder sich bewegende Luft und/oder Flüssigkeit) in eine Art von Bewegung um. Die Aktuatoren können eine oder mehrere elektronische (oder elektrochemische) Vorrichtungen beinhalten, wie piezoelektrische Biomorphe, Festkörperaktuatoren, Festkörperrelais (SSRs), Aktuatoren auf Basis einer Formgedächtnislegierung, Aktuatoren auf Basis eines elektroaktiven Polymers, integrierte Schaltungen (ICs) für Relaistreiber und/oder dergleichen. Die Aktuatoren können eine oder mehrere elektromechanische Vorrichtungen beinhalten, wie pneumatische Aktuatoren, hydraulische Aktuatoren, elektromechanische Schalter, einschließlich elektromechanischer Relais (EMRs), Motoren (z. B. Gleichstrommotoren, Schrittmotoren, Servomechanismen usw.), Leistungsschalter, Ventilaktuatoren, Räder, Triebwerke, Propeller, Klauen, Klemmen, Haken, Hörschallgeneratoren, visuelle Warnvorrichtungen und/oder andere ähnliche elektromechanische Komponenten. Der Rechenknoten 550 kann konfiguriert sein, um einen oder mehrere Aktuatoren basierend auf einem/einer oder mehreren erfassten Ereignissen und/oder Anweisungen oder Steuersignalen, die von einem Dienstanbieter und/oder verschiedenen Client-Systemen empfangen werden, zu betreiben.
  • Bei manchen optionalen Beispielen können verschiedene Eingabe/Ausgabe-Vorrichtungen (E/A-Vorrichtungen) innerhalb des Knotens 550 vorhanden oder mit diesem verbunden sein, die in 5 als Eingabeschaltungsanordnung 586 und Ausgabeschaltungsanordnung 584 bezeichnet werden. Die Eingabeschaltungsanordnung 586 und die Ausgabeschaltungsanordnung 584 beinhalten eine oder mehrere Benutzerschnittstellen, die konfiguriert sind, um eine Benutzerinteraktion mit der Plattform 550 zu ermöglichen, und/oder Peripheriekomponentenschnittstellen, die konfiguriert sind, um eine Peripheriekomponenteninteraktion mit der Plattform 550 zu ermöglichen. Die Eingabeschaltungsanordnung 586 kann ein beliebiges physisches oder virtuelles Mittel zum Annehmen einer Eingabe beinhalten, einschließlich unter anderem einer oder mehrerer physischer oder virtueller Tasten (z. B. einer Rücksetztaste), einer physischen Tastatur, eines Tastenfelds, einer Maus, eines Touchpads, eines Touchscreens, Mikrofonen, eines Scanners, eines Headsets und/oder dergleichen. Die Ausgabeschaltungsanordnung 584 kann enthalten sein, um Informationen zu zeigen oder anderweitig Informationen zu übermitteln, wie Sensorlesewerte, eine oder mehrere Aktuatorpositionen oder andere ähnliche Informationen. Daten und/oder Grafiken können auf einer oder mehreren Benutzeroberflächenkomponenten der Ausgabeschaltungsanordnung 584 angezeigt werden. Die Ausgabeschaltungsanordnung 584 kann eine beliebige Anzahl und/oder Kombinationen einer Audio- oder visuellen Anzeige umfassen, einschließlich unter anderem einer/eines oder mehrerer einfacher visueller Ausgaben/Indikatoren (z. B. binärer Statusindikatoren (z. B. Leuchtdioden (LEDs)) und visueller Mehrzeichenausgaben oder komplexerer Ausgaben, wie etwa Anzeigevorrichtungen oder Touchscreens (z. B. Flüssigkristallanzeigen (LCD), LED-Anzeigen, Quantenpunktanzeigen, Projektoren usw.), wobei die Ausgabe von Zeichen, Grafiken, Multimediaobjekten und dergleichen aus dem Betrieb der Plattform 550 erzeugt oder produziert wird. Die Ausgabeschaltungsanordnung 584 kann auch Lautsprecher und/oder andere Audioemissionsvorrichtungen, einen oder mehrere Drucker und/oder dergleichen beinhalten. Zusätzlich oder alternativ dazu können ein oder mehrere Sensoren als die Eingabeschaltungsanordnung 584 (z. B. eine Bilderfassungsvorrichtung, Bewegungserfassungsvorrichtung oder dergleichen) verwendet werden, und ein oder mehrere Aktuatoren können als die Ausgabevorrichtungsschaltungsanordnung 584 (z. B. ein Aktuator zum Bereitstellen einer haptischen Rückmeldung oder dergleichen) verwendet werden. Peripheriekomponentenschnittstellen können unter anderem einen nicht-flüchtigen Speicheranschluss, einen USB-Anschluss, eine Audiobuchse, eine Stromversorgungsschnittstelle usw. beinhalten. Eine Anzeige- oder Konsolen-HW kann im Kontext des vorliegenden Systems verwendet werden, um eine Ausgabe bereitzustellen und eine Eingabe eines Edge-Computing-Systems zu empfangen; Komponenten oder Dienste eines Edge-Computing-Systems zu verwalten; einen Zustand einer Edge-Computing-Komponente oder eines Edge-Computing-Dienstes zu identifizieren oder eine beliebige andere Anzahl von Verwaltungs- oder Administrationsfunktionen oder Dienstanwendungsfällen durchzuführen.
  • Die Komponenten des Knotens 550 können über die Zwischenverbindung (IX) 556 kommunizieren. Die IX 556 kann eine beliebige Anzahl von Technologien beinhalten, einschließlich Industry Standard Architecture (ISA) und/oder extended ISA (EISA), FASTBUS, Low-Pin-Count-Bus (LPC-Bus), Inter-Integrated Circuit (I2C), Serial Peripheral Interface (SPI), Power Management Bus (PMBus), Peripheral Component IX (PCI), PCI express (PCIe), PCI extended (PCIx), Intel® QuickPath IX (QPI), Intel® Ultra Path IX (UPI), Intel® Accelerator Link, Compute Express Link (CXL), Coherent Accelerator Processor Interface (CAPI) und/oder OpenCAPI, Intel® Omni-Path Architecture (OPA), RapidIO™, eine Cache-kohärente Verschaltung für Beschleuniger (CCIX), Gen-Z Consortium, HyperTransport und/oder Lightning Data Transport (LDT), NVLink, bereitgestellt von NVIDIA®, InfiniBand (IB), Time-Trigger-Protokoll (TTP), FlexRay, PROFIBUS, Ethernet, Universal Serial Bus (USB), Punkt-zu-Punkt-Schnittstellen und/oder einer beliebigen Anzahl anderer IX-Technologien. Die IX 556 kann ein proprietärer Bus sein, der zum Beispiel in einem SoC-basierten System verwendet wird.
  • Die Anzahl, Fähigkeit und/oder Kapazität der Elemente des Rechenknotens 550 kann in Abhängigkeit davon variieren, ob der Rechenknoten 550 als eine stationäre Rechenvorrichtung (z. B. ein Servercomputer in einem Datenzentrum, eine Workstation, ein Desktop-Computer usw.) oder eine mobile Rechenvorrichtung (z. B. ein Smartphone, eine Tablet-Rechenvorrichtung, ein Laptop-Computer, eine Spielkonsole, eine IdD-Vorrichtung usw.) verwendet wird. Bei verschiedenen Implementierungen kann der Rechenknoten 550 eine oder mehrere Komponenten eines Datenzentrums, wie etwa einen oder mehrere Server und/oder Switches (oder Switch-Fabric), einen Desktop-Computer, eine Workstation, einen Laptop, ein Smartphone, ein Tablet, eine Digitalkamera, ein intelligentes Gerät, einen Smart-Home-Hub, ein Netzwerkgerät und/oder ein beliebiges anderes Gerät/System, das Daten verarbeitet, umfassen.
  • Bei einer beispielhaften Implementierung kann der Rechenknoten 550 eine Geräterechenvorrichtung sein oder Teil davon sein, die eine eigenständige elektronische Vorrichtung, einschließlich eines Gehäuses, eines Chassis, einer Umhüllung oder einer Schale, ist. Unter einigen Umständen kann das Gehäuse für Portabilität dimensioniert sein, sodass es von einem Menschen getragen und/oder versandt werden kann. Zusätzlich oder alternativ dazu kann das Gehäuse ein kleineres Modul sein, das zum Einbau in ein Fahrzeug oder an einer Außenposition (z. B. einem Strommasten, einer Seite eines Gebäudes, auf einem Baum oder einem Felsen und/oder dergleichen) geeignet ist. Beispielhafte Gehäuse können Materialien beinhalten, die eine oder mehrere Außenoberflächen bilden, die Inhalte des Geräts teilweise oder vollständig schützen, wobei der Schutz Wetterschutz, Schutz in gefährlichen Umgebungen (z. B. EMI, Vibration, extreme Temperaturen) beinhalten kann und/oder Eintauchbarkeit ermöglichen kann. Beispielhafte Gehäuse können eine Leistungsschaltungsanordnung beinhalten, um Leistung für stationäre und/oder tragbare Implementierungen bereitzustellen, wie Wechselstromeingänge, Gleichstromeingänge, AC/DC- oder DC/AC-Wandler, Leistungsregler, Transformatoren, Ladeschaltungsanordnungen, Batterien, drahtgebundene Eingänge und/oder drahtlose Leistungseingänge. Kleinere modulare Implementierungen können auch eine erweiterbare oder eingebettete Antennenanordnung zur drahtlosen Kommunikation beinhalten. Beispielhafte Gehäuse und/oder Oberflächen davon können Montage-HW beinhalten oder mit dieser verbunden sein, um eine Befestigung an Strukturen, wie Gebäuden, Telekommunikationsstrukturen (zum Beispiel Masten, Antennenstrukturen usw.) und/oder Racks (zum Beispiel Server-Racks, Blade-Befestigungen usw.), zu ermöglichen. Beispielhafte Gehäuse und/oder Oberflächen davon können einen oder mehrere Sensoren (z. B. Temperatursensoren, Vibrationssensoren, Lichtsensoren, Akustiksensoren, kapazitive Sensoren, Näherungssensoren usw.) unterstützen. Ein oder mehrere derartige Sensoren können in der Oberfläche enthalten, von dieser getragen oder anderweitig in dieser eingebettet und/oder an der Oberfläche des Geräts montiert sein. Beispielhafte Gehäuse und/oder Oberflächen davon können mechanische Konnektivität unterstützen, wie Antriebs-HW (z. B. Räder, Propeller usw.) und/oder Anlenkungs-HW (z. B. Roboterarme, schwenkbare Fortsätze usw.). Unter manchen Umständen können die Sensoren eine beliebige Art von Eingabevorrichtungen beinhalten, wie Benutzerschnittstellen-HW (z. B. Tasten, Schalter, Wählscheiben, Schieber usw.). Unter manchen Umständen beinhalten beispielhafte Gehäuse Ausgabevorrichtungen, die darin enthalten sind, dadurch getragen werden, darin eingebettet und/oder daran angebracht sind. Ausgabevorrichtungen können Anzeigen, Touchscreens, Leuchten, LEDs, Lautsprecher, E/A-Ports (z. B. USB, Flash, Ethernet usw.) usw. beinhalten. Unter manchen Umständen kann der Rechenknoten 550 in einem Netzwerk für einen spezifischen Zweck eingesetzt werden (z. B. eine Ampel, eine Straßenrandeinheit, eine Überwachungskamera, eine IdD-Vorrichtung und/oder autonome Sensoren usw.), kann aber Verarbeitungs- und/oder andere Kapazitäten aufweisen, die für andere Zwecke genutzt werden können. Derartige Rechenknoten 550 können unabhängig von anderen vernetzten Vorrichtungen sein und können mit einem Gehäuse versehen sein, das einen Formfaktor aufweist, der für ihren primären Zweck geeignet ist; aber sie können dennoch für andere Rechenaufgaben verfügbar sein, die ihre primäre Aufgabe nicht stören. Der Rechenknoten 550 kann HW- und SW-Komponenten beinhalten, um lokale Probleme, wie Vorrichtungstemperatur, Vibration, Ressourcennutzung, Aktualisierungen, Leistungsprobleme, physische und Netzwerksicherheit usw. zu verwalten. Diese HW- und SW-Komponenten zum Verwalten lokaler Probleme können verwendet werden, um ein ML-Modell, das durch den Rechenknoten 550 betrieben wird, gemäß den verschiedenen hier erörterten Ausführungsformen anzupassen.
  • Bei einer anderen beispielhaften Implementierung kann der Rechenknoten 550 ein oder mehrere Server sein oder in diesen enthalten sein. Ein solcher Server kann ein Betriebssystem beinhalten und eine virtuelle Rechenumgebung implementieren. Eine virtuelle Rechenumgebung kann einen Hypervisor beinhalten, der eine oder mehrere virtuelle Maschinen, einen oder mehrere Container usw. verwaltet (z. B. erzeugt, einsetzt, zerstört usw.). Solche virtuellen Rechenumgebungen stellen eine Ausführungsumgebung bereit, in der eine oder mehrere Anwendungen und/oder andere/r SW, Code oder Skripte ausgeführt werden können, während sie von einer/einem oder mehreren anderen Anwendungen, SW, Code oder Skripten isoliert sind.
  • 4. BEISPIELHAFTE IMPLEMENTIERUNGEN
  • 6 stellt einen Prozess 600 zum Durchführen einer Maschinenlernmodellaustausch- bzw. MLMS-Strategie dar. Der Prozess 600 kann von einem Rechenknoten durchgeführt werden, der das MLMS-System 100 implementiert. Der Prozess 600 beginnt bei Operation 601, bei der der Rechenknoten Kontextinformationen 105 einer HW-Plattform erhält, auf der gegenwärtig ein ML-Modell eingesetzt wird. Das gegenwärtig eingesetzte ML-Modell kann ein Supernetz 130 oder ein bestimmtes Teilnetz 135 sein, das von dem Supernetz 130 abgeleitet wird, und die HW-Plattform kann der Rechenknoten selbst oder ein anderer Rechenknoten sein. Bei Operation 602 erhält der Rechenknoten auf das ML-Modell bezogene Daten basierend auf dem Betrieb des gegenwärtig eingesetzten ML-Modells. Die auf das ML-Modell bezogenen Daten können Inferenzergebnisse 142, die durch das gegenwärtig eingesetzte ML-Modell erzeugt werden, und/oder Qualität-/Leistungsfähigkeitsmetriken 143 basierend auf den Inferenzergebnissen 142 beinhalten.
  • Bei Operation 603 bestimmt der Rechenknoten, ob Betriebsänderungen der HW-Plattform detektiert wurden. Diese Bestimmung basiert zumindest teilweise auf den Kontextinformationen 105 und den auf das ML-Modell bezogenen Daten im Vergleich zu vorbestimmten und/oder konfigurierten Schwellen (z. B. den Anwendungsqualitätsmetriken, Systembeschränkungen und Leistungsfähigkeitsauditoreinstellungen in einer ML-Konfiguration). Falls Betriebsänderungen der HW-Plattform nicht detektiert werden, kehrt der Rechenknoten zu Operation 601 zurück, um neue Kontextinformationen und dann neue auf das ML-Modell bezogene Daten bei Operation 602 zu erhalten. Falls Betriebsänderungen der HW-Plattform detektiert werden, geht der Rechenknoten zu Operation 604 über, um ein Ersatz-ML-Modell (z. B. ein anderes Teilnetz 135) aus einem Satz von Kandidaten-ML-Modellen 340 zu bestimmen oder zu identifizieren, um das gegenwärtig eingesetzte ML-Modell zu ersetzen. Das Ersatz-ML-Modell ist für Betrieb auf der HW-Plattform mit den detektierten Betriebsänderungen optimiert. Die Bestimmung/Identifizierung des Ersatz-ML-Modells kann durch Ausführen des in Tabelle 1 oben gezeigten Algorithmus für ML-Modellsuch- und -austauschstrategie erfolgen. Bei Operation 605 stellt der Rechenknoten das bestimmte/identifizierte Ersatz-ML-Modell der HW-Plattform bereit. Nach Operation 605 geht der Rechenknoten zurück zu Operation 601, um neue Kontextinformationen und dann neue auf das ML-Modell bezogene Daten bei Operation 602 zu erhalten.
  • Zusätzliche Beispiele der vorliegend beschriebenen Verfahrens-, System- und Vorrichtungsausführungsformen umfassen die folgenden, nicht einschränkenden Implementierungen. Jedes der folgenden nicht einschränkenden Beispiele kann für sich allein stehen oder kann in einer beliebigen Permutation oder Kombination mit einem oder mehreren beliebigen der anderen Beispiele, die unten oder in der gesamten vorliegenden Offenbarung bereitgestellt werden, kombiniert werden.
  • Beispiel A01 beinhaltet ein Verfahren zum Betreiben eines Maschinenlernmodellaustausch- bzw. MLMS-Systems, wobei das Verfahren Folgendes umfasst: Erhalten von Kontextinformationen einer HW-Plattform, auf der gegenwärtig ein ML-Modell eingesetzt wird; Detektieren einer Statusänderung der HW-Plattform basierend auf den Kontextinformationen der HW-Plattform und basierend auf Inferenzergebnissen, die durch das gegenwärtig eingesetzte ML-Modell erzeugt werden; und Auslösen einer MLMS-Engine, um MLMS durchzuführen, wobei MLMS Ersetzen des gegenwärtig eingesetzten ML-Modells mit einem Ersatz-ML-Modell beinhaltet und wobei das Ersatz-ML-Modell für Betrieb auf der HW-Plattform optimiert ist.
  • Beispiel A02 umfasst das Verfahren aus Beispiel A01 und/oder einem oder mehreren anderen Beispielen hierin, ferner umfassend: Betreiben der MLMS-Engine, um MLMS durchzuführen.
  • Beispiel A03 umfasst das Verfahren aus Beispiel A02 und/oder einem oder mehreren anderen Beispielen hierin, wobei das Durchführen von MLMS Folgendes umfasst: Betreiben der MLMS-Engine, um einen neuronalen Architektursuch- bzw. NAS-Algorithmus auszuführen, um das Ersatz-ML-Modell zu entdecken.
  • Beispiel A04 umfasst das Verfahren aus Beispiel A02-A03 und/oder einem oder mehreren anderen Beispielen hierin, wobei das Verfahren vor dem Einsatz des gegenwärtig eingesetzten ML-Modells ferner Folgendes umfasst: Erhalten eines Referenz-ML-Modells; Bewerten eines Satzes von ML-Modellen durch Optimieren des Referenz-ML-Modells für jede mehrerer unterschiedlicher Betriebsbedingungen der HW-Plattform, wobei ein oder mehrere ML-Modelle des Satzes von ML-Modellen weniger Parameter als das Referenz-ML-Modell aufweisen und wobei das gegenwärtig eingesetzte ML-Modell zu dem erzeugten Satz von ML-Modellen gehört; und Speichern des Satzes von ML-Modellen, wobei das Ersatz-ML-Modell zu dem gespeicherten Satz von ML-Modellen gehört.
  • Beispiel A05 umfasst das Verfahren aus Beispiel A04 und/oder einem oder mehreren anderen Beispielen hierin, wobei das Durchführen von MLMS Folgendes umfasst: Entdecken eines Satzes von Kandidaten-ML-Modellen unter dem gespeicherten Satz von ML-Modellen, die eine erste Systembeschränkung der HW-Plattform und eine zweite Systembeschränkung der HW-Plattform erfüllen, wobei die erste Systembeschränkung einen Systemkontext der HW-Plattform repräsentiert, als das gegenwärtig eingesetzte ML-Modell eingesetzt wurde, und die zweite Systembeschränkung einen Systemkontext der HW-Plattform basierend auf der detektierten Statusänderung repräsentiert; Bestimmen, für jedes Kandidaten-ML-Modell in dem Satz von Kandidaten-ML-Modellen, von Datentransferkosten, wobei die Datentransferkosten eine Menge an Rechenressourcen sind, die benötigt werden, um das gegenwärtig bereitgestellte ML-Modell durch ein entsprechendes des Satzes von Kandidaten-ML-Modellen zu ersetzen; und Auswählen, als das Ersatz-ML-Modell, eines Kandidaten-ML-Modells aus dem Satz von Kandidaten-ML-Modellen mit niedrigsten Datentransferkosten.
  • Beispiel A06 beinhaltet das Verfahren aus Beispiel A05 und/oder einigen anderen Beispielen hierin, wobei das Bestimmen der Datentransferkosten Folgendes umfasst: Vektorisieren der Kandidaten-ML-Modelle in dem Satz von Kandidaten-ML-Modellen; und Vergleichen jedes der vektorisierten Kandidaten-ML-Modelle mit einer vektorisierten Version des aktuell eingesetzten ML-Modells.
  • Beispiel A07 umfasst das Verfahren aus Beispiel A01 bis A06 und/oder einem oder mehreren anderen Beispielen hierin, ferner umfassend: Erhalten einer ML-Konfiguration, wobei die ML-Konfiguration Schwellen zum Auslösen der Durchführung von MLMS beinhaltet.
  • Beispiel A08 umfasst das Verfahren aus Beispiel A07 und/oder einem oder mehreren anderen Beispielen hierin, wobei die Schwellen zum Auslösen der Durchführung von MLMS Anwendungsqualitätsmetriken umfassen, wobei die Anwendungsqualitätsmetriken Leistungsfähigkeitsmetrikschwellen für das gegenwärtig eingesetzte ML-Modell beinhalten, die, wenn sie erreicht oder überschritten werden, eine Durchführung von MLMS auslösen.
  • Beispiel A09 beinhaltet das Verfahren aus Beispielen A07-A08 und/oder einigen anderen Beispiele hierin, wobei die Schwellen zum Auslösen der Durchführung von MLMS Systembeschränkungen beinhalten, wobei die Systembeschränkungen Schwellen für einen oder mehrere Systemparameter der HW-Plattform beinhalten, die, wenn sie erreicht oder überschritten werden, eine Durchführung von MLMS auslösen.
  • Beispiel A10 beinhaltet das Verfahren aus Beispielen A01-A09 und/oder einigen anderer Beispiele hierin, wobei die Kontextinformationen einen aktuellen Betriebsmodus der HW-Plattform beinhalten und der aktuelle Betriebsmodus der HW-Plattform einen aus einem Schlafmodus, einem Ruhemodus, einem Wachmodus und einem Burst umfasst.
  • Beispiel A11 beinhaltet das Verfahren aus Beispielen A01-A10 und/oder einigen anderen Beispiele hierin, wobei die Kontextinformationen Systemzustandsinformationen (SSI) der HW-Plattform beinhalten, und wobei die SSI eine Temperatur einzelner HW-Komponenten der HW-Plattform und/oder eine Rechenkapazität und/oder eine Speichernutzung und/oder Leistungsquellenzustandsinformationen und/oder Betriebssysteminformationen und/oder einen Halbleiterprozess der einzelnen HW-Komponenten beinhalten.
  • Beispiel A12 beinhaltet das Verfahren aus Beispielen A01-A11 und/oder einigen anderen Beispielen hierin, wobei die Kontextinformationen physische Umgebungsinformationen (PEI) über eine Umgebung, die die HW-Plattform umgibt, beinhalten und wobei die PEI eine aktuelle Temperatur und/oder Feuchtigkeit und/oder Meereshöhe und/oder Umgebungslicht und/oder Umgebungsgeräusche/Lautstärke und Wetterdaten für einen Ort der HW-Plattform beinhalten.
  • Beispiel A13 beinhaltet das Verfahren aus Beispielen A01-A12 und/oder einigen anderen Beispielen hierin, wobei die Kontextinformationen Netzwerkumgebungsinformationen (NEI) der HW-Plattform beinhalten und die NEI Kanalzustandsbedingungen und/oder Netzwerkkonnektivitätsmetriken und/oder Datenübertragungsraten und/oder Netzwerkparameter beinhalten.
  • Beispiel A14 umfasst das Verfahren aus Beispielen A01-A13 und/oder einem oder mehreren anderen Beispielen hierin, wobei das Verfahren durch einen Rechenknoten durchgeführt wird.
  • Beispiel A15 umfasst das Verfahren aus Beispiel A14 und/oder einem oder mehreren anderen Beispielen hierin, wobei der Rechenknoten die HW-Plattform ist oder der Rechenknoten eine Komponente der HW-Plattform ist.
  • Beispiel A16 umfasst das Verfahren aus Beispiel A14 und/oder einem oder mehreren anderen Beispielen hierin, wobei der Rechenknoten von der HW-Plattform getrennt ist.
  • Beispiel A17 beinhaltet das Verfahren aus Beispielen A01-A16 und/oder einigen anderen Beispielen hierin, wobei die HW-Plattform eines aus einer Internet-der-Dinge- bzw. IoT-Vorrichtung, einer Drohne, einem autonomen Fahrzeug, einer Client-Vorrichtung, einem Netzwerkgerät, einem Netzwerkelement, einem Edge-Server oder einem oder mehreren Cloud-Computing-Knoten eines Cloud-Computing-Dienstes ist.
  • Beispiel A18 beinhaltet das Verfahren aus Beispielen A01-A17 und/oder einigen anderen Beispiele hierin, wobei die HW-Plattform ein Edge-Computing-Knoten ist, wobei die MLMS-Engine eine Edge-Anwendung oder ein Edge-Dienst ist, die/der durch den Edge-Computing-Knotenbetrieben wird, und wobei das Verfahren ferner Folgendes umfasst: Betreiben eines föderierten ML-Modells zum: Verteilen entsprechender Lernaufgaben an einen Satz von Vorrichtungen in einem Kommunikationsnetzwerk, wobei der Satz von Vorrichtungen eine oder mehrere Client-Vorrichtungen oder einen oder mehrere Netzwerkzugangsknoten beinhaltet, und Erhalten einer Rückmeldung von dem Satz von Vorrichtungen, wobei die Rückmeldung abgeschlossene der entsprechenden Lernaufgaben und mindestens einen Teil der Kontextinformationen beinhaltet, wobei der Teil der Kontextinformationen eine oder mehrere aus einer Angabe einer Fähigkeit oder Unfähigkeit von Client-Vorrichtungen, die entsprechenden Lernaufgaben abzuschließen, eine oder mehrere Signalqualitätsmessungen und Umgebungsbedingungsmessungen oder -daten beinhaltet; und Betreiben der MLMS-Engine, um das Ersatz-ML-Modell basierend auf der Rückmeldung als eine optimierte Version des föderierten ML-Modells zu bestimmen.
  • Beispiel B01 beinhaltet ein Verfahren zum Betreiben eines Rechenknotens, um eine Maschinenlernmodellaustausch- bzw. MLMS-Strategie zu implementieren, wobei das Verfahren Folgendes umfasst: Erhalten von Inferenzinformationen einer HW-Plattform, auf der gegenwärtig ein ML-Modell eingesetzt wird; Erhalten von Inferenzergebnissen, die durch das gegenwärtig eingesetzte ML-Modell erzeugt werden; Detektieren von Betriebsänderungen der HW-Plattform basierend auf den Kontextinformationen und den Inferenzergebnissen; Bestimmen, als Reaktion auf die detektierten Betriebsänderungen, eines Ersatz-ML-Modells zum Ersetzen des gegenwärtig eingesetzten ML-Modells, wobei das Ersatz-ML-Modell für Betrieb auf der HW-Plattform mit den detektierten Betriebsänderungen optimiert ist; und Bereitstellen des bestimmten Ersatz-ML-Modells für die HW-Plattform.
  • Beispiel B02 umfasst das Verfahren aus Beispiel B01 und/oder einigen anderen Beispielen hierin, das ferner Folgendes umfasst: Ausführen oder Betreiben eines neuronalen Architektursuch- bzw. NAS-Algorithmus, um das Ersatz-ML-Modell zu entdecken.
  • Beispiel B03 umfasst das Verfahren aus Beispiel B01-B02 und/oder einem oder mehreren anderen Beispielen hierin, ferner umfassend: vor dem Einsatz des gegenwärtig eingesetzten ML-Modells, Optimieren eines Referenz-ML-Modells für jede von mehreren unterschiedlichen Betriebsbedingungen der HW-Plattform, wobei ein oder mehrere ML-Modelle des Satzes von ML-Modellen weniger Parameter als das Referenz-ML-Modell aufweisen; und Speichern des Satzes von ML-Modellen, wobei das gegenwärtig eingesetzte ML-Modell und das Ersatz-ML-Modell zu dem gespeicherten Satz von ML-Modellen gehören.
  • Beispiel B04 umfasst das Verfahren aus Beispiel B03 und/oder einigen anderen Beispielen hierin, wobei das Bestimmen des Ersatz-ML-Modells Folgendes umfasst: Entdecken eines Satzes von Kandidaten-ML-Modellen unter dem gespeicherten Satz von ML-Modellen, die eine erste Systembeschränkung der HW-Plattform und eine zweite Systembeschränkung der HW-Plattform erfüllen, wobei die erste Systembeschränkung Betriebsbedingungen der HW-Plattform repräsentiert, wenn das gegenwärtig eingesetzte ML-Modell eingesetzt wurde, und die zweite Systembeschränkung Betriebsbedingungen der HW-Plattform basierend auf den detektierten Betriebsänderungen repräsentiert; für jedes Kandidaten-ML-Modell in dem Satz von Kandidaten-ML-Modellen, Bestimmen von Datentransferkosten zum Ersetzen des gegenwärtig eingesetzten ML-Modells mit jeweiligen Kandidaten-ML-Modellen im Satz von Kandidaten-ML-Modellen, wobei die Datentransferkosten eine Menge an Rechenressourcen sind, die benötigt werden, um das gegenwärtig eingesetzte ML-Modell durch ein entsprechendes aus dem Satz von Kandidaten-ML-Modellen zu ersetzen; und Auswählen, als das Ersatz-ML-Modell, eines Kandidaten-ML-Modells aus dem Satz von Kandidaten-ML-Modellen mit niedrigsten Datentransferkosten.
  • Beispiel B05 umfasst das Verfahren aus Beispiel B04 und/oder einigen anderen Beispiele hierin, wobei das Bestimmen der Datentransferkosten zum Ersetzen des aktuell eingesetzten ML-Modells mit entsprechenden Kandidaten-ML-Modellen Folgendes umfasst: Vektorisieren der jeweiligen Kandidaten-ML-Modelle; und Vergleichen jedes der vektorisierten Kandidaten-ML-Modelle mit einer vektorisierten Version des aktuell eingesetzten ML-Modells.
  • Beispiel B06 umfasst das Verfahren aus Beispielen B01-B05 und/oder einigen anderen Beispielen hierin, ferner umfassend: Erhalten einer ML-Konfiguration einschließlich Anwendungsqualitätsmetriken, Systembeschränkungen, Und Leistungsfähigkeitsauditoreinstellungen, wobei die Anwendungsqualitätsmetriken Leistungsfähigkeitsmetrikbereiche für das gegenwärtig eingesetzte ML-Modell beinhalten, wobei die Systembeschränkungen Bereiche von Systemparametern der HW-Plattform beinhalten, und wobei die Leistungsfähigkeitsauditoreinstellungen Kombinationen der Anwendungsqualitätsmetriken und der Systembeschränkungen beinhalten, die Betriebsänderungen der HW-Plattform anzeigen.
  • Beispiel B07 umfasst das Verfahren aus Beispiel B01 und/oder einigen anderen Beispielen hierin, wobei die Kontextinformationen einen aktuellen Betriebsmodus der HW-Plattform und/oder Systemzustandsinformationen der HW-Plattform und/oder physische Umgebungsinformationen über eine Umgebung, die die HW-Plattform umgibt, und Netzwerkumgebungsinformationen über Netzwerkbedingungen der HW-Plattform umfassen.
  • Beispiel B08 umfasst das Verfahren aus Beispiel B01 und/oder einem oder mehreren anderen Beispielen hierin, wobei der Rechenknoten die HW-Plattform ist oder der Rechenknoten eine Komponente der HW-Plattform ist.
  • Beispiel B09 umfasst das Verfahren aus Beispiel B01 und/oder einem oder mehreren anderen Beispielen hierin, wobei die HW-Plattform eine andere Vorrichtung als der Rechenknoten ist.
  • Beispiel B10 umfasst das Verfahren aus Beispiel B01 und/oder einigen anderen Beispielen hierin, wobei die HW-Plattform eine Internet-der-Dinge- bzw. IoT-Vorrichtung, eine Drohne, ein Roboter, ein autonomes Fahrzeug, eine Client-Vorrichtung, ein Netzwerkgerät, ein Netzwerkelement, ein Edge-Server oder ein oder mehrere Cloud-Computing-Knoten eines Cloud-Computing-Dienstes ist.
  • Beispiel B 11 umfasst das Verfahren aus Beispiel B01-AB10 und/oder einem oder mehreren anderen Beispielen hierin, wobei die HW-Plattform ein Edge-Computing-Knoten ist und das Verfahren ferner Folgendes umfasst: Verteilen entsprechender Lernaufgaben eines föderierten ML-Modells an einen Satz von Vorrichtungen in einem Kommunikationsnetzwerk, wobei der Satz von Vorrichtungen eine oder mehrere Client-Vorrichtungen oder einen oder mehrere Netzwerkzugangsknoten beinhaltet; Erhalten einer Rückmeldung von dem Satz von Vorrichtungen, wobei die Rückmeldung abgeschlossene der entsprechenden Lernaufgaben und mindestens einen Teil der Kontextinformationen beinhaltet, wobei der Teil der Kontextinformation eine oder mehrere aus einer Angabe einer Fähigkeit oder Unfähigkeit einzelner Vorrichtungen des Satzes von Vorrichtungen, die jeweiligen Lernaufgaben abzuschließen, eine oder mehrere Signalqualitätsmessungen und Umgebungsbedingungsdaten beinhaltet; und Bestimmen, basierend auf der Rückmeldung, dass das Ersatz-ML-Modell eine optimierte Version des föderierten ML-Modells ist.
  • Beispiel Z01 umfasst ein oder mehrere computerlesbare Medien, die Anweisungen umfassen, wobei die Ausführung der Anweisungen durch die Prozessorschaltungsanordnung die Prozessorschaltungsanordnung veranlassen soll, das Verfahren aus einem der Beispiele A01-A18, B01-B11 und/oder einem beliebigen anderen hierin erörterten Aspekt durchzuführen. Beispiel Z02 umfasst ein Computerprogramm, das die Anweisungen von Beispiel Z01 umfasst. Beispiel Z03 umfasst eine Anwendungsprogrammierschnittstelle, die Funktionen, Verfahren, Variablen, Datenstrukturen und/oder Protokolle für das Computerprogramm aus Beispiel Z02 definiert. Beispiel Z04 umfasst eine Einrichtung, die eine Schaltungsanordnung umfasst, die mit den Anweisungen aus Beispiel Z01 geladen ist. Beispiel Z05 umfasst eine Einrichtung, die eine Schaltungsanordnung umfasst, die betreibbar ist, um die Anweisungen aus Beispiel Z01 auszuführen. Beispiel Z06 umfasst eine integrierte Schaltung, die die Prozessorschaltungsanordnung aus Beispiel Z01 und das eine oder die mehreren computerlesbaren Medien aus Beispiel Z01 umfasst. Beispiel Z07 umfasst ein Rechensystem, das das eine oder die mehreren computerlesbaren Medien und die Prozessorschaltungsanordnung aus Beispiel Z01 umfasst. Beispiel Z08 umfasst eine Einrichtung, die Mittel zum Ausführen der Anweisungen aus Beispiel Z01 umfasst. Beispiel Z09 umfasst ein Signal, das als Ergebnis eines Ausführens der Anweisungen aus Beispiel Z01 erzeugt wird. Beispiel Z10 umfasst eine Dateneinheit, die als ein Ergebnis des Ausführens der Anweisungen aus Beispiel Z01 erzeugt wird. Beispiel Z11 umfasst die Dateneinheit aus Beispiel Z10, wobei die Dateneinheit ein Datagramm, ein Netzwerkpaket, einen Datenframe, ein Datensegment, eine Protokolldateneinheit (PDU), eine Dienstdateneinheit (SDU), eine Nachricht oder ein Datenbankobjekt ist. Beispiel Z12 umfasst ein Signal, das mit der Dateneinheit aus Beispiel Z10 oder Z11 codiert ist. Beispiel Z13 umfasst ein elektromagnetisches Signal, das die Anweisungen aus Beispiel Z01 trägt. Beispiel Z14 umfasst eine Einrichtung, die Mittel zum Durchführen des Verfahrens aus einem beliebigen der Beispiele A01-A18, B01-B11 und/oder einem beliebigen anderen hierin erörterten Aspekt umfasst.
  • 5. TERMINOLOGIE
  • Wie hierin verwendet, sollen die Singularformen „ein“, „eine“ und „der/die/das“ auch Pluralformen einschließen, sofern der Kontext nicht eindeutig etwas anderes angibt. Es versteht sich ferner, dass die Begriffe „umfasst“ und/oder „umfassend“, wenn in dieser Beschreibung verwendet, das Vorhandensein aufgeführter Merkmale, ganzer Zahlen, Schritte, Operationen, Elemente und/oder Komponenten spezifiziert, aber nicht das Vorhandensein oder das Hinzufügen eines oder mehrerer anderer Merkmale, ganzer Zahlen, Schritte, Operation, Elemente, Komponenten und/oder Gruppen davon ausschließt. Der Ausdruck „A und/oder B“ bedeutet (A), (B) oder (A und B). Im Rahmen der vorliegenden Offenbarung bedeutet die Phrase „A, B und/oder C“ so viel wie (A), (B), (C), (A und B), (A und C), (B und C) oder (A, B und C). Die Beschreibung kann die Ausdrücke „in einer Ausführungsform“ oder „in manchen Ausführungsformen“ verwenden, die sich jeweils auf eine oder mehrere der gleichen oder unterschiedlichen Ausführungsformen beziehen können. Weiterhin sind die Begriffe „umfassend“, „beinhaltend“, „aufweisend“ und dergleichen, wie sie mit Bezug auf die vorliegende Offenbarung verwendet werden, synonym.
  • Die Begriffe „gekoppelt“, „kommunikativ gekoppelt“ werden, zusammen mit Ableitungen davon, hierin verwendet. Der Begriff „gekoppelt“ kann bedeuten, dass sich zwei oder mehr Elemente in direktem physischem oder elektrischem Kontakt miteinander befinden, kann bedeuten, dass sich zwei oder mehr Elemente indirekt berühren, aber immer noch miteinander zusammenwirken oder interagieren, und/oder kann bedeuten, dass ein oder mehrere andere Elemente zwischen den Elementen gekoppelt oder verbunden sind, die als miteinander gekoppelt bezeichnet werden. Der Begriff „direkt gekoppelt“ kann bedeuten, dass zwei oder mehr Elemente in direktem Kontakt miteinander stehen. Der Begriff „kommunikativ gekoppelt“ kann bedeuten, dass zwei oder mehr Elemente durch ein Kommunikationsmittel, einschließlich über einen Draht oder eine andere Zusammenschaltungsverbindung, über einen Drahtloskommunikationskanal oder -Link und/oder dergleichen, miteinander in Kontakt stehen können.
  • Der Begriff „Herstellen“ oder „Herstellung“ verweist zumindest in manchen Ausführungsformen auf (partielle oder vollständig) Aktionen, Aufgaben, Operationen usw. in Bezug auf das Herbeiführen oder die Vorbereitung auf das Herbeiführen von etwas, entweder aktiv oder passiv (z. B. Aufdecken einer Vorrichtungsidentität oder Entitätsidentität). Zusätzlich oder alternativ dazu verweist der Begriff „Herstellen“ oder „Herstellung“ zumindest in manchen Ausführungsformen auf (partielle oder vollständig) Aktionen, Aufgaben, Operationen usw. in Bezug auf Initiieren, Starten oder Aufwärmen einer Kommunikation oder Initiieren, Starten oder Aufwärmen einer Beziehung zwischen zwei Entitäten oder Elementen verweisen (z. B. Herstellen einer Sitzung, Herstellen einer Sitzung usw.). Zusätzlich oder alternativ dazu verweist der Begriff „Herstellen“ oder „Herstellung“ zumindest in manchen Ausführungsformen auf das Initiieren von etwas in einen Zustand der Arbeitsbereitschaft. Der Begriff „hergestellt“ verweist zumindest in manchen Ausführungsformen auf einen betriebsbereiten oder gebrauchsfertigen Zustand (zum Beispiel vollständige Herstellung). Darüber hinaus kann eine beliebige Definition für den Begriff „Herstellen“ oder „Herstellung“, die in einer beliebigen Spezifikation oder einem beliebigen Standard definiert ist, für Zwecke der vorliegenden Offenbarung verwendet werden, und derartige Definitionen werden nicht von einer der oben genannten Definitionen verworfen.
  • Der Begriff „erhalten“ verweist zumindest in manchen Ausführungsformen auf (partielle oder vollständige) Aktionen, Aufgaben, Operationen usw. zum Abfangen, Verschieben, Kopieren, Abrufen oder Erfassen (z. B. aus einem Speicher, einer Schnittstelle oder einem Puffer), auf den ursprünglichen Paketstrom oder auf eine Kopie (z. B. eine neue Instanz) des Paketstroms. Andere Aspekte des Erhaltens oder Empfangens können Instanziieren, Aktivieren oder Steuern der Fähigkeit zum Erhalten oder Empfangen des Stroms von Paketen (oder der folgenden Parameter und Vorlagen oder Vorlagenwerte) beinhalten.
  • Der Begriff „Element“ verweist zumindest in manchen Ausführungsformen auf eine Einheit, die auf einem gegebenen Abstraktionsniveau unteilbar ist und eine klar definierte Grenze aufweist, wobei ein Element eine beliebige Art von Entität sein kann, einschließlich zum Beispiel einer/eines oder mehrerer Vorrichtungen, Systeme, Steuerungen, Netzwerkelemente, Module usw. oder Kombinationen davon.
  • Der Begriff „Messung“ verweist zumindest in manchen Ausführungsformen auf die Beobachtung und/oder Quantifizierung von Attributen eines Objekts, Ereignisses oder Phänomens.
  • Der Begriff „Genauigkeit“ verweist zumindest in manchen Ausführungsformen auf die Nähe einer oder mehrerer Messungen zu einem speziellen Wert. Der Begriff „Präzision“ verweist zumindest in manchen Ausführungsformen auf die Nähe der zwei oder mehr Messungen zueinander.
  • Der Begriff „Signal“ verweist zumindest in manchen Ausführungsformen auf eine beobachtbare Änderung einer Qualität und/oder Quantität. Zusätzlich oder alternativ dazu verweist der Begriff „Signal“ zumindest in manchen Ausführungsformen auf eine Funktion, die Informationen über ein Objekt, ein Ereignis oder ein Phänomen vermittelt. Zusätzlich oder alternativ dazu verweist der Begriff „Signal“ zumindest in manchen Ausführungsformen auf eine beliebige zeitlich variierende Spannung, einen beliebigen zeitlich variierenden Strom oder eine beliebige zeitlich variierende elektromagnetische Welle, die/der Informationen tragen kann oder nicht. Der Begriff „digitales Signal“ verweist zumindest in manchen Ausführungsformen auf ein Signal, das aus einem diskreten Satz von Wellenformen einer physikalischen Größe konstruiert ist, um eine Sequenz diskreter Werte zu repräsentieren.
  • Der Begriff „Schaltungsanordnung“ verweist zumindest in manchen Ausführungsformen auf eine Schaltung oder ein System aus mehreren Schaltungen, die bzw. das dazu konfiguriert ist, eine bestimmte Funktion in einer elektronischen Vorrichtung durchzuführen. Die Schaltung oder das System von Schaltungen kann Teil einer oder mehrerer Hardwarekomponenten sein oder diese beinhalten, wie etwa eine Logikschaltung, ein Prozessor (geteilt, dediziert oder Gruppe) und/oder ein Speicher (geteilt, dediziert oder Gruppe), eine ASIC, ein FPGA, programmierbare Logiksteuerung (PLC), SoC, SiP, Mehrchip-Package (MCP), DSP usw., die dazu ausgelegt sind, die beschriebene Funktionalität bereitzustellen. Außerdem kann der Begriff „Schaltungsanordnung“ auf eine Kombination eines oder mehrerer Hardwareelemente mit dem Programmcode verweisen, der zum Ausführen der Funktionalität dieses Programmcodes verwendet wird. Einige Arten von Schaltungsanordnungen können ein oder mehrere Software- oder Firmware-Programme ausführen, um zumindest einen Teil der beschriebenen Funktionalität bereitzustellen. Eine solche Kombination aus Hardwareelementen und Programmcode kann als ein bestimmter Typ von Schaltungsanordnung bezeichnet werden.
  • Es versteht sich, dass die in dieser Beschreibung beschriebenen Funktionseinheiten oder Fähigkeiten als Komponenten oder Module bezeichnet oder gekennzeichnet worden sein können, um ihre Implementierungsunabhängigkeit genauer hervorzuheben. Solche Komponenten können durch eine beliebige Anzahl von Software- oder Hardwareformen umgesetzt werden. Zum Beispiel kann eine Komponente oder ein Modul als eine Hardwareschaltung implementiert werden, die angepasste Integrationsschaltungen in sehr großem Maßstab (VLSI, Very Large Scale Integration) oder Gate-Arrays, handelsübliche Halbleiter, wie Logikchips, Transistoren oder andere diskrete Komponenten, umfasst. Eine Komponente oder ein Modul kann auch in programmierbaren Hardwarevorrichtungen implementiert werden, wie feldprogrammierbaren Gate-Arrays, programmierbarer Arraylogik, programmierbaren Logikvorrichtungen oder dergleichen. Komponenten oder Module können auch in Software zur Ausführung durch verschiedene Arten von Prozessoren implementiert werden. Eine identifizierte Komponente oder ein identifiziertes Modul ausführbaren Codes kann beispielsweise einen oder mehrere physische oder logische Blöcke von Computeranweisungen umfassen, die beispielsweise als ein Objekt, eine Prozedur oder eine Funktion organisiert sein können. Nichtsdestotrotz müssen die ausführbaren Elemente einer identifizierten Komponente oder eines identifizierten Moduls nicht physisch zusammen lokalisiert sein, sondern können unterschiedliche Anweisungen umfassen, die an verschiedenen Orten gespeichert sind, die, wenn sie logisch miteinander verbunden sind, die Komponente oder das Modul umfassen und den angegebenen Zweck für die Komponente oder das Modul erfüllen.
  • Tatsächlich kann eine Komponente oder ein Modul eines ausführbaren Codes eine einzige Anweisung oder viele Anweisungen sein und kann sogar über mehrere verschiedene Codesegmente, unter verschiedenen Programmen und über einige Speichervorrichtungen oder Verarbeitungssysteme hinweg verteilt sein. Insbesondere können einige Aspekte des beschriebenen Prozesses (wie etwa Codeumschreiben und Codeanalyse) auf einem anderen Verarbeitungssystem (z. B. in einem Computer in einem Datenzentrum) als jenem stattfinden, in dem der Code eingesetzt wird (z. B. in einem Computer, der in einen Sensor oder Roboter eingebettet ist). Auf ähnliche Weise können Betriebsdaten hier innerhalb von Komponenten oder Modulen identifiziert und veranschaulicht werden und können in einer beliebigen geeigneten Form umgesetzt und in einer beliebigen geeigneten Art von Datenstruktur organisiert sein. Die Betriebsdaten können als ein einziger Datensatz erfasst werden oder können über verschiedene Orte, einschließlich über verschiedene Speicherungsvorrichtungen, verteilt werden und können zumindest teilweise lediglich als elektronische Signale in einem System oder Netzwerk existieren. Die Komponenten oder Module können passiv oder aktiv sein, einschließlich Agenten, die dazu betreibbar sind, gewünschte Funktionen auszuführen.
  • Der Begriff „Prozessorschaltungsanordnung“ verweist zumindest in manchen Ausführungsformen auf eine Schaltungsanordnung, ist ein Teil davon oder beinhaltet diese, welche dazu in der Lage ist, sequenziell und automatisch eine Sequenz arithmetischer oder logischer Operationen oder Aufzeichnen, Speichern und/oder Übertragen digitaler Daten auszuführen. Der Begriff „Prozessorschaltungsanordnung“ verweist zumindest in manchen Ausführungsformen auf einen oder mehrere Anwendungsprozessoren, einen oder mehrere Basisbandprozessoren, eine physische CPU, einen Einzelkernprozessor, einen Doppelkernprozessor, einen Dreikernprozessor, einen Vierkemprozessor und/oder eine beliebige andere Vorrichtung, die dazu in der Lage ist, computerausführbare Anweisungen, wie etwa Programmcode, Softwaremodule und/oder funktionale Prozesse, auszuführen oder anderweitig zu betreiben. Die Begriffe „Anwendungsschaltungsanordnung“ und/oder „Basisbandschaltungsanordnung“ können als synonym zu „Prozessorschaltungsanordnung“ angesehen werden und können als solche bezeichnet werden.
  • Der Begriff „Speicher“ und/oder „Speicherschaltungsanordnung“ verweist zumindest in manchen Ausführungsformen auf eine oder mehrere Hardwarevorrichtungen zum Speichern von Daten, einschließlich RAM, MRAM, PRAM, DRAM und/oder SDRAM, Kernspeicher, ROM, Magnetplattenspeicherungsmedien, optische Speicherungsmedien, Flash-Speichervorrichtungen oder andere maschinenlesbare Medien zum Speichern von Daten. Der Begriff „computerlesbares Medium“ kann unter anderem Speicher, portable oder feste Speicherungsvorrichtungen, optische Speicherungsvorrichtungen und verschiedene andere Medien beinhalten, die dazu in der Lage sind, Anweisungen oder Daten zu speichern, zu halten oder zu tragen.
  • Der Begriff „Schnittstellenschaltungsanordnung“ verweist zumindest in manchen Ausführungsformen auf eine Schaltungsanordnung, ist Teil davon oder beinhaltet diese, welche den Austausch von Informationen zwischen zwei oder mehr Komponenten oder Vorrichtungen ermöglicht. Der Begriff „Schnittstellenschaltungsanordnung“ verweist zumindest in manchen Ausführungsformen auf eine oder mehrere Hardwareschnittstellen, zum Beispiel Busse, E/A-Schnittstellen, Peripheriekomponentenschnittstellen, Netzwerkschnittstellenkarten und/oder dergleichen.
  • Der Begriff „Vorrichtung“ verweist zumindest in manchen Ausführungsformen auf eine physische Entität, die innerhalb einer anderen physischen Entität in ihrer Nähe eingebettet oder an dieser angebracht ist, mit Fähigkeiten, digitale Informationen von oder zu dieser physischen Entität zu übertragen.
  • Der Begriff „Entität“ verweist zumindest in manchen Ausführungsformen auf eine distinkte Komponente einer Architektur oder Vorrichtung, oder Informationen, die als Nutzdaten übertragen werden.
  • Der Begriff „Steuerung“ verweist zumindest in manchen Ausführungsformen auf ein Element oder eine Entität, das/die die Fähigkeit aufweist, eine physische Entität zu beeinflussen, wie etwa durch Ändern ihres Zustands oder Bewirken, dass sich die physische Entität bewegt.
  • Der Begriff „Rechenknoten“ oder „Rechenvorrichtung“ verweist zumindest in manchen Ausführungsformen auf eine identifizierbare Entität, die einen Aspekt von Rechenoperationen implementiert, sei es Teil eines größeren Systems, einer verteilten Sammlung von Systemen oder einer eigenständigen Einrichtung. Bei manchen Beispielen kann ein Rechenknoten als eine „Datenverarbeitungsvorrichtung“, ein „Datenverarbeitungssystem“ oder dergleichen bezeichnet werden, sei es im Betrieb als ein Client, ein Server oder eine Zwischenentität. Spezifische Implementierungen eines Rechenknotens können in einen Server, eine Basisstation, ein Gateway, eine Stra-ßenrandeinheit, eine Vor-Ort-Einheit, ein Benutzergerät (UE), eine Endverbrauchervorrichtung, ein Gerät oder dergleichen integriert sein.
  • Der Begriff „Computersystem“ verweist zumindest in manchen Ausführungsformen auf eine beliebige Art von miteinander verbundenen elektronischen Vorrichtungen, Computervorrichtungen oder Komponenten davon. Zusätzlich verweisen die Begriffe „Computersystem“ und/oder „System“ zumindest in manchen Ausführungsformen auf verschiedene Komponenten eines Computers, die kommunikativ miteinander gekoppelt sind. Ferner verweist der Begriff „Computersystem“ und/oder „System“ zumindest in manchen Ausführungsformen auf mehrere Computervorrichtungen und/oder mehrere Rechensysteme, die kommunikativ miteinander gekoppelt und dazu konfiguriert sind, Rechen- und/oder Vernetzungsressourcen gemeinsam zu nutzen.
  • Der Begriff „Architektur“ verweist zumindest in manchen Ausführungsformen auf eine Computerarchitektur oder eine Netzwerkarchitektur. Eine „Computerarchitektur“ ist eine physische und logische Gestaltung oder Anordnung von Software- und/oder Hardwareelementen in einem Datenverarbeitungssystem oder einer Datenverarbeitungsplattform einschließlich Technologiestandards für Interaktionen dazwischen. Eine „Netzwerkarchitektur“ ist eine physische und logische Gestaltung oder Anordnung von Software- und/oder Hardwareelementen in einem Netzwerk einschließlich Kommunikationsprotokollen, Schnittstellen und Medienübertragung.
  • Der Begriff „Gerät“, „Computergerät“ oder dergleichen verweist zumindest in manchen Ausführungsformen auf eine Computervorrichtung oder ein Computersystem mit Programmcode (z. B. Software oder Firmware), der speziell dazu gestaltet ist, eine spezielle Rechenressource bereitzustellen. Ein „virtuelles Gerät“ ist ein virtuelles Maschinenabbild, das durch eine Hypervisorausgestattete Vorrichtung zu implementieren ist, die ein Computergerät virtualisiert oder emuliert oder anderweitig dediziert ist, eine spezifische Rechenressource bereitzustellen.
  • Der Begriff „Benutzergerät“ oder „UE“ verweist zumindest in manchen Ausführungsformen auf eine Vorrichtung mit Funkkommunikationsfähigkeiten und kann einen fernen Benutzer von Netzwerkressourcen in einem Kommunikationsnetzwerk beschreiben. Der Begriff „Benutzergerät“ oder „UE“ kann als Synonym für Client, Mobilteil, Mobilvorrichtung, Mobilendgerät, Benutzerendgerät, Mobileinheit, Station, Mobilstation, Mobilbenutzer, Teilnehmer, Benutzer, Fernstation, Zugangsagent, Benutzeragent, Empfänger, Funkgerät, rekonfigurierbares Funkgerät, rekonfigurierbare Mobilvorrichtung usw. angesehen und als solche bezeichnet werden. Des Weiteren kann der Begriff „Benutzergerät“ oder „UE“ eine beliebige Art von drahtloser/drahtgebundener Vorrichtung oder eine beliebige Rechenvorrichtung mit einer Drahtloskommunikationsschnittstelle beinhalten. Beispiele für UEs, Client-Vorrichtungen usw. beinhalten Desktop-Computer, Workstations, Laptop-Computer, mobile Datenendgeräte, Smartphones, Tablet-Computer, Wearable-Vorrichtungen, Maschine-zu-Maschine(M2M)-Vorrichtungen, Maschinentyp-Kommunikation(MTC)-Vorrichtungen, Intemet-der-Dinge(IoT)-Vorrichtungen, eingebettete Systeme, Sensoren, autonome Fahrzeuge, Drohnen, Roboter, fahrzeuginterne Infotainmentsysteme, Instrumentencluster, Onboard-Diagnosevorrichtungen, Dashtop-Mobilgerät, elektronische Motorverwaltungssysteme, Elektronik-/Motorsteuereinheiten/-module, Mikrocontroller, Steuermodul, Servervorrichtungen, Netzwerkgeräte, Head-Up-Display(HUD)-Vorrichtungen, Helm-montierte Anzeigevorrichtungen, Augmented-Reality(AR)-Vorrichtungen, Virtual-Reality(VR)-Vorrichtungen, Mixed-Reality(MR)-Vorrichtungen und/oder andere ähnliche Systeme oder Vorrichtungen.
  • Der Begriff „Edge-Computing“ umfasst viele Implementierungen verteilter Datenverarbeitung, die Verarbeitungsaktivitäten und -Ressourcen (z. B. Berechnung, Speicherung, Beschleunigungsressourcen) in Richtung des Randes („Edge“) des Netzwerks bewegen, in einem Bestreben, Latenz zu reduzieren und den Durchsatz für Endpunktbenutzer (Client-Vorrichtungen, Benutzergeräte usw.) zu erhöhen. Solche Edge-Computing-Implementierungen umfassen typischerweise das Anbieten solcher Aktivitäten und Ressourcen in Cloud-ähnlichen Diensten, Funktionen, Anwendungen und Teilsystemen von einem oder mehreren Orten, auf die über drahtlose Netzwerke zugegriffen werden kann.
  • Der Begriff „Edge-Computing-Knoten“ oder „Edge-Computing-Vorrichtung“ verweist mindestens bei einigen Ausführungsformen auf eine identifizierbare Entität, die einen Aspekt von Edge-Computing-Operationen implementiert, sei es als Teil eines größeren Systems, einer verteilten Sammlung von Systemen oder eine eigenständige Einrichtung. Bei manchen Beispielen kann ein Rechenknoten als „Edge-Knoten“, „Edge-Vorrichtung“, „Edge-System“ bezeichnet werden, ob er nun als ein Client, Server oder eine Zwischenentität in Betrieb ist. Zusätzlich oder alternativ verweist der Begriff „Edge-Computing-Knoten“ mindestens bei einigen Ausführungsformen auf eine reale, logische oder virtualisierte Implementierung eines rechenfähigen Elements in der Form einer Vorrichtung, eines Gateways, einer Brücke, eines Systems oder eines Teilsystems, einer Komponente, egal ob er in einem Server-, Client-, Endpunkt- oder Peer-Modus arbeitet, und ob er sich an einem „Rand“ eines Netzwerks oder an einem verbundenen Ort weiter innerhalb des Netzwerks befindet. Bezugnahmen auf einen hierin verwendeten „Knoten“ sind im Allgemeinen mit einer „Vorrichtung“, einer „Komponente“, einem „Teilsystem“ austauschbar. Zusätzlich oder alternativ beziehen sich Verweise auf ein „Edge-Computing-System“ allgemein auf eine verteilte Architektur, Organisation oder Sammlung mehrerer Knoten und Vorrichtungen, die organisiert ist, um einen gewissen Aspekt von Diensten oder Ressourcen in einer Edge-Computing-Umgebung zu realisieren oder anzubieten.
  • Der Begriff „Cloud-Computing“ oder „Cloud“ bezieht sich zumindest in einigen Ausführungsformen auf ein Paradigma zum Ermöglichen von Netzwerkzugriff auf einen skalierbaren und elastischen Pool von gemeinsam nutzbaren Rechenressourcen mit Selbstbedienungsbereitstellung und -Verwaltung bei Bedarf und ohne aktive Verwaltung durch Benutzer. Cloud-Computing stellt Cloud-Computing-Dienste (oder Cloud-Dienste) bereit, bei denen es sich um eine oder mehrere über Cloud-Computing angebotene Fähigkeiten handelt, die unter Verwendung einer definierten Schnittstelle (z. B. einer API oder dergleichen) aufgerufen werden. Der Begriff „Cloud-Dienstanbieter“ (oder CSP) bezeichnet eine Organisation, die typischerweise umfangreiche „Cloud“-Ressourcen betreibt, die zentralisierte, regionale und Edge-Datenzentren (z. B. wie im Kontext der öffentlichen Cloud verwendet) umfassen. In anderen Beispielen kann ein CSP auch als ein Cloud-Dienstbetreiber (CSO) bezeichnet werden. Verweise auf „Cloud-Computing“ beziehen sich allgemein auf Rechenressourcen und -dienste, die von einem CSP oder einem CSO an fernen Orten mit wenigstens etwas erhöhter Latenz, Entfernung oder Beschränkungen relativ zu Edge-Computing angeboten werden.
  • Der Begriff „Netzwerkelement“ verweist zumindest in manchen Ausführungsformen auf ein physisches oder virtualisiertes Gerät und/oder eine physische oder virtualisierte Infrastruktur, die verwendet werden, um drahtgebundene oder drahtlose Kommunikationsnetzwerkdienste bereitzustellen. Der Begriff „Netzwerkelement“ kann als synonym zu einem vernetzten Computer, einer vernetzten Hardware, einem Netzwerkgerät, einem Netzwerkknoten, einem Router, einem Switch, einem Hub, einer Brücke, einer Funknetzwerksteuerung, einem Netzwerkzugangsknoten (NAN), einer Basisstation, einem Zugangspunkt (AP), einer RAN-Vorrichtung, einem RAN-Knoten, einem Gateway, einem Server, einem Netzwerkgerät, einer Netzwerkfunktion (NF), einer virtualisierten NF (VNF) und/oder dergleichen angesehen und/oder als diese bezeichnet werden.
  • Der Begriff „Anwendung“ verweist zumindest in manchen Ausführungsformen auf ein Computerprogramm, das dazu ausgelegt ist, eine spezielle Aufgabe außer einer, die den Betrieb des Computers selbst betrifft, auszuführen. Zusätzlich oder alternativ dazu verweist der Begriff „Anwendung“ zumindest in manchen Ausführungsformen auf ein(e) vollständige(s) und einsetzbares Package, Umgebung, um eine gewisse Funktion in einer Betriebsumgebung zu erreichen.
  • Der Begriff „Algorithmus“ verweist zumindest in manchen Ausführungsformen auf eine eindeutige Spezifikation davon, wie ein Problem oder eine Klasse von Problemen durch Durchführen von Berechnungen, Eingabe/Ausgabe-Operationen, Datenverarbeitung, automatisierten Schlussfolgerungsaufgaben und/oder dergleichen zu lösen ist.
  • Die Begriffe „Instanziieren“, „Instanziierung“ und dergleichen verweisen zumindest in manchen Ausführungsformen auf die Erzeugung einer Instanz. Eine „Instanz“ verweist auch zumindest in manchen Ausführungsformen auf ein konkretes Auftreten eines Objekts, das zum Beispiel während der Ausführung von Programmcode auftreten kann.
  • Der Begriff „Referenz“ verweist zumindest in manchen Ausführungsformen auf Daten, die verwendet werden können, um andere Daten zu lokalisieren, und kann auf vielfältige Weise implementiert werden (z. B. ein Zeiger, ein Index, ein Handle, ein Schlüssel, eine Kennung, ein Hyperlink usw.).
  • Der Begriff „Künstliche Intelligenz“ oder „KI“ verweist zumindest in manchen Ausführungsformen im Gegensatz zu der natürlichen Intelligenz, die von Menschen und anderen Tieren gezeigt wird, auf eine beliebige Intelligenz, die von Maschinen demonstriert wird. Zusätzlich oder alternativ dazu verweist der Begriff „künstliche Intelligenz“ oder „KI“ zumindest in manchen Ausführungsformen auf die Untersuchung von „intelligenten Agenten“ und/oder einer beliebigen Vorrichtung, die ihre Umgebung wahrnimmt und Aktionen ergreift, die ihre Chance zum erfolgreichen Erreichen eines Ziels maximieren.
  • Die Begriffe „künstliches neuronales Netzwerk“, „neuronales Netzwerk“ oder „NN“ verweisen auf eine ML-Technik, die eine Sammlung verbundener künstlicher Neuronen oder Knoten umfasst, die (lose) Neuronen in einem biologischen Gehirn modellieren, die Signale an andere künstliche Neuronen oder Knoten übertragen können, wobei Verbindungen (oder Kanten) zwischen den künstlichen Neuronen oder Knoten (lose) nach Synapsen eines biologischen Gehirns modelliert werden. Die künstlichen Neuronen und Kanten weisen üblicherweise eine Gewichtung auf, die mit fortschreitendem Lernen angepasst wird. Die Gewichtung erhöht oder verringert die Stärke des Signals an einer Verbindung. Die Neuronen können eine Schwelle aufweisen, sodass ein Signal nur dann gesendet wird, wenn das aggregierte Signal diese Schwelle überschreitet. Die künstlichen Neuronen können in eine oder mehrere Schichten aggregiert oder gruppiert werden, wobei unterschiedliche Schichten unterschiedliche Transformationen an ihren Eingaben durchführen können. Signale bewegen sich von der ersten Schicht (der Eingabeschicht) zur letzten Schicht (der Ausgabeschicht), möglicherweise nach mehrmaligem Durchlaufen der Schichten. NNs werden üblicherweise für überwachtes Lernen verwendet, können aber auch für unüberwachtes Lernen verwendet werden. Beispiele für NNS beinhalten ein tiefes NN (DNN), ein vorwärtsgekoppeltes NN (FFN), ein tiefes FNN (DFF), ein faltendes NN (CNN), ein tiefes CNN (DCN), ein entfaltendes NN (DNN), ein Deep-Belief-NN, ein Perzeptron-NN, ein rekurrentes NN (RNN) (z. B. einschließlich eines LSTM-Algorithmus (langes Kurzzeitgedächtnis)), eine Gated Recurrent Unit (GRU), ein Echo-State-Netzwerk (ESN) usw.), ein gepulstes NN (SNN), ein Deep-Stacking-Netzwerk (DSN), eine Markov-Kette, ein Perzeptron-NN, ein erzeugendes gegnerisches Netzwerk (GAN, Generative Adversarial Network), Transformatoren, stochastische NNs (z. B. ein Bayessches Netzwerk (BN), ein Bayessches-Belief-Netzwerk (BBN), ein Bayessches NN (BNN), ein tiefes BNN (DBNN), ein dynamisches BN (DBN), ein probabilistisches grafisches Modell (BMC), eine Boltzmann-Maschine, eine beschränkte Boltzmann-Maschine (RBM), ein Hopfield-Netz oder Hopfield-NN, ein faltendes Deep-Belief-Netzwerk (CDBN) usw.), ein lineares dynamisches System (LDS), ein Schalt-LDS (SLDS), optische NNs (ONNs), ein NN für bestärkendes (RL) und/oder tiefes RL (DRL) und/oder dergleichen.
  • Der Begriff „Aufmerksamkeit“ im Kontext des maschinellen Lernens und/oder neuronaler Netzwerke verweist zumindest in einigen Ausführungsformen auf eine Technik, die kognitive Aufmerksamkeit nachahmt, was wichtige Teile eines Datensatzes verbessert, wobei die wichtigen Teile des Datensatzes unter Verwendung von Trainingsdaten durch Gradientenabstieg bestimmt werden können. Der Begriff „Skalarprodukt-Aufmerksamkeit“ verweist zumindest in einigen Ausführungsformen auf eine Aufmerksamkeitstechnik, die das Skalarprodukt zwischen Vektoren verwendet, um die Aufmerksamkeit zu bestimmen. Der Begriff „Multi-Head-Aufmerksamkeit“ verweist zumindest in einigen Ausführungsformen auf eine Aufmerksamkeitstechnik, die mehrere verschiedene Aufmerksamkeitsmechanismen kombiniert, um die Gesamtaufmerksamkeit eines Netzwerks oder Teilnetzwerks zu lenken.
  • Der Begriff „Aufmerksamkeitsmodell“ oder „Aufmerksamkeitsmechanismus“ verweist zumindest in einigen Ausführungsformen auf Eingabeverarbeitungstechniken für neuronale Netzwerke, die es dem neuronalen Netzwerk ermöglichen, sich nacheinander auf spezifische Aspekte einer komplexen Eingabe zu konzentrieren, bis der gesamte Datensatz kategorisiert ist. Das Ziel ist es, komplizierte Aufgaben in kleinere Aufmerksamkeitsbereiche aufzuteilen, die sequenziell verarbeitet werden. Ähnlich wie der menschliche Verstand ein neues Problem löst, indem er es in einfachere Aufgaben unterteilt und sie nacheinander löst. Der Begriff „Aufmerksamkeitsnetzwerk“ bezieht sich zumindest in einigen Ausführungsformen auf künstliche neuronale Netzwerke, die zur Aufmerksamkeit beim maschinellen Lernen verwendet werden.
  • Der Begriff „Rückpropagation“ bezieht sich zumindest in einigen Ausführungsformen auf ein Verfahren, das in NNs verwendet wird, um einen Gradienten zu berechnen, der bei der Berechnung von im NN zu verwendenden Gewichtungen benötigt wird; „Rückpropagation“ ist kurz für „die Rückwärtspropagation von Fehlern“. Zusätzlich oder alternativ verweist der Begriff „Rückpropagation“ zumindest in einigen Ausführungsformen auf ein Verfahren zum Berechnen des Gradienten von neuronalen Netzwerkparametern. Zusätzlich oder alternativ verweist der Begriff „Rückpropagation“ oder „Rücklauf“ zumindest in einigen Ausführungsformen auf ein Verfahren zum Traversieren eines neuronalen Netzwerks in umgekehrter Reihenfolge von der Ausgabe zur Eingabeschicht durch jegliche zwischenliegende verborgene Schichten.
  • Der Begriff „Bayes-Optimierung“ verweist zumindest in manchen Ausführungsformen auf eine sequenzielle Gestaltungsstrategie zur globalen Optimierung von Black-Box-Funktionen, die keine funktionalen Formen annimmt.
  • Der Begriff „Klassifizierung“ im Kontext von ML verweist zumindest in einigen Ausführungsformen auf eine ML-Technik zum Bestimmen der Klassen, zu denen verschiedene Datenpunkte gehören. Hier bezieht sich der Begriff „Klasse“ oder „Klassen“ zumindest in manchen Ausführungsformen auf Kategorien, und sie werden manchmal als „Ziele“ oder „Labels“ bezeichnet. Eine Klassifizierung wird verwendet, wenn die Ausgaben auf einen begrenzten Satz quantifizierbarer Eigenschaften beschränkt sind. Klassifizierungsalgorithmen können eine individuelle (Daten-) Instanz beschreiben, deren Kategorie unter Verwendung eines Merkmalsvektors vorhergesagt werden soll. Als ein Beispiel kann, wenn die Instanz eine Sammlung (einen Korpus) von Text beinhaltet, jedes Merkmal in einem Merkmalsvektor die Häufigkeit sein, mit der spezifische Wörter in dem Korpus von Text erscheinen. Bei der ML-Klassifizierung werden Labels zu Instanzen zugewiesen, und Modelle werden trainiert, um die zuvor zugewiesenen Labels aus den Trainingsbeispielen korrekt vorherzusagen. ML-Algorithmen zur Klassifizierung können als „Klassifizierer“ bezeichnet werden. Beispiele für Klassifizierer beinhalten lineare Klassifizierer, k-nächste-Nachbarn (kNN), Entscheidungsbäume, Random Forests, Support-Vektor-Maschinen (SVMs), bayessche Klassifizierer, faltende neuronale Netzwerke (CNNs), unter vielen anderen (es wird angemerkt, dass einige dieser Algorithmen auch für andere ML-Aufgaben verwendet werden können).
  • Der Begriff „Rechengraph“ verweist mindestens bei einigen Ausführungsformen auf eine Datenstruktur, die beschreibt, wie eine Ausgabe von einer oder mehreren Eingaben erzeugt wird.
  • Der Begriff „Faltung“ bezieht sich zumindest in einigen Ausführungsformen auf eine Faltungsoperation oder eine Faltungsschicht eines CNN.
  • Der Begriff „Kontext“ oder „Kontextinformationen“ bezieht sich zumindest in einigen Ausführungsformen auf Objekte, Entitäten, Elemente, Ereignisse, Daten, Informationen usw., die ein Fokusereignis umgeben und/oder Ressourcen für eine Interpretation des Fokusereignisses bereitstellen. Zusätzlich oder alternativ verweist der Begriff „Kontext“ oder „Kontextinformationen“ mindestens bei einigen Ausführungsformen auf beliebige Informationen über eine beliebige Entität, die verwendet werden können, um das Ausmaß von Schlussfolgerung, das (durch Filtern, Aggregation und Inferenz) zur Entscheidungsfindung innerhalb des Schutzumfangs einer spezifischen Anwendung benötigt wird, effektiv zu reduzieren. Zusätzlich oder alternativ verweist der Begriff „Kontext“ oder „Kontextinformationen“ zumindest in einigen Ausführungsformen auf einen hochdimensionalen reellen Vektor.
  • Der Begriff „Faltungsfilter“ bezieht sich zumindest in einigen Ausführungsformen auf eine Matrix mit dem gleichen Rang wie eine Eingabematrix, aber einer kleineren Form. Beim maschinellen Lernen wird ein Faltungsfilter mit einer Eingabematrix gemischt, um Gewichtungen zu trainieren.
  • Der Begriff „Faltungsschicht“ verweist zumindest in einigen Ausführungsformen auf eine Schicht eines DNN, in der ein Faltungsfilter eine Eingabematrix (z. B. ein CNN) weitergibt. Zusätzlich oder alternativ verweist der Begriff „Faltungsschicht“ zumindest in einigen Ausführungsformen auf eine Schicht, die eine Reihe von Faltungsoperationen beinhaltet, die jeweils auf ein anderes Slice einer Eingabematrix wirken.
  • Der Begriff „faltendes neuronales Netzwerk“ oder „CNN“ verweist zumindest in einigen Ausführungsformen auf ein neuronales Netzwerk, das mindestens eine Faltungsschicht beinhaltet. Zusätzlich oder alternativ verweist der Begriff „faltendes neuronales Netzwerk“ oder „CNN“ zumindest in einigen Ausführungsformen auf ein DNN, das dazu ausgebildet ist, strukturierte Arrays von Daten, wie etwa Bilder, zu verarbeiten.
  • Der Begriff „Faltungsoperation“ bezieht sich zumindest in einigen Ausführungsformen auf eine mathematische Operation an zwei Funktionen (z. B. f und g), die eine dritte Funktion (f * g) erzeugt, die ausdrückt, wie die Form einer durch die andere modifiziert wird, wobei sich der Begriff „Faltung“ sowohl auf die Ergebnisfunktion als auch auf den Prozess ihrer Berechnung beziehen kann. Zusätzlich oder alternativ verweist der Begriff „Faltung“ zumindest in einigen Ausführungsformen auf das Integral des Produkts der zwei Funktionen, nachdem eine umgekehrt und verschoben wurde, wobei das Integral für alle Verschiebungswerte ausgewertet wird, wodurch die Faltungsfunktion erzeugt wird. Zusätzlich oder alternativ verweist der Begriff „Faltung“ zumindest in einigen Ausführungsformen auf eine mathematische Operation mit zwei Schritten der elementweisen Multiplikation des Faltungsfilters und eines Slice einer Eingabematrix (das Slice der Eingabematrix weist den gleichen Rang und die gleiche Größe wie das Faltungsfilter auf); und (2) der Summierung aller Werte in der resultierenden Produktmatrix.
  • Der Begriff „Kovarianz“ verweist zumindest in einigen Ausführungsformen auf ein Maß der gemeinsamen Variabilität von zwei Zufallsvariablen, wobei die Kovarianz positiv ist, falls die größeren Werte einer Variablen hauptsächlich den größeren Werten der anderen Variablen entsprechen (und das gleiche gilt für die kleineren Werte, sodass die Variablen dazu neigen, ein ähnliches Verhalten zu zeigen), und die Kovarianz ist negativ, wenn die größeren Werte einer Variablen hauptsächlich den kleineren Werten der anderen entsprechen.
  • Der Begriff „Ensemble-Mittelwertbildung“ bezieht sich zumindest in einigen Ausführungsformen auf den Prozess des Erzeugens mehrerer Modelle und Kombinierens derselben, um eine gewünschte Ausgabe zu erzeugen, im Gegensatz zum Erzeugen nur eines Modells.
  • Der Begriff „Ensemble-Lernen“ oder „Ensemble-Verfahren“ bezieht sich zumindest in einigen Ausführungsformen auf die Verwendung mehrerer Lernalgorithmen, um eine bessere prädiktive Leistungsfähigkeit zu erhalten, als von einem beliebigen der konstituierenden Lernalgorithmen allein erhalten werden könnte.
  • Der Begriff „Ereignis“ verweist in der Wahrscheinlichkeitstheorie zumindest in manchen Ausführungsformen auf einen Satz von Ergebnissen eines Experiments (z. B. eine Teilmenge eines Probenraums), dem eine Wahrscheinlichkeit zugewiesen ist. Zusätzlich oder alternativ dazu verweist der Begriff „Ereignis“ zumindest in manchen Ausführungsformen auf eine Softwarenachricht, die angibt, dass etwas stattgefunden hat. Zusätzlich oder alternativ dazu verweist der Begriff „Ereignis“ zumindest in manchen Ausführungsformen auf ein Objekt in der Zeit oder eine Instanziierung einer Eigenschaft in einem Objekt. Zusätzlich oder alternativ dazu verweist der Begriff „Ereignis“ zumindest in manchen Ausführungsformen auf einen Punkt im Raum zu einem Zeitpunkt (z. B. einen Ort in der Raum-Zeit). Zusätzlich oder alternativ dazu verweist der Begriff „Ereignis“ zumindest in manchen Ausführungsformen auf ein bemerkenswertes Auftreten zu einem bestimmten Zeitpunkt.
  • Der Begriff „Experiment“ in der Wahrscheinlichkeitstheorie verweist zumindest in manchen Ausführungsformen auf eine beliebige Prozedur, die wiederholt werden kann und einen wohldefinierten Satz von Ergebnissen aufweist, der als ein Probenraum bekannt ist.
  • Der Begriff „Merkmal“ verweist zumindest in manchen Ausführungsformen auf eine einzelne messbare Eigenschaft, quantifizierbare Eigenschaft oder Charakteristik eines beobachteten Phänomens. Zusätzlich oder alternativ dazu verweist der Begriff „Merkmal“ zumindest in manchen Ausführungsformen auf eine Eingangsvariable, die beim Erstellen von Vorhersagen verwendet wird. Zumindest in manchen Ausführungsformen können Merkmale unter Verwendung von Zahlen/Ziffern (z. B. ganze Zahlen), Strings, Variablen, Ordinalen, Real-Werten, Kategorien und/oder dergleichen repräsentiert werden.
  • Der Begriff „Merkmals-Engineering“ verweist zumindest in einigen Ausführungsformen auf einen Prozess zum Bestimmen, welche Merkmale beim Trainieren eines ML-Modells nützlich sein könnten, und dann Umwandeln von Rohdaten in die bestimmten Merkmale. Merkmals-Engineering wird manchmal als „Merkmalsextraktion“ bezeichnet.
  • Der Begriff „Merkmalsextraktion“ verweist zumindest in manchen Ausführungsformen auf einen Prozess der Dimensionalitätsreduzierung, bei dem ein anfänglicher Satz von Rohdaten auf besser handhabbare Gruppen zur Verarbeitung reduziert wird. Zusätzlich oder alternativ dazu verweist der Begriff „Merkmalsextraktion“ zumindest in manchen Ausführungsformen auf das Abrufen von Zwischenmerkmalsrepräsentationen, die durch ein unüberwachtes Modell oder ein vortrainiertes Modell berechnet werden, zur Verwendung in einem anderen Modell als eine Eingabe. Merkmalsextraktion wird manchmal als Synonym für „Merkmals-Engineering“ verwendet.
  • Der Begriff „Merkmalsabbildung“ verweist zumindest in manchen Ausführungsformen auf eine Funktion, die Merkmalsvektoren (oder Merkmalstensoren) in einem Raum nimmt und sie in Merkmalsvektoren (oder Merkmalstensoren) in einem anderen Raum transformiert. Zusätzlich oder alternativ dazu verweist der Begriff „Merkmalsabbildung“ zumindest in manchen Ausführungsformen auf eine Funktion, die einen Datenvektor (oder Tensor) einem Merkmalsraum zuordnet. Zusätzlich oder alternativ dazu verweist der Begriff „Merkmalsabbildung“ zumindest in manchen Ausführungsformen auf eine Funktion, die die Ausgabe eines Filters anwendet, das auf eine vorherige Schicht angewandt wird. In manchen Ausführungsformen kann der Begriff „Merkmalsabbildung“ auch als eine „Aktivierungsabbildung“ bezeichnet werden.
  • Der Begriff „Merkmalsvektor“ verweist zumindest in manchen Ausführungsformen im Kontext von ML auf einen Satz von Merkmalen und/oder eine Liste von Merkmalswerten, die ein Beispiel repräsentieren, das an ein Modell übergeben wird.
  • Der Begriff „Vorwärtspropagation“ oder „Vorwärtsdurchlauf“ bezieht sich zumindest in einigen Ausführungsformen im Kontext von ML auf die Berechnung und Speicherung von Zwischenvariablen (einschließlich Ausgaben) für ein neuronales Netzwerk, in der Reihenfolge von der Eingabeschicht zur Ausgabeschicht durch beliebige verborgene Schichten zwischen der Eingabe- und Ausgabeschicht.
  • Der Begriff „verborgene Schicht“ bezieht sich im Kontext von ML und NNs zumindest in einigen Ausführungsformen auf eine interne Schicht von Neuronen in einem ANN, die nicht für Eingabe oder Ausgabe dediziert ist. Der Begriff „verborgene Einheit“ bezieht sich auf ein Neuron in einer verborgenen Schicht in einem ANN.
  • Der Begriff „Hyperparameter“ bezieht sich zumindest in einigen Ausführungsformen auf Charakteristiken, Eigenschaften und/oder Parameter für einen ML-Prozess, die während eines Trainingsprozesses nicht erlernt werden können. Hyperparameter werden üblicherweise gesetzt, bevor das Training stattfindet, und können in Prozessen verwendet werden, um dabei zu helfen, Modellparameter zu schätzen. Beispiele für Hyperparameter beinhalten Modellgröße (z. B. hinsichtlich Speicherraum, Bytes, Anzahl von Schichten usw.); Trainingsdaten-Shuffling (z. B. ob dies durchgeführt werden soll und um wie viel); Anzahl von Evaluierungsinstanzen, Iterationen, Epochen (z. B. eine Anzahl von Iterationen oder Durchläufen über die Trainingsdaten) oder Episoden; Anzahl von Durchläufen über Trainingsdaten; Regularisierung; Lernrate (z. B. die Geschwindigkeit, mit der der Algorithmus optimale Gewichtungen erreicht (konvergiert); Lernratenabfall (oder Gewichtungsabfall); Momentum; Anzahl verborgener Schichten; Größe einzelner verborgener Schichten; Gewichtungsinitialisierungsschema; Dropout- und Gradientenabschneidungsschwellen; den C-Wert und Sigma-Wert für SVMs; das k in k-nächste-Nachbarn; Anzahl von Verzweigungen in einem Entscheidungsbaum; Anzahl von Clustern in einem Clustering-Algorithmus; Vektorgröße; Wortvektorgröße für NLP und NLU; und/oder dergleichen.
  • Der Begriff „Inferenz-Engine“ verweist zumindest in manchen Ausführungsformen auf eine Komponente eines Rechensystems, die logische Regeln auf eine Wissensbasis anwendet, um neue Informationen abzuleiten.
  • Die Begriffe „instanzbasiertes Lernen“ oder „speicherbasiertes Lernen“ im Kontext von ML beziehen sich zumindest in einigen Ausführungsformen auf eine Familie von Lernalgorithmen, die anstelle einer expliziten Generalisierung neue Probleminstanzen mit im Training gesehenen Instanzen vergleichen, die im Speicher gespeichert wurden. Beispiele für instanzbasierte Algorithmen beinhalten k-nächste Nachbarn und dergleichen, Entscheidungsbaumalgorithmen (z. B. Classification And Regression Tree (CART), Iterative Dichotomiser 3 (ID3), C4.5, Chi-Quadrat-Automatic Interaction Detection (CHAID) usw.), Fuzzy Decision Tree (FDT), und dergleichen, Support-Vektor-Maschinen (SVM), Bayes-Algorithmen (z. B. Bayes-Netzwerk (BN), ein dynamisches BN (DBN), Naiv-Bayes und dergleichen) und Ensemble-Algorithmen (z. B. Extreme Gradient Boosting, Voting-Ensemble, Bootstrap-Aggregation („Bagging“)), Random-Forest und dergleichen.
  • Der Begriff „intelligenter Agent“ verweist zumindest in manchen Ausführungsformen auf einen Softwareagenten oder eine andere autonome Entität, der/die dahingehend agiert, seine/ihre Aktivität zum Erreichen von Zielen an eine Umgebung unter Verwendung von Beobachtung durch Sensoren und Folgeaktuatoren zu richten (d. h. er/sie ist intelligent). Intelligente Agenten können auch Wissen lernen oder verwenden, um ihre Ziele zu erreichen.
  • Der Begriff „Iteration“ verweist zumindest in manchen Ausführungsformen auf die Wiederholung eines Prozesses, um eine Sequenz von Ergebnissen zu erzeugen, wobei jede Wiederholung des Prozesses eine einzelne Iteration ist und das Ergebnis jeder Iteration der Startpunkt der nächsten Iteration ist. Zusätzlich oder alternativ dazu verweist der Begriff „Iteration“ zumindest in manchen Ausführungsformen auf eine einzelne Aktualisierung der Gewichtungen eines Modells während des Trainings.
  • Der Begriff „Wissensbasis“ verweist zumindest in einigen Ausführungsformen auf eine beliebige Technologie, die verwendet wird, um komplexe strukturierte und/oder unstrukturierte Informationen zu speichern, die durch ein Rechensystem verwendet werden.
  • Der Begriff „Wissensdestillation“ beim maschinellen Lernen bezieht sich zumindest in einigen Ausführungsformen auf den Prozess des Übertragens von Wissen von einem großen Modell zu einem kleineren.
  • Der Begriff „Verlustfunktion“ oder „Kostenfunktion“ verweist zumindest in manchen Ausführungsformen auf ein Ereignis oder Werte einer oder mehrerer Variablen auf eine reelle Zahl, die irgendwelche mit dem Ereignis assoziierte „Kosten“ repräsentiert. Ein durch eine Verlustfunktion berechneter Wert kann als ein „Verlust“ oder „Fehler“ bezeichnet werden. Zusätzlich oder alternativ dazu verweist der Begriff „Verlustfunktion“ oder „Kostenfunktion“ zumindest in manchen Ausführungsformen auf eine Funktion, die verwendet wird, um den Fehler oder den Verlust zwischen der Ausgabe eines Algorithmus und einem Zielwert zu bestimmen. Zusätzlich oder alternativ dazu verweist der Begriff „Verlustfunktion“ oder „Kostenfunktion“ zumindest in manchen Ausführungsformen auf eine Funktion, die in Optimierungsproblemen mit dem Ziel des Minimierens eines Verlusts oder Fehlers verwendet wird.
  • Der Begriff „maschinelles Lernen“ oder „ML“ verweist zumindest in manchen Ausführungsformen auf die Verwendung von Computersystemen zur Optimierung eines Leistungsfähigkeitskriteriums unter Verwendung beispielhafter (Trainings-) Daten und/oder vergangener Erfahrung. ML beinhaltet das Verwenden von Algorithmen zum Durchführen (einer) spezifischen/spezifischer Aufgabe(n), ohne explizite Anweisungen zum Durchführen der spezifischen Aufgabe(n) zu verwenden und/oder sich auf Muster, Vorhersagen und/oder Inferenzen zu stützen. ML verwendet Statistik, um ein oder mehrere mathematische Modelle (auch als „ML-Modelle“ oder einfach „Modelle“ bezeichnet) zu erstellen, um Vorhersagen oder Entscheidungen basierend auf Probendaten (z. B. Trainingsdaten) zu treffen. Das Modell ist so definiert, dass es einen Satz von Parametern aufweist, und Lernen ist die Ausführung eines Computerprogramms zum Optimieren der Parameter des Modells unter Verwendung der Trainingsdaten oder der vergangenen Erfahrung. Das trainierte Modell kann ein prädiktives Modell, das Vorhersagen basierend auf einem Eingabedatensatz trifft, ein deskriptives Modell, das Wissen aus einem Eingabedatensatz gewinnt, oder sowohl prädiktiv als auch deskriptiv sein. Sobald das Modell gelernt (trainiert) ist, kann es verwendet werden, um Inferenzen (z. B. Vorhersagen) zu treffen. MI,-Algorithmen führen einen Trainingsprozess an einem Trainingsdatensatz durch, um ein zugrundeliegendes ML-Modell zu schätzen. Ein ML-Algorithmus ist ein Computerprogramm, das aus Erfahrung in Bezug auf manche Aufgabe(n) und manche Leistungsfähigkeitsmessung(en)/-metrik(en) lernt, und ein ML-Modell ist ein Objekt oder eine Datenstruktur, das/die erzeugt wird, nachdem ein ML-Algorithmus mit Trainingsdaten trainiert wurde. Mit anderen Worten kann der Begriff „ML-Modell“ oder „Modell“ die Ausgabe eines ML-Algorithmus beschreiben, der mit Trainingsdaten trainiert wird. Nach dem Training kann ein ML-Modell verwendet werden, um Vorhersagen über neue Datensätze zu treffen. Zusätzlich können separat trainierte KIIML-Modelle in einer KI/ML-Pipeline während der Inferenz- oder Vorhersageerzeugung miteinander verkettet werden. Obwohl der Begriff „ML-Algorithmus“ zumindest in manchen Ausführungsformen auf unterschiedliche Konzepte als der Begriff „ML-Modell“ verweist, können diese Begriffe für die Zwecke der vorliegenden Offenbarung austauschbar verwendet werden. Des Weiteren verweist der Begriff „KI/ML-Anwendung“ oder dergleichen zumindest in manchen Ausführungsformen auf eine Anwendung, die einige KI/ML-Modelle und Beschreibungen auf Anwendungsebene enthält. ML-Techniken fallen im Allgemeinen in die folgenden Haupttypen von Lernproblemkategorien: überwachtes Lernen, unüberwachtes Lernen und bestärkendes Lernen.
  • Der Begriff „mathematisches Modell“ verweist zumindest in manchen Ausführungsformen auf ein System von Postulaten, Daten und Inferenzen, das als eine mathematische Beschreibung einer Entität oder eines Sachverhalts präsentiert wird, einschließlich beherrschender Gleichungen, Annahmen und Beschränkungen.
  • Die Begriffe „Modellparameter“ und/oder „Parameter“ im Kontext von ML beziehen sich zumindest in einigen Ausführungsformen auf Werte, Charakteristiken und/oder Eigenschaften, die während des Trainings erlernt werden. Zusätzlich oder alternativ verweisen „Modellparameter“ und/oder „Parameter“ im Kontext von ML zumindest in einigen Ausführungsformen auf eine Konfigurationsvariable, die intern zum Modell ist und deren Wert aus den gegebenen Daten geschätzt werden kann. Modellparameter werden üblicherweise von einem Modell benötigt, wenn Vorhersagen getroffen werden, und ihre Werte definieren die Fähigkeit des Modells für ein bestimmtes Problem. Beispiele für solche Modellparameter/Parameter beinhalten Gewichtungen (z. B. in einem ANN); Beschränkungen; Support-Vektoren in einer Support-Vektor-Maschine (SVM); Koeffizienten in einer linearen Regression und/oder logistischen Regression; Wortfrequenz, Satzlänge, Substantiv- oder Verb-Verteilung pro Satz, die Anzahl spezifischer Zeichen-n-Gramme pro Wort, lexikalische Diversität usw. für Verarbeitung natürlicher Sprache (NLP) und/oder Verständnis natürlicher Sprache (NLU); und/oder dergleichen.
  • Der Begriff „Momentum“ bezieht sich zumindest in einigen Ausführungsformen auf ein Aggregat von Gradienten beim Gradientenabstieg. Zusätzlich oder alternativ verweist der Begriff „Momentum“ zumindest in einigen Ausführungsformen auf eine Variante des stochastischen Gradientenabstiegsalgorithmus, bei der ein aktueller Gradient durch m (Momentum) ersetzt wird, das ein Aggregat von Gradienten ist.
  • Der Begriff „Zielfunktion“ verweist zumindest in manchen Ausführungsformen auf eine Funktion, die für ein spezielles Optimierungsproblem maximiert oder minimiert werden soll. In manchen Fällen wird eine Zielfunktion durch ihre Entscheidungsvariablen und ein Ziel definiert. Das Ziel ist der Wert, die Zielvorgabe oder die Zielsetzung, der/die optimiert werden soll, wie etwa Maximieren des Gewinns oder Minimieren der Nutzung einer bestimmten Ressource. Die spezifische gewählte Zielfunktion hängt von dem spezifischen zu lösenden Problem und den zu optimierenden Zielen ab. Beschränkungen können auch definiert werden, um die Werte zu beschränken, die die Entscheidungsvariablen annehmen können, wodurch der Zielwert (die Ausgabe) beeinflusst wird, der erreicht werden kann. Während eines Optimierungsprozesses werden die Entscheidungsvariablen einer Zielfunktion häufig innerhalb der Grenzen der Beschränkungen geändert oder manipuliert, um die Werte der Zielfunktion zu verbessern. Allgemein nimmt die Schwierigkeit beim Lösen einer Zielfunktion zu, wenn die Anzahl an Entscheidungsvariablen, die in dieser Zielfunktion enthalten sind, zunimmt. Der Begriff „Entscheidungsvariable“ bezieht sich zumindest in einigen Ausführungsformen auf eine Variable, die eine zu treffende Entscheidung repräsentiert . Der Begriff „Ziel“ im Kontext der Optimierung bezieht sich zumindest in einigen Ausführungsformen auf eine Funktion, die von einer oder mehreren Entscheidungsvariablen abhängen kann.
  • Der Begriff „Optimierung“ verweist zumindest in manchen Ausführungsformen auf eine Aktion, einen Prozess oder eine Methodik, um etwas (z. B. eine Gestaltung, ein System oder eine Entscheidung) so vollständig perfekt, funktional oder effektiv wie möglich zu machen. Die Optimierung beinhaltet üblicherweise mathematische Prozeduren, wie das Finden des Maximums oder Minimums einer Funktion. Der Begriff „optimal“ verweist zumindest in manchen Ausführungsformen auf ein(e) wünschenswerteste(s) oder zufriedenstellendste(s) Ende, Ergebnis oder Ausgabe. Der Begriff „Optimum“ verweist zumindest in manchen Ausführungsformen auf eine Menge oder einen Grad von etwas, das auf irgendeine Weise am besten ist. Der Begriff „Optima“ verweist zumindest in manchen Ausführungsformen auf eine Bedingung, einen Grad, eine Menge oder einen Kompromiss, die/der ein bestmögliches Ergebnis erzeugt. Zusätzlich oder alternativ dazu verweist der Begriff „Optima“ zumindest in manchen Ausführungsformen auf ein bestes oder vorteilhaftestes Ergebnis oder Resultat.
  • Der Begriff „Wahrscheinlichkeit“ verweist zumindest in manchen Ausführungsformen auf eine numerische Beschreibung, wie wahrscheinlich ein Ereignis auftreten wird und/oder wie wahrscheinlich es ist, dass eine Behauptung wahr ist. Der Begriff „Wahrscheinlichkeitsverteilung“ verweist zumindest in manchen Ausführungsformen auf eine mathematische Funktion, die die Wahrscheinlichkeiten des Auftretens unterschiedlicher möglicher Ausgänge für ein Experiment oder Ereignis angibt.
  • Der Begriff „Quantil“ verweist zumindest in einigen Ausführungsformen auf einen oder mehrere Schnittpunkte, die einen Bereich einer Wahrscheinlichkeitsverteilung in kontinuierliche Intervalle mit gleichen Wahrscheinlichkeiten teilen oder die Beobachtungen in einer Probe auf die gleiche Weise teilen. Der Begriff „Quantilfunktion“ verweist zumindest in einigen Ausführungsformen auf eine Funktion, die mit einer Wahrscheinlichkeitsverteilung einer Zufallsvariablen assoziiert ist, und die den Wert der Zufallsvariable so spezifiziert, dass die Wahrscheinlichkeit, dass die Variable kleiner oder gleich diesem Wert ist, gleich der gegebenen Wahrscheinlichkeit ist. Der Begriff „Quantilfunktion“ kann auch als eine Perzentil-Funktion, Prozentpunktfunktion oder inverse kumulative Verteilungsfunktion bezeichnet werden.
  • Die Begriffe „Regressionsalgorithmus“ und/oder „Regressionsanalyse“ im Kontext von ML verweisen zumindest in manchen Ausführungsformen auf einen Satz statistischer Prozesse zum Schätzen der Beziehungen zwischen einer abhängigen Variable (oft als „Ausgabevariable“ bezeichnet) und einer oder mehreren unabhängigen Variablen (oft als „Prädiktoren“, „Kovariaten“ oder „Merkmale“ bezeichnet). Beispiele für Regressionsalgorithmen/-modelle beinhalten logistische Regression, lineare Regression, Gradientenabstieg (GD), stochastischer GD (SGD) und dergleichen.
  • Der Begriff „bestärkendes Lernen“ oder „RL“ verweist zumindest in manchen Ausführungsformen auf eine zielorientierte Lerntechnik, die auf einer Interaktion mit einer Umgebung basiert. Bei RL zielt ein Agent darauf ab, ein Langzeitziel durch Interaktion mit der Umgebung basierend auf einem Trial-and-Error-Prozess zu optimieren. Beispiele für RL-Algorithmen beinhalten Markov-Entscheidungsprozess, Markov-Kette, Q-Leaming, Mehrarmiger-Bandit-Lemen, zeitliches Differenzlernen und tiefes RL.
  • Der Begriff „Probenraum“ in der Wahrscheinlichkeitstheorie (auch als „Probenbeschreibungsraum“ oder „Möglichkeitsraum“ bezeichnet) eines Experiments oder zufälligen Versuchs verweist zumindest in manchen Ausführungsformen auf einen Satz aller möglichen Ausgänge oder Ergebnisse dieses Experiments.
  • Der Begriff „Selbstaufmerksamkeit“ verweist zumindest in einigen Ausführungsformen auf einen Aufmerksamkeitsmechanismus, der unterschiedliche Positionen einer einzelnen Sequenz in Beziehung setzt, um eine Repräsentation der Sequenz zu berechnen. Zusätzlich oder alternativ verweist der Begriff „Selbstaufmerksamkeit“ zumindest in einigen Ausführungsformen auf einen Aufmerksamkeitsmechanismus, der auf einen einzelnen Kontext anstatt über mehrere Kontexte angewendet wird, wobei Abfragen, Schlüssel und Werte aus demselben Kontext extrahiert werden.
  • Der Begriff „Softmax“ oder „Softmax-Funktion“ verweist zumindest in einigen Ausführungsformen auf eine Generalisierung der logistischen Funktion auf mehrere Dimensionen; die „Softmax-Funktion“ wird in der multimodalen logistischen Regression verwendet und wird häufig als die letzte Aktivierungsfunktion eines neuronalen Netzwerks verwendet, um die Ausgabe eines Netzwerks mit einer Wahrscheinlichkeitsverteilung über vorhergesagte Ausgabeklassen zu normieren.
  • Der Begriff „überwachtes Lernen“ verweist zumindest in einigen Ausführungsformen auf eine ML-Technik, die darauf abzielt, eine Funktion zu lernen oder ein ML-Modell zu erzeugen, das in Anbetracht eines gelabelten Datensatzes eine Ausgabe erzeugt. Überwachte Lernalgorithmen erstellen Modelle aus einem Datensatz, der sowohl die Eingaben als auch die gewünschten Ausgaben enthält. Überwachtes Lernen beinhaltet zum Beispiel Lernen einer Funktion oder eines Modells, die/das eine Eingabe auf eine Ausgabe basierend auf beispielhaften Eingabe-Ausgabe-Paaren oder irgendeiner anderen Form von gelabelten Trainingsdaten einschließlich eines Satzes von Trainingsbeispielen abbildet. Jedes Eingabe-Ausgabe-Paar beinhaltet ein Eingabeobjekt (z. B. einen Vektor) und ein gewünschtes Ausgabeobjekt oder einen gewünschten Ausgabewert (als ein „Überwachungssignal“ bezeichnet). Überwachtes Lernen kann in Klassifizierungsalgorithmen, Regressionsalgorithmen und instanzbasierte Algorithmen gruppiert werden.
  • Der Begriff „Tensor“ bezieht sich zumindest in einigen Ausführungsformen auf ein Objekt oder eine andere Datenstruktur, das/die durch ein Array von Komponenten repräsentiert wird, die Funktionen beschreiben, die für Koordinaten eines Raums relevant sind. Zusätzlich oder alternativ verweist der Begriff „Tensor“ zumindest in einigen Ausführungsformen auf eine Generalisierung von Vektoren und Matrizen und/oder kann als ein mehrdimensionales Array verstanden werden. Zusätzlich oder alternativ bezieht sich der Begriff „Tensor“ zumindest in einigen Ausführungsformen auf ein Array von Zahlen, die in einem regelmäßigen Gitter mit einer variablen Anzahl von Achsen angeordnet sind. Zumindest in einigen Ausführungsformen kann ein Tensor als ein einzelner Punkt, eine Sammlung isolierter Punkte oder ein Kontinuum von Punkten definiert sein, in denen Elemente des Tensors Positionsfunktionen sind, und der Tensor ein „Tensorfeld“ bildet. Zumindest bei manchen Ausführungsformen kann ein Vektor als ein eindimensionaler (1D) oder Tensor erster Ordnung angesehen werden, und eine Matrix kann als ein zweidimensionaler (2D) oder Tensor zweiter Ordnung angesehen werden. Die Tensorschreibweise kann gleich oder ähnlich sein wie die Matrixschreibweise mit einem Großbuchstaben, der den Tensor repräsentiert, und Kleinbuchstaben mit tiefgestellten Ganzzahlen, die Skalarwerte innerhalb des Tensors repräsentieren.
  • Der Begriff „unüberwachtes Lernen“ verweist zumindest in einigen Ausführungsformen auf eine ML-Technik, die darauf abzielt, eine Funktion zum Beschreiben einer verborgenen Struktur aus ungelabelten Daten zu lernen. Unüberwachte Lernalgorithmen erstellen Modelle aus einem Datensatz, der nur Eingaben und keine gewünschten Ausgabelabels enthält. Unüberwachte Lernalgorithmen werden verwendet, um Struktur in den Daten zu finden, wie etwa eine Gruppierung oder ein Clustering von Datenpunkten. Beispiele für unüberwachtes Lernen sind unter vielen anderen K-Means-Clustering, Hauptkomponentenanalyse (HKA) und Themenmodellierung. Der Begriff „halbüberwachtes Lernen“ verweist zumindest in einigen Ausführungsformen auf ML-Algorithmen, die ML-Modelle aus unvollständigen Trainingsdaten entwickeln, wobei ein Teil der Probeneingabe keine Labels beinhaltet.
  • Der Begriff „Vektor“ verweist zumindest in einigen Ausführungsformen auf ein Tupel aus einem oder mehreren Werten, die Skalare genannt werden, und ein „Merkmalsvektor“ kann ein Vektor sein, der ein Tupel aus einem oder mehreren Merkmalen beinhaltet.
  • Der Begriff „Benchmark“ oder „Benchmarking“ bezieht sich zumindest in einigen Ausführungsformen auf ein Leistungsfähigkeitsmaß unter Verwendung eines spezifischen Indikators, der zu einer Leistungsfähigkeitsmetrik führt. Zusätzlich oder alternativ verweist der Begriff „Benchmark“ oder „Benchmarking“ zumindest in einigen Ausführungsformen auf die Handlung des Ausführens eines Computerprogramms, eines Satzes von Programmen oder andere Operationen, um die relative Leistungsfähigkeit eines Objekts zu beurteilen, normalerweise durch Ausführen einer Anzahl von Standardtests und Versuchen gegen dieses.
  • Der Begriff „Übersetzung“ verweist zumindest in manchen Ausführungsformen auf den Prozess des Konvertierens oder anderweitigen Änderns von Daten von einer ersten Gestalt, Form, Konfiguration, Struktur, Anordnung, Ausführungsform, Beschreibung usw. in eine zweite Gestalt, Form, Konfiguration, Struktur, Anordnung, Ausführungsform, Beschreibung usw.; zumindest in manchen Ausführungsformen kann es zwei verschiedene Arten von Übersetzung geben: Transcodierung und Transformation.
  • Der Begriff „Transcodieren“ verweist zumindest in manchen Ausführungsformen auf das Nehmen von Informationen/Daten in einem Format (z. B. einem gepackten Binärformat) und Übersetzen derselben Informationen/Daten in ein anderes Format in derselben Sequenz. Zusätzlich oder alternativ dazu verweist der Begriff „Transcodieren“ zumindest in manchen Ausführungsformen auf das Nehmen derselben Informationen in derselben Sequenz und unterschiedliches Verpacken der Informationen (z. B. Bits oder Bytes). Der Begriff „Transformation“ verweist zumindest in manchen Ausführungsformen auf das Ändern von Daten von einem Format und Schreiben davon in ein anderes Format, wobei die gleiche Reihenfolge, Sequenz und/oder Verschachtelung von Datenelementen beibehalten wird. Zusätzlich oder alternativ dazu beinhaltet der Begriff „Transformation“ zumindest in manchen Ausführungsformen den Prozess des Konvertierens von Daten von einem ersten Format oder einer ersten Struktur in ein zweites Format oder eine zweite Struktur und beinhaltet Umformen der Daten in das zweite Format, um einem Schema oder einer anderen ähnlichen Spezifikation zu entsprechen. Die Transformation kann Umordnen von Datenelementen oder Datenobjekten beinhalten, was Ändern der Reihenfolge, Sequenz und/oder Verschachtelung der Datenelemente/Objekte beinhalten kann. Zusätzlich oder alternativ dazu verweist der Begriff „Transformation“ zumindest in manchen Ausführungsformen auf das Ändern des Schemas eines Datenobjekts in ein anderes Schema.
  • Obwohl diese Implementierungen unter Bezugnahme auf spezifische beispielhafte Aspekte beschrieben wurden, versteht es sich, dass verschiedene Modifikationen und Änderungen an diesen Aspekten vorgenommen werden können, ohne von dem breiteren Schutzumfang der vorliegenden Offenbarung abzuweichen. Viele der hierin beschriebenen Anordnungen und Prozesse können in Kombination oder in parallelen Implementierungen verwendet werden, um eine größere Bandbreite/einen größeren Durchsatz bereitzustellen und die Auswahl von Edge-Diensten zu unterstützen, die den zu versorgenden Edge-Systemen zur Verfügung gestellt werden können. Entsprechend sind die Beschreibung und die Zeichnungen in einem veranschaulichenden und nicht in einem einschränkenden Sinne aufzufassen. Die begleitenden Zeichnungen, die einen Teil hiervon bilden, zeigen spezielle Aspekte, in denen der Gegenstand ausgeführt werden kann, als Veranschaulichung und nicht als Beschränkung. Die veranschaulichten Aspekte sind hinreichend detailliert beschrieben, um einen Fachmann zu befähigen, die hier offenbarten Lehren auszuüben. Andere Aspekte können genutzt und daraus abgeleitet werden, so dass strukturelle und logische Substitutionen und Änderungen vorgenommen werden können, ohne vom Schutzumfang dieser Offenbarung abzuweichen. Diese ausführliche Beschreibung ist daher nicht in einem beschränkenden Sinne aufzufassen und der Schutzumfang verschiedener Aspekte ist nur durch die angehängten Ansprüche, zusammen mit dem vollen Umfang von Äquivalenten, zu denen solche Ansprüche berechtigt sind, definiert.
  • Auf solche Aspekte des erfindungsgemäßen Gegenstands kann hier einzeln und/oder kollektiv lediglich der Einfachheit halber Bezug genommen werden, und ohne zu beabsichtigen, den Schutzumfang dieser Anmeldung freiwillig auf einen beliebigen einzelnen Aspekt oder einen beliebigen einzelnen Erfindungsgedanken zu beschränken, falls tatsächlich mehr als einer offenbart ist. Obwohl spezielle Aspekte hierin veranschaulicht und beschrieben wurden, versteht es sich daher, dass eine beliebige Anordnung, die berechnet ist, um denselben Zweck zu erfüllen, die gezeigten speziellen Aspekte ersetzen kann. Diese Offenbarung ist so zu verstehen, dass sie alle Anpassungen oder Variationen der zahlreichen Aspekte samt und sonders abdecken. Kombinationen der obigen Aspekte und anderer Aspekte, die hierin nicht speziell beschrieben sind, ergeben sich für Fachleute bei der Durchsicht der obigen Beschreibung.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 17497736 [0030]
    • US 17/505568 [0030]
    • US 17/504282 [0030]
    • US 17504996 [0030]

Claims (28)

  1. Einrichtung, die als Maschinenlernmodellaustauschsystem (MLMS-System) eingesetzt wird, wobei die Einrichtung Folgendes umfasst: eine Schnittstellenschaltungsanordnung, die zum Erhalten von Kontextinformationen einer Hardwareplattfom (HW-Plattform) konfiguriert ist, auf der gegenwärtig ein Maschinenlernmodell (ML-Modell) eingesetzt wird; und eine Prozessorschaltungsanordnung, die mit der Schnittstellenschaltungsanordnung verbunden ist, wobei die Prozessorschaltungsanordnung konfiguriert ist zum: Detektieren einer Statusänderung der HW-Plattform basierend auf den Kontextinformationen der HW-Plattform und basierend auf Inferenzergebnissen, die durch das gegenwärtig eingesetzte ML-Modell erzeugt werden, Auslösen einer MLMS-Engine, um MLMS durchzuführen, wobei MLMS Ersetzen des gegenwärtig eingesetzten ML-Modells mit einem Ersatz-ML-Modell beinhaltet, und wobei das Ersatz-ML-Modell für Ausführung auf der HW-Plattform optimiert ist, wenn die HW-Plattform unter einer oder mehreren Beschränkungen arbeitet, die durch die Kontextinformationen angegeben sind, sodass das Ersatz-ML-Modell auf der HW-Plattform unter der einen oder den mehreren Beschränkungen ausgeführt werden soll mit einer oder mehreren verbesserten Leistungsfähigkeitsmetriken im Vergleich zur Leistungsfähigkeit des gegenwärtig eingesetzten ML-Modells, das auf der HW-Plattform unter der einen oder den mehreren Beschränkungen ausgeführt wird, und Bereitstellen des Ersatz-ML-Modells für die HW-Plattform.
  2. Einrichtung nach Anspruch 1, wobei die Prozessorschaltung dazu konfiguriert ist, die MLMS-Engine zu betreiben, um MLMS durchzuführen.
  3. Einrichtung nach Anspruch 2, wobei zum Durchführen von MLMS die Prozessorschaltungsanordnung konfiguriert ist zum Betreiben der MLMS-Engine, um einen neuronalen Architektursuchalgorithmus (NAS-Algorithmus) auszuführen, um das Ersatz-ML-Modell zu entdecken.
  4. Einrichtung nach Anspruch 2-3, wobei die Schnittstellenschaltungsanordnung dafür konfiguriert ist, ein Referenz-ML-Modell zu erhalten, und wobei die Prozessorschaltungsanordnung konfiguriert ist zum: Erzeugen eines Satzes von ML-Modellen durch Optimieren des Referenz-ML-Modells für jede von mehreren unterschiedlichen Betriebsbedingungen der HW-Plattform vor dem Einsatz des gegenwärtig eingesetzten ML-Modells, wobei ein oder mehrere ML-Modelle des Satzes von ML-Modellen weniger Parameter als das Referenz-ML-Modell aufweisen, und wobei das gegenwärtig eingesetzte ML-Modell zu dem erzeugten Satz von ML-Modellen gehört; und Speichern des Satzes von ML-Modellen, wobei das Ersatz-ML-Modell zu dem gespeicherten Satz von ML-Modellen gehört.
  5. Einrichtung nach Anspruch 4, wobei zum Durchführen von MLMS die Prozessorschaltungsanordnung dafür konfiguriert ist, die MLMS-Engine zu betreiben zum: Entdecken eines Satzes von Kandidaten-ML-Modellen unter dem gespeicherten Satz von ML-Modellen, die eine erste Systembeschränkung der HW-Plattform und eine zweite Systembeschränkung der HW-Plattform erfüllen, wobei: die erste Systembeschränkung einen Systemkontext der HW-Plattform repräsentiert, als das gegenwärtig eingesetzte ML-Modell eingesetzt wurde, und die zweite Systembedingung einen Systemkontext der HW-Plattform basierend auf der detektierten Statusänderung repräsentiert; für jedes Kandidaten-ML-Modell in dem Satz von Kandidaten-ML-Modellen, Bestimmen von Datentransferkosten, Wobei die Datentransferkosten eine Menge an Rechenressourcen sind, die benötigt werden, um das gegenwärtig eingesetzte ML-Modell durch ein entsprechendes des Satzes von Kandidaten-ML-Modellen zu ersetzen; und Auswählen, als das Ersatz-ML-Modell, eines Kandidaten-ML-Modells aus dem Satz von Kandidaten-ML-Modellen mit niedrigsten Datentransferkosten.
  6. Einrichtung nach einem der Ansprüche 1 bis 5, wobei die Schnittstellenschaltungsanordnung zum Erhalten einer ML-Konfiguration konfiguriert ist, wobei die ML-Konfiguration Schwellen zum Auslösen der Durchführung von MLMS beinhaltet.
  7. Einrichtung nach Anspruch 6, wobei die Schwellen zum Auslösen der Durchführung von MLMS Anwendungsqualitätsmetriken umfassen, wobei die Anwendungsqualitätsmetriken Leistungsfähigkeitsmetrikschwellen für das gegenwärtig eingesetzte ML-Modell beinhalten, die, wenn sie erreicht oder überschritten werden, die Durchführung von MLMS auslösen.
  8. Einrichtung nach Anspruch 6, wobei die Schwellen zum Auslösen der Durchführung von MLMS Systembeschränkungen beinhalten, wobei die Systembeschränkungen Schwellen für einen oder mehrere Systemparameter der HW-Plattform beinhalten, die, wenn sie erreicht oder überschritten werden, die Durchführung von MLMS auslösen.
  9. Einrichtung nach einem der Ansprüche 1 bis 8, wobei die Kontextinformationen einen aktuellen Betriebsmodus der HW-Plattform beinhalten und der aktuelle Betriebsmodus der HW-Plattform einen aus einem Schlafmodus, einem Ruhemodus, einem Wachmodus und einem Burstmodus umfasst.
  10. Einrichtung nach einem der Ansprüche 1 bis 9, wobei die Kontextinformationen Systemzustandsinformationen (SSI) der HW-Plattform beinhalten, und wobei die SSI eine Temperatur einzelner HW-Komponenten der HW-Plattform und/oder eine Rechenkapazität und/oder eine Speichernutzung und/oder Leistungsquellenzustandsinformationen und/oder Betriebssysteminformationen und/oder einen Halbleiterprozess der einzelnen HW-Komponenten beinhalten.
  11. Einrichtung nach einem der Ansprüche 1 bis 10, wobei die Kontextinformationen physische Umgebungsinformationen (PEI) über eine Umgebung, die die HW-Plattform umgibt, beinhalten und wobei die PEI eine aktuelle Temperatur und/oder Feuchtigkeit und/oder Meereshöhe und/oder Umgebungslicht und/oder Umgebungsgeräusche/Lautstärke und/oder Wetterdaten für einen Ort der HW-Plattform beinhalten.
  12. Einrichtung nach einem der Ansprüche 1 bis 11, wobei die Kontextinformationen Netzwerkumgebungsinformationen (NEI) der HW-Plattform beinhalten und die NEI Kanalzustandsbedingungen und/oder Netzwerkkonnektivitätsmetriken und/oder Datenübertragungsraten und/oder Netzwerkparameter beinhalten.
  13. Einrichtung nach einem der Ansprüche 1 bis 12, wobei die Einrichtung die HW-Plattform ist oder die Einrichtung eine Komponente der HW-Plattform ist.
  14. Einrichtung nach einem der Ansprüche 1 bis 12, wobei die Einrichtung von der HW-Plattform getrennt ist.
  15. Einrichtung nach einem der Ansprüche 1 bis 14, wobei die HW-Plattform eines aus einer Internet-der-Dinge-Vorrichtung (IoT-Vorrichtung), einer Drohne, einem autonomen Fahrzeug, einer Client-Vorrichtung, einem Netzwerkgerät, einem Netzwerkelement, einem Edge-Server oder einem oder mehreren Cloud-Computing-Knoten eines Cloud-Computing-Dienstes ist.
  16. Einrichtung nach einem der Ansprüche 1 bis 15, wobei die HW-Plattform ein Edge-Computing-Knoten ist, die MLMS-Engine eine erste Edge-Anwendung oder ein erster Edge-Dienst ist, die/der durch den Edge-Computing-Knoten betrieben wird, und wobei die Prozessorschaltungsanordnung konfiguriert ist zum: Betreiben eines föderierten ML-Modells zum: Verteilen entsprechender Lernaufgaben an einen Satz von Vorrichtungen in einem Kommunikationsnetzwerk, wobei der Satz von Vorrichtungen eine oder mehrere Client-Vorrichtungen oder einen oder mehrere Netzwerkzugangsknoten beinhaltet, und Erhalten einer Rückmeldung von dem Satz von Vorrichtungen, wobei die Rückmeldung abgeschlossene der jeweiligen Lernaufgaben und mindestens einen Teil der Kontextinformationen beinhaltet, wobei der Teil der Kontextinformation eine Angabe einer Fähigkeit oder Unfähigkeit einzelner Vorrichtungen des Satzes von Vorrichtungen, die jeweiligen Lernaufgaben abzuschließen, eine oder mehrere Signalqualitätsmessungen und Umgebungsbedingungsdaten beinhaltet; und Betreiben der MLMS-Engine zum Bestimmen des Ersatz-ML-Modells als eine optimierte Version des föderierten ML-Modells basierend auf der Rückmeldung.
  17. Verfahren zum Ausführen einer Maschinenlernmodellaustauschstrategie (MLMS-Strategie), wobei das Verfahren umfasst: Erhalten von Kontextinformationen einer Hardwareplattform (HW-Plattform), auf der gegenwärtig ein Maschinenlernmodell (ML-Modell) eingesetzt wird; Erhalten von Inferenzergebnissen, die durch das gegenwärtig eingesetzte ML-Modell erzeugt werden; Detektieren von Betriebsänderungen der HW-Plattform basierend auf den Kontextinformationen und den Inferenzergebnissen; als Reaktion auf die detektierten Betriebsänderungen, Bestimmen eines Ersatz-ML-Modells zum Ersetzen des gegenwärtig eingesetzten ML-Modells, wobei das Ersatz-ML-Modell für einen Betrieb auf der HW-Plattform mit den detektierten Betriebsänderungen optimiert ist, sodass das Ersatz-ML-Modell dazu ausgelegt ist, auf der HW-Plattform unter den detektierten Betriebsänderungen mit einer oder mehreren verbesserten Leistungsfähigkeitsmetriken im Vergleich zur Leistungsfähigkeit des gegenwärtig eingesetzten ML-Modells ausgeführt zu werden, das auf der HW-Plattform unter den detektierten Betriebsänderungen ausgeführt wird; und Bereitstellen des bestimmten Ersatz-ML-Modells für die HW-Plattform.
  18. Das Verfahren nach Anspruch 17, wobei das Verfahren umfaßt: Veranlassung des Ausführens eines neuronalen Architektursuchalgrithmus (NAS-Algorithmus), um das Ersatz-ML-Modell zu entdecken.
  19. Das Verfahren nach Anspruch 17-18, wobei das Verfahren umfasst: vor dem Einsatz des gegenwärtig eingesetzten ML-Modells, Optimieren eines Referenz-ML-Modells für jede von mehreren unterschiedlichen Betriebsbedingungen der HW-Plattform, wobei ein oder mehrere ML-Modelle des Satzes von ML-Modellen weniger Parameter als das Referenz-ML-Modell aufweisen; und Speichern des Satzes von ML-Modellen, wobei das gegenwärtig eingesetzte ML-Modell und das Ersatz-ML-Modell zu dem gespeicherten Satz von ML-Modellen gehören.
  20. Das Verfahren nach Anspruch 19, wobei das Bestimmen des Ersatz-ML-Modells umfasst: Entdecken eines Satzes von Kandidaten-ML-Modellen unter dem gespeicherten Satz von ML-Modellen, die eine erste Systembeschränkung der HW-Plattform und eine zweite Systembeschränkung der HW-Plattform erfüllen, wobei: die erste Systembeschränkung Betriebsbedingungen der HW-Plattform repräsentiert, als das gegenwärtig eingesetzte ML-Modell eingesetzt wurde, und die zweite Systembeschränkung Betriebsbedingungen der HW-Plattform basierend auf den detektierten Betriebsänderungen repräsentiert; für jedes Kandidaten-ML-Modell in dem Satz von Kandidaten-ML-Modellen, Bestimmen von Datentransferkosten zum Ersetzen des gegenwärtig eingesetzten ML-Modells mit jeweiligen Kandidaten-ML-Modellen in dem Satz von Kandidaten-ML-Modellen, wobei die Datentransferkosten eine Menge an Rechenressourcen sind, die benötigt werden, um das gegenwärtig eingesetzte ML-Modell durch ein entsprechendes des Satzes von Kandidaten-ML-Modellen zu ersetzen; und Auswählen, als das Ersatz-ML-Modell, eines Kandidaten-ML-Modells aus dem Satz von Kandidaten-ML-Modellen mit niedrigsten Datentransferkosten.
  21. Das Verfahren nach Anspruch 20, wobei das Bestimmen der Datentransferkosten zum Ersetzen des gegenwärtig eingesetzten ML-Modells mit jeweiligen Kandidaten-ML-Modellen umfasst: Vektorisieren der jeweiligen Kandidaten-ML-Modelle; und Vergleichen jedes der vektorisierten Kandidaten-MI,-Modelle mit einer vektorisierten Version des aktuell eingesetzten ML-Modells.
  22. Das Verfahren nach einem der Ansprüche 17 bis 21, wobei das Verfahren umfasst: Erhalten einer ML-Konfiguration, die Anwendungsqualitätsmetriken, Systembeschränkungen und Leistungsfähigkeitsauditoreinstellungen beinhaltet, wobei: die Anwendungsqualitätsmetriken Leistungsfähigkeitsmetrikbereiche für das gegenwärtig bereitgestellte ML-Modell beinhalten, die Systembeschränkungen Bereiche von Systemparametern der HW-Plattform beinhalten und die Leistungsfähigkeitsauditoreinstellungen Kombinationen der Anwendungsqualitätsmetriken und der Systembeschränkungen beinhalten, die Betriebsänderungen der HW-Plattform angeben.
  23. Das Verfahren nach einem der Ansprüche 17 bis 22, wobei die Kontextinformationen einen aktuellen Betriebsmodus der HW-Plattform und/oder Systemzustandsinformationen der HW-Plattform und/oder physische Umgebungsinformationen über eine Umgebung, die die HW-Plattform umgibt, und Netzwerkumgebungsinformationen über Netzwerkbedingungen der HW-Plattform umfassen.
  24. Das Verfahren nach einem der Ansprüche 17 bis 23, wobei der Rechenknoten die HW-Plattform ist oder der Rechenknoten eine Komponente der HW-Plattform ist.
  25. Das Verfahren nach einem der Ansprüche 17 bis 23, wobei die HW-Plattform eine andere Vorrichtung als der Rechenknoten ist.
  26. Das Verfahren nach einem der Ansprüche 17 bis 25, wobei die HW-Plattform eines aus einer Intemet-der-Dinge-Vorrichtung (IoT-Vorrichtung), einer Drohne, einem Roboter, einem autonomen Fahrzeug, einer Client-Vorrichtung, einem Netzwerkgerät, einem Netzwerkelement, einem Edge-Server oder einem oder mehreren Cloud-Computing-Knoten eines Cloud-Computing-Dienstes ist.
  27. Das Verfahren nach einem der Ansprüche 17 bis 26, wobei die HW-Plattform ein Edge-Computing-Knoten ist und das Verfahren umfasst: Verteilen entsprechender Lernaufgaben eines föderierten ML-Modells an einen Satz von Vorrichtungen in einem Kommunikationsnetzwerk, wobei der Satz von Vorrichtungen eine oder mehrere Client-Vorrichtungen oder einen oder mehrere Netzwerkzugangsknoten beinhaltet; Erhalten einer Rückmeldung von dem Satz von Vorrichtungen, wobei die Rückmeldung abgeschlossene der jeweiligen Lernaufgaben und mindestens einen Teil der Kontextinformationen beinhaltet, wobei der Teil der Kontextinformation eine Angabe einer Fähigkeit oder Unfähigkeit einzelner Vorrichtungen des Satzes von Vorrichtungen, die jeweiligen Lernaufgaben abzuschließen, eine oder mehrere Signalqualitätsmessungen und Umgebungsbedingungsdaten beinhaltet; und Bestimmen des Ersatz-ML-Modells als eine optimierte Version des föderierten ML-Modells basierend auf der Rückmeldung.
  28. Mindestens ein computerlesbares Speichermedium, welches Anweisungen enthält, deren Ausführung durch einen oder mehrere Prozessoren eines Rechenknotens den Rechenknoten veranlassen soll, das Verfahren nach einem der Ansprüche 17-27 auszuführen.
DE102022125334.1A 2021-10-20 2022-09-30 Skalierungssystem für ein mascihnenlernmodell mit energieeffizientem netzwerkdatentransfer für leistungsbewusste hardware Pending DE102022125334A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/506,161 2021-10-20
US17/506,161 US20220036123A1 (en) 2021-10-20 2021-10-20 Machine learning model scaling system with energy efficient network data transfer for power aware hardware

Publications (1)

Publication Number Publication Date
DE102022125334A1 true DE102022125334A1 (de) 2023-04-20

Family

ID=80003231

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022125334.1A Pending DE102022125334A1 (de) 2021-10-20 2022-09-30 Skalierungssystem für ein mascihnenlernmodell mit energieeffizientem netzwerkdatentransfer für leistungsbewusste hardware

Country Status (3)

Country Link
US (1) US20220036123A1 (de)
CN (1) CN116011511A (de)
DE (1) DE102022125334A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230142965A1 (en) * 2021-11-09 2023-05-11 Paypal, Inc. Federated machine learning based browser extension
EP4227853A1 (de) * 2022-02-09 2023-08-16 Mitsubishi Electric R&D Centre Europe B.V. Benutzergerät zur implementierung einer steuerung in einem satz von benutzergeräten
WO2023201695A1 (en) * 2022-04-22 2023-10-26 Telefonaktiebolaget Lm Ericsson (Publ) Automatic model selection
US20230342460A1 (en) * 2022-04-25 2023-10-26 Palo Alto Networks, Inc. Malware detection for documents with deep mutual learning
CN114692513B (zh) * 2022-05-26 2022-09-06 国网山西省电力公司晋城供电公司 基于深度学习的新能源承载力评估方法、预警方法
CN115134077A (zh) * 2022-06-30 2022-09-30 云南电网有限责任公司信息中心 基于横向lstm联邦学习的企业电力负荷联合预测方法及系统
CN114994547B (zh) * 2022-08-05 2022-11-18 中汽研新能源汽车检验中心(天津)有限公司 基于深度学习和一致性检测的电池包安全状态评估方法
CN117768936A (zh) * 2022-09-16 2024-03-26 华为技术有限公司 信道测量方法及相关装置
CN115829053B (zh) * 2022-11-25 2023-09-19 北京百度网讯科技有限公司 模型运行策略确定方法、装置、电子设备以及存储介质
CN116136752B (zh) * 2023-04-19 2023-06-30 上海登临科技有限公司 阵列输入策略的确定方法和系统
CN117972401B (zh) * 2024-04-02 2024-06-14 深圳市科沃电气技术有限公司 电网全局拓扑的控制方法、装置、设备以及存储介质

Also Published As

Publication number Publication date
CN116011511A (zh) 2023-04-25
US20220036123A1 (en) 2022-02-03

Similar Documents

Publication Publication Date Title
DE102022125334A1 (de) Skalierungssystem für ein mascihnenlernmodell mit energieeffizientem netzwerkdatentransfer für leistungsbewusste hardware
EP4170553A1 (de) Rahmen für die optimierung von maschinenlernarchitekturen
US20220036194A1 (en) Deep neural network optimization system for machine learning model scaling
Rai et al. Driven by data or derived through physics? a review of hybrid physics guided machine learning techniques with cyber-physical system (cps) focus
DE102020128209A1 (de) Automatische Plattformressourcenverwaltung in Edge-Computing-Umgebungen
Leroux et al. The cascading neural network: building the internet of smart things
EP4163833A1 (de) Durch echtzeit-proxy-auswertungsrückmeldungen verbesserter modellentwurf für ein tiefes neuronales netzwerk
WO2018234789A1 (en) SYSTEMS AND DEVICE FOR COMPRESSING NEURAL NETWORK PARAMETERS
Cao et al. Analytics everywhere: generating insights from the internet of things
DE102022203266A1 (de) Verfahren und einrichtungen zum automatischen aktualisieren von künstliche-intelligenz-modellen für autonome fabriken
DE102020108374A1 (de) Verfahren und vorrichtung zur laufzeitmehrfachplanung von software, die in einem heterogenen system ausgeführt wird
DE102022202682A1 (de) Systeme, einrichtungen und verfahren zur edge-daten-priorisierung
EP4156629A1 (de) Systeme, vorrichtung und verfahren zur datenresilienz in einer edge-netzwerkumgebung
Rouhani et al. TinyDL: Just-in-time deep learning solution for constrained embedded systems
Huang et al. Compact and fast machine learning accelerator for IoT devices
DE102022118204A1 (de) Hardwarebewusste Maschinenlernmodellsuchmechanismen
DE102022124386A1 (de) Verfahren und vorrichtungen, um den netzwerkverkehr auszurichten und den leistungsverbrauch zu verbessern
Hiriyannaiah et al. Data Reduction Techniques in Fog Data Analytics for IoT Applications
Khouas et al. Training Machine Learning models at the Edge: A Survey
US20240023028A1 (en) Wireless network energy saving with graph neural networks
Niu et al. Why Do Big Data and Machine Learning Entail the Fractional Dynamics?
Kholod et al. FL4J—Federated Learning Framework for Java
US20240119275A1 (en) Contrastive learning by dynamically selecting dropout ratios and locations based on reinforcement learning
Sahu Boon of hybrid approaches over the bane of model based and machine learning approaches in modelling cyber-physical systems
US20240104368A1 (en) Reduction of data transmission and data storage using neural network technology