DE102023109997A1 - Aufgabenspezifische maschinenlernoperationen unter verwendung von trainingsdaten, die von universalmodellen erzeugt werden - Google Patents

Aufgabenspezifische maschinenlernoperationen unter verwendung von trainingsdaten, die von universalmodellen erzeugt werden Download PDF

Info

Publication number
DE102023109997A1
DE102023109997A1 DE102023109997.3A DE102023109997A DE102023109997A1 DE 102023109997 A1 DE102023109997 A1 DE 102023109997A1 DE 102023109997 A DE102023109997 A DE 102023109997A DE 102023109997 A1 DE102023109997 A1 DE 102023109997A1
Authority
DE
Germany
Prior art keywords
model
machine learning
query
queries
training
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
DE102023109997.3A
Other languages
English (en)
Inventor
Ryan Leary
Jonathan Cohen
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.)
Nvidia Corp
Original Assignee
Nvidia 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 Nvidia Corp filed Critical Nvidia Corp
Publication of DE102023109997A1 publication Critical patent/DE102023109997A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/906Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • 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/0495Quantised networks; Sparse networks; Compressed 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
    • G06N3/09Supervised learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Analysis (AREA)

Abstract

Systeme und Verfahren stellen eine Pipeline zum Entwickeln und Bereitstellen von Maschinenlernmodellen bereit, indem Abfrage/Antwort-Paare aus einem anderen Maschinenlernmodell als Trainingsdaten verwendet werden. Ein Satz von Modellparametern wird festgelegt und ein trainiertes Maschinenlernmodell stellt Antworten auf Eingabeabfragen bereit, um Abfrage/Antwort-Paare zu entwickeln. Diese Abfrage/Antwort-Paare können verwendet werden, um ein anderes Maschinenlernmodell zu trainieren. Dieses Modell kann gegen das ursprüngliche Modell getestet werden, um zu bestimmen, ob sie übereinstimmen, und wenn die Modelle übereinstimmen, kann das andere Maschinenlernmodell als primäres Modell für das System eingesetzt werden.

Description

  • STAND DER TECHNIK
  • Verschiedene Systeme können Maschinenlernmodelle einsetzen, um mit Eingabeabfragen zu interagieren. Typischerweise werden diese Modelle mit großen Datensätzen oder mit von Menschen annotierten Datensätzen für bestimmte Aufgaben oder Domänen trainiert. Das Erhalten ausreichend großer Datensätze oder von Menschen annotierter Datensätze kann zeitaufwändig und teuer sein, was den Einsatz von Modellen verzögern kann. Darüber hinaus kann die Verwendung von Universalmodellen für spezifische Anwendungen zu schlechten Ergebnissen führen, was noch verschlimmert werden kann, wenn erwartete Benutzerabfragen spezifisch für eine bestimmte Domäne sind, auf die die Modelle möglicherweise nicht ausreichend trainiert sind.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Verschiedene Ausführungsformen gemäß der vorliegenden Offenbarung werden unter Bezugnahme auf die Zeichnungen beschrieben, in denen Folgendes gilt:
    • 1 veranschaulicht eine beispielhafte Umgebung zur Verarbeitung natürlicher Sprache gemäß mindestens einer Ausführungsform;
    • 2 veranschaulicht ein Beispiel einer Maschinenlernplattform gemäß mindestens einer Ausführungsform;
    • 3 veranschaulicht ein Beispiel einer Trainingsstufe einer Maschinenlernplattform gemäß mindestens einer Ausführungsform;
    • 4 veranschaulicht ein Beispiel einer Verifizierungsstufe einer Maschinenlernplattform gemäß mindestens einer Ausführungsform;
    • 5 veranschaulicht ein Beispiel einer Produktionsstufe einer Maschinenlernplattform gemäß mindestens einer Ausführungsform;
    • 6A veranschaulicht ein beispielhaftes Ablaufdiagramm eines Prozesses zum Erzeugen von Trainingsdaten gemäß mindestens einer Ausführungsform;
    • 6B veranschaulicht ein beispielhaftes Ablaufdiagramm eines Prozesses zum Verifizieren eines Maschinenlernmodells gemäß mindestens einer Ausführungsform;
    • 7 veranschaulicht ein beispielhaftes Rechenzentrumssystem gemäß mindestens einer Ausführungsform;
    • 8 veranschaulicht ein Computersystem gemäß mindestens einer Ausführungsform;
    • 9 veranschaulicht ein Computersystem gemäß mindestens einer Ausführungsform;
    • 10 veranschaulicht mindestens Abschnitte eines Grafikprozessors gemäß einer oder mehreren Ausführungsformen; und
    • 11 veranschaulicht mindestens Abschnitte eines Grafikprozessors gemäß einer oder mehreren Ausführungsformen.
  • DETAILLIERTE BESCHREIBUNG
  • Ansätze gemäß verschiedenen Ausführungsformen stellen Systeme und Verfahren zur automatisierten Modellentwicklung bereit. In mindestens einer Ausführungsform können Trainingsdaten für ein aufgabenspezifisches Modell durch ein Universalmodell, wie etwa ein Zero-Shot-Modell, erzeugt werden. Beispielsweise kann eine anfängliche Umgebung unter Verwendung eines Zero-Shot-Modells eingesetzt werden und die Antworten von dem Zero-Shot-Modell können zusammen mit ihren zugeordneten Eingabeabfragen gespeichert werden, um Trainingsdaten für das aufgabenspezifische Modell zu erzeugen. Im Laufe der Zeit können sowohl das aufgabenspezifische Modell als auch das Zero-Shot-Modell eingesetzt werden, um eine Konvergenz zwischen den beiden zu bestimmen, wobei ein Konvergenzschwellenwert zu einem Übergang zur ausschließlichen oder halbausschließlichen Verwendung des aufgabenspezifischen Modells führen kann. Auf diese Weise können leichtere, weniger rechenintensive Modelle schnell entwickelt und eingesetzt werden, indem Vorteile ausgefeilterer, rechenintensiverer Modelle genutzt werden.
  • In mindestens einer Ausführungsform kann ein Zero-Shot-Ansatz mit einem Universalmodell verwendet werden, um eine Benutzereingabe zu empfangen und eine Antwort bereitzustellen. Der Zero-Shot-Ansatz kann zum Erkennen von Benutzerabsichten verwendet werden, beispielsweise basierend auf einer Benutzereingabe, wie etwa einer akustischen Eingabe. Verschiedene Ausführungsformen können ein oder mehrere trainierte neuronale Netzwerkmodelle beinhalten, die eine Eingabe empfangen, wie etwa eine akustische Benutzerabfrage, und eine Kennzeichnung für die zugeordnete Eingabe bestimmen, die einer Absicht der Abfrage entspricht. Die Kennzeichnung kann mindestens teilweise basierend auf einer Wahrscheinlichkeit bestimmt werden, dass die der Absicht entsprechenden Kennzeichnung einen Schwellenwert überschreitet. In mindestens einer Ausführungsform kann ein Satz von vorbestimmten Kennzeichnungen bereitgestellt werden, wobei Benutzereingaben dann mit diesen Kennzeichnungen verglichen werden, um zu bestimmen, welche Kennzeichnung am wahrscheinlichsten der Eingabe zugeordnet ist.
  • Verschiedene Ausführungsformen können Probleme überwinden, die mit dem Einsatz von Technologien zur Verarbeitung natürlicher Sprache (natural language processing - NLP) und/oder zum Verstehen natürlicher Sprache (natural language understanding - NLU) verbunden sind. Der Prozess des Kuratierens, Vorverarbeitens und Kennzeichnens von Trainingsdaten, um sie in eine für das Trainieren eines Modells geeignete Form zu bringen, kann mühsam, zeitaufwändig und teuer sein. Herkömmliche NPL-Modelle brauchen zu lange bis zur Einsatzbereitschaft (z. B. Zeit vom Konzept bis zu einem eingesetzten System). Während ein Universalmodell, wie beispielsweise ein Zero-Shot-Modell, die Zeit bis zum Einsatz verkürzen kann, kann es schwierig sein, hochwertige Ergebnisse mit sehr großen Inferenzroutinen zu erhalten, die im Vergleich zu beispielsweise einem aufgabenspezifischen Modell, das auf überwachte Weise trainiert wird, unerschwinglich teuer oder zu rechenintensiv zum Ausführen sein können. Dementsprechend stellen verschiedene Ausführungsformen Systeme und Verfahren bereit, die es hybriden Modellen ermöglichen, Sprachmodelle zu entwickeln, die schnell eingesetzt werden können, ohne die Nachteile, dass große Anfangsdatensätze erforderlich sind, oder die Kosten für kontinuierlich arbeitende Zero-Shot-Modelle. Verschiedene Systeme bestimmen (z. B. basierend auf einer Benutzereingabe) eine relevante Domäne oder Klasse und setzen dann ein der Domäne entsprechendes Modell unter Verwendung eines Universal-Zero-Shot-Modells für Inferenzanfragen ein. Dem Universalmodell bereitgestellte Anfragen und nachfolgende Antworten werden dann aufgezeichnet und als Ground-Truth-Trainingsdaten für ein aufgabenspezifisches Modell verwendet. Sobald das Training abgeschlossen ist oder einen Schwellenwert erreicht, können Antworten von beiden Modellen verglichen werden, um ein Übereinstimmungsniveau zu beurteilen, wobei, wenn eine ausreichende Übereinstimmung erreicht wird, Abfragen an das aufgabenspezifische Modell gerichtet werden können, wodurch erhebliche Recheneinsparungen realisiert werden. Darüber hinaus kann der Einsatz der Modelle aufgrund einer reduzierten Größe des aufgabenspezifischen Modells auf zusätzliche oder zuvor nicht machbare Anwendungen oder Computerumgebungen ausgedehnt werden, wie etwa neben anderen Optionen das Ermöglichen von Edge-Inferenzierung.
  • Verschiedene Ausführungsformen können ferner ein Umgebungs-Dashboard bereitstellen, um es einem Benutzer zu ermöglichen, verschiedene Spezifikationen zur Erzeugung neuer Modelle einzugeben. Beispielsweise kann ein Benutzer eine Domäne für ein bestimmtes Modell auswählen und dann verschiedene Kennzeichnungen oder Informationen bereitstellen, um beim Erstellen des Universal-Zero-Shot-Modells zu helfen. Es versteht sich jedoch, dass neben anderen Optionen auch Kennzeichnungen von dem zu validierenden und/oder zu korrigierenden Modell produziert werden können. Darüber hinaus können verschiedene Ausführungsformen aktives Lernen erleichtern, um Kennzeichnungen mit geringer Konfidenz zur Überprüfung heranzuziehen, was weitere Verbesserungen des Modells ermöglichen kann. In mindestens einer Ausführungsform können manuelle Korrekturen oder zusätzliche Inferenznutzung ein neues Modelltraining auslösen, beispielsweise wenn ein oder mehrere Schwellenwerte erreicht werden. Wenn neue Modelle trainiert werden, kann eine Bewertung (die manuell korrigierte Daten oder durch Zero-Shot produzierte Kennzeichnungen enthalten kann) durchgeführt werden, um sicherzustellen, dass keine Regression auftritt, und eine Punktwertkalibrierung kann durchgeführt werden, um konsistente Konfidenzpunktwerte über Modellversionen hinweg sicherzustellen. Es versteht sich, dass das Dashboard es einem Benutzer ermöglichen kann, die Modellkomprimierung entweder über Destillation und/oder Quantisierung auszulösen, abhängig von Zielanwendungsfällen (z. B. Einsatz auf einem Edge-Server, eingebettete Vorrichtungen usw.).
  • Eine Umgebung 100 kann mit einem oder mehreren NLP/NLU-Systemen verwendet werden, um Modelle zu entwickeln, wie in 1 gezeigt. Es versteht sich, dass die Umgebung 100 mehr oder weniger Komponenten beinhalten kann und dass verschiedene Komponenten der Umgebung 100 in einzelne Systeme integriert sein können, aber der Einfachheit und Klarheit halber als separate Module gezeigt werden können. In diesem Beispiel kann eine Client-Vorrichtung 102 eine oder mehrere Anfragen an eine Entwicklungsumgebung 104 über ein oder mehrere Netzwerke 106 stellen. Die Netzwerke 106 können drahtgebundene oder drahtlose Netzwerke sein, die ein oder mehrere Zwischensysteme beinhalten, wie etwa Benutzervorrichtungen, Serverkomponenten, Switches und dergleichen.
  • In diesem Beispiel kann die Entwicklungsumgebung 104 einer Plattform zugeordnet sein, die neben anderen Optionen einen oder mehrere Hosting- oder Rechendienste für Benutzer anbieten kann. Beispielsweise kann die Entwicklungsumgebung 104 es einem Benutzer ermöglichen, ein oder mehrere Maschinenlernsysteme, wie etwa Konversationssysteme mit künstlicher Intelligenz (Kl), zur integrierten Verwendung mit einem oder mehreren ihrer Produkte zu nutzen. Die Entwicklungsumgebung 104 kann es dem Benutzer ermöglichen, seine eigenen Modelle für seine gewünschten Zwecke zu entwickeln, vorhandene Modelle oder Kombinationen davon zu nutzen. Darüber hinaus kann die Entwicklungsumgebung 104 auch Dienste wie etwa Modelltraining, Modellverifizierung und dergleichen bereitstellen. Es versteht sich, dass die Entwicklungsumgebung 104 in eine größere Dienstumgebung integriert werden kann, die Benutzern verschiedene einmalige oder abonnementbasierte Dienste bereitstellen kann. Darüber hinaus kann die Entwicklungsumgebung 104 einem oder mehreren Softwareentwicklungs-Toolkits (software development toolkits - SDKs) zugeordnet sein, um Anwendungen für spezifische Plattformen zu erstellen.
  • Innerhalb der Entwicklungsumgebung 104 ist eine Administrator-API 108 veranschaulicht, die eine oder mehrere von der Client-Vorrichtung 102 übermittelte Anfragen empfangen kann. Die Administrator-API 108 kann eine Schnittstelle für die Client-Vorrichtung 102 zum Interagieren bereitstellen, um beispielsweise Anfragen für neue Maschinenlernsysteme zu übermitteln, Eigenschaften bestehender Maschinenlernsysteme zu bearbeiten oder anzupassen, Diagnosen auszuführen und dergleichen. In mindestens einer Ausführungsform kann die Administrator-API 108 einem der Client-Vorrichtung 102 bereitgestellten Dienst zugeordnet sein, der neben anderen Optionen dem Hosten und/oder dem Betrieb von Maschinenlernsystemen zugeordnet ist.
  • In mindestens einer Ausführungsform ist der Entwicklungsumgebung 104 eine Maschinenlernplattform 110 zugeordnet. Die Maschinenlernplattform 110 kann ein oder mehrere Tools beinhalten, um es Benutzern zu ermöglichen, verschiedene Maschinenlernsysteme für eine Vielfalt von Anwendungen zu erstellen, zu trainieren und/oder zu betreiben. Beispielsweise können Benutzer vorhandene Modelle nutzen, wie etwa ein Universalmodell, das auf einem großen Datensatz trainiert wurde, und dann das Modell feinabstimmen oder anderweitig für eine aufgabenspezifische Operation trainieren. Ein Anfragenmanager 112 kann Anfragen empfangen, wie etwa von der Administrator-API 108, sich anzupassen, um ein Modell auszuwählen, oder von der Client-Vorrichtung 102, um eine oder mehrere Operationen unter Verwendung eines bereits erstellten Modells auszuführen. Der Anfragenmanager112 kann ein oder mehrere Modelle aus der Modelldatenbank 114 auswählen. Die Modelldatenbank 114 kann einen Satz von Universalmodellen und/oder aufgabenspezifischen Modellen beinhalten. In mindestens einer Ausführungsform können zuvor trainierte und entwickelte Modelle, die dem Benutzer zugeordnet sind, in der Modelldatenbank 114 für späteren Zugriff und/oder Änderungen gespeichert werden. Beispielsweise kann ein Benutzer eine Vielzahl unterschiedlicher Modelle für unterschiedliche Anwendungen aufweisen, und unterschiedliche Modelle können zu unterschiedlichen Zeiten abgerufen und verwendet werden.
  • Die Maschinenlernplattform 110 kann auch verwendet werden, um neue Modelle zu entwickeln. Beispielsweise können ein oder mehrere Modelle, wie etwa ein Universalmodell aus der Modelldatenbank 114, einen Trainingsprozess durchlaufen, bei dem ein Trainingsmanager 116 Daten 118 auswählt, um das Modell zu trainieren. Beispielsweise kann der Trainingsmanager 116 einen oder mehrere Datensätze auswählen, die sich auf eine aufgabenspezifische Anwendung beziehen. Zusätzlich kann der Trainingsmanager 116 in mindestens einer Ausführungsform auswählen, wie viele Trainingsdurchgänge gemacht werden, Parameter, die dem Training zugeordnet sind, und dergleichen.
  • In mindestens einer Ausführungsform können Benutzer Trainingsdaten zur Verwendung mit Trainingsoperationen bereitstellen, die in einer Datenbank 120 gespeichert werden können. Beispielsweise kann der Benutzer seine eigenen Datensätze mitbringen oder neue Datensätze erzeugen, indem er verschiedene Operationen speichert, die einem oder mehreren Modellen zugeordnet sind. Die Datenbank 120 kann für ein aufgabenspezifisches Training eines oder mehrerer Modelle verwendet werden. Darüber hinaus können Benutzer Parameter 122 zur Speicherung und Verwendung durch den Trainingsmanager 116 und/oder den Anfragenmanager 112 beim Erstellen oder Verwenden eines Modells bereitstellen. Die Parameter 122 können spezifische Klassen beinhalten, die Modellen, gewünschten Genauigkeitsniveaus, Latenzzeiten und dergleichen zugeordnet sind.
  • Im Betrieb können Benutzeranfragen die Form einer Eingabeabfrage annehmen, wie etwa einer Frage für ein Konversationssystem, die mit einer Interferenz-API 124 interagieren kann. Die Inferenz-API kann eine Schnittstelle mit der Maschinenlernplattform 110 bilden, um etwa Fragen zur Bewertung zu präsentieren und dann dem Benutzer Antworten zurückzugeben.
  • 2 veranschaulicht eine Umgebung 200, in der eine Maschinenlernplattform 202 über eine Inferenz-API 204 abgefragt werden kann, um Antworten auf eine oder mehrere Eingabeabfragen 206 bereitzustellen. In diesem Beispiel können ein(e) oder mehrere Benutzer oder Benutzervorrichtungen Eingabeabfragen 206 erzeugen, die einem oder mehreren Maschinenlernmodellen zugeordnet sind. In mindestens einer Ausführungsform ist das Modell ein Modell, das gemäß einem oder mehreren Parametern 208 erzeugt und entwickelt wurde, die einer Administrations-API 210 bereitgestellt werden. Beispielsweise kann ein Entwickler der Administrations-API 210 unterschiedliche Modellparameter, wie etwa gewünschte Klassen, bereitstellen, die sie zu einem bestimmten Maschinenlernmodell zu entwickelt werden sollen.
  • Wie vorstehend angemerkt, können aufgabenspezifische Modelle aufgrund eines Mangels an ausreichenden Trainingsdaten schwierig zu trainieren und einzusetzen sein. Diese Arten von Modellen können jedoch mit herkömmlichen überwachten Trainingsmethoden trainiert werden und können daher weniger rechenintensiv und auch kleiner sein. Im Gegensatz dazu können Universalmodelle, wie etwa Zero-Shot-Modelle, mit großen Datensätzen trainiert werden, verfügen aber möglicherweise nicht über ausreichende Informationen für eine oder mehrere bestimmte Aufgaben, die einem aufgabenspezifischen Modell zugeordnet sind. Dementsprechend können Ausführungsformen der vorliegenden Offenbarung ein oder mehrere Maschinenlernmodelle 212 verwenden, um Antworten auf die Abfragen 206 zu erzeugen, und diese Antworten dann zusammen mit den Abfragen 206 verwenden, um Trainingsdaten zur Verwendung beim Trainieren eines oder mehrerer Universalmodelle zu entwickeln. Auf diese Weise können neue Modelle schnell eingesetzt werden und dann im Laufe der Zeit größere, rechenintensivere Universalmodelle durch die trainierten aufgabenspezifischen Modelle ersetzt werden.
  • In diesem Beispiel sind die Maschinenlernmodelle 212 Zero-Shot-Klassifikatoren. In mindestens einer Ausführungsform beinhaltet ein Zero-Shot-Modell einen benutzerdefinierten Satz von Klassen (z. B. Absichten) und Kennzeichnungen für diese Klassen (z. B. Absichtskennzeichnungen). Beispielsweise kann eine Absicht für eine Restaurantanwendung darin bestehen, einen Hamburger zu kaufen, wobei sich die zugeordnete Kennzeichnung auf das Kaufen eines Hamburgers bezieht. Jede dieser Klassen kann eine entsprechende Frage oder Folgeaktion aufweisen, die dann verwendet werden kann, um einen Wert auszuwählen, um einen Slot zu füllen. Beispielsweise kann sich eine Klasse auf den Wunsch beziehen, einen Hamburger zu kaufen, und die Werte zum Füllen dieses Slots (z. B. Bestimmen einer Folgeaktion) könnten darin bestehen, eine Anzahl von Hamburgern in einen Einkaufswagen zu legen, um eine Bestellung abzuschließen.
  • Die Maschinenlernmodelle 212 können Antworten auf die Abfragen 206 an die Maschinenlernplattform 202 erzeugen, um sie dem Benutzer zurückzugeben. Zusätzlich können die Maschinenlernmodelle 212 die Antworten an einen Abfrage- und Ergebnisspeicher 214 übertragen, um mit ihren zugeordneten Abfragen 206 gespeichert zu werden. Das heißt, die Maschinenlernplattform 202 kann zu speichernde Abfragen zusammen mit Antworten auf diese Abfragen übertragen, wodurch ein Satz von Trainingsdaten für unterschiedliche Sätze von Abfragen und Antworten erzeugt wird. Der im Abfrage- und Ergebnisspeicher 214 gespeicherte Satz von Trainingsdaten ist anwendungsspezifisch, da es sich um Abfragen und Antworten handelt, die den Eingabeparametern 208 für das bestimmte System zugeordnet sind. Darüber hinaus wird der Datensatz mit der Verwendung des Modells 212 im Laufe der Zeit wachsen.
  • Im Betrieb kann ein Administrator, der einem Benutzer oder Anbieter zugeordnet ist, mit derAdministrations-API 210 interagieren, um verschiedene Parameter 208 für die Entwicklung und den Einsatz von einem oder mehreren neuen Maschinenlernsystemen bereitzustellen, wie etwa Konversations-KI-Systemen, neben anderen Optionen. Die Parameter 208 können in mindestens einer Ausführungsform benutzerdefinierte Klassen beinhalten, die einem oder mehreren Zero-Shot-Modellen, wie etwa dem Modell 212, zugeordnet sind. Das Modell 212 kann dann einer Maschinenlernplattform 202 zugeordnet werden, die Abfragen 206 über eine Inferenz-API 204 empfangen kann. Das Modell 212, das wie vorstehend angemerkt ein Universalmodell sein kann, kann Antworten auf die Abfragen 206 bereitstellen, während diese Antworten und ihre zugeordneten Abfragen gespeichert werden. Beispielsweise werden Inferenzanfragen (z. B. Abfragen 206) empfangen und Kennzeichnungen für das Modell nachgeschlagen, wobei die Kennzeichnungen einen Teil der Parameter 208 bilden können. In mindestens einer Ausführungsform wird eine Zero-Shot-Klassifizierung durchgeführt, um Antworten auf die Anfragen zu erzeugen. Wie hierin beschrieben wird, können die Informationen in dem Abfrage- und Ergebnisspeicher 214 mindestens teilweise verwendet werden, sobald eine Schwellenanzahl von Antworten und Abfragen in dem Abfrage- und Ergebnisspeicher 214 gespeichert ist oder eine Schwellenzeit verstrichen ist, um ein kleineres, leichteres aufgabenspezifisches Modell zur Verwendung mit der Maschinenlernplattform 202 zu trainieren.
  • 3 veranschaulicht eine Umgebung 300, die in einer Lernstufe arbeitet, in der ein Trainer 302 ausgelöst werden kann, um mit dem Training für ein zweites Maschinenlernmodell 304 zu beginnen oder dieses zu planen. Wie vorstehend angemerkt, sehen verschiedene Ausführungsformen vor, dass die Maschinenlernplattform 202 über die Inferenz-API 204 abgefragt wird, um Antworten auf eine oder mehrere Eingabeabfragen 206 bereitzustellen. Diese Eingabeabfragen 206 und ihre zugeordneten Antworten werden in dem Abfrage- und Ergebnisspeicher 214 gespeichert, um als Trainingsdaten verwendet zu werden, um ein oder mehrere zweite Maschinenlernmodelle 304 zu trainieren, die sich von dem Maschinenlernmodell 212 unterscheiden können. Beispielsweise können die zweiten Maschinenlernmodelle 304 leichtere Modelle sein, die für einen bestimmten Zweck trainiert werden, wie etwa für die spezifischen Parameter 208, und können auch als aufgabenspezifische Modelle bezeichnet werden. Die Verwendung der zweiten Maschinenlernmodelle 304 nach dem Training kann die für die Umgebung erwartete Funktionalität bereitstellen und gleichzeitig die Rechenkosten reduzieren. Darüber hinaus kann die Verwendung leichterer Modelle den Einsatz und Betrieb auf Vorrichtungen mit geringeren Rechenkapazitäten ermöglichen, wodurch Edge-Einsätze und ein größerer Funktionsumfang bereitgestellt werden.
  • In diesem Beispiel werden Abfragen 206 über einen Zeitraum übermittelt, wobei das Maschinenlernmodell 212 Antworten auf diese Abfragen 206 erzeugt. Während dieser Zeit kann der Abfrage- und Ergebnisspeicher 214 die Abfragen 206 und zugeordneten Antworten auf diese Abfragen empfangen, um einen Trainingsdatensatz zu entwickeln, der verwendet werden kann, um ein oder mehrere Maschinenlernsysteme als Ground-Truth-Daten zu trainieren. Es versteht sich, dass dieser Datensatz mindestens teilweise basierend auf Benutzerreaktionen auf die durch die Abfragen bereitgestellten Antworten modifiziert oder anderweitig angepasst werden kann. Lediglich beispielhaft kann eine der den Anfangsparametern 208 zugeordneten Klassen oder Kennzeichnungen darin bestehen, einen Fehler zu melden. Dementsprechend kann ein Abfrage/Antwort-Paar, auf das eine Fehlermeldung folgt, markiert oder anderweitig nicht an den Abfrage- und Ergebnisspeicher 214 bereitgestellt werden. Auf diese Weise können markierte Antworten während des Trainings niedrigere Gewichtungen erhalten oder aus dem Training eliminiert werden.
  • Der Trainer 302 kann verwendet werden, um das zweite Maschinenlernmodell 304 zu trainieren, und kann auch als Planer fungieren, um zu bestimmen, wann mit dem Training begonnen und/oder gestartet werden soll. In mindestens einer Ausführungsform wird das Training gestartet, wenn eine Schwellenanzahl von Abfrage/Antwort-Paaren im Abfrage- und Ergebnisspeicher 214 gespeichert sind. Zusätzlich kann das Training in Ausführungsformen gestartet werden, nachdem eine Zeitspanne verstrichen ist. Ferner versteht es sich, dass mehrere Trainingssitzungen eingeleitet werden können, sodass das Training mit einem ersten Datensatz beginnen kann und dann ein weiteres Training beginnt, wenn ein zweiter Datensatz empfangen wird. Auf diese Weise kann das zweite Maschinenlernmodell 304 iterativ oder stufenweise trainiert werden. Es versteht sich, dass während des Trainings des zweiten Maschinenlernmodells 304 unterschiedliche Datensätze kombiniert werden können. Beispielsweise kann der Abfrage- und Ergebnisspeicher 214 über einen ersten Zeitraum 1.000 Abfrage/Ergebnis-Paare aufweisen. Bei diesen 1.000 Paaren kann das Training beginnen. Über einen zweiten Zeitraum können zusätzliche 500 Abfrage/Ergebnis-Paare im Abfrage- und Ergebnisspeicher 214 gespeichert werden. Für die zweite Trainingsphrase können alle 1.500 Abfrage/Ergebnis-Paare verwendet werden, können nur die neuen 500 Abfrage/Ergebnis-Paare verwendet werden, oder es kann eine beliebige Kombination davon für das weitere Training und die Verfeinerung des zweiten Maschinenlernmodells 304 verwendet werden. In mindestens einer Ausführungsform kann das Training auf geplante Weise anfangen oder unter Verwendung von freier Rechenkapazität zwischen Inferenzanfragen durchgeführt werden. In verschiedenen Ausführungsformen kann das zweite Maschinenlernmodell 304 ein überwachtes Textklassifikatormodell sein, das speziell auf die Klassen trainiert wird, die den Parametern 208 zugeordnet sind. Beispielsweise können eine oder mehrere Ausführungsformen Modelle beinhalten, die ein Codierermodul, wie etwa ein vortrainiertes BERT-ähnliches Modell, und ein Decodierermodul, wie etwa einen Mehrschicht-Perzeptron-Klassifikator, beinhalten.
  • 4 veranschaulicht eine Umgebung 400, die in einer Validierungsstufe arbeitet, in der das zweite Maschinenlernmodell 304 neben dem Maschinenlernmodell 212 arbeitet. In diesem Beispiel werden Abfragen 206 sowohl an das erste als auch an das zweite Maschinenlernmodell 212, 304 bereitgestellt, die dann Antworten auf die Abfragen 206 erzeugen und die Antworten an die Maschinenlernplattform 202 und/oder an einen Analysator oder eine Bestimmungskomponente 402, der/die der Maschinenlernplattform 202 zugeordnet ist, bereitstellen können. Der Analysator 402 validiert die Übereinstimmung zwischen den jeweiligen Antworten, die durch das Maschinenlernmodell 212 und das zweite Maschinenlernmodell 304 erzeugt wurden. Beispielsweise kann der Analysator 402 bestimmen, ob ein Übereinstimmungsschwellenwert zwischen den zwei Modellen 212, 304 erreicht ist, wobei ein Übereinstimmungsschwellenwert einem Prozentsatz übereinstimmender Antworten, einer Korrelation zwischen einzelnen Antworten oder anderen entsprechen kann. Nur als Beispiel, wenn die Abfrage 206 „ich brauche einen Vanille-Milchshake“ lautet und das Maschinenlernmodell 212 diese Kennzeichnung oder Absicht als „bezogen auf den Kauf eines Getränks“ entsprechend identifiziert und das zweite Maschinenlernmodell 304 ebenfalls die Kennzeichnung oder Absicht hinter der Abfrage als „bezogen auf den Kauf eines Getränks“ identifiziert, dann kann die Übereinstimmung als hoch oder befriedigt angesehen werden. Wenn jedoch das zweite Maschinenlernmodell 304 die Kennzeichnung oder Absicht hinter der Abfrage als „bezogen auf den Kauf eines Hamburgers“ identifiziert, kann bestimmt werden, dass zusätzliches Training erforderlich sein kann, wenn keine Übereinstimmung mit einer Schwellenanzahl von Antworten besteht.
  • In mindestens einer Ausführungsform verarbeiten beide Modelle Anfragen während der Validierungsstufe, um den Grad der Übereinstimmung von Vorhersagen zwischen dem Maschinenlernmodell 212 und dem zweiten Maschinenlernmodell 304 zu beurteilen. Die Validierungsstufe kann für einen bestimmten Zeitraum arbeiten, wie etwa eine Anzahl von Anfragen oder einen bestimmten Zeitrahmen, und dann kann eine Entscheidung getroffen werden, ob das zweite Maschinenlernmodell 304 nachtrainiert werden soll oder nicht. Wenn eine ausreichende Übereinstimmung zwischen den Modellen besteht, kann das System zugunsten des zweiten Maschinenlernmodells 304 umschwenken oder auf andere Weise aufhören, Abfragen 206 an das Maschinenlernmodell 212 bereitzustellen, wodurch erhebliche Recheneinsparungen realisiert werden. Darüber hinaus kann das zweite Maschinenlernmodell 304 aufgrund der reduzierten Komplexität und Rechenintensität auch für die Edge-Inferenz geeignet sein.
  • Es versteht sich, dass zwar Systeme und Verfahren beschrieben werden können, bei denen beide Modelle 212, 304 zur gleichen Zeit oder im Wesentlichen zur gleichen Zeit (z. B. parallel oder mindestens teilweise parallel) arbeiten, verschiedene Ausführungsformen jedoch nicht notwendigerweise unter Verwendung eines solchen Ansatzes arbeiten. Beispielsweise kann das Maschinenlernmodell 212 eingesetzt werden, um Daten zu erfassen, die in den Abfrage- und Ergebnisspeicher 214 eingespeist werden. Dann kann offline zu einem späteren Zeitpunkt das zweite Maschinenlernmodell 214 trainiert werden. Danach könnte die Übereinstimmung (Angleichung) auch offline vor dem Einsatz des zweiten Maschinenlernmodells 214 analysiert werden. Beispielsweise kann nach dem Trainieren des zweiten Maschinenlernmodells 214 ein Satz von Abfragen 206 zur Bewertung und zum Vergleich gespeichert werden. Die Abfrage/Ergebnis-Paare aus dem Maschinenlernmodell 212 können dann mit nachfolgenden Abfrage/Ergebnis-Paaren aus dem zweiten Maschinenlernmodell 304 verglichen werden. Wenn eine ausreichende Übereinstimmung (Angleichung) erreicht ist, kann das zweite Maschinenlernmodell 304 eingesetzt werden. Dementsprechend, obzwar Ausführungsformen den parallelen oder halbparallelen Betrieb der Modelle 212, 304 erörtern können, versteht es sich, dass das Training und/oder die Validierung jederzeit vor dem vollständigen Einsatz des zweiten Maschinenlernmodells 304 durchgeführt werden können.
  • 5 veranschaulicht eine Umgebung 500, die in einer Produktionsstufe arbeitet, in der das zweite Maschinenlernmodell 304 Antworten auf Inferenzanfragen bereitstellt und die Abfragen 206 nicht mehr dem Maschinenlernmodell 212 bereitgestellt werden. In diesem Beispiel wird bestimmt, dass das zweite Maschinenlernmodell 304 ausreichend trainiert ist (z. B. einen Übereinstimmungsschwellenwert mit dem Maschinenlernmodell 212 erreicht hat), um mit dem Betrieb zu beginnen. Wie vorstehend angemerkt, kann das zweite Maschinenlernmodell 304 in mindestens einer Ausführungsform parallel oder im Wesentlichen parallel mit dem Maschinenlernmodell 212 arbeiten, bevor es in die Produktionsstufe eintritt. In mindestens einer Ausführungsform wird das zweite Maschinenlernmodell 304 vor dem Einsatz ohne Betrieb zusammen mit dem Maschinenlernmodell 212 vortrainiert und getestet.
  • In verschiedenen Ausführungsformen werden Abfrage/Antwort-Paare aus dem zweiten Maschinenlernmodell 304 in dem Abfrage- und Ergebnisspeicher 214 gespeichert. Diese Informationen können für fortgesetztes Training oder Nachtraining des zweiten Maschinenlernmodells 304 und/oder des Maschinenlernmodells 212 gespeichert werden. Darüber hinaus können die Abfrage/Antwort-Paare periodisch auf Drift oder Fehler getestet werden, was ein Nachtraining oder einen periodischen Betrieb des Maschinenlernmodells 212 veranlassen kann, während das zweite Maschinenlernmodell 304 abgestimmt wird.
  • Verschiedene Ausführungsformen der vorliegenden Offenbarung ermöglichen es einem Bediener, über die Administrator-API 210 schnell neue Maschinenlernmodelle zu definieren und einzusetzen. Darüber hinaus kann der Bediener den Betrieb der Modelle 214, 304 weiterhin überwachen oder anderweitig beaufsichtigen. Beispielsweise kann der Bediener verschiedene manuell validieren oder korrigieren. Darüber hinaus kann aktives Lernen genutzt werden, um Kennzeichnungen mit niedriger Konfidenz zur Überprüfung heranzuziehen, wodurch potenziell ihre Auswirkungen auf das Modell und nachfolgende Verbesserungen des Modells erhöht werden. Darüber hinaus können Bediener auch manuelle Korrekturen vornehmen oder zusätzliche Inferenz-API-Nutzung hinzufügen, um ein neues Modelltraining auszulösen.
  • In mindestens einer Ausführungsform kann das Modelltraining auch bewertet und überwacht werden, wie etwa über einen Bediener oder eine oder mehrere festgelegte Regeln oder Verfahren. Wenn beispielsweise neue Modelle trainiert werden, können eine oder mehrere Operationen ausgelöst werden, um die Modelle zu bewerten, was eine Bewertung unter Verwendung manuell korrigierter Daten beinhalten kann, um sicherzustellen, dass keine Regression aufgetreten ist. Eine Punktwertkalibrierung kann durchgeführt werden, um konsistente Konfidenzpunktwerte über Modellversionen hinweg sicherzustellen.
  • Wie zuvor angegeben, kann das zweite Maschinenlernmodell 304 in mindestens einer Ausführungsform dazu konfiguriert sein, auf Systemen mit weniger Rechenleistung zu arbeiten, wie etwa auf einem Edge-Server, einer eingebetteten Vorrichtung usw. Systeme und Verfahren können eine Komprimierung (z. B. durch Destillation oder Quantisierung), mindestens teilweise abhängig vom Anwendungsfall bereitstellen. Dementsprechend kann eine größere Anordnung von Vorrichtungen von dem zweiten Maschinenlernmodell 304 profitieren.
  • 6A veranschaulicht einen beispielhaften Prozess 600 zum Erzeugen von Trainingsdaten unter Verwendung eines ersten Maschinenlernmodells. Es versteht sich, dass für diesen und andere hierin vorgestellte Prozesse zusätzliche, weniger oder alternative Schritte in einer ähnlichen oder alternativen Reihenfolge oder mindestens teilweise parallel im Umfang verschiedener Ausführungsformen durchgeführt werden können, soweit nicht spezifisch anderweitig angegeben. In diesem Beispiel werden ein oder mehrere Parameter, die einem ersten Modell zugeordnet sind, empfangen 602. Die Parameter können auf einen gewünschten Satz von Klassen und/oder Kennzeichnungen gerichtet sein, die dem ersten Modell zugeordnet sind, das durch eine API bereitgestellt werden kann, die es einem Bediener ermöglicht, neue Maschinenlernmodelle zu erstellen, wie etwa unter anderem Konversations-Kl-Modelle. Die Parameter können eine Vielfalt von Einstellungen für das Modell beinhalten, wie etwa die vorstehend genannten Klassen, Latenzgrenzen, Größengrenzen und dergleichen. Darüber hinaus können die Parameter in mindestens einer Ausführungsform einen oder mehrere Typen von einzusetzenden Modellen spezifizieren.
  • Verschiedene Ausführungsformen stellen eine Schnittstelle bereit, um es dem ersten Modell zu ermöglichen, eine oder mehrere Eingabeabfragen zu empfangen 604. Das erste Modell kann ein vortrainiertes Modell sein, wie etwa ein Universalmodell, das ferner ein Zero-Shot-Modell sein kann. Das Zero-Shot-Modell kann eine Abfrage empfangen, die auf eine oder mehrere Klassen mit einer zugeordneten Kennzeichnung gerichtet sein kann. Während das erste Modell möglicherweise nicht spezifisch auf die Klassen trainiert ist, können die Eingabeparameter einige Klassen-/Kennzeichnungsbezeichnungen beinhalten, um eine Klassifizierung der Abfragen zu ermöglichen, um die geeigneten Kennzeichnungen zu identifizieren, und in verschiedenen Ausführungsformen nachfolgende Antworten oder Aktionen, die diesen Kennzeichnungen zugeordnet sind. Dann kann eine Antwort auf die erste Abfrage bereitgestellt werden 606. Die Antwort kann neben verschiedenen anderen Optionen eine Aktion sein, wie etwa das Durchführen einer angefragten Aufgabe, oder kann eine Antwort auf eine Frage sein. Das Abfrage/Antwort-Paar kann in einer Datenbank gespeichert werden 608. Beispielsweise können ein oder mehrere Abschnitte der Abfrage/Antwort gespeichert werden, einschließlich der Klasse, Kennzeichnung, Aktion, Antwort usw.
  • In mindestens einer Ausführungsform werden Informationen aus der Datenbank verwendet, um ein zweites Modell zu trainieren, das ein aufgabenspezifisches Modell sein kann 610. Die Informationen können die Abfrage/Antwort-Paare beinhalten, die ein klassenspezifisches Trainingsniveau für das zweite Modell bereitstellen können, ohne manuell einen Datensatz zu erzeugen. Nachdem das zweite Modell trainiert wurde, kann es anstelle des ersten Modells eingesetzt werden 612. Auf diese Weise können Trainingsdaten unter Verwendung eines größeren, komplexeren Modells entwickelt und dann durch ein aufgabenspezifisches Modell ersetzt werden, das auf die während des Betriebs des ersten Modells erfassten Informationen trainiert wird.
  • 6B veranschaulicht einen beispielhaften Prozess 620 zum Verifizieren eines aufgabenspezifischen Modells. In diesem Beispiel wird eine Eingabeabfrage empfangen 622. Beispielsweise kann die Eingabeabfrage einer Interferenz-API bereitgestellt werden, die mit einer oder mehreren Maschinenlernplattformen interagieren kann. Ein erstes trainiertes Modell kann verwendet werden, um eine erste Antwort auf die Eingabeabfrage zu bestimmen 624. In mindestens einer Ausführungsform ist das erste trainierte Modell ein Universalmodell, wie etwa ein Zero-Shot-Modell. Ein zweites trainiertes Modell kann verwendet werden, um eine zweite Antwort auf die Eingabeabfrage zu bestimmen 626. In mindestens einer Ausführungsform ist das zweite trainierte Modell ein aufgabenspezifisches Modell. Die erste und die zweite Antwort können beide versuchen, eine gleiche oder ähnliche Antwort bereitzustellen, z. B. das Bestimmen einer Kennzeichnung, die einer Klasse der Eingabeabfrage zugeordnet ist.
  • Verschiedene Ausführungsformen können das Bestimmen einer Übereinstimmung zwischen der ersten und der zweiten Antwort beinhalten 628. Übereinstimmung kann sich auf ein Ausmaß an Ähnlichkeit zwischen der ersten und der zweiten Antwort beziehen. In mindestens einer Ausführungsform wird die Übereinstimmung anhand eines Schwellenwerts bewertet, wie etwa dem Grad an Ähnlichkeit zwischen einer bestimmten Antwort, einem Satz von Antworten, Antworten im Zeitverlauf und dergleichen. In mindestens einer Ausführungsform kann die Übereinstimmung dem Identifizieren einer gleichen oder ähnlichen Kennzeichnung entsprechen. Es kann bestimmt werden, ob die Übereinstimmung einen Schwellenwert überschreitet 630. Wenn dies der Fall ist, kann das zweite Modell verifiziert werden 632, was zu einem vollständigen Einsatz des zweiten Modells und einer Beendigung des Betriebs des ersten Modells führen kann. Wenn nicht, kann das zweite Modell nachtrainiert werden 634. Auf diese Weise kann ein zweites Modell, das weniger rechenintensiv sein kann, mit einem rechenintensiveren ersten Modell verglichen werden, um zu bestimmen, ob das zweite Modell den Betrieb des ersten Modells effektiv ersetzen kann, wodurch die Betriebskosten gesenkt werden und gleichzeitig eine Anzahl von Anwendungen für das System aufgrund der Verwendung eines weniger rechenintensiven Modells erhöht wird.
  • Die hierin beschriebenen Systeme und Verfahren können für eine Vielfalt von Zwecken verwendet werden, wie etwa - beispielhaft und ohne Einschränkung - für Maschinensteuerung, Maschinenfortbewegung, Maschinenfahren, Erzeugung synthetischer Daten, digitales Twinning, Modelltraining, Wahrnehmung, Augmented Reality, Virtual Reality, Mixed Reality, Robotik, Sicherheit und Überwachung, autonome oder halbautonome Maschinenanwendungen, Deep Learning, Umgebungssimulation, Rechenzentrumsverarbeitung, Konversations-KI, Lichttransportsimulation (z. B. Raytracing, Pathtracing usw.), kollaborative Inhaltserstellung für 3D-Assets, Cloud Computing und/oder beliebige andere geeignete Anwendungen.
  • Gleichermaßen können offenbarte Ausführungsformen in einer Vielzahl unterschiedlicher Systeme umfasst sein, wie etwa Verkaufskiosken oder anderen verbraucherinteraktiven Systemen und Vorrichtungen, Automobilsystemen (z. B. einem Steuersystem für eine autonome oder halbautonome Maschine, einem Wahrnehmungssystem für eine autonome oder halbautonome Maschine), Systemen, die unter Verwendung eines Roboters umgesetzt sind, Antennensystemen, medialen Systemen, Bootssystemen, intelligenten Bereichsüberwachungssystemen, Systemen zur Durchführung von Deep-Learning- und Digital-Twin-Operationen, Systemen zur Durchführung von Simulationsoperationen, Systemen, die unter Verwendung einer Edge-Vorrichtung umgesetzt sind, Systemen, die eine oder mehrere virtuelle Maschinen (VMs) enthalten, Systemen zur Durchführung von Operationen zur synthetischen Datenerzeugung, Systemen, die mindestens teilweise in einem Rechenzentrum umgesetzt sind, Systemen zur Durchführung von Konversations-KI-Operationen, Systemen zur Durchführung von Lichttransportsimulationen, Systemen zur kollaborativen Inhaltserstellung für 3D-Assets, Systemen, die mindestens teilweise unter Verwendung von Cloud-Computing-Ressourcen umgesetzt sind, und/oder anderen Arten von Systemen.
  • RECHENZENTRUM
  • 7 veranschaulicht ein beispielhaftes Rechenzentrum 700, in dem mindestens eine Ausführungsform verwendet werden kann. In mindestens einer Ausführungsform weist das Rechenzentrum 700 eine Datenzentrums-Infrastrukturschicht 710, eine Frameworkschicht 720, eine Softwareschicht 730 und eine Anwendungsschicht 740 auf.
  • In mindestens einer Ausführungsform kann die Rechenzentrumsinfrastrukturschicht 710 wie in 7 dargestellt einen Ressourcenorchestrator 712, gruppierte Rechenressourcen 714 und Knoten-Rechenressourcen („Knoten-C.R.“) 716(1)-716(N) beinhalten, wobei „N“ eine beliebige ganze positive Zahl darstellt. In mindestens einer Ausführungsform können die Knoten-C.R.s 716(1)-716(N) eine beliebige Anzahl von Zentralverarbeitungseinheiten („CPUs“) oder andere Prozessoren (einschließlich Beschleuniger, feldprogrammierbaren Gate-Arrays (FPGAs), Grafikprozessoren usw.), Arbeitsspeichervorrichtungen (z. B. dynamischer Nur-Lese-Speicher), Datenspeichervorrichtungen (z. B. Festkörper- oder Festplattenlaufwerke), Netzwerk-Ein-/Ausgabe(„NW-E/A“)-Vorrichtungen, Netzwerk-Switches, virtuelle Maschinen („VMs“), Leistungsmodule und Kühlmodule usw. beinhalten, ohne darauf beschränkt zu sein. In mindestens einer Ausführungsform können eine oder mehrere Knoten-C.R.s von den Knoten-C.R.s 716(1)-716(N) ein Server sein, der eine oder mehrere der vorstehend erwähnten Computerressourcen aufweist.
  • In mindestens einer Ausführungsform können die gruppierten Rechenressourcen 714 separate Gruppierungen von Knoten-C.R.s beinhalten, die innerhalb eines oder mehrerer Racks (nicht gezeigt) oder vieler Racks untergebracht sind, die in Rechenzentren an verschiedenen geografischen Standorten untergebracht sind (ebenfalls nicht gezeigt). Getrennte Gruppierungen von Knoten-C.R.s innerhalb gruppierter Computerressourcen 714 können gruppierte Rechen-, Netzwerk-, Arbeitsspeicher- oder Datenspeicherressourcen beinhalten, die konfiguriert oder zugewiesen sein können, um eine oder mehrere Arbeitslasten zu tragen. In mindestens einer Ausführungsform können mehrere Knoten-C.R.s, die CPUs oder Prozessoren beinhalten, innerhalb eines oder mehrerer Racks gruppiert sein, um Rechenressourcen zum Unterstützen einer oder mehrerer Arbeitslasten bereitzustellen. In mindestens einer Ausführungsform können ein oder mehrere Racks auch eine beliebige Anzahl von Leistungsmodulen, Kühlmodulen und Netz-Switches in beliebiger Kombination beinhalten.
  • In mindestens einer Ausführungsform kann der Ressourcenorchestrator 712 einen oder mehrere Knoten-C.R. 716(1)-716(N) und/oder gruppierte Rechenressourcen 714 konfigurieren oder anderweitig steuern. In mindestens einer Ausführungsform kann der Ressourcenorchestrator 712 eine Softwaredesigninfrastruktur-(„SDI“- )Managerentität für das Rechenzentrum 700 beinhalten. In mindestens einer Ausführungsform kann der Ressourcenorchestrator Hardware, Software oder eine Kombination davon beinhalten.
  • In mindestens einer Ausführungsform beinhaltet, wie in 7 gezeigt, die Frameworkschicht 720 einen Aufgabenplaner 722, einen Konfigurationsmanager 724, einen Ressourcenmanager 726 und ein verteiltes Dateisystem 728. In mindestens einer Ausführungsform kann die Frameworkschicht 720 ein Framework beinhalten, um Software 732 der Softwareschicht 730 und/oder eine oder mehrere Anwendung(en) 742 der Anwendungsschicht 740 zu unterstützen. In mindestens einer Ausführungsform kann/können die Software 732 oder die Anwendung(en) 742 jeweils webbasierte Dienstsoftware oder -anwendungen beinhalten, wie etwa diejenigen, die durch Amazon Web Services, Google Cloud und Microsoft Azure bereitgestellt sind. In mindestens einer Ausführungsform kann es sich bei der Frameworkschicht 720 um eine Art freien und quelloffenen Software-Webanwendungsrahmen wie Apache Spark™ (nachfolgend „Spark“) handeln, der ein verteiltes Dateisystem 728 für die Verarbeitung großer Datenmengen (z. B. „Big Data“) verwenden kann, ohne darauf beschränkt zu sein. In mindestens einer Ausführungsform kann der Aufgabenplaner 722 einen Spark-Treiber beinhalten, um die Planung von Arbeitslasten zu erleichtern, die durch verschiedene Schichten des Rechenzentrums 700 unterstützt werden. In mindestens einer Ausführungsform kann der Konfigurationsmanager 724 in der Lage sein, unterschiedliche Schichten zu konfigurieren, wie etwa die Softwareschicht 730 und die Frameworkschicht 720, was Spark und das verteilte Dateisystem 728 zum Unterstützen einer umfangreichen Datenverarbeitung beinhaltet. In mindestens einer Ausführungsform kann der Ressourcenmanager 726 in der Lage sein, geclusterte oder gruppierte Computerressourcen zu verwalten, die in dem verteilten Dateisystem 728 und dem Aufgabenplaner 722 abgebildet sind oder diesen zur Unterstützung zugewiesen sind. In mindestens einer Ausführungsform können geclusterte oder gruppierte Computerressourcen eine gruppierte Computerressource 714 auf der Rechenzentrumsinfrastrukturschicht 710 beinhalten. In mindestens einer Ausführungsform kann sich der Ressourcenmanager 726 mit dem Ressourcenorchestrator 712 koordinieren, um diese abgebildeten oder zugewiesenen Computerressourcen zu managen.
  • In mindestens einer Ausführungsform kann die in der Softwareschicht 730 enthaltene Software 732 Software beinhalten, die mindestens durch Abschnitte der Knoten-C.R.s 716(1)-716(N), der gruppierten Computerressourcen 714 und/oder des verteilten Dateisystems 728 der Frameworkschicht 720 verwendet wird. Zu einem oder mehreren Arten von Software können Software zum Durchsuchen von Internet-Webseiten, Software zum Scannen von E-Mails auf Viren, Datenbank-Software und Software für Streaming-Videoinhalte gehören, ohne darauf beschränkt zu sein.
  • In mindestens einer Ausführungsform kann/können die Anwendung(en) 742, die in der Anwendungsschicht 740 enthalten ist/sind, eine oder mehrere Arten von Anwendungen beinhalten, die von mindestens Abschnitten der Knoten-C.R.s 716(1)-716(N), gruppierten Computerressourcen 714 und/oder dem verteilten Dateisystem 728 der Frameworkschicht 720 verwendet werden. Eine oder mehrere Arten von Anwendungen können eine beliebige Anzahl einer Genomikanwendung, einer kognitiven Rechenanwendung und einer maschinellen Lernanwendung umfassen, die Trainings- oder Ableitungssoftware beinhaltet, Framework-Software des maschinellen Lernens (z. B. PyTorch, TensorFlow, Caffe usw.) oder andere maschinelle Lernanwendungen beinhalten, ohne darauf beschränkt zu sein, die in Verbindung mit einer oder mehreren Ausführungsformen verwendet werden.
  • In mindestens einer Ausführungsform können beliebige des Konfigurationsmanagers 724, des Ressourcenmanagers 726 und des Ressourcenorchestrators 712 eine beliebige Anzahl und einen beliebigen Typ von selbstmodifizierenden Handlungen implementieren, die auf einer beliebigen Menge und einem beliebigen Typ von Daten basieren, die auf eine beliebige technisch machbare Weise erfasst wurden. In mindestens einer Ausführungsform können selbstmodifizierende Handlungen einen Rechenzentrumsbetreiber des Rechenzentrums 700 davon befreien, möglicherweise schlechte Konfigurationsentscheidungen zu treffen, und möglicherweise nicht ausgelastete und/oder leistungsschwache Abschnitte eines Rechenzentrums vermeiden.
  • In mindestens einer Ausführungsform kann das Rechenzentrum 700 Tools, Dienste, Software oder andere Ressourcen beinhalten, um ein oder mehrere Maschinenlernmodelle zu trainieren, oder um Informationen unter Verwendung eines oder mehrerer Maschinenlernmodelle gemäß einer oder mehrerer in dieser Schrift beschriebener Ausführungsformen vorherzusagen oder zu inferenzieren. Zum Beispiel kann in mindestens einer Ausführungsform ein Maschinenlernmodell durch das Berechnen von Gewichtungsparametern gemäß einer neuronalen Netzwerkarchitektur unter Verwendung von Software und Computerressourcen trainiert werden, die vorstehend im Hinblick auf das Rechenzentrum 700 beschrieben wurden. In mindestens einer Ausführungsform können trainierte Maschinenlernmodelle verwendet werden, die einem oder mehreren neuronalen Netzwerken entsprechen, um Informationen unter Verwendung der vorstehend beschriebenen Ressourcen in Bezug auf das Rechenzentrum 700 durch das Verwenden von Gewichtungsparametern zu inferenzieren oder vorherzusagen, die durch eine oder mehrere in dieser Schrift beschriebene Trainingsmethoden berechnet wurden.
  • In mindestens einer Ausführungsform kann das Rechenzentrum CPUs, anwendungsspezifische integrierte Schaltungen (ASICs), GPUs, FPGAs oder andere Hardware verwenden, um Training und/oder Inferenzierung unter Verwendung der oben beschriebenen Ressourcen durchzuführen. Darüber hinaus können eine oder mehrere der vorstehend beschriebenen Software- und/oder Hardware-Ressourcen als Dienst konfiguriert sein, um Benutzern das Trainieren oder Durchführen des Inferenzierens von Informationen zu ermöglichen, wie etwa Bilderkennung, Spracherkennung oder andere Dienste der künstlichen Intelligenz.
  • Solche Komponenten können zum Ausführen von Befehlen in Interaktionsumgebungen verwendet werden.
  • COMPUTERSYSTEME
  • 8 ist ein Blockdiagramm, das ein beispielhaftes Computersystem veranschaulicht, das ein System mit miteinander verbundenen Vorrichtungen und Komponenten, ein System auf einem Chip (SOC) oder eine Kombination davon 800 sein kann, die mit einem Prozessor gebildet ist, der Ausführungseinheiten beinhalten kann, um einen Befehl auszuführen, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann das Computersystem 800 ohne Einschränkung eine Komponente beinhalten, wie etwa einen Prozessor 802, um Ausführungseinheiten zu verwenden, die eine Logik beinhalten, um Algorithmen für Verfahrensdaten gemäß der vorliegenden Offenbarung durchzuführen, wie etwa in der in dieser Schrift beschriebenen Ausführungsform. In mindestens einer Ausführungsform kann das Computersystem 800 Prozessoren, wie z. B. die PENTIUM®-Prozessorfamilie, die Mikroprozessoren Xeon™, Itanium®, XScale™ und/oder StrongARM™, Intel® Core™ oder Intel® Nervana™, die von der Intel Corporation in Santa Clara, Kalifornien, erhältlich sind, beinhalten, obwohl auch andere Systeme (einschließlich PCs mit anderen Mikroprozessoren, Engineering-Arbeitsstationen, Set-Top-Boxen und dergleichen) verwendet werden können. In mindestens einer Ausführungsform kann das Computersystem 800 eine Version des WINDOWS-Betriebssystems ausführen, das von der Microsoft Corporation in Redmond, Washington, erhältlich ist, obwohl auch andere Betriebssysteme (zum Beispiel UNIX und Linux), eingebettete Software und/oder grafische Benutzeroberflächen verwendet werden können.
  • Ausführungsformen können in anderen Vorrichtungen verwendet werden, wie etwa tragbaren Vorrichtungen und eingebetteten Anwendungen. Einige Beispiele für tragbare Vorrichtungen beinhalten Mobiltelefone, Internetprotokoll-Vorrichtungen, Digitalkameras, persönliche digitale Assistenten (personal digital assistants - „PDAs“) und tragbare PCs. In mindestens einer Ausführungsform können eingebettete Anwendungen einen Mikrocontroller, einen digitalen Signalprozessor („DSP“), ein System auf einem Chip, Netzwerkcomputer („NetPCs“), Edge-Rechenvorrichtungen, Set-Top-Boxen, Netzwerk-Hubs, Wide-Area-Network-Switches („WAN“) oder jedes andere System aufweisen, das eine oder mehrere Anweisungen gemäß mindestens einer Ausführungsform durchführen kann.
  • In mindestens einer Ausführungsform kann das Computersystem 800 ohne Einschränkung einen Prozessor 802 beinhalten, der ohne Einschränkung eine oder mehrere Ausführungseinheiten 808 beinhalten kann, um ein Training und/oder eine Inferenzierung für ein Maschinenlernmodell gemäß in dieser Schrift beschriebenen Methoden durchzuführen. In mindestens einer Ausführungsform ist das Computersystem 800 ein Desktop mit einem einzelnen Prozessor oder ein Serversystem, in einer weiteren Ausführungsform kann das Computersystem 800 jedoch ein Mehrprozessorsystem sein. In mindestens einer Ausführungsform kann der Prozessor 802 ohne Einschränkung Folgendes beinhalten: einen Mikroprozessor eines Computers mit komplexem Befehlssatz (complex instruction set computer - „CISC“), einen Mikroprozessor zum Berechnen mit reduziertem Befehlssatz (reduced instruction set computing - „RISC“), einen Mikroprozessor mit sehr langem Befehlswort (very long instruction word - „VLIW“), einen Prozessor, der eine Kombination von Befehlssätzen implementiert, oder eine beliebige andere Prozessorvorrichtung, wie etwa einen digitalen Signalprozessor. In mindestens einer Ausführungsform kann der Prozessor 802 mit einem Prozessorbus 810 gekoppelt sein, der Datensignale zwischen dem Prozessor 802 und anderen Komponenten im Computersystem 800 übertragen kann.
  • In mindestens einer Ausführungsform kann der Prozessor 802 ohne Einschränkung einen internen Level-1-(„L1“-)Cache-Speicher („Cache“) 804 beinhalten. In mindestens einer Ausführungsform kann der Prozessor 802 einen einzelnen internen Cache oder mehrere Ebenen von internem Cache aufweisen. In mindestens einer Ausführungsform kann sich der Cache-Speicher außerhalb des Prozessors 802 befinden. Andere Ausführungsformen können auch eine Kombination von sowohl internen als auch externen Zwischenspeichern abhängig von einer bestimmten Umsetzung und Anforderungen beinhalten. In mindestens einer Ausführungsform kann die Registerdatei 806 verschiedene Arten von Daten in verschiedenen Registern speichern, die ohne Einschränkung ein Ganzzahlregister, Gleitkommaregister, Statusregister und Befehlszeigerregister beinhalten.
  • In mindestens einer Ausführungsform befindet sich die Ausführungseinheit 808, einschließlich ohne Einschränkung der Logik zum Durchführen von Ganzzahl- und Gleitkommaoperationen, ebenfalls in dem Prozessor 802. In mindestens einer Ausführungsform kann der Prozessor 802 auch einen Nur-Lese-Speicher („ROM“) für Mikrocode („ucode“) aufweisen, der Mikrocode für bestimmte Makrobefehle speichert. In mindestens einer Ausführungsform kann die Ausführungseinheit 808 Logik beinhalten, um einen gepackten Befehlssatz 809 zu handhaben. In mindestens einer Ausführungsform können Operationen, die von vielen Multimediaanwendungen verwendet werden, unter Verwendung von gepackten Daten in einem Allzweckprozessor 802 durch das Einschließen des gepackten Befehlssatzes 809 in einen Befehlssatz eines Allzweckprozessors 802 durchgeführt werden, zusammen mit einer verbundenen Schaltung, um Befehle auszuführen. In einer oder mehreren Ausführungsformen können viele Multimediaanwendungen beschleunigt und effizienter ausgeführt werden, indem die volle Breite des Datenbusses eines Prozessors zum Ausführen von Operationen an gepackten Daten verwendet wird, wodurch die Notwendigkeit beseitigt werden kann, kleinere Dateneinheiten über den Datenbus des Prozessors zu übertragen, um eine oder mehrere Operationen nacheinander mit jeweils einem Datenelement durchzuführen.
  • In mindestens einer Ausführungsform kann die Ausführungseinheit 808 auch in Mikrocontrollern, eingebetteten Prozessoren, Grafikvorrichtungen, DSPs und anderen Typen von Logikschaltungen verwendet werden. In mindestens einer Ausführungsform kann das Computersystem 800 ohne Einschränkung einen Speicher 820 beinhalten. In mindestens einer Ausführungsform kann der Speicher 820 als ein dynamischer Direktzugriffsspeicher (Dynamic Random Access Memory - „DRAM“), ein statischer Direktzugriffsspeicher (Static Random Access Memory - „SRAM“), eine Flash-Speichervorrichtung oder eine andere Speichervorrichtung implementiert sein. In mindestens einer Ausführungsform kann der Speicher 820 die Befehl(e) 819 und/oder Daten 821 speichern, die durch Datensignale dargestellt sind, die durch den Prozessor 802 ausgeführt werden können.
  • In mindestens einer Ausführungsform kann ein Systemlogikchip mit dem Prozessorbus 810 und dem Speicher 820 gekoppelt sein. In mindestens einer Ausführungsform kann der Systemlogikchip ohne Einschränkung einen Speicher-Controller-Hub (memory controller hub - „MCH“) 816 beinhalten, und der Prozessor 802 kann mit dem MCH 816 über den Prozessorbus 810 kommunizieren. In mindestens einer Ausführungsform kann der MCH 816 einen Speicherpfad 818 mit hoher Bandbreite zum Speicher 820 zur Befehls- und Datenspeicherung und zur Speicherung von Grafikbefehlen, Daten und Texturen bereitstellen. In mindestens einer Ausführungsform kann der MCH 816 Datensignale zwischen dem Prozessor 802, dem Speicher 820 und anderen Komponenten im Computersystem 800 leiten und Datensignale zwischen dem Prozessorbus 810, dem Speicher 820 und einer System-E/A 822 überbrücken. In mindestens einer Ausführungsform kann ein Systemlogikchip einen Grafikport zur Kopplung mit einem Grafikcontroller bereitstellen. In mindestens einer Ausführungsform kann der MCH 816 über einen Speicherpfad 818 mit hoher Bandbreite an den Speicher 820 gekoppelt sein und die Grafik-/Videokarte 812 kann an den MCH 816 über eine Accelerated-Graphics-Port(„AGP“)-Verbindung 814 gekoppelt sein.
  • In mindestens einer Ausführungsform kann das Computersystem 800 eine System-E/A 822 verwenden, bei der es sich um einen proprietären Hub-Schnittstellenbus handelt, um den MCH 816 mit dem E/A-Steuerungs-Hub („ICH“) 830 zu verbinden. In mindestens einer Ausführungsform kann ICH 830 direkte Verbindungen zu einigen E/A-Vorrichtungen über einen lokalen E/A-Bus bereitstellen. In mindestens einer Ausführungsform kann der lokale E/A-Bus ohne Einschränkung einen Hochgeschwindigkeits-E/A-Bus zum Anschluss von Peripheriegeräten an Speicher 820, Chipsatz und Prozessor 802 beinhalten. Beispiele können ohne Einschränkung einen Audiocontroller 829, einen Firmware-Hub („Flash-BIOS“) 828, einen drahtlosen Sendeempfänger 826, einen Datenspeicher 824, einen Legacy-E/A-Controller 823, die Benutzereingabe- und Tastaturschnittstellen 825 enthält, einen seriellen Erweiterungsport 827, wie etwa Universal Serial Bus („USB“), und einen Netzwerkcontroller 834 beinhalten. Der Datenspeicher 824 kann ein Festplattenlaufwerk, ein Diskettenlaufwerk, eine CD-ROM-Vorrichtung, eine Flash-Speichervorrichtung oder eine andere Massenspeichervorrichtung umfassen.
  • In mindestens einer Ausführungsform veranschaulicht 8 ein System, das miteinander verbundene Hardwarevorrichtungen oder „Chips“ beinhaltet, während in anderen Ausführungsformen 8 ein beispielhaftes System auf einem Chip („SoC“) veranschaulichen kann. In mindestens einer Ausführungsform können die Vorrichtungen mit proprietären Zusammenschaltungen, standardisierten Zusammenschaltungen (z. B. PCIe) oder einer Kombination davon miteinander verbunden sein. In mindestens einer Ausführungsform sind eine oder mehrere Komponenten des Computersystems 800 unter Verwendung von Compute-Express-Link-(CXL-)Verbindungen miteinander verbunden.
  • Solche Komponenten können zum Ausführen von Befehlen in Interaktionsumgebungen verwendet werden.
  • 9 ist ein Blockdiagramm, das eine elektronische Vorrichtung 900 zur Nutzung eines Prozessors 910 gemäß mindestens einer Ausführungsform veranschaulicht. In mindestens einer Ausführungsform kann die elektronische Vorrichtung 900 zum Beispiel und ohne Einschränkung ein Notebook, ein Tower-Server, ein Rack-Server, ein Blade-Server, ein Laptop, ein Desktop, ein Tablet, eine Mobilvorrichtung, ein Telefon, ein eingebetteter Computer oder eine beliebige andere geeignete elektronische Vorrichtung sein.
  • In mindestens einer Ausführungsform kann das System 900 ohne Einschränkung einen Prozessor 910 beinhalten, der kommunikativ an eine beliebige geeignete Anzahl oder Art von Komponenten, Peripheriegeräten, Modulen oder Vorrichtungen gekoppelt ist. In mindestens einer Ausführungsform ist der Prozessor 910 unter Verwendung eines Busses oder einer Schnittstelle gekoppelt, wie etwa eines 1°C-Busses, eines System-Management-Busses („SMBus“), eines Low-Pin-Count-Busses (LPC), einer seriellen Peripherieschnittstelle (Serial Peripheral Interface - „SPI“), eines High-Definition-Audio-(„HDA“-)Busses, eines Serial-Advance-Technology-Attachment-(„SATA“-)Busses, eines universellen seriellen Busses („USB“) (Versionen 1, 2, 3) oder eines Busses eines Universal Asynchronous Receiver/Transmitter („UART“). In mindestens einer Ausführungsform zeigt 9 ein System, das miteinander verbundene Hardwarevorrichtungen oder „Chips“ beinhaltet, während in anderen Ausführungsformen 9 ein beispielhaftes System auf einem Chip („SoC“) veranschaulichen kann. In mindestens einer Ausführungsform können die in 9 veranschaulichten Vorrichtungen mit proprietären Verbindungen, standardisierten Verbindungen (z. B. PCIe) oder einer Kombination davon verbunden sein. In mindestens einer Ausführungsform sind eine oder mehrere Komponenten der 9 unter Verwendung von Compute-Express-Link-(CXL-)Verbindungen miteinander verbunden.
  • In mindestens einer Ausführungsform kann 9 ein Display 924, einen Touchscreen 925, ein Touchpad 930, eine Nahfeldkommunikations(near field communications -„NFC“)-Einheit 945, einen Sensor-Hub 940, einen Wärmesensor 946, einen Express-Chipsatz („EC“) 935, ein Trusted Platform Module („TPM“) 938, BIOS/Firmware/Flash-Speicher („BIOS, FW Flash“) 922, ein DSP 960, ein Laufwerk 920 wie eine Solid State Disk („SSD“) oder ein Festplattenlaufwerk („HDD“), eine drahtlose lokale Netzwerkeinheit („WLAN“) 950, eine Bluetooth-Einheit 952, eine Wireless Wide Area Network-Einheit („WWAN“) 956, eine Global-Positioning-System(GPS)-Einheit 955, eine Kamera („USB 3.0-Kamera“) 954 wie etwa eine USB- 3.0 Kamera und/oder eine Low-Power-Double-Data-Rate(„LPDDR“)-Speichereinheit („LPDDR3“) 915 beinhalten, die beispielsweise in einem LPDDR3-Standard implementiert ist. Diese Komponenten können jeweils auf eine beliebige geeignete Weise implementiert sein.
  • In mindestens einer Ausführungsform können andere Komponenten kommunikativ an den Prozessor 910 durch die vorstehend erörterten Komponenten gekoppelt sein. In mindestens einer Ausführungsform können ein Beschleunigungsmesser 941, ein Umgebungslichtsensor (Ambient Light Sensor-„ALS“) 942, ein Kompass 943 und ein Gyroskop 944 kommunikativ an den Sensorhub 940 gekoppelt sein. In mindestens einer Ausführungsform können der Wärmesensor 939, ein Lüfter 937, eine Tastatur 946 und ein Touchpad 930 kommunikativ an den EC 935 gekoppelt sein. In mindestens einer Ausführungsform können der Lautsprecher 963, die Kopfhörer 964 und das Mikrofon („mic“) 965 kommunikativ an eine Audioeinheit („Audiocodec und Klasse-D-Verstärker“) 962 gekoppelt sein, die wiederum kommunikativ an den DSP 960 gekoppelt sein kann. In mindestens einer Ausführungsform kann die Audioeinheit 964 zum Beispiel und ohne Einschränkung einen Audiocodierer/-decodierer („Codec“) und einen Klasse-D-Verstärker beinhalten. In mindestens einer Ausführungsform kann die SIM-Karte („SIM“) 957 kommunikativ an die WWAN-Einheit 956 gekoppelt sein. In mindestens einer Ausführungsform können Komponenten wie die WLAN-Einheit 950 und die Bluetooth-Einheit 952 sowie die WWAN-Einheit 956 in einem Next Generation Form Factor („NGFF“) implementiert sein.
  • Solche Komponenten können zum Ausführen von Befehlen in Interaktionsumgebungen verwendet werden.
  • 10 ist ein Blockdiagramm eines Verarbeitungssystems gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform beinhaltet das System 1000 einen oder mehrere Prozessoren 1002 und einen oder mehrere Grafikprozessoren 1008 und kann ein Einzelprozessor-Desktopsystem, ein Multiprozessor-Arbeitsstationssystem oder ein Server-System oder Rechenzentrum mit einer großen Anzahl von kollektiv oder separat verwalteten Prozessoren 1002 oder Prozessorkernen 1007 sein. In mindestens einer Ausführungsform ist das System 1000 eine Verarbeitungsplattform, die in eine integrierte Schaltung als System auf einem Chip (SoC) zur Verwendung in mobilen, tragbaren oder eingebetteten Vorrichtungen eingebaut ist.
  • In mindestens einer Ausführungsform kann das System 1000 eine serverbasierte Spielplattform, eine Cloud-Computing-Host-Plattform, eine virtualisierte Rechenplattform, eine Spielkonsole, die eine Spiel- und Medienkonsole beinhaltet, eine mobile Spielkonsole, eine tragbare Spielekonsole oder eine Online-Spielekonsole beinhalten oder darin integriert sein. In mindestens einer Ausführungsform ist das System 1000 ein Mobiltelefon, ein Smartphone, eine Tablet-Computervorrichtung oder eine mobile Internetvorrichtung. In mindestens einer Ausführungsform kann das Verarbeitungssystem 1000 auch eine tragbare Vorrichtung, wie etwa eine tragbare Smartwatch-Vorrichtung, intelligente Brillenvorrichtung, Augmented-Reality-Vorrichtung, Edge-Vorrichtung, Internet-der-Dinge(Internet of Things - „IoT“)-Vorrichtung oder Virtual-Reality-Vorrichtung beinhalten, mit dieser gekoppelt oder darin integriert sein. In mindestens einer Ausführungsform ist das Verarbeitungssystem 1000 eine Fernseh-oder Set-Top-Box-Vorrichtung mit einem oder mehreren Prozessoren 1002 und einer grafischen Schnittstelle, die durch einen oder mehrere Grafikprozessoren 1008 erzeugt wird.
  • In mindestens einer Ausführungsform beinhalten der eine oder die mehreren Prozessoren 1002 jeweils einen oder mehrere Prozessorkerne 1007, um Befehle zu verarbeiten, die, wenn sie ausgeführt werden, Operationen für System- und Benutzersoftware ausführen. In mindestens einer Ausführungsform ist jeder von einem oder mehreren Prozessorkernen 1007 so konfiguriert, dass er einen spezifischen Befehlssatz 1009 verarbeitet. In mindestens einer Ausführungsform kann der Befehlssatz 1009 das Berechnen mit komplexem Befehlssatz (Complex Instruction Set Computing - CISC), das Berechnen mit verringertem Befehlssatz (Reduced Instruction Set Computing - RISC) oder das Berechnen über ein sehr langes Befehlswort (Very Long Instruction Word - VLIW) erleichtern. In mindestens einer Ausführungsform können die Prozessorkerne 1007 jeweils einen anderen Befehlssatz 1009 verarbeiten, der Befehle enthalten kann, um die Emulation anderer Befehlssätze zu erleichtern. In mindestens einer Ausführungsform kann der Prozessorkern 1007 auch andere Verarbeitungsvorrichtungen beinhalten, wie etwa einen digitalen Signalprozessor (DSP).
  • In mindestens einer Ausführungsform beinhaltet der Prozessor 1002 einen Cache-Speicher 1004. In mindestens einer Ausführungsform kann der Prozessor 1002 einen einzelnen internen Cache oder mehrere Levels von internem Cache aufweisen. In mindestens einer Ausführungsform wird der Cache-Speicher von verschiedenen Komponenten des Prozessors 1002 gemeinsam genutzt. In mindestens einer Ausführungsform verwendet der Prozessor 1002 auch einen externen Cache (z. B. einen Level-3(L3)-Cache oder Last-Level-Cache (LLC)) (nicht gezeigt), der unter Verwendung bekannter Cache-Kohärenztechniken von den Prozessorkernen 1007 gemeinsam genutzt werden kann. In mindestens einer Ausführungsform ist im Prozessor 1002 zusätzlich eine Registerdatei 1006 enthalten, die unterschiedliche Arten von Registern zum Speichern unterschiedlicher Datenarten enthalten kann (z. B. Ganzzahlregister, Gleitkommaregister, Statusregister und ein Befehlszeigerregister). In mindestens einer Ausführungsform kann die Registerdatei 1006 Vielzweckregister oder andere Register beinhalten.
  • In mindestens einer Ausführungsform sind ein oder mehrere Prozessoren 1002 mit einem oder mehreren Schnittstellenbussen 1010 gekoppelt, um Kommunikationssignale, wie etwa Adress-, Daten- oder Steuersignale, zwischen dem Prozessor 1002 und anderen Komponenten im System 1000 zu übermitteln. In mindestens einer Ausführungsform kann der Schnittstellenbus 1010 ein Prozessorbus sein, wie eine Version eines Direct-Media-Interface(DMI)-Busses. In mindestens einer Ausführungsform ist die Schnittstelle 1010 nicht auf einen DMI-Bus beschränkt, sondern kann einen oder mehrere Peripheral-Component-Interconnect-Busse (z. B. PCI, PCI Express), Speicherbusse oder andere Arten von Schnittstellenbussen beinhalten. In mindestens einer Ausführungsform beinhalten der/die Prozessor(en) 1002 einen integrierten Speichercontroller 1016 und einen Plattform-Controller-Hub 1030. In mindestens einer Ausführungsform ermöglicht der Speichercontroller 1016 die Kommunikation zwischen einer Speichervorrichtung und anderen Komponenten des Systems 1000, während der Plattform-Controller-Hub (platform controller hub - PCH) 1030 Verbindungen zu E/A-Vorrichtungen über einen lokalen E/A-Bus bereitstellt.
  • In mindestens einer Ausführungsform kann die Speichervorrichtung 1020 ein dynamischer Direktzugriffsspeicher (DRAM), ein statischer Direktzugriffsspeicher (SRAM), eine Flash-Speichervorrichtung, eine Phasenänderungsspeichervorrichtung oder eine andere Speichervorrichtung sein, die eine geeignete Leistung aufweist, um als Prozessspeicher zu dienen. In mindestens einer Ausführungsform kann die Speichervorrichtung 1020 als Systemspeicher für das System 1000 betrieben werden, um Daten 1022 und Befehle 1021 zur Verwendung zu speichern, wenn ein oder mehrere Prozessoren 1002 eine Anwendung oder ein Verfahren ausführen. In mindestens einer Ausführungsform ist der Speichercontroller 1016 auch mit einem optionalen externen Grafikprozessor 1012 gekoppelt, der mit einem oder mehreren Grafikprozessoren 1008 von den Prozessoren 1002 kommunizieren kann, um Grafik- und Medienoperationen durchzuführen. In mindestens einer Ausführungsform kann eine Anzeigevorrichtung 1011 mit dem/den Prozessor(en) 1002 verbunden sein. In mindestens einer Ausführungsform kann die Anzeigevorrichtung 1011 eine oder mehrere von einer internen Anzeigevorrichtung, wie in einer mobilen elektronischen Vorrichtung oder einer Laptopvorrichtung, oder einer externen Anzeigevorrichtung beinhalten, die über eine Anzeigeschnittstelle (z. B. DisplayPort usw.) angeschlossen ist. In mindestens einer Ausführungsform kann die Anzeigevorrichtung 1011 eine am Kopf befestigte Anzeige (head mounted display - HMD) beinhalten, wie z. B. eine stereoskopische Anzeigevorrichtung zur Verwendung bei Virtual-Reality(VR)-Anwendungen oder Augmented-Reality(AR)-Anwendungen.
  • In mindestens einer Ausführungsform ermöglicht der Plattform-Controller-Hub 1030 den Anschluss von Peripheriegeräten an die Speichervorrichtung 1020 und den Prozessor 1002 über einen Hochgeschwindigkeits-E/A-Bus. In mindestens einer Ausführungsform beinhalten die E/A-Peripheriegeräte, ohne auf diese beschränkt zu sein, einen Audiocontroller 1046, einen Netzwerkcontroller 1034, eine Firmware-Schnittstelle 1028, einen drahtlosen Sendeempfänger 1026, Berührungssensoren 1025 und eine Datenspeichervorrichtung 1024 (z. B. ein Festplattenlaufwerk, einen Flash-Speicher usw.). In mindestens einer Ausführungsform kann die Datenspeichervorrichtung 1024 über eine Speicherschnittstelle (z. B. SATA) oder über einen Peripheriebus, wie etwa einen Peripheral-Component-Interconnect-Bus (z. B. PCI, PCI Express), verbunden sein. In mindestens einer Ausführungsform können die Berührungssensoren 1025 Touchscreen-Sensoren, Drucksensoren oder Fingerabdrucksensoren beinhalten. In mindestens einer Ausführungsform kann der drahtlose Sendeempfänger 1026 ein Wi-Fi-Sendeempfänger, ein Bluetooth-Sendeempfänger oder ein Mobilfunknetz-Sendeempfänger wie etwa ein 3G-, 4G- oder Long-Term-Evolution(LTE)-Sendeempfänger sein. In mindestens einer Ausführungsform ermöglicht die Firmware-Schnittstelle 1028 die Kommunikation mit der System-Firmware und kann zum Beispiel eine Unified Extensible Firmware Interface (UEFI) sein. In mindestens einer Ausführungsform kann der Netzwerkcontroller 1034 eine Netzwerkverbindung zu einem drahtgebundenen Netzwerk ermöglichen. In mindestens einer Ausführungsform ist ein Netzwerkcontroller mit hoher Rechenleistung (nicht gezeigt) mit dem Schnittstellenbus 1010 gekoppelt. In mindestens einer Ausführungsform ist der Audiocontroller 1046 ein Mehrkanal-High-Definition-Audiocontroller. In mindestens einer Ausführungsform beinhaltet das System 1000 einen optionalen Legacy-E/A-Controller 1040 zur Kopplung von Legacy-Vorrichtungen (z. B. Personal System 2 (PS/2)) mit dem System. In mindestens einer Ausführungsform kann der Plattform-Controller-Hub 1030 auch mit einem oder mehreren Universal-Serial-Bus(USB)-Controllern 1042 verbunden sein, die mit Eingabevorrichtungen, wie zum Beispiel Kombinationen aus Tastatur und Maus 1043, einer Kamera 1044 oder anderen USB-Eingabevorrichtungen, verbunden sind.
  • In mindestens einer Ausführungsform kann eine Instanz des Speichercontrollers 1016 und des Plattform-Controller-Hubs 1030 in einen diskreten externen Grafikprozessor, wie etwa den externen Grafikprozessor 1012, integriert sein. In mindestens einer Ausführungsform können der Plattform-Controller-Hub 1030 und/oder der Speichercontroller 1016 extern zu einem oder mehreren Prozessor(en) 1002 sein. Zum Beispiel kann das System 1000 in mindestens einer Ausführungsform einen externen Speichercontroller 1016 und einen Plattform-Controller-Hub 1030 beinhalten, die als Speicher-Controller-Hub und Peripherie-Controller-Hub innerhalb eines System-Chipsatzes konfiguriert sein können, die mit dem/den Prozessor(en) 1002 in Kommunikation stehen.
  • Solche Komponenten können zum Ausführen von Befehlen in Interaktionsumgebungen verwendet werden.
  • 11 ist ein Blockdiagramm eines Prozessors 1100, der einen oder mehrere Prozessorkerne 1102A-1102N, einen integrierten Speichercontroller 1114 und einen integrierten Grafikprozessor 1108 aufweist, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann der Prozessor 1100 zusätzliche Kerne bis einschließlich des zusätzlichen Kerns 1102N beinhalten, dargestellt durch Kästen mit gestrichelten Linien. In mindestens einer Ausführungsform beinhaltet jeder der Prozessorkerne 1102A-1102N eine oder mehrere interne Cache-Einheiten 1104A-1104N. In mindestens einer Ausführungsform hat jeder Prozessorkern auch Zugriff auf eine oder mehrere gemeinsam genutzte Cache-Einheiten 1106.
  • In mindestens einer Ausführungsform stellen die internen Cache-Einheiten 1104A-1104N und die gemeinsam genutzten Cache-Einheiten 1106 eine Cache-Speicher-Hierarchie innerhalb des Prozessors 1100 dar. In mindestens einer Ausführungsform können die Cache-Speicher-Einheiten 1104A-1104N mindestens ein Level von Befehls- und Daten-Cache innerhalb jedes Prozessorkerns und ein oder mehrere Levels von gemeinsam genutztem Cache mittleren Levels, wie z. B. ein Level 2 (L2), Level 3 (L3), Level 4 (L4) oder anderes Cache-Level, beinhalten, wobei ein höchstes Cache-Level vor dem externen Speicher als LLC klassifiziert ist. In mindestens einer Ausführungsform hält die Cache-Kohärenzlogik die Kohärenz zwischen verschiedenen Cache-Einheiten 1106 und 1104A-1104N aufrecht.
  • In mindestens einer Ausführungsform kann der Prozessor 1100 auch einen Satz von einer oder mehreren Bus-Controller-Einheiten 1116 und einem Systemagentenkern 1110 beinhalten. In mindestens einer Ausführungsform verwalten eine oder mehrere Bus-Controller-Einheiten 1116 einen Satz von Peripheriegerätebussen, wie etwa einen oder mehrere PCI- oder PCI-Express-Busse. In mindestens einer Ausführungsform stellt der Systemagentenkern 1110 eine Managementfunktionalität für verschiedene Prozessorkomponenten bereit. In mindestens einer Ausführungsform beinhaltet der Systemagentenkern 1110 einen oder mehrere integrierte Speichercontroller 1114, um den Zugriff auf verschiedene externe Speichervorrichtungen (nicht gezeigt) zu managen.
  • In mindestens einer Ausführungsform beinhalten einer oder mehrere der Prozessorkerne 1102A-1102N Unterstützung für simultanes Multithreading. In mindestens einer Ausführungsform beinhaltet der Systemagentenkern 1110 Komponenten zur Koordinierung und zum Betrieb der Kerne 1102A-1102N während der Verarbeitung mit mehreren Threads. In mindestens einer Ausführungsform kann der Systemagentenkern 1110 zusätzlich eine Leistungssteuereinheit (power control unit - PCU) beinhalten, die Logik und Komponenten zur Regulierung eines oder mehrerer Leistungsstatus der Prozessorkerne 1102A-1102N und des Grafikprozessors 1108 beinhaltet.
  • In mindestens einer Ausführungsform beinhaltet der Prozessor 1100 zusätzlich den Grafikprozessor 1108, um Grafikverarbeitungsoperationen auszuführen. In mindestens einer Ausführungsform ist der Grafikprozessor 1108 mit gemeinsam genutzten Cache-Einheiten 1106 und dem Systemagentenkern 1110, einschließlich eines oder mehrerer integrierter Speichercontrollern 1114, gekoppelt. In mindestens einer Ausführungsform beinhaltet der Systemagentenkern 1110 auch einen Anzeigecontroller 1111 zum Steuern der Grafikprozessorausgabe zu einer oder mehreren gekoppelten Anzeigen. In mindestens einer Ausführungsform kann der Anzeigecontroller 1111 auch ein separates Modul sein, das über mindestens eine Zusammenschaltung mit dem Grafikprozessor 1108 gekoppelt ist, oder er kann in den Grafikprozessor 1108 integriert sein.
  • In mindestens einer Ausführungsform wird eine ringbasierte Zusammenschaltungseinheit 1112 verwendet, um interne Komponenten des Prozessors 1100 zu koppeln. In mindestens einer Ausführungsform kann eine alternative Zusammenschaltungseinheit verwendet werden, wie etwa eine Punkt-zu-Punkt-Zusammenschaltung, eine geschaltete Zusammenschaltung oder andere Methoden. In mindestens einer Ausführungsform ist der Grafikprozessor 1108 über eine E/A-Verbindung 1113 mit der Ringzusammenschaltung 1112 gekoppelt.
  • In mindestens einer Ausführungsform stellt die E/A-Verbindung 1113 mindestens eine von mehreren Arten von E/A-Zusammenschaltungen dar, beinhaltend eine On-Package-E/A-Zusammenschaltung beinhaltet, welche die Kommunikation zwischen verschiedenen Prozessorkomponenten und einem eingebetteten Hochleistungsspeichermodul 1118 erleichtert, wie etwa als eDRAM-Modul. In mindestens einer Ausführungsform verwenden jeder der Prozessorkerne 1102A-1102N und der Grafikprozessor 1108 eingebettete Speichermodule 1118 als einen gemeinsam genutzten Last-Level-Cache.
  • In mindestens einer Ausführungsform sind die Prozessorkerne 1102A-1102N homogene Kerne, die eine gemeinsame Befehlssatzarchitektur ausführen. In mindestens einer Ausführungsform sind die Prozessorkerne 1102A-1102N in Bezug auf die Befehlssatzarchitektur (instruction set architecture - ISA) heterogen, wobei einer oder mehrere der Prozessorkerne 1102A-1102N einen gemeinsamen Befehlssatz ausführt, während ein oder mehrere andere Kerne der Prozessorkerne 1102A-1102N einen Teilsatz eines gemeinsamen Befehlssatzes oder einen anderen Befehlssatz ausführen. In mindestens einer Ausführungsform sind die Prozessorkerne 1102A-1102N in Bezug auf die Mikroarchitektur heterogen, wobei ein oder mehrere Kerne mit einem relativ gesehen höheren Leistungsverbrauch mit einem oder mehreren Kernen mit einem niedrigeren Leistungsverbrauch gekoppelt sind. In mindestens einer Ausführungsform kann der Prozessor 1100 auf einem oder mehreren Chips oder als SoC-integrierte Schaltung implementiert sein.
  • Solche Komponenten können zum Ausführen von Befehlen in Interaktionsumgebungen verwendet werden.
  • Andere Ausführungen liegen im Geiste der gegenwärtigen Offenbarung. Somit können zwar bezüglich der offenbarten Verfahren diverse Modifikationen und alternative Konstruktionen vorgenommen werden, bestimmte veranschaulichte Ausführungsformen davon werden jedoch in den Zeichnungen gezeigt und wurden vorangehend ausführlich beschrieben. Allerdings versteht es sich, dass nicht die Absicht verfolgt wird, die Offenbarung auf die spezifische(n) offenbarte(n) Form oder Formen einzuschränken, sondern die Absicht ganz im Gegenteil darin besteht, sämtliche Modifikationen, alternativen Konstruktionen und Äquivalente abzudecken, die in den Geist und Umfang der wie in den beigefügten Ansprüchen definierten Offenbarung fallen.
  • Die Verwendung der Ausdrücke „ein“ und „eine“ und „der/die/das“ und ähnlicher Referenten im Kontext des Beschreibens offenbarter Ausführungsformen (insbesondere im Kontext der folgenden Ansprüche) ist so auszulegen, dass sie sowohl den Singular als auch den Plural abdeckt, sofern hierin nichts anderes angegeben ist oder der Kontext dem eindeutig widerspricht, und nicht als Definition eines Ausdrucks. Die Ausdrücke „umfassend“, „aufweisend“, „beinhaltend“ und „enthaltend“ sind als offene Ausdrücke auszulegen (d. h. in der Bedeutung „beinhaltend, ohne darauf beschränkt zu sein“), es sei denn, es ist etwas anderes angegeben. Der Ausdruck „verbunden“ ist als teilweise oder vollständig ineinander enthalten, aneinander befestigt oder aneinander angefügt auszulegen, wenn er unmodifiziert vorliegt und sich auf physische Verbindungen bezieht, selbst, wenn ein Element dazwischen eingefügt ist. Die Nennung von Wertebereichen hierin soll lediglich als schnelles Verfahren des einzelnen Bezugnehmens auf jeden separaten Wert dienen, der in den Bereich fällt, es sei denn, hierin ist etwas anderes angegeben, und jeder separate Wert ist in die Beschreibung eingeschlossen, als ob er einzeln hierin wiedergegeben wäre. Die Verwendung des Ausdrucks „Satz“ (z. B. „ein Satz von Objekten“) oder „Teilsatz“ ist als eine nichtleere Zusammenstellung auszulegen, die ein oder mehrere Elemente umfasst, es sei denn, es ist etwas anderes angemerkt oder dies widerspricht dem Kontext. Sofern nichts anderes angegeben ist oder der Kontext dem widerspricht, bezeichnet ferner der Ausdruck „Teilsatz“ eines entsprechenden Satzes nicht notwendigerweise einen richtigen Teilsatz des entsprechenden Satzes, sondern der Teilsatz und der entsprechende Satz können gleich sein.
  • Sofern nicht spezifisch etwas anderes genannt ist oder der Kontext dem eindeutig widerspricht, ist verbindende Sprache, wie etwa Formulierungen der Form „wenigstens eines von A, B und C“ oder „mindestens eines von A, B und C“, andernfalls in dem Kontext zu verstehen, in dem sie allgemein verwendet werden, um darzustellen, dass ein Gegenstand, ein Ausdruck usw. entweder A oder B oder C oder einen beliebigen nicht leeren Teilsatz des Satzes aus A und B und C sein kann. Zum Beispiel beziehen sich in dem veranschaulichten Beispiel eines Satzes, der drei Elemente aufweist, beziehen sich die verbindenden Formulierungen „wenigstens eines von A, B und C“ und „mindestens eines von A, B und C“ auf einen beliebigen der folgenden Sätze: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}. Somit sollen derartige verbindenden Ausdrücke im Allgemeinen nicht ausdrücken, dass bestimmte Ausführungen erforderlich machen, dass jeweils mindestens eines von A, mindestens eines von B und mindestens eines von C vorhanden sind. Zusätzlich bezeichnet, sofern nicht anders angegeben oder durch den Kontext widersprochen, der Ausdruck „Vielzahl“ außerdem einen Zustand der Pluralität (z. B. „eine Vielzahl von Elementen“ bezeichnet mehrere Elemente). Eine Vielzahl besteht aus mindestens zwei Elementen, kann jedoch auch mehr sein, wenn dies entweder explizit oder durch den Kontext angegeben ist. Sofern nichts anderes genannt ist oder es anderweitig aus dem Kontext ersichtlich ist, bedeutet die Formulierung „basierend auf“ „mindestens zum Teil basierend auf" und nicht „ausschließlich basierend auf“.
  • Hierin beschriebene Vorgänge von Prozessen können in einer beliebigen geeigneten Reihenfolge durchgeführt werden, sofern es hierin nicht anders angegeben ist oder der Kontext dem anderweitig eindeutig widerspricht. In mindestens einer Ausführungsform wird ein Prozess, wie etwa die hierin beschriebenen Prozesse (oder Variationen und/oder Kombinationen davon), unter der Steuerung von einem oder mehreren Computersystemen durchgeführt, die mit ausführbaren Anweisungen konfiguriert sind, und er ist als Code (z. B. ausführbare Anweisungen, ein oder mehrere Computerprogramme oder eine oder mehrere Anwendungen), der zusammen auf einem oder mehreren Prozessoren ausgeführt wird, durch Hardware oder Kombinationen davon implementiert. In mindestens einer Ausführungsform ist Code auf einem computerlesbaren Speichermedium gespeichert, zum Beispiel in Form eines Computerprogramms, das eine Vielzahl von Anweisungen umfasst, die durch einen oder mehrere Prozessoren ausgeführt werden können. In mindestens einer Ausführungsform ist ein computerlesbares Speichermedium ein nichttransitorisches computerlesbares Speichermedium, das transitorische Signale (z. B. eine sich ausbreitende transiente elektrische oder elektromagnetische Übertragung) ausschließt, aber nichttransitorische Datenspeicherschaltungen (z. B. Puffer, Cache und Warteschlangen) innerhalb von Sendeempfängern von transitorischen Signalen einschließt. In einigen Ausführungsformen ist der Code (z. B. ausführbarer Code oder Quellcode) auf einem Satz von einem oder mehreren nichttransitorischen computerlesbaren Speichermedien gespeichert, die darauf gespeicherte ausführbare Anweisungen (oder anderen Speicher, um ausführbare Anweisungen zu speichern) aufweisen, die bei Ausführung (d. h. als Folge davon, dass sie ausgeführt werden) durch einen oder mehrere Prozessoren eines Computersystems das Computersystem veranlassen, in dieser Schrift beschriebene Operationen durchzuführen. Ein Satz von nichttransitorischen computerlesbaren Speichermedien umfasst in mindestens einer Ausführungsform mehrere nichttransitorische computerlesbare Speichermedien, und eines oder mehrere von einzelnen nichttransitorischen Speichermedien der mehreren nichttransitorischen computerlesbaren Speichermedien verfügen nicht über den gesamten Code, während mehrere nichttransitorische computerlesbare Speichermedien gemeinschaftlich den gesamten Code speichern. In mindestens einer Ausführungsform werden die ausführbaren Anweisungen so ausgeführt, dass unterschiedliche Anweisungen durch unterschiedliche Prozessoren ausgeführt werden - zum Beispiel speichert ein nichttransitorisches computerlesbares Speichermedium Anweisungen und eine hauptsächliche zentrale Verarbeitungseinheit („CPU“) führt einige der Anweisungen aus, während eine Grafikverarbeitungseinheit („GPU“) und/oder eine Datenverarbeitungseinheit („DPU“) andere Anweisungen ausführt. In mindestens einer Ausführungsform weisen unterschiedliche Komponenten eines Computersystems separate Prozessoren auf und unterschiedliche Prozessoren führen unterschiedliche Teilsätze von Anweisungen aus.
  • Dementsprechend sind in mindestens einer Ausführungsform Computersysteme so konfiguriert, dass sie einen oder mehrere Dienste implementieren, die einzeln oder zusammen Operationen der hierin beschriebenen Prozesse durchführen, und derartige Computersysteme sind mit geeigneter Hardware und/oder Software konfiguriert, die eine Durchführung der Operationen ermöglichen. Ferner ist ein Computersystem, das mindestens eine Ausführungsform der vorliegenden Offenbarung implementiert, eine einzelne Vorrichtung und in einer anderen Ausführungsform ein verteiltes Computersystem, das mehrere Vorrichtungen umfasst, die unterschiedlich arbeiten, sodass das verteilte Computersystem die hierin beschriebenen Operationen durchführt und sodass eine einzelne Vorrichtung nicht alle Operationen durchführt.
  • Die Verwendung jeglicher und aller Beispiele oder beispielhafter Wortwahl (z. B. „wie etwa“), die hierin bereitgestellt ist, soll lediglich die Ausführungsformen der Offenbarung besser verdeutlichen und stellt keine Einschränkung des Umfangs der Offenbarung dar, es sei denn, es ist etwas anderes beansprucht. Keinerlei Wortwahl in der Beschreibung sollte so ausgelegt werden, dass sie ein beliebiges nicht beanspruchtes Element als für die Umsetzung der Offenbarung wesentlich angibt.
  • Jegliche Referenzen, einschließlich Veröffentlichungen, Patentanmeldungen und Patenten, die hierin erwähnt werden, sind hiermit durch Bezugnahme im selben Maße aufgenommen, als wäre jede Referenz einzeln und spezifisch als durch Referenz eingeschlossen angegeben und in ihrer Gesamtheit hierin ausgeführt.
  • In der Beschreibung und den Ansprüchen können die Begriffe „gekoppelt“ und „verbunden“ zusammen mit ihren Ableitungen verwendet werden. Es versteht sich, dass diese Ausdrücke nicht als Synonyme füreinander beabsichtigt sein können. Vielmehr kann in konkreten Beispielen „verbunden“ oder „gekoppelt“ verwendet werden, um anzugeben, dass zwei oder mehr Elemente in direktem oder indirektem physischem oder elektrischem Kontakt miteinander stehen. Mit „gekoppelt“ kann auch gemeint sein, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander stehen, jedoch trotzdem miteinander zusammenwirken oder interagieren.
  • Sofern nicht ausdrücklich anders angegeben, versteht es sich, dass sich Begriffe wie „Verarbeiten“, „Berechnung“, „Berechnen“, „Bestimmen“ oder dergleichen in der gesamten Beschreibung auf Handlungen und/oder Prozesse eines Computers oder Rechensystems oder einer ähnlichen elektronischen Rechenvorrichtung beziehen, die Daten, die als physische, z. B. elektronische, Größen in den Registern und/oder Speichern des Rechensystems dargestellt sind, manipulieren und/oder in andere Daten umwandeln, die auf ähnliche Weise als physische Größen in den Speichern, Registern oder anderen derartigen Informationsspeicher-, -übertragungs- oder - anzeigevorrichtungen des Rechensystems dargestellt sind.
  • Auf ähnliche Weise kann sich der Ausdruck „Prozessor“ auf eine beliebige Vorrichtung oder einen beliebigen Abschnitt einer Vorrichtung beziehen, die/der elektronische Daten aus Registern und/oder Speicher verarbeitet und diese elektronischen Daten in andere elektronische Daten umwandelt, die in Registern und/oder Speicher gespeichert werden können. Als nicht einschränkende Beispiele kann „Prozessor“ ein beliebiger Prozessor sein, der zu einer universellen Verarbeitung in der Lage ist, wie etwa eine CPU, GPU oder DPU. Als nicht einschränkende Beispiele kann „Prozessor“ ein beliebiger Mikrocontroller oder eine dedizierte Verarbeitungseinheit wie etwa ein DSP, ein Bildsignalprozessor (image signal processor - „ISP“), eine arithmetische Logikeinheit (arithmetic logic unit - „ALU“), eine Sichtverarbeitungseinheit (vision processing unit - „VPU“), ein Baum-Traversal-Einheit (tree traversal unit - „TTU“), ein Raytracing-Kern, ein Tensor-Tracing-Kern, eine Tensorverarbeitungseinheit (tensor processing unit - „TPU“), eine eingebettete Steuereinheit (embedded control unit - „ECU“) und dergleichen sein. Als nicht einschränkende Beispiele kann „Prozessor“ ein Hardwarebeschleuniger sein, wie etwa ein PVA (programmierbarer Sichtbeschleuniger), DLA (Deep-Learning-Beschleuniger) usw. Als nicht einschränkende Beispiele kann „Prozessor“ auch eine oder mehrere virtuelle Instanzen einer CPU, GPU usw. beinhalten, die auf einer zugrunde liegenden Hardwarekomponente gehostet werden, die eine oder mehrere virtuelle Maschinen ausführt. Eine „Rechenplattform“ kann einen oder mehrere Prozessoren umfassen. Wie hierin verwendet, können „Software“-Prozesse zum Beispiel Software- und/oder Hardware-Entitäten beinhalten, die im Verlauf der Zeit Arbeit verrichten, wie etwa Tasks, Threads und intelligente Agenten. Außerdem kann sich jeder Prozess auf mehrere Prozesse zum Ausführen von Anweisungen nacheinander oder parallel, kontinuierlich oder intermittierend beziehen. Die Begriffe „System“ und „Verfahren“ werden hierin insofern austauschbar verwendet, als das System ein oder mehrere Verfahren verkörpern kann und die Verfahren als System betrachtet werden können.
  • Im vorliegenden Dokument kann auf das Erhalten, Erfassen, Empfangen oder Eingeben von analogen oder digitalen Daten in ein Teilsystem, ein Computersystem oder eine computerimplementierte Maschine Bezug genommen werden. Das Erhalten, Erfassen, Empfangen oder Eingeben von analogen und digitalen Daten kann auf vielfältige Weise erfolgen, wie etwa durch das Empfangen von Daten als ein Parameter eines Funktionsaufrufs oder eines Aufrufs an eine Anwendungsprogrammierschnittstelle. In einigen Implementierungen kann der Prozess des Erhaltens, Erfassens, Empfangens oder Eingebens von analogen oder digitalen Daten durch das Übertragen von Daten über eine serielle oder parallele Schnittstelle erreicht werden. In einer anderen Implementierung kann der Prozess des Erhaltens, Erfassens, Empfangens oder Eingebens von analogen oder digitalen Daten durch das Übermitteln von Daten über ein Computernetzwerk von der bereitstellenden Entität zu der erfassenden Entität erfolgen. Es kann auch auf das Bereitstellen, Ausgeben, Übertragen, Senden oder Darstellen von analogen oder digitalen Daten Bezug genommen werden. In verschiedenen Beispielen kann der Prozess des Bereitstellens, Ausgebens, Übertragens, Sendens oder Darstellens von analogen oder digitalen Daten durch das Übermitteln von Daten als Eingabe- oder Ausgabeparameter eines Funktionsaufrufs, eines Parameters einer Anwendungsprogrammierschnittstelle oder eines Interprozesskommunikationsmechanismus erfolgen.
  • Obwohl die vorstehende Erörterung beispielhafte Implementationen der beschriebenen Techniken darlegt, können auch andere Architekturen verwendet werden, um die beschriebene Funktionalität zu implementieren, und sie sollen im Umfang dieser Offenbarung liegen. Darüber hinaus könnten, obwohl spezifische Verteilungen von Zuständigkeiten vorstehend zum Zwecke der Erörterung definiert sind, verschiedene Funktionen und Zuständigkeiten in Abhängigkeit von den Umständen anders verteilt und aufgeteilt werden.
  • Obwohl der Gegenstand ferner in für Strukturmerkmale und/oder Verfahrenshandlungen spezifischer Sprache beschrieben wurde, versteht sich, dass der in den beigefügten Ansprüchen beanspruchte Gegenstand nicht unbedingt auf die beschriebenen spezifischen Merkmale oder Handlungen beschränkt ist. Vielmehr werden spezifische Merkmale und Handlungen als beispielhafte Formen zum Implementieren der Ansprüche offenbart.

Claims (21)

  1. System, umfassend: einen oder mehrere Prozessoren zum: Empfangen eines oder mehrerer Parameter, die einem ersten Modell zugeordnet sind, wobei der eine oder die mehreren Parameter eine oder mehrere Klassen beinhalten; Empfangen einer oder mehrerer erster Abfragen für das erste Modell, wobei das erste Modell darauf trainiert ist, auf Abfragen zu antworten, die der einen oder den mehreren Klassen zugeordnet sind; Trainieren eines zweiten Modells unter Verwendung der einen oder mehreren ersten Abfragen und entsprechenden Antworten von dem ersten Modell; und Empfangen einer oder mehrerer zweiter Abfragen für das trainierte zweite Modell, wobei das trainierte zweite Modell auf die eine oder mehreren zweiten Abfragen antwortet, die der einen oder den mehreren Klassen zugeordnet sind; und Speichern der Abfragen und entsprechenden Antworten unter Verwendung eines Datenspeichers.
  2. System nach Anspruch 1, wobei das erste Modell ein Zero-Shot-Modell ist.
  3. System nach Anspruch 1 oder 2, wobei der eine oder die mehreren Parameter mindestens teilweise Beschreibungen in natürlicher Sprache der einen oder mehreren Klassen umfassen.
  4. System nach einem der vorhergehenden Ansprüche, wobei das zweite Modell mindestens teilweise parallel zum ersten Modell betriebsfähig ist.
  5. System nach einem der vorhergehenden Ansprüche, wobei der eine oder die mehreren Prozessoren ferner zu Folgendem dienen: Bestimmen einer Angleichung zwischen Antworten des ersten Modells und Antworten des zweiten Modells; und Bestimmen, dass die Angleichung einen Schwellenwert überschreitet.
  6. System nach Anspruch 5, wobei das erste Modell aufhört, die eine oder mehreren ersten Abfragen zu empfangen, nachdem der Schwellenwert erreicht ist.
  7. System nach einem der vorhergehenden Ansprüche, wobei der eine oder die mehreren Prozessoren ferner zu Folgendem dienen: Bestimmen, dass eine Anzahl von Abfragen und entsprechenden Antworten innerhalb des Datenspeichers einen Trainingsschwellenwert überschreitet.
  8. System nach einem der vorhergehenden Ansprüche, wobei das zweite Modell mindestens teilweise parallel zum Betrieb des ersten Modells trainiert wird.
  9. System nach einem der vorhergehenden Ansprüche, wobei die jeweiligen Antworten jeweilige Kennzeichnungen enthalten, die der einen oder den mehreren Klassen entsprechen.
  10. Verfahren, umfassend: Empfangen von Klassenparametern für ein erstes Maschinenlernmodell; Empfangen einer Abfrage; Verarbeiten der Abfrage unter Verwendung des ersten Maschinenlernmodells gemäß den Klassenparametern; Bereitstellen einer Antwort auf die Abfrage; Speichern der Abfrage und der Antwort als ein Abfrage/Antwort-Paar; und Bereitstellen des Abfrage/Antwort-Paares als Trainingsdaten für ein zweites Maschinenlernmodell.
  11. Verfahren nach Anspruch 10, wobei die Klassenparameter mindestens Beschreibungen in natürlicher Sprache einer oder mehrerer Klassen für einen Klassifikator beinhalten.
  12. Verfahren nach Anspruch 10 oder 11, ferner umfassend: Empfangen einer zweiten Abfrage; Verarbeiten der zweiten Abfrage unter Verwendung sowohl des ersten Maschinenlernmodells als auch des zweiten Maschinenlernmodells; Vergleichen einer ersten Antwort von dem ersten Maschinenlernmodell mit einer zweiten Antwort von dem zweiten Maschinenlernmodell; und Bestimmen eines Konvergenzwertes zwischen der ersten Antwort und der zweiten Antwort.
  13. Verfahren nach Anspruch 12, ferner umfassend: Bestimmen, dass der Konvergenzwert einen Schwellenwert überschreitet; und Beenden des Betriebs des ersten Maschinenlernmodells.
  14. Verfahren nach einem der Ansprüche 10 bis 13, wobei die Antwort auf die Abfrage einer Kennzeichnung entspricht, wobei das Verfahren ferner Folgendes umfasst: Bestimmen einer der Kennzeichnung zugeordneten Aktion; und Ausführen der Aktion.
  15. Verfahren nach einem der Ansprüche 10 bis 14, ferner umfassend: Komprimieren des zweiten Maschinenlernmodells; und Einsetzen des zweiten Maschinenlernmodells zur Ausführung auf einem Edge-Server.
  16. Verfahren nach einem der Ansprüche 10 bis 15, ferner umfassend: Empfangen einer Vielzahl von Abfragen; Erzeugen einer Vielzahl von Abfrage/Ergebnis-Paaren; Bestimmen, dass eine Anzahl von Abfrage/Ergebnis-Paaren einen Schwellenwert überschreitet; und Planen einer Trainingssitzung für das zweite Maschinenlernmodell.
  17. System, umfassend: eine Eingabeplattform zum Empfangen eines oder mehrerer Parameter für ein erstes Modell; ein zweites Modell, das sich von dem ersten Modell unterscheidet, wobei das zweite Modell eine Antwort auf eine oder mehrere Inferenzanfragen unter Verwendung von mindestens dem einen oder den mehreren Parametern erzeugt; eine Abfrageschnittstelle zum Empfangen von Abfragen, wobei die Abfrageschnittstelle Abfragen an das zweite Modell richtet; und eine Trainingsplattform, um dem ersten Modell mindestens einen Abschnitt der Abfragen und entsprechenden Antworten als Trainingsdaten bereitzustellen.
  18. System nach Anspruch 17, wobei die Abfrageschnittstelle Abfragen sowohl an das erste Modell als auch an das zweite Modell richtet.
  19. System nach Anspruch 18, ferner umfassend: eine Bewertungsplattform zum Vergleichen von Antworten von dem ersten Modell und Antworten von dem zweiten Modell, wobei die Bewertungsplattform eine Übereinstimmung zwischen den Antworten von dem ersten Modell und den Antworten von dem zweiten Modell bestimmt.
  20. System nach einem der Ansprüche 17 bis 19, wobei das zweite Modell ein Zero-Shot-Modell ist.
  21. System nach einem der Ansprüche 17 bis 20, wobei das System in mindestens einem von Folgendem umfasst ist: einem Steuersystem für eine autonome oder halbautonome Maschine; einem Konversations-KI-System; einem Wahrnehmungssystem für eine autonome oder halbautonome Maschine; einem System zum Durchführen von Simulationsoperationen; einem System zur kollaborativen Inhaltserstellung; einem System zum Durchführen von Deep-Learning-Operationen; einem System, das unter Verwendung einer Edge-Vorrichtung implementiert ist; einem System, das unter Verwendung eines Roboters implementiert ist; einem System zum Erzeugen von synthetischen Daten; einem System, das eine oder mehrere virtuelle Maschinen (VMs) enthält; einem System, das mindestens teilweise in einem Rechenzentrum implementiert ist; oder einem System, das mindestens teilweise unter Verwendung von Cloud-Computing-Ressourcen implementiert ist.
DE102023109997.3A 2022-04-22 2023-04-20 Aufgabenspezifische maschinenlernoperationen unter verwendung von trainingsdaten, die von universalmodellen erzeugt werden Pending DE102023109997A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/727,332 2022-04-22
US17/727,332 US20230342670A1 (en) 2022-04-22 2022-04-22 Task-specific machine learning operations using training data generated by general purpose models

Publications (1)

Publication Number Publication Date
DE102023109997A1 true DE102023109997A1 (de) 2023-10-26

Family

ID=88238475

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102023109997.3A Pending DE102023109997A1 (de) 2022-04-22 2023-04-20 Aufgabenspezifische maschinenlernoperationen unter verwendung von trainingsdaten, die von universalmodellen erzeugt werden

Country Status (4)

Country Link
US (1) US20230342670A1 (de)
JP (1) JP2023160701A (de)
CN (1) CN116976449A (de)
DE (1) DE102023109997A1 (de)

Also Published As

Publication number Publication date
JP2023160701A (ja) 2023-11-02
CN116976449A (zh) 2023-10-31
US20230342670A1 (en) 2023-10-26

Similar Documents

Publication Publication Date Title
JP6182242B1 (ja) データのラベリングモデルに係る機械学習方法、コンピュータおよびプログラム
DE102021128292A1 (de) Skalierbare semantische bildsuche mit deep- template- matching
DE112020004107T5 (de) Inhaltsempfehlungen unter verwendung eines oder mehrerer neuronaler netze
DE112021002965T5 (de) Generierung von szenengraphen für unmarkierte daten
DE102021125231A1 (de) Unüberwachte domainanpassung mit neuronalen netzen
DE102018129975A1 (de) Codierung von Lidar-Signalen zur Vermeidung von Störungen
DE112020003165T5 (de) Videointerpolation unter Verwendung eines oder mehrerer neuronaler Netze
DE112020002425T5 (de) Bewegungsvorhersage unter verwendung eines oder mehrerer neuronaler netzwerke
DE112021003262T5 (de) Erkennen von quelldatensätzen, die zu einem transferlernverfahren für eine zieldomäne passen
DE102022102912A1 (de) Pipelines für effizientes training und einsatz von modellen für maschinelles lernen
DE102022125316A1 (de) Unüberwachtes alignment für text-zu-sprache-synthese unter verwenden neuronaler netzwerke
DE102022106057A1 (de) Authentifikatorintegriertes generatives adversariales netzwerk (gan) zur sicheren deepfake-erzeugung
DE102021124264A1 (de) Erzeugung von synthetischen Systemfehlern
DE112020007087T5 (de) Gleichzeitige Hashtabellen-Aktualisierungen
DE102023113190A1 (de) Identifizieren von Applikationspuffern zum Nachbearbeiten und Wiederverwenden in sekundären Applikationen
DE102022106956A1 (de) Konversationelle ki-plattformen mit dialogintegration von geschlossenen domänen und offenen domänen
DE102022126287A1 (de) Speicherung und abruf von unstrukturierten daten in anwendungen konversationeller künstlicher intelligenz
DE102022120731A1 (de) Multimodale sensorfusion zur identifizierung von inhalten bei anwendungen von mensch-maschine-schnittstellen
DE102023103798A1 (de) Automatische fehlervorhersage in rechenzentren
DE102023109997A1 (de) Aufgabenspezifische maschinenlernoperationen unter verwendung von trainingsdaten, die von universalmodellen erzeugt werden
DE102022108108A1 (de) Zwischenspeicherung von kompilierten shader-programmen in einer cloud-computing-umgebung
DE112022003854T5 (de) Anwendungsmanagement-Plattform für hyperkonvergente Cloud-Infrastrukturen
US20220391809A1 (en) Method, computing device, and computer-readable medium for processing plurality of tasks collected in crowdsourcing in subset unit
DE102022119615A1 (de) Verfahren, systeme, einrichtungen und herstellungsartikel zur kamerabildstromauswahl für elektronische benutzervorrichtungen
DE112021005482T5 (de) Ar- (augmented reality) gestützte selektive geräuscheinbindung aus der umgebung während der ausführung eines sprachbefehls

Legal Events

Date Code Title Description
R012 Request for examination validly filed