DE102022126287A1 - Speicherung und abruf von unstrukturierten daten in anwendungen konversationeller künstlicher intelligenz - Google Patents

Speicherung und abruf von unstrukturierten daten in anwendungen konversationeller künstlicher intelligenz Download PDF

Info

Publication number
DE102022126287A1
DE102022126287A1 DE102022126287.1A DE102022126287A DE102022126287A1 DE 102022126287 A1 DE102022126287 A1 DE 102022126287A1 DE 102022126287 A DE102022126287 A DE 102022126287A DE 102022126287 A1 DE102022126287 A1 DE 102022126287A1
Authority
DE
Germany
Prior art keywords
input
query
processor
answer
response
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
DE102022126287.1A
Other languages
English (en)
Inventor
Vlad Getsellevich
Purnendu Mukherjee
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 DE102022126287A1 publication Critical patent/DE102022126287A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • 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/31Indexing; Data structures therefor; Storage structures
    • 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
    • G06F16/353Clustering; Classification into predefined classes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • 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/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/041Abduction

Landscapes

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

Abstract

Systeme und Verfahren bestimmen eine Klassifizierung für eine Eingabe. Bei informationsbasierten Eingaben können als unstrukturierter Text gespeicherte Informationen ausgewertet werden, um eine Antwort auf die Eingabe zu bestimmen. Es kann eine Erwiderung generiert werden, die zumindest die Antwort enthält. Bei deklarativen Eingaben kann die Eingabe in einem natürlichsprachlichen Format zur späteren Verwendung gespeichert werden, z. B. als Erwiderung auf eine nachfolgende Eingabe.

Description

  • HINTERGRUND
  • Interaktionsumgebungen können Systeme mit künstlicher Intelligenz enthalten, die eine Benutzereingabe, wie z. B. eine Spracheingabe oder eine Texteingabe, empfangen und dann eine Absicht inferenzieren, um eine Reaktion darauf bereitzustellen. Diese Systeme werden in der Regel auf großen Datensätzen trainiert, wobei jede Absicht auf eine bestimmte Entität trainiert wird, wodurch ein allgemein unflexibles und unhandliches Modell entsteht. Beispielsweise können Systeme eine Vielzahl verschiedener Modelle einsetzen, die speziell für jede Aufgabe trainiert werden, und wenn kleine Änderungen vorgenommen werden, werden die Modelle erneut auf neu annotierte Daten trainiert. Typischerweise werden die mit diesen Systemen assoziierten Daten, wie z. B. Absichts-/Slot-Datensätze, in strukturierten Datenschemata gespeichert, was bei Ergänzungen oder Änderungen weitere Probleme verursacht. Infolgedessen können die Systeme unflexibel gegenüber neuen Informationen sein oder Aktualisierungen können langsam sein, was die Nutzbarkeit der Systeme einschränken kann.
  • Figurenliste
  • Verschiedene Ausführungsbeispiele gemäß der vorliegenden Offenbarung werden unter Bezugnahme auf die Zeichnungen beschrieben, in denen Folgendes dargestellt ist:
    • 1 zeigt eine beispielhafte Interaktionsumgebung, gemäß mindestens einem Ausführungsbeispiel;
    • 2 zeigt ein Beispiel für eine Pipeline zur Klassifizierung, Speicherung und Abruf von Eingaben, gemäß mindestens einem Ausführungsbeispiel;
    • 3 zeigt eine Beispielsumgebung zur Klassifizierung, Speicherung und Abruf, gemäß mindestens einem Ausführungsbeispiel;
    • 4 zeigt eine beispielhafte Schnittstelle für eine Interaktionsumgebung, gemäß zumindest einem Ausführungsbeispiel;
    • 5A zeigt ein beispielhaftes Flussdiagramm eines Verfahrens zum Klassifizieren von Eingaben, gemäß mindestens einem Ausführungsbeispiel;
    • 5B zeigt ein beispielhaftes Flussdiagramm eines Verfahrens zum Klassifizieren und Abrufen von Eingaben, gemäß mindestens einem Ausführungsbeispiel;
    • 6 zeigt ein beispielhaftes Flussdiagramm eines Verfahrens zum Generieren einer Antwort gemäß einer Eingabe, gemäß mindestens einem Ausführungsbeispiel;
    • 7 zeigt ein beispielhaftes Datenzentrumssystem, gemäß mindestens einem Ausführungsbeispiel;
    • 8 zeigt ein Rechnersystem, gemäß mindestens einem Ausführungsbeispiel;
    • 9 zeigt ein Rechnersystem, gemäß mindestens einem Ausführungsbeispiel;
    • 10 zeigt zumindest Teile eines Grafikprozessors, gemäß einem oder mehreren Ausführungsbeispielen; und
    • 11 zeigt zumindest Teile eines Graphikprozessors, gemäß einem oder mehreren Ausführungsbeispielen.
  • DETAILLIERTE BESCHREIBUNG
  • Ansätze gemäß verschiedenen Ausführungsbeispielen stellen Systeme und Verfahren für unstrukturierte Speicherung und Abruf (Abfrage) von Informationen bereit, wie z.B. Informationen, die mit Interaktionsumgebungen verwendet werden. In mindestens einem Ausführungsbeispiel werden Systeme und Verfahren mit Chatbots oder konversationellen Systemen (Konversationssystemen) mit künstlicher Intelligenz (KI) verwendet, um Daten zu speichern und abzurufen, die mit unterschiedlichen Speicherschemata und/oder ohne ein strukturiertes Speicherschema als Antwort auf eine Abfrage gespeichert werden können. Verschiedene Ausführungsbeispiele können einen oder mehrere Klassifizierer umfassen, um eine Benutzereingabe zu analysieren, zu bestimmen, ob die Eingabe mit einer informationsbasierten Anfrage assoziiert ist, und dann die Eingabe entlang der entsprechenden Pipeline zur Analyse und Antwort zu leiten. In mindestens einem Ausführungsbeispiel kann eine informationsbasierte Anfrage unter Verwendung eines oder mehrerer extraktiver Frage- und Antwortmodelle ausgewertet werden, um ein oder mehrere Merkmale innerhalb der Eingabe zu identifizieren und aus einem Satz unstrukturierter Daten Informationen zu bestimmen, die auf die Eingabe reagieren. Die Informationen können dann dem Benutzer präsentiert werden oder zur Ausführung einer oder mehrerer Aktionen verwendet werden, neben anderen Optionen. Darüber hinaus können Systeme und Verfahren verwendet werden, um Benutzereingaben als unstrukturierten Text zu speichern, z. B. in einem natürlichsprachlichen Verfahren, damit sie später abgerufen werden können. Auf diese Weise können Datensätze leicht aktualisiert und erhalten werden, ohne dass jede einzelne Information an ein Anforderungsschema angepasst werden muss.
  • Verschiedene Ausführungsbeispiele können zum Teil mit konversationellen KI-Systemen verwendet werden, die Informationen bereitstellen oder Befehle als Reaktion auf eine oder mehrere Benutzereingaben ausführen. In mindestens einem Ausführungsbeispiel kann ein Benutzer eine Eingabe an die Umgebung bereitstellen, wie z. B. eine Anfrage nach Informationen oder eine Aufforderung zur Ausführung einer oder mehrerer Aufgaben. Das System kann die Eingabe verarbeiten, z. B. eine Audioeingabe unter Verwendung eines oder mehrerer natürlicher Sprach- oder Spracherkennungssysteme, oder es kann eine Texteingabe auswerten, um die Eingabe als zu einer oder mehreren Kategorien gehörig zu klassifizieren. In mindestens einem Ausführungsbeispiel können die Kategorien mit einer informationsbasierten Eingabe, einer Absichts-/Schlitzeingabe, einer deklaratorischen Eingabe und anderen assoziiert sein. Je nach Klassifizierung kann für die Eingabe eine andere Pipeline zum Verarbeiten verwendet werden. Beispielsweise kann eine informationsbasierte Eingabe von einem oder mehreren extraktiven Frage- und Antwortmodellen anhand eines Datenspeichers mit unstrukturierten Daten ausgewertet werden, wobei das Modell ein oder mehrere Merkmale aus der Eingabe bestimmen kann, um eine Antwort auf die Eingabe zu generieren. Ein weiteres Beispiel: Eine Absichts-/Slot-Klassifizierung kann zu einer Pipeline geleitet werden, in der ein trainiertes extraktives Frage- und Antwortmodell die Eingabe anhand verschiedener Absichts-/Slot-Informationen auswertet, um einen Slot mit einem geeigneten Wert zu füllen und eine Antwort bereitzustellen. Als weiteres Beispiel kann eine deklaratorische Eingabe klassifiziert und dann zu einem unstrukturierten Datenspeicher hinzugefügt werden, wo sie dann genutzt oder für spätere Benutzerabfragen verfügbar gemacht werden kann.
  • Verschiedene Ausführungsbeispiele können verwendet werden, um eine Antwort auf eine Benutzereingabe bereitzustellen, die in Form einer auditiven Eingabe, einer Texteingabe, einer selektiven Eingabe (z.B. Auswahl eines Inhaltselements) oder einer Anweisung, wie z.B. einer Datendatei, die eine oder mehrere Operationen innerhalb der Interaktionsumgebung ausführt, erfolgen kann. Systeme und Verfahren können nicht nur relevante Informationen als natürlichen Text in einem unstrukturierten Speicher speichern und basierend auf den Informationen flexible Fragen beantworten, sondern darüber hinaus Informationen abrufen, die in Befehlen verwendet werden können. Beispielsweise kann ein Ergebnis mit einer Text- oder Sprachantwort an einen Benutzer assoziiert sein, sowie oder zusätzlich mit der Ausführung einer oder mehrerer mit dem Ergebnis verbundenen Aktionen. Beispielsweise können ein oder mehrere Meta-Befehle zu einer mit der Eingabe assoziierten reaktionsfähigen Ausgabe hinzugefügt werden, wobei der Befehl selbst nicht dem Benutzer bereitgestellt wird, sondern der Befehl eine oder mehrere zusätzliche Aktionen auslöst.
  • Eine Interaktionsumgebung 100 kann in einem Anzeigebereich 102 dargestellt werden, der ein oder mehrere Inhaltselemente enthält, wie in 1 dargestellt. In mindestens einem Ausführungsbeispiel kann die Interaktionsumgebung 100 mit einem konversationellen KI-System assoziiert sein, das es einem Benutzer ermöglicht, mit verschiedenen Inhaltselementen zu interagieren, basierend zumindest teilweise auf einer oder mehreren Eingaben, wie einer Spracheingabe, einer Texteingabe, der Auswahl eines Bereichs, der Auswahl eines oder mehrerer Inhaltselemente oder Ähnlichem. Der Anzeigebereich 102 kann ein Teil einer elektronischen Vorrichtung sein, wie z. B. ein Smartphone, ein Personal Computer, ein Smart TV, ein Virtual Reality System, ein Interaktionskiosk oder ähnliches. In diesem Beispiel wird ein Anzeigeelement 104 dargestellt, das ein Objekt 106 enthält, das einem Automobil entspricht. Das Objekt 106 ist in einer Rückansicht dargestellt, in der eine Stoßstange sichtbar ist. Wie im Folgenden beschrieben wird, ermöglichen es verschiedene Ausführungsbeispiele einem Benutzer, eine Eingabeanweisung, wie z. B. eine Sprachanweisung, bereitzustellen, um einen oder mehrere Aspekte des Objekts 106 zu ändern und/oder eine oder mehrere unterstützte Aktionen innerhalb der Interaktionsumgebung 100 durchzuführen, sowie eine oder mehrere Abfragen, wie z. B. eine Frage, die mit Informationen innerhalb der Umgebung assoziiert ist, zu stellen.
  • Das dargestellte System enthält weiter auswählbare Inhaltselemente, die ein Inhalts-Eingabeelement 108, ein Inhalts-Speicherelement 110, ein Inhalts-Ausgabeelement 112 und ein Inhalts-Eigenschaftselement 114 enthalten können. Es ist zu beachten, dass diese auswählbaren Inhaltselemente nur als Ausführungsbeispiel bereitgestellt werden und dass andere Ausführungsbeispiele mehr oder weniger Inhaltselemente enthalten können. Weiterhin können verschiedene Arten von Inhalts-Eigenschaftselementen mit verschiedenen Arten von Interaktionseigenschaften verwendet werden, wie z.B. Sprachbefehle, manuelle Eingaben oder ähnliches. Weiterhin kann die Interaktionsumgebung ein oder mehrere Skripte empfangen, die eine Abfolge von Aktionen enthalten, die dazu dienen, verschiedene Befehle zu initiieren, die mit den auswählbaren Inhaltselementen assoziiert sind. Im Betrieb kann der Benutzer mit einem oder mehreren der Inhaltselemente interagieren, um eine oder mehrere mit der Umgebung assoziierte Aufgaben oder Aktionen auszuführen, wie z. B. die Änderung von Eigenschaften des Objekts 106. Beispielsweise kann der Benutzer das Eingabe-Inhaltselement 108 auswählen, indem er darauf klickt (z.B. mit einem mausgesteuerten Cursor oder mit dem Finger), eine verbale Anweisung bereitstellt oder Ähnliches. Der Befehl des Benutzers kann dann empfangen werden, und ein oder mehrere Systeme können die Eingabe klassifizieren, eine geeignete Reaktion auf die Eingabe bestimmen und dann die geeignete Reaktion ausführen.
  • Systeme und Verfahren können sich auf das Speichern, Abrufen und Aktualisieren von unstrukturiertem Text beziehen. Ausführungsbeispiele umfassen die Speicherung von Informationen in Bezug auf eine konversationelle KI, bei der ein Benutzer eine Abfrage stellt, die Abfrage ausgewertet wird, um zu bestimmen, ob sie informationsbasiert ist, und dann ein Frage- und Antwortmodell eines neuronalen Netzwerks verwendet wird, um Fakten aus der Abfrage zu extrahieren, um eine Antwort aus unstrukturiertem Text zu bestimmen. Antworten oder Daten auf verschiedene Abfragen können natürlich als unstrukturierter Text gespeichert werden, anstatt in einem Absichts-/Slot-Schema, das möglicherweise schwer zu generieren und/oder zu aktualisieren ist. Während des Betriebs wird eine Eingabe-Abfrage zu einem Klassifizierer geleitet, der bestimmt, ob die Abfrage eine Frage ist. Darüber hinaus wird die Frage in eine informationsbasierte, auf Informationen basierende) Abfrage oder eine Absichts-/Slot-Abfrage unterteilt, um sie an die entsprechende Pipeline zu leiten. Ein extraktives QA-Modell kann trainiert und dann verwendet werden, um eine Antwort auf die informationsbasierte Abfrage bereitzustellen, z. B. durch Durchsuchen des unstrukturierten Textes, um eine Antwort auf die eingegebene Abfrage zu identifizieren. Das System ermöglicht die Entwicklung einer konversationellen KI, die mit unstrukturiertem Speicher unterstützt wird, was mit dem System assoziierte Kundenfakten erhöhen kann.
  • Ausführungsbeispiele der vorliegenden Offenbarung können eine oder mehrere Verbesserungen gegenüber bestehenden Systemen bereitstellen, die ein strukturiertes Datenschema zum Speichern, Aktualisieren und Abrufen von Informationen verwenden. Beispielsweise kann die unstrukturierte, natürlichsprachliche Speicherung der vorliegenden Ausführungsbeispiele Verbesserungen gegenüber Absichts-/Slot-Schemata bereitstellen, bei denen bestimmte Antworten oder Absichten zur Verwendung mit dem System vorgeladen und definiert werden. Dementsprechend werden Absichts-/Slot-Schemata typischerweise generiert, indem eine Vielzahl verschiedener Eingaben und gewünschter Ausgaben betrachtet wird, um Absichts-/Slot-Kombinationen zu erstellen, die dann identifiziert und als Reaktion auf die Eingabe ausgeführt werden. Das Generieren dieser Systeme kann zeitaufwändig sein und ist nicht flexibel gegenüber Benutzereingaben, die nicht den vorgeladenen Absichten und Slots entsprechen. In ähnlicher Weise stellen die Systeme Verbesserungen gegenüber variablen Wörterbüchern und Wissensgraphen bereit, die eine starre Klassifizierung von Informationen erfordern können, anstatt unstrukturierten Text zu speichern und abzurufen.
  • Eine Architektur 200 kann eine oder mehrere Verarbeitungseinheiten umfassen, die lokal gehostet werden oder Teil eines oder mehrerer verteilter Systeme sein können, wie in 2 gezeigt. In diesem Beispiel wird eine Eingabe 200 einem Klassifizierer 204 bereitgestellt, der Teil eines verteilten Systems oder ein lokal gehosteter Klassifizierer sein kann, neben anderen Optionen. Der Klassifizierer 204 kann ein oder mehrere trainierte maschinelle Lernsysteme enthalten, die einen oder mehrere Aspekte der Eingabe bewerten, um zu bestimmen, ob die Eingabe mit einer Frage assoziiert ist oder nicht. Nur als Beispiel: Ein oder mehrere Interpunktionsmodelle, die Teil eines oder mehrerer Modelle für die Verarbeitung natürlicher Sprache (NLP) sein können, können verwendet werden, um vorherzusagen, ob ein Interpunktionszeichen auf ein Wort folgt, und darüber hinaus, um vorherzusagen, ob eine eingegebene Aussage oder ein Satz eine Frage ist. Weiterhin können zumindest Teile des Klassifizierers 204 ein oder mehrere Systeme zum Verstehen natürlicher Sprache (Natural Language Understanding, NLU) enthalten, die es Menschen ermöglichen, auf natürliche Weise mit Vorrichtungen zu interagieren. Das NLU-System kann verwendet werden, um den Kontext und die Absicht der Eingabe zu interpretieren und eine Antwort zu generieren. Beispielsweise kann die Eingabe vorverarbeitet werden, was Tokenisierung, Lemmatisierung, Stemming und andere Verfahren umfassen kann. Darüber hinaus kann das NLU-System ein oder mehrere Deep-Learning-Modelle, wie z. B. ein BERT-Modell, enthalten, um Funktionen wie Entitäts-Erkennung, Absichtserkennung, Sentiment-Analyse und andere zu ermöglichen. Darüber hinaus können verschiedene Ausführungsbeispiele weiter eine automatische Spracherkennung (ASR), Text-zu-Sprache-Verarbeitung und dergleichen enthalten.
  • Im Betrieb wird die Eingabe 202 durch den Klassifizierer 204 ausgewertet und, zumindest teilweise basierend auf einer Klassifizierung der Eingabe 202, können die Daten entlang einer oder mehrerer Pipelines zum weiteren Verarbeiten übertragen werden. In diesem Beispiel kann eine Frageumgebung 206 unter anderem Auswertungen informationsbasierter Abfragen 208 und Absichts-/Slot-Abfragen 210 umfassen. Zum Beispiel kann der Klassifizierer 204 initial bestimmen, dass die Eingabe 202 einer Frage entspricht, und die Daten entlang einer geeigneten Pipeline zur Frageumgebung 206 leiten. Innerhalb der Frageumgebung können jedoch eine oder mehrere zusätzliche Analysen oder Bestimmungen durchgeführt werden, um zu bestimmen, ob ein geeignetes Verfahren zum Verarbeiten durch das informationsbasierte System 208 oder das Absichts-/Slot-System 210 durchgeführt wird, wobei es sich, wie oben erwähnt, um Beispiele handelt, da innerhalb der Frageumgebung 206 weitere Systeme verwendet werden können. Nur als Beispiel können eine oder mehrere Funktionen verwendet werden, um zu bewerten und zu bestimmen, wie eine Eingabe zu verarbeiten ist, wie im Folgenden gezeigt:
 if question(query):
         response = question _answering(query)
 if not response:
         intent, score = recognize_intent(query)
         if intent and score > Threshold: #intent recognized
             slot = recognize_slot(query, slot_question)
             slot = check_slot value(slot, supported _slot values)
             response, command = execute_command(intent, slot)
 tts. say(response)
  • In diesem Beispiel wird die initiale Abfrage unter Verwendung des trainierten extraktiven Netzwerks zur Beantwortung von Fragen ausgewertet und verarbeitet, wenn es sich bei der Abfrage um eine Frage handelt und wenn eine solche Abfrage vom System verarbeitet werden kann. In anderen Beispielen kann das Absichts-/Slot-System 210 jedoch damit fortfahren, eine Absicht zu identifizieren, einen assoziierten Slot zu identifizieren, den Slot zu füllen und dann eine Antwort bereitzustellen.
  • Darüber hinaus kann die Eingabe 202 weiter als deklarative Aussage klassifiziert und an ein Informationsspeichersystem 212 geleitet werden. Zum Beispiel kann der Benutzer als Eingabe 202 eine bestätigende Aussage bereitstellen, wie „Meine Lieblingsfarbe ist grün“ oder „Dies sollte die Standardeinstellung für die Ansicht sein.“ Diese Information kann dann dem Informationsspeichersystem 212 zur Speicherung und Aufbewahrung als unstrukturierte natürliche Sprache bereitgestellt werden, die dann als Antwort auf eine andere Abfrage verwendet werden kann. Die Speicherung der Eingaben 202 in unstrukturierter natürlicher Sprache ermöglicht die Speicherung und den Abruf in Echtzeit und nahezu in Echtzeit, so dass die mit dem System assoziierten Daten zur Laufzeit aktualisiert werden können, ohne das Modell erneut zu trainieren oder die Klassifizierungen der Absichten/Schlitze durch Hinzufügen neuer Absichten zu ändern. Auf diese Weise kann die konversationelle KI häufiger und auf natürlichere Weise aktualisiert werden, indem natürliche Sprache verwendet wird, anstatt dass die Informationen bestimmten Datenstrukturen entsprechen müssen.
  • Eine Umgebung 300 kann mit einer oder mehreren konversationellen KI verwendet werden, wie in 3 gezeigt. Es ist zu beachten, dass die Umgebung 300 mehr oder weniger Komponenten umfassen kann und dass verschiedene Komponenten der Umgebung 300 in einzelne Systeme integriert werden können, aber der Einfachheit und Übersichtlichkeit halber als separate Module dargestellt werden. In diesem Beispiel wird eine Eingabe 302 über ein oder mehrere Netzwerke 306 an ein konversationelles System 304 übertragen. Bei den Netzwerken 306 kann es sich um drahtgebundene oder drahtlose Netzwerke handeln, die ein oder mehrere Zwischensysteme, wie z. B. Benutzervorrichtungen, Serverkomponenten, Switches und ähnliches, umfassen. Darüber hinaus sollte man sich bewusst sein, dass eine oder mehrere Funktionen des konversationellen Systems 304 vorgeladen oder anderweitig auf einer Benutzervorrichtung gespeichert sein können, so dass die Übertragung zumindest eines Teils der Daten nicht das Netzwerk 306 nutzen muss, sondern lokal auf einer Vorrichtung durchgeführt werden kann.
  • In diesem Beispiel empfängt ein Eingabeprozessor 308 die Eingabe 308 und kann einen oder mehrere Vor- oder Nachverarbeitungsschritte durchführen. Zum Beispiel kann der Eingabeprozessor 308 ein oder mehrere NLP-Systeme enthalten, die eine auditive Eingabe auswerten, um ein oder mehrere Merkmale aus der Eingabe zu extrahieren, neben anderen Optionen. Weiterhin kann der Eingabeprozessor 308 in Ausführungsbeispielen ein Textverarbeitungssystem zur Vorverarbeitung (z.B. Tokenisierung, Entfernung von Interpunktion, Entfernung von Stoppwörtern, Stemming, Lemmatisierung usw.), Merkmalsextraktion und dergleichen enthalten. Es sollte gewürdigt werden, dass der Eingabeprozessor 308 ein oder mehrere trainierte maschinelle Lernsysteme verwenden kann und weiter in andere Komponenten des konversationellen Systems 304 integriert werden kann.
  • Ein Klassifizierer 310 kann verwendet werden, um zu bestimmen, ob die Eingabe einer Frage, einer Aussage oder einer anderen Markierung entspricht. Zum Beispiel kann der Klassifizierer 310 ein oder mehrere trainierte maschinelle Lernsysteme verwenden, um zu bewerten, ob eine Eingabe in Form einer Frage vorliegt, zum Beispiel unter Verwendung eines Interpunktionsmodells und anderer möglicher Modelle. Wie oben erwähnt, kann der Klassifizierer 310 dann die Eingabe entlang verschiedener Pfade leiten, abhängig von einer entsprechenden Klassifizierung, wobei Fragen weiter gegen eine oder mehrere Datenbanken ausgewertet werden können, um eine Antwort zu bestimmen, und Aussagen ausgewertet und zu einem Korpus von unstrukturiertem Text hinzugefügt werden können.
  • Wie oben erwähnt, können Fragen an eine Frageumgebung geleitet werden, in der ein oder mehrere extraktive Frage- und Antwortmodelle 312 verwendet werden, um eine Antwort auf die Eingabe zu bestimmen. Beispielsweise kann das extraktive Frage- und Antwortmodell 312 ein trainiertes neuronales Netzwerk sein, das verwendet wird, um einen oder mehrere Teile einer Eingabe-Sequenz zu extrahieren, um eine mit einer solchen Sequenz assoziierte natürlichsprachliche Frage zu beantworten. Wie oben erwähnt, kann für eine Eingabe wie „Welche Farben kann ich dem Auto geben“ unstrukturierter Text ausgewertet werden, um mögliche Farben für das Auto zu identifizieren, wobei diese Farben dann dem Benutzer präsentiert werden können. Wenn der unstrukturierte Text beispielsweise Informationen in natürlicher Sprache enthält wie „Autofarben sind weiß, schwarz, rot, gelb und grau“, dann würde die Antwort auf die Frage „weiß, schwarz, rot, gelb und grau“ lauten. Darüber hinaus kann das Modell 312 auch für die Bewertung von Absichten und Schlitzen verwendet werden. In verschiedenen Ausführungsbeispielen kann das extraktive Frage- und Antwortmodell ein trainiertes neuronales Netzwerk-System sein, wie z.B. Megatron von NVIDIA Corporation.
  • In verschiedenen Ausführungsbeispielen können Trainingsdaten 314 verwendet werden, um das Modell 312 zu trainieren, wobei die Daten einen Informationskorpus, wie den multiQA-Datensatz, umfassen. Infolgedessen kann das Modell 312 in der Lage sein, relevante Fakten direkt aus einem Korpus von unstrukturiertem Text 316 zu extrahieren, der den für das konversationelle System 304 bereitgestellten Informationen entspricht. Das Korpus 316 kann beispielsweise Informationen enthalten, die in natürlicher Sprache vorliegen, wie Sätze, Absätze, CSV-Daten und Ähnliches. Weiterhin kann das Korpus 316 einen oder mehrere Struktur-Datensätze weiter enthalten.
  • Das dargestellte Ausführungsbeispiel umfasst auch ein Laufzeit-Interaktionsmodul 318, um verschiedene Aussagen oder Fakten zu identifizieren und einzubinden, die zur Aktualisierung des Korpus 316 verwendet werden können. Beispielsweise kann der Klassifizierer 310 bestimmen, dass eine Eingabe nicht mit einer Frage assoziiert ist, und kann die Eingabe dem Laufzeitinteraktionsmodul 318 zur Bewertung bereitstellen, beispielsweise unter Verwendung eines oder mehrerer maschineller Lernsysteme. Ein oder mehrere Merkmale können identifiziert und/oder aus der Eingabe extrahiert werden, um den Korpus 316 zu aktualisieren. Die Eingabe kann zum Beispiel einer Benutzerpräferenz entsprechen, wie zum Beispiel einer Äußerung, dass der Benutzer eine bestimmte Farbe oder einen bestimmten Kamerawinkel bevorzugt. Diese Informationen können dann zur Aktualisierung des Korpus 316 verwendet werden, so dass zukünftige Befehle oder Anfragen die Präferenzen des Benutzers berücksichtigen können. In mindestens einem Ausführungsbeispiel kann ein Datenmodifikator 320 verwendet werden, um den Korpus 316 zu aktualisieren, beispielsweise durch Formatierung der Eingabe in natürlichem Sprachformat.
  • Verschiedene Ausführungsbeispiele können auch veranlassen, dass eine oder mehrere Aktionen ausgeführt werden, die mit der Eingabe assoziiert sind. Zum Beispiel kann ein Aktionsmodul 322 verwendet werden, um einen oder mehrere Meta-Befehle zu implementieren, die mit natürlichsprachigem Text assoziiert sind und eine Verbindung zu entsprechenden Befehlen ermöglichen, die mit dem Text assoziiert sind. In verschiedenen Ausführungsbeispielen können die Meta-Befehle ein Symbol oder eine Aufforderung an die maschinellen Lernsysteme sein, bestimmte Zeichen zu ignorieren oder anderweitig außer Acht zu lassen, wobei diese Zeichen mit den Aktionen assoziiert sind. In verschiedenen Ausführungsbeispielen kann die Aktion parallel oder semiparallel mit einer Antwort auf die Eingabe ausgeführt werden. In mindestens einem Ausführungsbeispiel können die Meta-Befehle separate Sätze oder Zeichenketten sein, die auf ein Symbol oder einen Aufruf folgen. Wenn der Benutzer zum Beispiel fragt: „Welche Beilagen gibt es zu diesem Gericht?“, kann eine assoziierte Aktion darin bestehen, dem Benutzer nicht nur eine verbale oder textliche Antwort auf die Frage zu geben, sondern auch Bilder bereitzustellen oder eine Liste anzuzeigen. Folglich kann das Symbol oder der Aufruf innerhalb des unstrukturierten Textes dem mit der Antwort assoziierten unstrukturierten Text folgen, so dass, wenn die Antwort auf die Benutzereingabe identifiziert wird, auch eine oder mehrere Aktionen ausgeführt werden.
  • Wie bereits erwähnt, ermöglichen verschiedene Ausführungsbeispiele die Speicherung und den Abruf von Informationen in natürlicher Sprache und unstrukturiertem Text. Dementsprechend können neue Informationen einfach zum Informationskorpus hinzugefügt werden, ohne dass sie nach einem bestimmten Schema formatiert werden müssen. Ein Speichersystem 400 kann einen Satz von Informationen 402 enthalten, wie in 4 dargestellt. Die Informationsmenge 402 wird als freier Text in einem natürlichsprachlichen Format gespeichert, in diesem Fall als eine Reihe von Sätzen. Es sollte verstanden werden, dass verschiedene unstrukturierte Speicherschemata verwendet werden können, wie z.B. Listen (z.B. Farben sind weiß, schwarz, rot, gelb und grau), Schlüssel-Wert-Paare (z.B. Farben:weiß, schwarz, rot, gelb, grau) und dergleichen. Weiterhin ist zu beachten, dass das Speichersystem 400 innerhalb der Informationsmenge 402 auch andere strukturierte Schemata verwendet werden können. Mit anderen Worten, verschiedene Schemata können innerhalb des Speichersystems 400 als die Informationsmenge 402 kombiniert werden, wodurch eine verbesserte Flexibilität für die Speicherung und Aktualisierung von Informationen bereitgestellt wird.
  • In diesem Beispiel zeigt eine Eingabe 404 ein Beispiel für eine dem System 400 bereitgestellte Benutzerabfrage, die in dieser Instanz eine Spracheingabe ist, die in Text umgewandelt wurde, zum Beispiel unter Verwendung eines oder mehrerer NLP-Systeme. Es ist zu beachten, dass die Eingabe 404 als Ausführungsbeispiel bereitgestellt wird, um das vom System 400 ausgewertete Verfahren darzustellen, und dass in Ausführungsbeispielen der Benutzer, der das System 400 verwendet, die Informationsmenge 402 und/oder die Eingabe 404 nicht visualisiert. Das heißt, das System 400 kann im Hintergrund ausgeführt werden, während dem Benutzer eine andere Benutzeroberfläche angezeigt wird. In diesem Beispiel entspricht die Eingabe 404 einer Frage, die von einem oder mehreren Klassifizierern identifiziert werden kann, wie oben beschrieben. Darüber hinaus kann die Frage in verschiedenen Ausführungsbeispielen weiter analysiert werden, um zu bestimmen, ob es sich um eine informationsbasierte Frage handelt. In dieser Instanz bezieht sich die Abfrage auf eine Frage zu den Fähigkeiten des Systems, was einer informationsbasierten Frage entsprechen kann.
  • In mindestens einem Ausführungsbeispiel kann eine generative Antwort 408 aktiviert werden, so dass die Antwort 406 in einer Satzstruktur für den Benutzer bereitgestellt wird. Beispielsweise kann ein generatives neuronales Netzwerk verwendet werden, um als Eingabe die Antwort 406 zu empfangen und dann eine geeignete Antwort zu bestimmen, die die Antwort 406 enthält. In diesem Beispiel stellt die generative Antwort 408 die Antwort 406 in einem Satzformat für den Benutzer bereit. Wie zu erkennen ist, kann das Verwenden der generativen Antwort 408 dem Benutzer ein verbessertes Interaktionserlebnis bereitstellen, bei dem der Benutzer das Gefühl hat, mit dem System in eine Konversation einzutreten, anstatt nur die Informationen zu erhalten. Dementsprechend kann der Benutzer ermutigt werden, das System für weitere Zwecke zu verwenden.
  • In mindestens einem Ausführungsbeispiel können eine oder mehrere Aktionen mit verschiedenen Benutzereingaben verknüpft werden, wobei die Aktion eine Markierung oder einen Aufruf umfassen kann, wie oben erwähnt. Ein Aktionssatz 410 kann eine Liste oder einen Satz von assoziierten Aktionen mit verschiedenen Antworten 406 enthalten. Im Beispiel von 4 sind mit der Anfrage des Benutzers, sich über Farboptionen zu informieren, keine zugehörigen Aktionen assoziiert. In verschiedenen Ausführungsbeispielen könnten jedoch Aktionen mit der Anfrage assoziiert sein, wie z. B. die Anzeige einer Tafel oder eines Musters mit den Farboptionen. Dementsprechend können verschiedene Aufrufe oder Funktionen aufgeführt werden. In mindestens einem Ausführungsbeispiel kann ein Anbieter auf das System 400 zugreifen, um Änderungen oder Aktualisierungen vorzunehmen. Beispielsweise können der Informationsmenge 402 andere Informationen hinzugefügt werden und/oder verschiedene Aktionen können mit verschiedenen Fragen oder Situationen in Verbindung gebracht werden. Auf diese Weise können dynamische Änderungen am System zur Laufzeit bereitgestellt werden, ohne das System erneut zu trainieren.
  • 5A zeigt ein beispielhaftes Verfahren 500 zum Bestimmen der Absicht eines Benutzers, eine Aktion innerhalb einer Interaktionsumgebung auszuführen. Es sollte verstanden werden, dass für dieses und andere hier vorgestellte Verfahren zusätzliche, weniger oder alternative Schritte in ähnlicher oder alternativer Reihenfolge oder zumindest teilweise parallel im Rahmen verschiedener Ausführungsbeispiele durchgeführt werden können, sofern nicht ausdrücklich anders angegeben. In diesem Beispiel kann eine Eingabe in einer Interaktionsumgebung 502 empfangen werden. In verschiedenen Ausführungsbeispielen kann die Eingabe eine Spracheingabe, eine Texteingabe, ein Befehl aus einem Skript eines Softwareprogramms, eine Auswahl eines Inhaltselements oder ähnliches sein. Eine Klassifizierung der Eingabe kann bestimmt werden 504, zum Beispiel unter Verwendung eines oder mehrerer maschineller Lernsysteme, die bestimmen, ob die Eingabe eine Frage oder eine deklarative Aussage ist 506. Wie oben erwähnt, kann das Bestimmen zumindest teilweise ein oder mehrere Modelle umfassen, wie z. B. ein Interpunktionsmodell.
  • Handelt es sich bei der Information um eine deklarative Aussage, z. B. wenn der Benutzer eine Information bereitstellt, kann die Eingabe in einem natürlichsprachlichen Format 508 gespeichert werden. Die Speicherung der Eingabe kann eine spätere Identifizierung und den Abruf der Informationen ermöglichen, z. B. wenn der Benutzer Informationen bereitstellt, die für eine Interaktionsumgebung nützlich sein können, wie z. B. die Verifizierung einer oder mehrerer Präferenzen. Weiterhin stellt die Speicherung der Informationen in einem natürlichsprachlichen Format, wie hierin erörtert, dem System Flexibilität bereit, so dass ein bestimmtes Speicherschema nicht erforderlich sein kann, was eine schnellere, automatisierte Speicherung der neu bereitgestellten Informationen ermöglichen kann.
  • In mindestens einem Ausführungsbeispiel ist die Eingabe eine Frage, und eine oder mehrere Textsequenzen können aus der Eingabe 510 extrahiert werden. Die extrahierten Teile der Textsequenz können einem oder mehreren maschinellen Lernsystemen, wie einem extraktiven Frage- und Antwortmodell, bereitgestellt werden, um, zumindest teilweise basierend auf der Sequenz, eine Antwort 512 zu bestimmen. Die Antwort kann eine Antwort auf die durch die Eingabe gestellte Frage bereitstellen, wobei die Antwort in einem Satz von Informationen identifiziert werden kann, die in einem unstrukturierten Format gespeichert sind, wie z. B. einem Format für natürliche Sprache. Die Antwort kann dann verwendet werden, um eine Erwiderung auf die Eingabe 514 zu generieren, wie z.B. das Bereitstellen von zusätzlichen Informationen, das Ausführen einer Aktion oder eine Kombination davon.
  • 5B zeigt ein beispielhaftes Verfahren 520 zum Reagieren auf eine Benutzereingabe. In diesem Beispiel wird eine Eingabe in einer Interaktionsumgebung 522 empfangen. Wie bereits erwähnt, kann die Eingabe eine oder mehrere Abfragen beinhalten, die über eine Sprachinteraktion, Texteingabe, Auswahl eines Inhaltselements oder andere Optionen bereitgestellt werden. In mindestens einem Ausführungsbeispiel kann die Eingabe eine informationsbasierte Frage 524 enthalten. Bei der Eingabe kann es sich beispielsweise um eine Frage zu den potenziellen Fähigkeiten eines konversationellen KI-Systems handeln. Die Informationen aus der Eingabe können verwendet werden, um Daten auszuwerten, die als unstrukturierte natürliche Sprache gespeichert sind, um eine Antwort auf die Eingabe 526 zu bestimmen. Beispielsweise kann ein extraktives Frage- und Antwortmodell als Eingabe ein oder mehrere Merkmale aus der Eingabe übernehmen, um zu bestimmen, ob Informationen in den gespeicherten Daten auf die Eingabe reagieren. Eine Erwiderung kann dann unter Verwendung der Antwort 528 generiert werden.
  • 6 zeigt ein Beispielverfahren 600 zum Ausführen einer Aktion basierend auf einer Eingabe. In diesem Beispiel wird ein Satz von Informationen als unstrukturierte, natürliche Sprache 602 gespeichert. Die Informationen können beispielsweise als eine Reihe von Sätzen gespeichert werden, neben anderen Optionen. Eine Aktion, die einem Teil der Informationen entspricht, wird bestimmt 604. Die Aktion kann eine oder mehrere Fähigkeiten einer Interaktionsumgebung umfassen, z. B. das Bereitstellen einer visuellen Indikation als Reaktion auf eine Benutzerabfrage. Dem Teil der Information kann eine Aufruffunktion zugewiesen werden, die zur Ausführung einer Aktion 606 verwendet wird. In verschiedenen Ausführungsbeispielen kann die Aufruffunktion ein Symbol oder eine Indikation enthalten, so dass die Aufruffunktion nicht gezählt wird oder in der Menge der Informationen enthalten ist.
  • In verschiedenen Ausführungsbeispielen wird eine Eingabe empfangen, und der Teil wird in Reaktion auf die Eingabe 608 abgerufen. Der Teil kann verwendet werden, um eine Antwort auf die Eingabe 610 zu generieren, und basierend auf der Antwort können eine oder mehrere assoziierte Aktionen ausgeführt werden 612. Auf diese Weise kann der mit dem Teil assoziierte Aufruf parallel zum Bereitstellen der Antwort ausgeführt werden.
  • DATENZENTRUM
  • 7 zeigt ein beispielhaftes Datenzentrum 700, bei dem zumindest ein Ausführungsbeispiel verwendet werden kann. In mindestens einem Ausführungsbeispiel umfasst das Datenzentrum 700 eine Datenzentrumsinfrastrukturschicht 710, eine Framework-Schicht 720, eine Softwareschicht 730 und eine Applikationsschicht 740.
  • In mindestens einer Ausführungsbeispiel, wie in 7 gezeigt, kann die Datenzentrum-Infrastrukturschicht 710 einen Ressourcen-Orchestrator 712, gruppierte Rechner-Ressourcen 714 und Knoten-Rechner-Ressourcen („Knoten C.R.s“) 716(1)-716(N) umfassen, wobei „N“ eine beliebige ganze, positive Zahl repräsentiert. In mindestens einem Ausführungsbeispiel können die Knoten-C.R.s 716(1)-716(N) eine beliebige Anzahl von zentralen Verarbeitungseinheiten („CPUs“) oder anderen Vorrichtungen (einschließlich Beschleunigern, feldprogrammierbaren Arrays (FPGAs), Grafikprozessoren usw.), Speichereinrichtungen (z.B., dynamischer Festwertspeicher), Speichervorrichtungen (z.B. Solid-State- oder Festplattenlaufwerke), Netzwerk-Eingabe/Ausgabe-Vorrichtungen („NW I/O“), Netzwerk-Switches, virtuelle Maschinen („VMs“), Stromversorgungsmodule und Kühlmodule usw. In mindestens einem Ausführungsbeispiel kann es sich bei einem oder mehreren Knoten-C.R.s unter den Knoten-C.R.s 716(1)-716(N) um einen Server handeln, der über eine oder mehrere der oben genannten Rechenressourcen verfügt.
  • In mindestens einem Ausführungsbeispiel können die gruppierten Rechenressourcen 714 separate Gruppierungen von Knoten-C.R.s umfassen, die in einem oder mehreren Racks (nicht gezeigt) untergebracht sind, oder viele Racks, die in Datenzentren an verschiedenen geografischen Orten untergebracht sind (ebenfalls nicht gezeigt). Getrennte Gruppierungen von Knoten-C.R.s innerhalb der gruppierten Rechenressourcen 714 können gruppierte Rechen-, Netzwerk-, Arbeitsspeicher- oder Speicherressourcen umfassen, die zur Unterstützung einer oder mehrerer Arbeitslasten konfiguriert oder zugewiesen werden können. In mindestens einem Ausführungsbeispiel können mehrere Knoten-CRs mit CPUs oder Prozessoren in einem oder mehreren Racks gruppiert werden, um Rechenressourcen zur Unterstützung einer oder mehrerer Arbeitslasten bereitzustellen. In mindestens einem Ausführungsbeispiel können ein oder mehrere Racks auch eine beliebige Anzahl von Stromversorgungsmodulen, Kühlmodulen und Netzwerk Switches in beliebiger Kombination enthalten.
  • In mindestens einem Ausführungsbeispiel kann der Ressourcen-Orchestrator 712 einen oder mehrere Knoten C.R.s 716(1)-716(N) und/oder gruppierte Rechen-Ressourcen 714 konfigurieren oder anderweitig steuern. In mindestens einem Ausführungsbeispiel kann der Ressourcen-Orchestrator 712 eine Verwaltung für die Software-Design-Infrastruktur („SDI“) des Datenzentrums 700 umfassen. In mindestens einem Ausführungsbeispiel kann der Ressourcen-Orchestrator Hardware, Software oder eine Kombination davon umfassen.
  • In mindestens einem Ausführungsbeispiel, wie in 7 gezeigt, umfasst die Framework-Schicht 720 einen Planer für Aufgaben 722, einen Verwalter für Konfigurationen 724, einen Verwalter für Ressourcen 726 und ein verteiltes Dateisystem 728. In mindestens einem Ausführungsbeispiel kann die Framework-Schicht 720 ein Framework zur Unterstützung der Software 732 der Software-Schicht 730 und/oder einer oder mehrerer Applikation(en) 742 der Applikationsschicht 740 enthalten. In mindestens einem Ausführungsbeispiel können die Software 732 oder die Applikation(en) 742 jeweils webbasierte Service-Software oder Applikationen umfassen, wie sie beispielsweise von Amazon Web Services, Google Cloud und Microsoft Azure bereitgestellt werden. In mindestens einem Ausführungsbeispiel kann es sich bei der Applikationsschicht 720 um eine Art von freiem und quelloffenem Software-Webapplikations-Framework wie Apache SparkTM (im Folgenden „Spark“) handeln, das ein verteiltes Dateisystem 728 für die Verarbeitung großer Datenmengen (z.B. „Big Data“) nutzen kann, ohne darauf beschränkt zu sein. In mindestens einem Ausführungsbeispiel kann der Planer für Aufgaben 722 einen Spark-Treiber enthalten, um die Planung von Arbeitslasten zu erleichtern, die von verschiedenen Schichten des Datenzentrums 700 unterstützt werden. In mindestens einem Ausführungsbeispiel kann der Konfigurationsverwalter 724 in der Lage sein, verschiedene Schichten wie die Softwareschicht 730 und die Framework-Schicht 720 einschließlich Spark und das verteilte Dateisystem 728 zum Verarbeiten großer Datenmengen zu konfigurieren. In mindestens einem Ausführungsbeispiel kann der Ressourcenverwalter 726 in der Lage sein, geclusterte oder gruppierte Rechenressourcen zu verwalten, die dem verteilten Dateisystem 728 und dem Planer für Aufgaben 722 zugeordnet oder zugewiesen sind. In mindestens einem Ausführungsbeispiel können die geclusterten oder gruppierten Rechenressourcen die gruppierten Rechenressourcen 714 in der Schicht 710 der Datenzentrumsinfrastruktur umfassen. In mindestens einem Ausführungsbeispiel kann der Verwalter 726 mit dem Ressourcen-Orchestrator 712 zusammenarbeiten, um diese zugeordneten oder zugewiesenen Rechenressourcen zu verwalten.
  • In mindestens einem Ausführungsbeispiel kann die in der Softwareschicht 730 enthaltene Software 732 Software enthalten, die von mindestens Teilen der Knoten C.R.s 716(1)-716(N), gruppierten Rechnersystemen 714 und/oder verteilten Dateisystemen 728 der Framework-Schicht 720 verwendet wird. Die eine oder mehrere Arten von Software können unter anderem Internet-Suchsoftware, E-Mail-Virenscan-Software, Datenbanksoftware und Software für den Strom von Videoinhalten umfassen.
  • In mindestens einem Ausführungsbeispiel kann (können) die in der Applikationsschicht 740 enthaltene(n) Applikation(en) 742 eine oder mehrere Arten von Applikationen umfassen, die zumindest von Teilen der Knoten C.R.s 716(1)-716(N), der gruppierten Rechenressourcen 714 und/oder des verteilten Dateisystems 728 der Framework-Schicht 720 verwendet werden. Eine oder mehrere Arten von Applikationen können eine beliebige Anzahl einer Genomanwendung, eines kognitiven Rechners und einer maschinellen Lernapplikation, einschließlich Trainings- oder Inferenzierungssoftware, Framework-Software für maschinelles Lernen (z.B. PyTorch, TensorFlow, Caffe usw.) oder andere maschinelle Lernapplikationen, die in Verbindung mit einer oder mehreren Ausführungsbeispielen verwendet werden, umfassen, sind aber nicht darauf beschränkt.
  • In mindestens einem Ausführungsbeispiel kann ein beliebiger Konfigurationsverwalter 724, Ressourcenverwalter 726 und Ressourcen-Orchestrator 712 eine beliebige Anzahl und Art von selbstmodifizierenden Aktionen basierend auf einer beliebigen Menge und Art von Daten implementieren, die auf jede technisch machbare Weise erfasst werden. In mindestens einem Ausführungsbeispiel können selbstmodifizierende Aktionen einen Betreiber eines Datenzentrums 700 davon entlasten, möglicherweise schlechte Konfigurationsentscheidungen zu treffen und möglicherweise nicht ausgelastete und/oder schlecht funktionierende Teile eines Datenzentrums zu vermeiden.
  • In mindestens einem Ausführungsbeispiel kann das Datenzentrum 700 Werkzeuge, Dienste, Software oder andere Ressourcen enthalten, um ein oder mehrere Modelle für maschinelles Lernen zu trainieren oder Informationen unter Verwendung eines oder mehrerer Modelle für maschinelles Lernen gemäß einem oder mehreren hierin beschriebenen Ausführungsbeispielen vorherzusagen oder zu inferenzieren. Beispielsweise kann in mindestens einem Ausführungsbeispiel ein Modell für maschinelles Lernen trainiert werden, indem Gewichtsparameter gemäß einer Architektur eines neuronalen Netzwerks unter Verwendung von Software und Rechenressourcen berechnet werden, die oben in Bezug auf das Datenzentrum 700 beschrieben wurden. In mindestens einem Ausführungsbeispiel können trainierte maschinelle Lernmodelle, die einem oder mehreren neuronalen Netzwerken entsprechen, verwendet werden, um Informationen zu inferenzieren oder vorherzusagen, wobei die oben beschriebenen Ressourcen in Bezug auf das Datenzentrum 700 verwendet werden, indem Gewichtsparameter verwendet werden, die durch eine oder mehrere hierin beschriebene Trainingstechniken berechnet werden.
  • In mindestens einem Ausführungsbeispiel kann das Datenzentrum CPUs, anwendungsspezifische integrierte Schaltungen (ASICs), GPUs, FPGAs oder andere Hardware verwenden, um das Training und/oder Inferenzieren unter Verwendung der oben beschriebenen Ressourcen durchzuführen. Darüber hinaus können eine oder mehrere der oben beschriebenen Software- und/oder Hardwareressourcen als Dienst konfiguriert werden, um es Benutzern zu ermöglichen, Informationen zu trainieren oder zu inferenzieren, wie z. B. Bilderkennung, Spracherkennung oder andere Dienste der künstlichen Intelligenz.
  • Solche Komponenten können zum Speichern und Abrufen von Informationen in Interaktionsumgebungen verwendet werden.
  • COMPUTERSYSTEME
  • 8 ist ein Blockdiagramm, das ein beispielhaftes Rechnersystem zeigt, das ein System mit miteinander verbundenen Vorrichtungen und Komponenten, ein System-on-a-Chip (SOC) oder eine Kombination davon 800 sein kann, das gemäß mindestens einem Ausführungsbeispiel mit einem Prozessor gebildet wird, der Ausführungseinheiten zur Ausführung einer Anweisung enthalten kann. In mindestens einer Ausführungsform kann das Rechnersystem 800 ohne Einschränkung eine Komponente, wie z. B. einen Prozessor 802, enthalten, um Ausführungseinheiten einschließlich Logik zur Durchführung von Algorithmen zum Verarbeiten von Daten gemäß der vorliegenden Offenbarung, wie in der hierin beschriebenen Ausführungsform, einzusetzen. In mindestens einem Ausführungsbeispiel kann das Rechnersystem 800 Prozessoren wie die PENTIUM®-Prozessorfamilie, XeonTM-, Itanium®-, XScaleTM- und/oder StrongARMTM-, Intel® Core™- oder Intel® Nervana™-Mikroprozessoren verwenden, die von der Intel Corporation in Santa Clara, Kalifornien, erhältlich sind, obwohl auch andere Systeme (einschließlich PCs mit anderen Mikroprozessoren, technische Workstations, Set-Top-Boxen und dergleichen) verwendet werden können. In mindestens einem Ausführungsbeispiel kann das Rechnersystem 800 eine Version des WINDOWS-Betriebssystems ausführen, das von der Microsoft Corporation in Redmond, Washington, erhältlich ist, wobei jedoch auch andere Betriebssysteme (z. B. UNIX und Linux), eingebettete Software und/oder grafische Benutzeroberflächen verwendet werden können.
  • Ausführungsbeispiele können in anderen Vorrichtungen wie Handheld-Geräten und eingebetteten Applikationen verwendet werden. Einige Beispiele für tragbare Vorrichtungen sind Mobiltelefone, Internet-Protokoll-Vorrichtungen, Digitalkameras, persönliche digitale Assistenten („PDAs“) und Handheld-PCs. In mindestens einem Ausführungsbeispiel können eingebettete Applikationen einen Mikrocontroller, einen digitalen Signalprozessor („DSP“), ein System auf einem Chip, Netzwerk-Rechner („NetPCs“), Netzwerk-Hubs, Wide Area Network („WAN“) Switches oder jedes andere System umfassen, das gemäß mindestens einem Ausführungsbeispiel eine oder mehrere Anweisungen ausführen kann.
  • In mindestens einem Ausführungsbeispiel kann das Rechnersystem 800 ohne Einschränkung einen Prozessor 802 enthalten, der ohne Einschränkung eine oder mehrere Ausführungseinheiten 808 enthalten kann, um ein Modelltraining für maschinelles Lernen und/oder Inferenzieren gemäß den hier beschriebenen Techniken durchzuführen. In mindestens einem Ausführungsbeispiel ist das Rechnersystem 800 ein Einzelprozessor-Desktop- oder -Serversystem, aber in einem anderen Ausführungsbeispiel kann das Rechnersystem 800 ein Multiprozessorsystem sein. In mindestens einem Ausführungsbeispiel kann der Prozessor 802 ohne Einschränkung einen CISC-Mikroprozessor (Complex Instruction Set Computer), einen RISC-Mikroprozessor (Reduced Instruction Set Computing), einen VLIW-Mikroprozessor (Very Long Instruction Word), einen Prozessor, der eine Kombination von Anweisungssätzen implementiert, oder eine beliebige andere Vorrichtung, wie z. B. einen digitalen Signalprozessor, umfassen. In mindestens einem Ausführungsbeispiel kann der Prozessor 802 mit einem Prozessorbus 810 gekoppelt sein, der Datensignale zwischen dem Prozessor 802 und anderen Komponenten im Rechnersystem 800 übertragen kann.
  • In mindestens einem Ausführungsbeispiel kann der Prozessor 802 ohne Einschränkung einen internen Level 1 („L1“) Cache-Speicher („Cache“) 804 enthalten. In mindestens einem Ausführungsbeispiel kann der Prozessor 802 einen einzigen internen Cache oder mehrere Ebenen von internen Caches aufweisen. In mindestens einem Ausführungsbeispiel kann sich der Cache-Speicher außerhalb des Prozessors 802 befinden. Andere Ausführungsbeispiele können auch eine Kombination aus internen und externen Caches enthalten, abhängig von der jeweiligen Implementierung und den Anforderungen. In mindestens einem Ausführungsbeispiel kann die Registerdatei 806 verschiedene Datentypen in verschiedenen Registern speichern, darunter, ohne Einschränkung, Ganzzahlregister, Gleitkommaregister, Statusregister und Anweisungszeigerregister.
  • In mindestens einem Ausführungsbeispiel befindet sich die Ausführungseinheit 808, einschließlich, ohne Einschränkung, der Logik zur Durchführung von Ganzzahl- und Gleitkommaoperationen, ebenfalls im Prozessor 802. In mindestens einem Ausführungsbeispiel kann der Prozessor 802 auch einen Microcode („ucode“) Festwertspeicher („ROM“) enthalten, der Microcode für bestimmte Makroanweisungen speichert. In mindestens einem Ausführungsbeispiel kann die Ausführungseinheit 808 eine Logik zur Handhabung eines gepackten Anweisungssatzes 809 enthalten. In mindestens einem Ausführungsbeispiel können durch die Aufnahme des gepackten Befehlssatzes 809 in einen Befehlssatz eines Mehrzweckprozessors 802 zusammen mit assoziierten Schaltkreisen zur Ausführung von Befehlen Operationen, die von vielen Multimedia-Applikationen verwendet werden, unter Verwendung von gepackten Daten in einem Mehrzweckprozessor 802 durchgeführt werden. In mindestens einem Ausführungsbeispiel können viele Multimedia-Applikationen beschleunigt und effizienter ausgeführt werden, indem die volle Breite des Datenbusses eines Prozessors zur Durchführung von Operationen mit gepackten Daten verwendet wird, wodurch die Notwendigkeit entfällt, kleinere Dateneinheiten über den Datenbus des Prozessors zu übertragen, um eine oder mehrere Operationen mit jeweils einem Datenelement durchzuführen.
  • In mindestens einem Ausführungsbeispiel kann die Ausführungseinheit 808 auch in Mikrocontrollern, eingebetteten Prozessoren, Grafikvorrichtungen, DSPs und anderen Arten von Logikschaltungen verwendet werden. In mindestens einem Ausführungsbeispiel kann das Rechnersystem 800, ohne Einschränkung, einen Speicher 820 enthalten. In mindestens einem Ausführungsbeispiel kann der Speicher 820 als eine Dynamic Random Access Memory („DRAM“)-Vorrichtung, eine Static Random Access Memory („SRAM“)-Vorrichtung, eine Flash-Speicher-Vorrichtung oder eine andere Speicher-Vorrichtung implementiert sein. In mindestens einem Ausführungsbeispiel kann der Speicher 820 Anweisung(en) 819 und/oder Daten 821 speichern, die durch Datensignale repräsentiert werden, die vom Prozessor 802 ausgeführt werden können.
  • In mindestens einem Ausführungsbeispiel kann der Systemlogikchip mit dem Prozessorbus 810 und dem Speicher 820 gekoppelt sein. In mindestens einem Ausführungsbeispiel kann der Systemlogikchip ohne Einschränkung einen Memory Controller Hub („MCH“) 816 umfassen, und der Prozessor 802 kann mit dem MCH 816 über den Prozessorbus 810 kommunizieren. In mindestens einem Ausführungsbeispiel kann der MCH 816 einen Speicherpfad 818 mit hoher Bandbreite zum Speicher 820 für die Speicherung von Anweisungen und Daten sowie für die Speicherung von Grafikbefehlen, Daten und Texturen bereitstellen. In mindestens einem Ausführungsbeispiel kann der MCH 816 Datensignale zwischen dem Prozessor 802, dem Speicher 820 und anderen Komponenten des Rechnersystems 800 zu leiten und Datensignale zwischen dem Prozessorbus 810, dem Speicher 820 und einem System-E/A 822 zu überbrücken. In mindestens einem Ausführungsbeispiel kann der Systemlogikchip einen Grafikport zur Kopplung mit einem Grafikcontroller bereitstellen. In mindestens einem Ausführungsbeispiel kann der MCH 816 mit dem Speicher 820 über einen Speicherpfad 818 mit hoher Bandbreite gekoppelt sein, und die Grafik-/Videokarte 812 kann mit dem MCH 816 über eine Accelerated Graphics Port („AGP“)-Verbindung 814 gekoppelt sein.
  • In mindestens einem Ausführungsbeispiel kann das Rechnersystem 800 den System-E/A-Bus 822 verwenden, bei dem es sich um einen proprietären Hub-Schnittstellenbus handelt, um MCH 816 mit dem I/O-Controller-Hub („ICH“) 830 zu koppeln. In mindestens einem Ausführungsbeispiel kann ICH 830 direkte Verbindungen zu einigen E/A-Vorrichtungen über einen lokalen E/A-Bus bereitstellen. In mindestens einem Ausführungsbeispiel kann der lokale E/A-Bus ohne Einschränkung einen Hochgeschwindigkeits-E/A-Bus zur Verbindung von Peripheriegeräten mit dem Speicher 820, dem Chipsatz und dem Prozessor 802 umfassen. Beispiele können ohne Einschränkung einen Audiocontroller 829, einen Firmware-Hub („Flash-BIOS“) 828, einen drahtlosen Transceiver 826, einen Datenspeicher 824, einen Legacy-E/A-Controller 823 mit Benutzereingabe- und Tastaturschnittstellen 825, einen seriellen Erweiterungsport 827, wie Universal Serial Bus („USB“), und einen Netzwerk-Controller 834 umfassen. Der Datenspeicher 824 kann ein Festplattenlaufwerk, ein Diskettenlaufwerk, eine CD-ROM-Vorrichtung, eine Flash-Speicher-Vorrichtung oder eine andere Massenspeicher-Vorrichtung umfassen.
  • In mindestens einer Ausführungsform zeigt 8 ein System, das miteinander verbundene Hardware-Vorrichtungen oder „Chips“ enthält, während in anderen Ausführungsbeispielen 8 ein beispielhaftes System on a Chip („SoC“) darstellen kann. In mindestens einem Ausführungsbeispiel können die Vorrichtungen mit proprietären Verbindungen, standardisierten Verbindungen (z.B. PCIe) oder einer Kombination davon verbunden sein. In mindestens einem Ausführungsbeispiel sind eine oder mehrere Komponenten des Rechnersystems 800 unter Verwendung von CXL-Verbindungen (Compute Express Link) miteinander verbunden.
  • Solche Komponenten können zum Speichern und Abrufen von Informationen in Interaktionsumgebungen verwendet werden.
  • 9 ist ein Blockdiagramm, das eine elektronische Vorrichtung 900 zur Verwendung eines Prozessors 910 gemäß mindestens einem Ausführungsbeispiel darstellt. In mindestens einem Ausführungsbeispiel kann die elektronische Vorrichtung 900 beispielsweise und ohne Einschränkung ein Notebook, ein Tower-Server, ein Rack-Server, ein Blade-Server, ein Laptop, ein Desktop, ein Tablet, ein mobiles Gerät, ein Telefon, ein eingebetteter Rechner oder eine andere geeignete elektronische Vorrichtung sein.
  • In mindestens einem Ausführungsbeispiel kann das System 900 ohne Einschränkung einen Prozessor 910 enthalten, der kommunikativ mit einer beliebigen Anzahl oder Art von Komponenten, Peripheriegeräten, Modulen oder Vorrichtungen gekoppelt ist. In mindestens einem Ausführungsbeispiel ist der Prozessor 910 unter Verwendung eines Busses oder einer Schnittstelle gekoppelt, wie z.B. eines 1°C-Busses, eines System Management Busses („SMBus“), eines Low Pin Count (LPC)-Busses, eines Serial Peripheral Interface („SPI“), eines High Definition Audio („HDA“)-Busses, eines Serial Advance Technology Attachment („SATA“)-Busses, eines Universal Serial Bus („USB“) (Versionen 1, 2, 3) oder eines Universal Asynchronous Receiver/Transmitter („UART“)-Busses. In mindestens einem Ausführungsbeispiel zeigt 9 ein System, das miteinander verbundene Hardware-Vorrichtungen oder „Chips“ umfasst, während in anderen Ausführungsbeispielen 9 ein beispielhaftes System on a Chip („SoC“) darstellen kann. In mindestens einem Ausführungsbeispiel können die in 9 dargestellten Vorrichtungen über proprietäre Verbindungen, standardisierte Verbindungen (z.B. PCIe) oder eine Kombination davon miteinander verbunden sein. In mindestens einem Ausführungsbeispiel sind eine oder mehrere Komponenten von 9 unter Verwendung von Compute Express Link (CXL)-Verbindungen miteinander verbunden.
  • In mindestens einem Ausführungsbeispiel kann 9 eine Anzeige 924, einen Touchscreen 925, ein Touchpad 930, eine Near Field Communications-Einheit („NFC“) 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 eine Festplatte („HDD“), eine drahtlose lokale Netzwerkeinheit („WLAN“) 950, eine Bluetooth-Einheit 952, eine drahtlose Wide Area Network-Einheit („WWAN“) 956, ein Global Positioning System (GPS) 955, eine Kamera („USB 3. 0-Kamera“) 954, wie z. B. eine USB 3.0-Kamera, und/oder eine Low Power Double Data Rate („LPDDR“)-Speichereinheit („LPDDR3“) 915, implementiert z. B. im LPDDR3-Standard. Diese Komponenten können jeweils auf jede geeignete Weise implementiert werden.
  • In mindestens einem Ausführungsbeispiel können andere Komponenten mit dem Prozessor 910 über die oben beschriebenen Komponenten kommunikativ gekoppelt sein. In mindestens einem Ausführungsbeispiel können ein Beschleunigungsmesser 941, ein Umgebungslichtsensor („ALS“) 942, ein Kompass 943 und ein Gyroskop 944 kommunikativ mit dem Sensor-Hub 940 gekoppelt sein. In mindestens einem Ausführungsbeispiel können ein Wärmesensor 939, ein Gebläse 937, eine Tastatur 946 und ein Touchpad 930 mit dem EC 935 kommunikativ gekoppelt sein. In mindestens einem Ausführungsbeispiel können Lautsprecher 963, Kopfhörer 964 und Mikrofon („mic“) 965 kommunikativ mit einer Audioeinheit („audio codec and class d amp“) 962 gekoppelt sein, die ihrerseits kommunikativ mit dem DSP 960 gekoppelt sein kann. In mindestens einem Ausführungsbeispiel kann die Audioeinheit 964 beispielsweise und ohne Einschränkung einen Audiocodierer/-dekodierer („Codec“) und einen Verstärker der Klasse D umfassen. In mindestens einem Ausführungsbeispiel kann die SIM-Karte („SIM“) 957 mit der WWAN-Einheit 956 kommunikativ gekoppelt sein. In mindestens einem Ausführungsbeispiel 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 Speichern und Abrufen von Informationen in Interaktionsumgebungen verwendet werden.
  • 10 ist ein Blockdiagramm eines Verarbeitungssystems gemäß mindestens einem Ausführungsbeispiel. In mindestens einem Ausführungsbeispiel enthält das System 1000 einen oder mehrere Prozessoren 1002 und einen oder mehrere Grafikprozessoren 1008 und kann ein Einzelprozessor-Desktop-System, ein Multiprozessor-Workstation-System oder ein Serversystem oder Rechenzentrum mit einer großen Anzahl von gemeinsam oder getrennt verwalteten Prozessoren 1002 oder Prozessorkernen 1007 sein. In mindestens einem Ausführungsbeispiel ist das System 1000 eine Verarbeitungsplattform, die in eine integrierte System-on-a-Chip (SoC)-Schaltung zur Verwendung in mobilen, tragbaren oder eingebetteten Vorrichtungen integriert ist.
  • In mindestens einem Ausführungsbeispiel kann das System 1000 eine serverbasierte Spieleplattform, eine Cloud-Computing-Host-Plattform, eine virtualisierte Rechnerplattform, eine Spielkonsole, einschließlich einer Spiel- und Medienkonsole, eine mobile Spielkonsole, eine Handheld-Spielkonsole oder eine Online-Spielkonsole umfassen oder darin integriert sein. In mindestens einem Ausführungsbeispiel ist das System 1000 ein Mobiltelefon, ein Smartphone, ein Tablet-Rechengerät oder ein mobiles Internetgerät. In mindestens einem Ausführungsbeispiel kann das System 1000 zum Verarbeiten auch eine tragbare Vorrichtung umfassen, mit dieser gekoppelt oder in diese integriert sein, wie z. B. eine tragbare Smartwatch, eine intelligente Brille, eine Augmented-Reality-Vorrichtung, ein Edge-Gerät, eine Internet-of-Things-Vorrichtung („IoT“) oder eine Virtual-Reality-Vorrichtung. In mindestens einem Ausführungsbeispiel ist das Verarbeitungsverfahren 1000 eine Vorrichtung für ein Fernsehgerät oder eine Set-Top-Box mit einem oder mehreren Prozessoren 1002 und einer grafischen Oberfläche, die von einem oder mehreren Grafikprozessoren 1008 generiert wird.
  • In mindestens einem Ausführungsbeispiel umfassen ein oder mehrere Prozessoren 1002 jeweils einen oder mehrere Prozessorkerne 1007 zum Verarbeiten von Anweisungen, die bei ihrer Ausführung Operationen für System- und Benutzersoftware durchführen. In mindestens einem Ausführungsbeispiel ist jeder von einem oder mehreren Prozessorkernen 1007 so konfiguriert, dass er zum Verarbeiten eines bestimmten Anweisungssatzes 1009 dient. In mindestens einem Ausführungsbeispiel kann der Anweisungssatz 1009 das Complex Instruction Set Computing (CISC), das Reduced Instruction Set Computing (RISC) oder das Rechnen über ein Very Long Instruction Word (VLIW) ermöglichen. In mindestens einem Ausführungsbeispiel können die Verarbeitungskerne 1007 jeweils einen anderen Befehlssatz 1009 verarbeiten, der Anweisungen enthalten kann, um die Emulation anderer Befehlssätze zu erleichtern. In mindestens einem Ausführungsbeispiel kann der Verarbeitungskern 1007 auch andere Vorrichtungen zum Verarbeiten enthalten, wie z. B. einen digitalen Signalprozessor (DSP).
  • In mindestens einem Ausführungsbeispiel enthält der Prozessor 1002 einen Cache-Speicher 1004. In mindestens einem Ausführungsbeispiel kann der Prozessor 1002 einen einzigen internen Cache oder mehrere Ebenen von internen Caches aufweisen. In mindestens einem Ausführungsbeispiel wird der Cache-Speicher gemeinsam von verschiedenen Komponenten des Prozessors 1002 genutzt. In mindestens einem Ausführungsbeispiel verwendet der Prozessor 1002 auch einen externen Cache (z.B. einen Level-3 (L3) Cache oder Last Level Cache (LLC)) (nicht gezeigt), der von den Prozessorkernen 1007 gemeinsam genutzt werden kann, indem bekannte Cache-Kohärenztechniken verwendet werden. In mindestens einem Ausführungsbeispiel ist zusätzlich eine Registerdatei 1006 im Prozessor 1002 enthalten, die verschiedene Arten von Registern zur Speicherung unterschiedlicher Datentypen (z.B. Ganzzahlregister, Gleitkommaregister, Statusregister und ein Anweisungszeigerregister) enthalten kann. In mindestens einem Ausführungsbeispiel kann die Registerdatei 1006 Allzweckregister oder andere Register enthalten.
  • In mindestens einem Ausführungsbeispiel ist/sind ein oder mehrere Prozessor(en) 1002 mit einem oder mehreren Schnittstellenbus(en) 1010 gekoppelt, um Kommunikationssignale wie Adress-, Daten- oder Steuersignale zwischen Prozessor 1002 und anderen Komponenten im System 1000 zu übertragen. In mindestens einem Ausführungsbeispiel kann der Schnittstellenbus 1010 ein Prozessorbus sein, wie z.B. eine Version eines Direct Media Interface (DMI)-Busses. In mindestens einem Ausführungsbeispiel 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 umfassen. In mindestens einem Ausführungsbeispiel umfassen der/die Prozessor(en) 1002 einen integrierten Speicher-Controller 1016 und einen Plattform-Controller-Hub 1030. In mindestens einem Ausführungsbeispiel erleichtert der Speichercontroller 1016 die Kommunikation zwischen einer Speichervorrichtung und anderen Komponenten des Systems 1000, während der Plattformcontroller-Hub (PCH) 1030 Verbindungen zu E/A-Vorrichtungen über einen lokalen E/A-Bus bereitstellt.
  • In mindestens einem Ausführungsbeispiel kann es sich bei der Speichervorrichtung 1020 um eine Dynamic Random Access Memory (DRAM)-Vorrichtung, eine statische Random Access Memory (SRAM)-Vorrichtung, eine Flash-Speicher-Vorrichtung, eine Phase-Change-Speicher-Vorrichtung oder eine andere Speichervorrichtung mit geeigneter Leistung handeln, die als Verfahrensspeicher dient. In mindestens einem Ausführungsbeispiel kann die Speichervorrichtung 1020 als Systemspeicher für das System 1000 arbeiten, um Daten 1022 und Anweisungen 1021 zur Verwendung zu speichern, wenn ein oder mehrere Prozessoren 1002 eine Applikation oder ein Verfahren ausführen. In mindestens einem Ausführungsbeispiel ist die Speichersteuerung 1016 auch mit einem optionalen externen Grafikprozessor 1012 gekoppelt, der mit einem oder mehreren Grafikprozessoren 1008 in den Prozessoren 1002 kommunizieren kann, um Grafik- und Medienoperationen durchzuführen. In mindestens einem Ausführungsbeispiel kann eine Anzeigevorrichtung 1011 an den/die Prozessor(en) 1002 angeschlossen werden. In mindestens einem Ausführungsbeispiel kann die Anzeigevorrichtung 1011 eine oder mehrere interne Anzeigevorrichtungen umfassen, wie z.B. in einem mobilen elektronischen Gerät oder einem Laptop, oder eine externe Anzeigevorrichtung, die über eine Anzeigeschnittstelle (z.B. DisplayPort usw.) angeschlossen ist. In mindestens einem Ausführungsbeispiel kann die Anzeigevorrichtung 1011 eine kopfgetragene Anzeige (HMD) wie eine stereoskopische Anzeigevorrichtung zur Verwendung in Virtual-Reality-Anwendungen (VR) oder Augmented-Reality-Anwendungen (AR) umfassen.
  • In mindestens einem Ausführungsbeispiel 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 einem Ausführungsbeispiel umfassen E/A-Peripheriegeräte unter anderem einen Audiocontroller 1046, einen Netzwerk-Controller 1034, eine Firmware-Schnittstelle 1028, einen drahtlosen Transceiver 1026, Berührungssensoren 1025 und eine Vorrichtung zur Datenspeicherung 1024 (z.B. Festplattenlaufwerk, Flash-Speicher usw.). In mindestens einem Ausführungsbeispiel kann die Datenspeichervorrichtung 1024 über eine Speicherschnittstelle (z.B. SATA) oder über einen Peripheriebus, wie z.B. einen Peripheral Component Interconnect Bus (z.B. PCI, PCI Express) angeschlossen werden. In mindestens einem Ausführungsbeispiel können die Berührungssensoren 1025 Touchscreen-Sensoren, Drucksensoren oder Fingerabdrucksensoren umfassen. In mindestens einem Ausführungsbeispiel kann der drahtlose Sender-Empfänger 1026 ein Wi-Fi-Sender-Empfänger, ein Bluetooth-Sender-Empfänger oder ein Sender-Empfänger für ein mobiles Netzwerk sein, wie z. B. ein 3G-, 4G- oder Long Term Evolution (LTE)-Sender-Empfänger. In mindestens einem Ausführungsbeispiel ermöglicht die Firmware-Schnittstelle 1028 die Kommunikation mit der System-Firmware und kann z. B. eine einheitliche erweiterbare Firmware-Schnittstelle (UEFI) sein. In mindestens einem Ausführungsbeispiel kann der Netzwerk-Controller 1034 eine Netzwerkverbindung mit einem kabelgebundenen Netzwerk ermöglichen. In mindestens einem Ausführungsbeispiel koppelt ein leistungsstarker Netzwerk-Controller (nicht dargestellt) mit dem Schnittstellenbus 1010. In mindestens einem Ausführungsbeispiel ist der Audiocontroller 1046 ein Multi-Channel-High-Definition-Audiocontroller. In mindestens einem Ausführungsbeispiel enthält das System 1000 einen optionalen E/A-Controller 1040 zur Kopplung von älteren Vorrichtungen (z.B. Personal System 2 (PS/2)) mit dem System. In mindestens einem Ausführungsbeispiel kann der Plattform-Controller-Hub 1030 auch mit einem oder mehreren Universal Serial Bus (USB)-Controllern 1042 verbunden werden, die Eingabevorrichtungen wie Tastatur- und Mauskombinationen 1043, eine Kamera 1044 oder andere USB-Eingabevorrichtungen anschließen.
  • In mindestens einem Ausführungsbeispiel kann eine Instanz des Speicher-Controllers 1016 und des Plattform-Controller-Hubs 1030 in einen diskreten externen Grafikprozessor, wie den externen Grafikprozessor 1012, integriert sein. In mindestens einem Ausführungsbeispiel können Plattform-Controller-Hub 1030 und/oder Speicher-Controller 1016 extern zu einem oder mehreren Prozessor(en) 1002 sein. Zumindest in einem Ausführungsbeispiel kann das System 1000 einen externen Speicher-Controller 1016 und einen Plattform-Controller-Hub 1030 enthalten, der als Speicher-Controller-Hub und Peripherie-Controller-Hub innerhalb eines System-Chipsatzes konfiguriert sein kann, der mit dem/den Prozessor(en) 1002 in Verbindung steht.
  • Solche Komponenten können zum Speichern und Abrufen von Informationen in Interaktionsumgebungen verwendet werden.
  • 11 ist ein Blockdiagramm eines Prozessors 1100 mit einem oder mehreren Prozessorkernen 1102A-1102N, einem integrierten Speichercontroller 1114 und einem integrierten Grafikprozessor 1108, gemäß zumindest einem Ausführungsbeispiel. In mindestens einem Ausführungsbeispiel kann der Prozessor 1100 zusätzliche Kerne bis hin zu und einschließlich des zusätzlichen Kerns 1102N enthalten, der durch gestrichelte Kästchen repräsentiert wird. In mindestens einem Ausführungsbeispiel enthält jeder der Prozessorkerne 1102A-1102N eine oder mehrere interne Cache-Einheiten 1104A-1104N. In mindestens einem Ausführungsbeispiel hat jeder Prozessorkern auch Zugriff auf eine oder mehrere gemeinsam genutzte Cache-Einheiten 1106.
  • In mindestens einem Ausführungsbeispiel repräsentieren die internen Cache-Einheiten 1104A-1104N und die gemeinsam genutzten Cache-Einheiten 1106 eine Cache-Speicher-Hierarchie innerhalb des Prozessors 1100. In mindestens einem Ausführungsbeispiel können die Cache-Speichereinheiten 1104A-1104N mindestens eine Ebene von Anweisungs- und Daten-Cache innerhalb jedes Prozessorkerns und eine oder mehrere Ebenen von gemeinsam genutztem Mid-Level-Cache, wie z.B. eine Ebene 2 (L2), Ebene 3 (L3), Ebene 4 (L4) oder andere Cache-Ebenen, umfassen, wobei die höchste Cache-Ebene vor dem externen Speicher als LLC klassifiziert ist. In mindestens einem Ausführungsbeispiel erhält die Cache-Kohärenzlogik die Kohärenz zwischen verschiedenen Cache-Einheiten 1106 und 1104A-1104N.
  • In mindestens einem Ausführungsbeispiel kann der Prozessor 1100 auch einen Satz von einer oder mehreren Bussteuerungseinheiten 1116 und einen Systemagenten-Kern 1110 enthalten. In mindestens einem Ausführungsbeispiel verwalten eine oder mehrere Bus-Controller-Einheiten 1116 einen Satz von Peripherie-Bussen, wie einen oder mehrere PCI- oder PCI-Express-Busse. In mindestens einem Ausführungsbeispiel stellt der Systemagentenkern 1110 Verwaltungsfunktionen für verschiedene Prozessorkomponenten bereit. In mindestens einem Ausführungsbeispiel umfasst der Systemagenten-Kern 1110 einen oder mehrere integrierte Speicher-Controller 1114 zur Verwaltung des Zugriffs auf verschiedene externe Vorrichtungen (nicht dargestellt).
  • In mindestens einem Ausführungsbeispiel umfasst einer oder mehrere der Prozessorkerne 1102A-1102N Unterstützung für gleichzeitiges Multi-Threading. In mindestens einem Ausführungsbeispiel umfasst der Kern 1110 des Systemagenten Komponenten zur Koordinierung und zum Betrieb der Kerne 1102A-1102N während des Verfahrens mit mehreren Threads. In mindestens einem Ausführungsbeispiel kann der Systemagentenkern 1110 zusätzlich eine Energiesteuerungseinheit (PCU) enthalten, die Logik und Komponenten zur Regelung eines oder mehrerer Leistungszustände der Prozessorkerne 1102A-1102N und des Grafikprozessors 1108 umfasst.
  • In mindestens einem Ausführungsbeispiel enthält der Prozessor 1100 zusätzlich den Grafikprozessor 1108 zur Ausführung von Verfahren zum Verarbeiten von Grafiken. In mindestens einem Ausführungsbeispiel koppelt der Grafikprozessor 1108 mit gemeinsam genutzten Cache-Einheiten 1106 und dem Systemagenten-Kern 1110, der einen oder mehrere integrierte Speicher-Controller 1114 enthält. In mindestens einem Ausführungsbeispiel umfasst der Systemagenten-Kern 1110 auch einen Display-Controller 1111, um die Ausgabe des Grafikprozessors an eine oder mehrere gekoppelte Anzeigen zu steuern. In mindestens einem Ausführungsbeispiel kann der Anzeigecontroller 1111 auch ein separates Modul sein, das mit dem Grafikprozessor 1108 über mindestens eine Verbindung gekoppelt ist, oder er kann in den Grafikprozessor 1108 integriert sein.
  • In mindestens einem Ausführungsbeispiel wird eine ringbasierte Verbindungseinheit 1112 verwendet, um interne Komponenten des Prozessors 1100 zu koppeln. In mindestens einem Ausführungsbeispiel kann eine alternative Verbindungseinheit verwendet werden, wie z.B. eine Punkt-zu-Punkt-Verbindung, eine Switch-Verbindung oder andere Techniken. In mindestens einem Ausführungsbeispiel ist der Grafikprozessor 1108 über eine E/A-Verbindung 1113 mit der Ringverbindung 1112 gekoppelt.
  • In mindestens einem Ausführungsbeispiel repräsentiert die E/A-Verbindung 1113 mindestens eine von mehreren Arten von E/A-Verbindungen, einschließlich einer E/A-Verbindung auf dem Gehäuse, die die Kommunikation zwischen verschiedenen Prozessorkomponenten und einem eingebetteten Hochleistungsspeichermodul 1118, wie einem eDRAM-Modul, erleichtert. In mindestens einem Ausführungsbeispiel verwenden jeder der Prozessorkerne 1102A-1102N und der Grafikprozessor 1108 eingebettete Speichermodule 1118 als gemeinsam genutzten Last Level Cache.
  • In mindestens einem Ausführungsbeispiel sind die Prozessorkerne 1102A-1102N homogene Kerne, die eine gemeinsame Anweisungssatzarchitektur ausführen. In mindestens einem Ausführungsbeispiel sind die Prozessorkerne 1102A-1102N heterogen in Bezug auf die Anweisungssatzarchitektur (ISA), wobei ein oder mehrere Prozessorkerne 1102A-1102N einen gemeinsamen Anweisungssatz ausführen, während ein oder mehrere andere Kerne der Prozessorkerne 1102A-1102N eine Teilmenge eines gemeinsamen Anweisungssatzes oder einen anderen Anweisungssatz ausführen. In mindestens einem Ausführungsbeispiel sind die Prozessorkerne 1102A-1102N in Bezug auf die Mikroarchitektur heterogen, wobei ein oder mehrere Kerne mit einem relativ höheren Stromverbrauch mit einem oder mehreren Leistungskernen mit einem niedrigeren Stromverbrauch gekoppelt sind. In mindestens einem Ausführungsbeispiel kann der Prozessor 1100 auf einem oder mehreren Chips oder als integrierte Schaltung (SoC) implementiert sein.
  • Solche Komponenten können zum Speichern und Abrufen von Informationen in Interaktionsumgebungen verwendet werden.
  • Andere Variationen sind im Sinne der vorliegenden Offenbarung. Während die offenbarten Techniken für verschiedene Modifikationen und alternative Konstruktionen anfällig sind, sind bestimmte Ausführungsbeispiele davon in den Zeichnungen dargestellt und wurden oben detailliert beschrieben. Es sollte jedoch verstanden werden, dass nicht beabsichtigt ist, die Offenbarung auf eine bestimmte Form oder bestimmte Formen zu beschränken, die offenbart sind, sondern dass im Gegenteil beabsichtigt ist, alle Modifikationen, alternativen Konstruktionen und Äquivalente abzudecken, die in den Geist und den Umfang der Offenbarung fallen, wie in den beigefügten Ansprüchen definiert.
  • Die Verwendung der Begriffe „ein“ und „der“ und ähnlicher Bezeichnungen im Zusammenhang mit der Beschreibung offenbarer Ausführungsbeispiele (insbesondere im Zusammenhang mit den folgenden Ansprüchen) ist so auszulegen, dass sie sowohl die Einzahl als auch die Mehrzahl umfasst, sofern hier nicht anders angegeben oder durch den Kontext eindeutig widerlegt, und nicht als Definition eines Begriffs. Die Begriffe „umfassend“, „mit“, „einschließlich“ und „enthaltend“ sind, sofern nicht anders angegeben, als offene Begriffe zu verstehen (im Sinne von „einschließlich, aber nicht beschränkt auf”). Der Begriff „verbunden“ ist, wenn er unverändert bleibt und sich auf physikalische Verbindungen bezieht, als teilweise oder ganz in ihm enthalten, an ihm angebracht oder mit ihm verbunden zu verstehen, auch wenn etwas dazwischen liegt. Die Erwähnung von Wertebereichen soll lediglich als kurzes Verfahren dienen, um sich individuell auf jeden einzelnen Wert zu beziehen, der in den Bereich fällt, sofern hier nichts anderes angegeben ist, und jeder einzelne Wert wird in die Spezifikation aufgenommen, als ob er hier einzeln aufgeführt wäre. Die Verwendung des Begriffs „Menge“ (z.B. „eine Menge von Gegenständen“) oder „Teilmenge“ ist, sofern nicht anders vermerkt oder durch den Kontext widerlegt, als eine nicht leere Sammlung zu verstehen, die ein oder mehrere Elemente umfasst. Weiter, sofern nicht anders vermerkt oder durch den Kontext widerlegt, bezeichnet der Begriff „Teilmenge“ einer entsprechenden Menge nicht notwendigerweise eine echte Teilmenge der entsprechenden Menge, sondern Teilmenge und entsprechende Menge können gleich sein.
  • Konjunktivische Ausdrücke, wie z. B. Sätze der Form „zumindest eines von A, B und C“ oder „zumindest eines von A, B und C“, werden, sofern nicht ausdrücklich anders angegeben oder anderweitig eindeutig durch den Kontext widersprochen, mit dem Kontext so verstanden, wie sie im Allgemeinen verwendet werden, um darzustellen, dass ein Element, ein Begriff usw, entweder A oder B oder C oder eine beliebige nicht leere Teilmenge der Menge von A und B und C sein kann. Zum Beispiel, in dem anschaulichen Beispiel einer Menge mit drei Mitgliedern, beziehen sich die konjunktiven Ausdrücke „zumindest eines von A, B und C“ und „zumindest eines von A, B und C“ auf eine der folgenden Mengen: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}. Derartige konjunktivische Ausdrücke sind also nicht generell so zu verstehen, dass bei bestimmten Ausführungsbeispielen jeweils mindestens eines von A, mindestens eines von B und mindestens eines von C vorhanden sein muss. Sofern nicht anders vermerkt oder durch den Kontext widerlegt, bedeutet der Begriff „Vielzahl“ eine Indikation, dass es sich um eine Mehrzahl handelt (z.B. „eine Vielzahl von Elementen“ bedeutet mehrere Elemente). Eine Vielzahl besteht zumindest aus zwei Gegenständen, kann aber auch mehr sein, wenn dies entweder ausdrücklich oder durch den Kontext indiziert ist. Ferner bedeutet „basierend auf“, sofern nicht anders angegeben oder aus dem Kontext ersichtlich, „zumindest teilweise basierend auf“ und nicht „ausschließlich basierend auf“.
  • Die Operationen der hierin beschriebenen Verfahren können in jeder geeigneten Reihenfolge durchgeführt werden, sofern dies hier nicht anders angegeben ist oder sich aus dem Zusammenhang eindeutig ergibt. In zumindest einer Ausführungsform wird ein Verfahren wie die hier beschriebenen Prozesse (oder Variationen und/oder Kombinationen davon) unter der Kontrolle eines oder mehrerer Rechnersysteme durchgeführt, die mit ausführbaren Anweisungen konfiguriert sind und als Code (z.B. ausführbare Anweisungen, ein oder mehrere Computerprogramme oder eine oder mehrere Applikationen) implementiert sind, die gemeinsam auf einem oder mehreren Prozessoren, durch Hardware oder Kombinationen davon ausgeführt werden. In mindestens einem Ausführungsbeispiel ist der Code auf einem computerlesbaren Speichermedium gespeichert, z. B. in Form eines Computerprogramms, das eine Vielzahl von Anweisungen umfasst, die von einem oder mehreren Prozessoren ausgeführt werden können. In mindestens einem Ausführungsbeispiel handelt es sich bei einem computerlesbaren Speichermedium um ein nichttransitorisches computerlesbares Speichermedium, das transitorische Signale (z.B. eine sich ausbreitende transiente elektrische oder elektromagnetische Übertragung) ausschließt, jedoch nichttransitorische Datenspeicherschaltungen (z.B. Puffer, Cache und Warteschlangen) innerhalb von Transceivern für transitorische Signale enthält. In mindestens einem Ausführungsbeispiel ist Code (z.B. ausführbarer Code oder Quellcode) auf einem Satz von einem oder mehreren nichttransitorischen, computerlesbaren Speichermedien gespeichert, auf denen ausführbare Anweisungen (oder ein anderer Speicher zum Speichern ausführbarer Anweisungen) gespeichert sind, die, wenn sie von einem oder mehreren Prozessoren eines Rechnersystems ausgeführt werden (d.h. als Ergebnis der Ausführung), das Rechnersystem veranlassen, die hierin beschriebenen Operationen durchzuführen. Ein Satz nichttransitorischer, computerlesbarer Speichermedien umfasst in mindestens einem Ausführungsbeispiel mehrere nichttransitorische, computerlesbare Speichermedien, und auf einem oder mehreren der individuellen nichttransitorischen Speichermedien mehrerer nichttransitorischer, computerlesbarer Speichermedien fehlt der gesamte Code, während mehrere nichttransitorische, computerlesbare Speichermedien gemeinsam den gesamten Code speichern. In mindestens einem Ausführungsbeispiel werden ausführbare Anweisungen so ausgeführt, dass verschiedene Anweisungen von verschiedenen Prozessoren ausgeführt werden - zum Beispiel speichert ein nicht-übertragbares computerlesbares Speichermedium Anweisungen und eine zentrale Verarbeitungseinheit („CPU“) führt einige Anweisungen aus, während eine Grafikverarbeitungseinheit („GPU“) und/oder eine Datenverarbeitungseinheit („DPU“) andere Anweisungen ausführt. In mindestens einem Ausführungsbeispiel haben verschiedene Komponenten eines Rechnersystems getrennte Prozessoren, und verschiedene Prozessoren führen verschiedene Teilmengen von Anweisungen aus.
  • Dementsprechend sind Rechnersysteme gemäß mindestens einem Ausführungsbeispiel so konfiguriert, dass sie einen oder mehrere Dienste implementieren, die einzeln oder gemeinsam Verarbeitungen der hierin beschriebenen Verfahren durchführen, und solche Rechnersysteme sind mit entsprechender Hardware und/oder Software konfiguriert, die die Durchführung von Verarbeitungen ermöglichen. Ferner ist ein Rechnersystem, das mindestens ein Ausführungsbeispiel der vorliegenden Offenbarung implementiert, eine einzelne Vorrichtung und in einer weiteren Ausführungsform ein verteiltes Rechnersystem, das mehrere Vorrichtungen umfasst, die unterschiedlich arbeiten, so dass das verteilte Rechnersystem die hierin beschriebenen Operationen durchführt und dass eine einzelne Vorrichtung nicht alle Operationen durchführt.
  • Die Verwendung von Ausführungsbeispielen oder beispielhaften Formulierungen (z.B. „wie“), die hier bereitgestellt werden, dient lediglich der besseren Veranschaulichung von Ausführungsbeispielen der Offenbarung und stellt keine Einschränkung des Umfangs der Offenbarung dar, sofern nicht anders angegeben. Keine Formulierung in der Beschreibung sollte als Indikation für ein nicht beanspruchtes Element als wesentlich für die Praxis der Offenbarung ausgelegt werden.
  • Alle hierin zitierten Referenzen, einschließlich Veröffentlichungen, Patentanmeldungen und Patente, werden hiermit durch Verweis in demselben Umfang einbezogen, als ob jede Referenz individuell und ausdrücklich als durch Verweis einbezogen angegeben wäre und hier in ihrer Gesamtheit wiedergegeben würde.
  • In der Beschreibung und in den Ansprüchen können die Begriffe „gekoppelt“ und „verbunden“ zusammen mit ihren Ableitungen verwendet werden. Es sollte verstanden werden, dass diese Begriffe nicht als Synonyme füreinander zu verstehen sind. In bestimmten Beispielen kann „verbunden“ oder „gekoppelt“ vielmehr als Indikation dafür verwendet werden, dass zwei oder mehr Elemente in direktem oder indirektem physischen oder elektrischen Kontakt miteinander stehen. „Gekoppelt“ kann auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt zueinander stehen, aber dennoch zusammenarbeiten oder miteinander interagieren.
  • Sofern nicht ausdrücklich etwas anderes angegeben ist, bezieht sich der Begriff „Verarbeiten“, „Berechnen“, „Berechnen“, „Bestimmen“ oder dergleichen in der gesamten Spezifikation auf Aktionen und/oder Verfahren eines Computers oder eines Rechnersystems oder eines ähnlichen elektronischen Rechengeräts, die Daten, die als physikalische, z. B. elektronische, Anzahlen in den Registern und/oder Speichern des Rechnersystems repräsentiert werden, manipulieren und/oder in andere Daten umwandeln, die in ähnlicher Weise als physikalische Anzahlen in den Speichern, Registern oder anderen derartigen Vorrichtungen zur Speicherung, Übertragung oder Anzeige von Informationen des Rechnersystems repräsentiert werden.
  • In ähnlicher Weise kann sich der Begriff „Prozessor“ auf eine Vorrichtung oder einen Teil einer Vorrichtung beziehen, die elektronische Daten aus Registern und/oder Speichern verarbeitet und diese elektronischen Daten in andere elektronische Daten umwandelt, die in Registern und/oder Speichern gespeichert werden können. Als nicht einschränkende Beispiele kann „Prozessor“ jeder Prozessor sein, der zu allgemeinen Verfahren fähig ist, wie z. B. eine CPU, GPU oder DPU. Als nicht einschränkende Beispiele kann „Prozessor“ ein beliebiger Mikrocontroller oder eine dedizierte Verarbeitungseinheit wie ein DSP, ein Bildsignalprozessor („ISP“), eine arithmetische Logikeinheit („ALU“), eine Vision-Verarbeitungseinheit („VPU“), eine Tree-Traversal-Einheit („TTU“), ein Ray-Tracing-Kern, ein Tensor-Tracing-Kern, eine Tensor-Verarbeitungseinheit („TPU“), eine eingebettete Steuereinheit („ECU“) und dergleichen sein. Als nicht einschränkende Beispiele kann der „Prozessor“ ein Hardwarebeschleuniger sein, wie z. B. ein PVA (programmierbarer Visionsbeschleuniger), DLA (Deep Learning Accelerator) usw. Als nicht einschränkende Beispiele kann „Prozessor“ auch eine oder mehrere virtuelle Instanzen einer CPU, GPU usw. umfassen, 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 hier verwendet, können „Software“-Verfahren beispielsweise Software- und/oder Hardware-Einheiten umfassen, die im Laufe der Zeit Arbeit verrichten, wie Aufgaben, Threads und intelligente Agenten. Jedes Verfahren kann sich auch auf mehrere Verfahren beziehen, um Anweisungen in Folge oder parallel, kontinuierlich oder intermittierend auszuführen. Die Begriffe „System“ und „Verfahren“ werden hier austauschbar verwendet, insofern als ein System ein oder mehrere Verfahren umfassen kann und Verfahren als System betrachtet werden können.
  • Im vorliegenden Dokument kann auf das Gewinnen, Erfassen, Empfangen oder Eingeben analoger oder digitaler Daten in ein Teilsystem, ein Rechnersystem oder eine computer-implementierte Maschine Bezug genommen werden. Das Beschaffen, Erfassen, Empfangen oder Eingeben analoger und digitaler Daten kann auf verschiedene Weise erfolgen, beispielsweise durch Empfangen von Daten als Parameter eines Funktionsaufrufs oder eines Aufrufs einer Programmierschnittstelle einer Applikation. In einigen Implementierungen kann das Verfahren zum Erhalten, Erfassen, Empfangen oder Eingeben von analogen oder digitalen Daten durch die Übertragung von Daten über eine serielle oder parallele Schnittstelle durchgeführt werden. In einer anderen Implementierung kann das Verfahren zum Erhalten, Erfassen, Empfangen oder Eingeben analoger oder digitaler Daten durch die Übertragung von Daten über ein Netzwerk von der bereitstellenden Einheit zur erfassenden Einheit erfolgen. Es kann auch auf das Bereitstellen, Ausgeben, Übertragen, Senden oder Präsentieren analoger oder digitaler Daten Bezug genommen werden. In verschiedenen Beispielen kann das Verfahren des Bereitstellens, Ausgebens, Übertragens, Sendens oder Darstellens analoger oder digitaler Daten durch die Übertragung von Daten als Eingabe- oder Ausgabeparameter eines Funktionsaufrufs, eines Parameters einer Programmierschnittstelle einer Applikation oder eines Interprozess-Kommunikationsmechanismus durchgeführt werden.
  • Obwohl die obige Diskussion Beispielimplementierungen der beschriebenen Techniken darlegt, können auch andere Architekturen verwendet werden, um die beschriebene Funktionalität zu implementieren, und sie sollen in den Anwendungsbereich dieser Offenbarung fallen. Weiterhin, obwohl spezifische Verteilungen von Verantwortlichkeiten oben zu Diskussionszwecken definiert sind, könnten verschiedene Funktionen und Verantwortlichkeiten auf unterschiedliche Weise verteilt und aufgeteilt werden, abhängig von den Umständen.
  • Weiterhin, obwohl der Gegenstand in einer Sprache beschrieben wurde, die spezifisch für strukturelle Merkmale und/oder methodische Handlungen ist, ist es zu verstehen, dass der Gegenstand, der in den beigefügten Ansprüchen beansprucht wird, nicht notwendigerweise auf spezifische beschriebene Merkmale oder Handlungen beschränkt ist. Vielmehr sind die spezifischen Merkmale und Handlungen als beispielhafte Formen der Implementierung der Ansprüche offenbart.
  • Claims (20)

    1. Prozessor, umfassend: eine oder mehrere Verarbeitungseinheiten zum: Empfangen einer Abfrage an eine Interaktionsumgebung; Bestimmen, dass eine Klassifizierung für die Abfrage einer informationsbasierten Abfrage entspricht; Extrahieren, aus der Abfrage, einer Textsequenz; Bestimmen, zumindest teilweise basierend auf der Textsequenz, einer Antwort auf die Abfrage; und Bereitstellen der Antwort auf die Abfrage.
    2. Prozessor nach Anspruch 1, wobei die Antwort in einem unstrukturierten Text identifiziert wird.
    3. Prozessor nach Anspruch 1 oder 2, wobei die eine oder die mehreren Verarbeitungseinheiten weiter ausgebildet sind zum: Empfangen der Antwort unter Verwenden eines trainierten generativen neuronalen Netzwerkmodells; und Generieren einer Erwiderung unter Verwendung des trainierten generativen neuronalen Netzwerkmodells, basierend zumindest teilweise auf der Antwort und einem extrahierten Teil der Abfrage.
    4. Prozessor nach Anspruch 3, wobei die eine oder mehrere Verarbeitungseinheiten weiter ausgebildet sind zum: Empfangen einer informativen Aussage; und Speichern der informativen Aussage als Aussage in natürlicher Sprache.
    5. Prozessor nach Anspruch 4, wobei die eine oder die mehreren Verarbeitungseinheiten weiter ausgebildet sind zum: Empfangen einer zweiten Abfrage an die Interaktionsumgebung; Bestimmen, dass die Klassifizierung für die zweite Abfrage eine zweite informationsbasierte Abfrage ist; Bestimmen, dass die zweite Abfrage mit der informativen Aussage assoziiert ist; und Durchführen einer oder mehrerer Aufgaben, basierend zumindest teilweise auf der informativen Aussage.
    6. Prozessor nach einem der vorhergehenden Ansprüche, wobei die eine oder die mehreren Verarbeitungseinheiten weiter ausgebildet sind zum Ausführen einer Aufgabe, in Reaktion auf Abfrage, zumindest teilweise basierend auf der Antwort.
    7. Prozessor nach einem der vorhergehenden Ansprüche, wobei die eine oder die mehreren Verarbeitungseinheiten weiterhin ausgebildet sind zum: Bestimmen eines mit der Antwort assoziierten Identifikators; und Veranlassen einer oder mehrerer Aktionen, zumindest teilweise basierend auf dem Identifikator.
    8. Prozessor nach einem der vorhergehenden Ansprüche, wobei die eine oder die mehreren Verarbeitungseinheiten weiterhin ein extraktives Frage- und Antwortmodell ausführen, und wobei die eine oder die mehreren Verarbeitungseinheiten das extraktive Frage- und Antwortmodell verwenden, um die Antwort auf die Abfrage zu bestimmen.
    9. Prozessor nach einem der vorhergehenden Ansprüche, wobei die Abfrage zumindest eine auditive Eingabe, eine Texteingabe oder eine auswählbare Eingabe ist.
    10. Verfahren, umfassend: Speichern einer Vielzahl von Fakten als unstrukturierter Klartext innerhalb eines Datensatzes; Empfangen einer Benutzerabfrage, die mit einem Parameter einer Interaktionsumgebung assoziiert ist; Extrahieren, aus der Benutzerabfrage, einer Textsequenz; Bestimmen, innerhalb des Datensatzes, eines oder mehrerer ausgewählter Fakten, die mit der Textsequenz assoziiert sind; und Generieren einer Antwort, basierend zumindest teilweise auf dem einen oder den mehreren ausgewählten Fakten.
    11. Verfahren nach Anspruch 10, wobei die Textsequenz unter Verwenden eines trainierten extraktiven Frage- und Antwortmodells extrahiert wird, und der eine oder die mehreren ausgewählten Fakten unter Verwenden eines trainierten extraktiven Frage- und Antwortmodells bestimmt werden.
    12. Verfahren nach Anspruch 10 oder 11, wobei die Antwort eine natürlichsprachliche Antwort ist, basierend zumindest teilweise auf einer Ausgabe eines generativen neuronalen Netzwerkmodells.
    13. Verfahren nach einem der Ansprüche 10 bis 12, weiter umfassend: Empfangen einer informativen Eingabe; und Speichern der informativen Eingabe in einem natürlichsprachlichen Format innerhalb des Datensatzes.
    14. Verfahren nach Anspruch 13, weiter umfassend: Empfangen einer zweiten Benutzerabfrage; Bestimmen einer Klassifizierung der zweiten Benutzerabfrage; Abrufen, zumindest teilweise basierend auf der Klassifizierung, eines oder mehrerer Teile der informativen Eingabe; und Ausführen einer oder mehrerer Aufgaben, basierend zumindest teilweise auf dem einen oder den mehreren Teilen.
    15. Verfahren nach einem der Ansprüche 10 bis 14, weiter umfassend: Bestimmen von einem oder mehreren Aufrufen, die mit der Textsequenz assoziiert sind, wobei der eine oder die mehreren Aufrufe einer Aktion entsprechen; und Veranlassen, dass die Aktion zumindest teilweise basierend auf der Antwort durchgeführt wird.
    16. Computer-implementiertes Verfahren, umfassend: Empfangen einer Informationseingabe von einem Benutzer; Speichern der Eingabe als natürliche Sprache; Empfangen einer Benutzerabfrage zur Durchführung einer Aufgabe; Bestimmen einer Klassifizierung der Benutzerabfrage; Extrahieren, aus der Benutzerabfrage, eines mit der Aufgabe assoziierten Segments; Abrufen, zumindest teilweise basierend auf dem Segment, von zumindest einem Teil der Informationseingabe; und Ausführen der Aufgabe, zumindest teilweise basierend auf der Informationseingabe.
    17. Computer-implementiertes Verfahren nach Anspruch 16, weiter umfassend: Bestimmen einer oder mehrerer Aktionen, die mit der Informationseingabe assoziiert sind; und Zuordnen einer oder mehrerer Markierungen zu der Informationseingabe.
    18. Computer-implementiertes Verfahren nach Anspruch 16 oder 17, wobei ein extraktives Frage- und Antwortmodell den Teil der Informationseingabe bestimmt.
    19. Computer-implementiertes Verfahren nach einem der Ansprüche 16 bis 18, wobei die informelle Eingabe zu einem unstrukturierten Datensatz hinzugefügt wird.
    20. Computer-implementiertes Verfahren nach einem der Ansprüche 16 bis 19, Empfangen zumindest des Teils zu einem trainierten generativen neuronalen Netzwerkmodell; Generieren einer auditiven Indikation, die zumindest mit dem Teil assoziiert ist.
    DE102022126287.1A 2021-11-08 2022-10-11 Speicherung und abruf von unstrukturierten daten in anwendungen konversationeller künstlicher intelligenz Pending DE102022126287A1 (de)

    Applications Claiming Priority (2)

    Application Number Priority Date Filing Date Title
    US17/521,232 2021-11-08
    US17/521,232 US20230147096A1 (en) 2021-11-08 2021-11-08 Unstructured data storage and retrieval in conversational artificial intelligence applications

    Publications (1)

    Publication Number Publication Date
    DE102022126287A1 true DE102022126287A1 (de) 2023-05-11

    Family

    ID=86053043

    Family Applications (1)

    Application Number Title Priority Date Filing Date
    DE102022126287.1A Pending DE102022126287A1 (de) 2021-11-08 2022-10-11 Speicherung und abruf von unstrukturierten daten in anwendungen konversationeller künstlicher intelligenz

    Country Status (4)

    Country Link
    US (1) US20230147096A1 (de)
    JP (1) JP2023070002A (de)
    CN (1) CN116089574A (de)
    DE (1) DE102022126287A1 (de)

    Families Citing this family (1)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US20230350928A1 (en) * 2022-04-28 2023-11-02 Knowbl LLC Systems and methods for implementing a virtual agent performing context and query transformations using unsupervised machine learning models

    Family Cites Families (7)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US10388274B1 (en) * 2016-03-31 2019-08-20 Amazon Technologies, Inc. Confidence checking for speech processing and query answering
    US20210065018A1 (en) * 2019-08-27 2021-03-04 Intuit Inc. Smart Question and Answer Optimizer
    US11854531B2 (en) * 2020-03-23 2023-12-26 Sorcero, Inc. Cross-class ontology integration for language modeling
    US11775839B2 (en) * 2020-06-10 2023-10-03 International Business Machines Corporation Frequently asked questions and document retrieval using bidirectional encoder representations from transformers (BERT) model trained on generated paraphrases
    US11526509B2 (en) * 2020-12-31 2022-12-13 International Business Machines Corporation Increasing pertinence of search results within a complex knowledge base
    GB2603464A (en) * 2021-01-27 2022-08-10 Legal Utopia Ltd System and method for classification of unstructured text data
    US11907273B2 (en) * 2021-06-18 2024-02-20 International Business Machines Corporation Augmenting user responses to queries

    Also Published As

    Publication number Publication date
    CN116089574A (zh) 2023-05-09
    US20230147096A1 (en) 2023-05-11
    JP2023070002A (ja) 2023-05-18

    Similar Documents

    Publication Publication Date Title
    DE102021128292A1 (de) Skalierbare semantische bildsuche mit deep- template- matching
    DE112020003547T5 (de) Transfer Learning für neuronale Netzwerke
    KR102179890B1 (ko) 텍스트 데이터 수집 및 분석을 위한 시스템
    DE102021125231A1 (de) Unüberwachte domainanpassung mit neuronalen netzen
    DE112020004107T5 (de) Inhaltsempfehlungen unter verwendung eines oder mehrerer neuronaler netze
    DE112020002425T5 (de) Bewegungsvorhersage unter verwendung eines oder mehrerer neuronaler netzwerke
    DE102022102912A1 (de) Pipelines für effizientes training und einsatz von modellen für maschinelles lernen
    EP4287074A1 (de) Verfahren und system zur implementierung eines expertmischungsmodells, elektronische vorrichtung und speichermedium
    DE102022125316A1 (de) Unüberwachtes alignment für text-zu-sprache-synthese unter verwenden neuronaler netzwerke
    DE102022108108A1 (de) Zwischenspeicherung von kompilierten shader-programmen in einer cloud-computing-umgebung
    DE102022128165A1 (de) Datenpfadschaltungsentwurf unter verwendung von reinforcement learning
    US20220414474A1 (en) Search method, electronic device and storage medium based on neural network model
    DE102023113190A1 (de) Identifizieren von Applikationspuffern zum Nachbearbeiten und Wiederverwenden in sekundären Applikationen
    DE112020007087T5 (de) Gleichzeitige Hashtabellen-Aktualisierungen
    DE102022126287A1 (de) Speicherung und abruf von unstrukturierten daten in anwendungen konversationeller künstlicher intelligenz
    DE102022106956A1 (de) Konversationelle ki-plattformen mit dialogintegration von geschlossenen domänen und offenen domänen
    CN113628221B (zh) 图像处理方法、图像分割模型训练方法及相关装置
    DE102022128969A1 (de) Erkennung von benutzerabsichten und zugehörigen entitäten unter verwendung eines neuronalen netzwerks in einer interaktionsumgebung
    DE102023108430A1 (de) Erzeugung von konversationellen erwiderungen unter verwendung von neuralen netzwerken
    DE102023124835A1 (de) Anwendungen zur Verarbeitung natürlicher Sprache unter Verwenden Großer Sprachmodelle
    DE102023129956A1 (de) Ressourcenvorhersage für arbeitslasten
    DE102022120731A1 (de) Multimodale sensorfusion zur identifizierung von inhalten bei anwendungen von mensch-maschine-schnittstellen
    DE102022126248A1 (de) Verfahren und Einrichtungen zum Trainieren von Modellen zur Programmsynthese
    DE102022132167A1 (de) Spielstilanalyse für Spielempfehlungen
    CN117217190A (zh) 使用从结构化数据库中提取的自然语言表达来预训练语言模型

    Legal Events

    Date Code Title Description
    R012 Request for examination validly filed