DE102022102912A1 - Pipelines für effizientes training und einsatz von modellen für maschinelles lernen - Google Patents

Pipelines für effizientes training und einsatz von modellen für maschinelles lernen Download PDF

Info

Publication number
DE102022102912A1
DE102022102912A1 DE102022102912.3A DE102022102912A DE102022102912A1 DE 102022102912 A1 DE102022102912 A1 DE 102022102912A1 DE 102022102912 A DE102022102912 A DE 102022102912A DE 102022102912 A1 DE102022102912 A1 DE 102022102912A1
Authority
DE
Germany
Prior art keywords
mlms
data
neural network
training
pipeline
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
DE102022102912.3A
Other languages
English (en)
Inventor
Jonathan Michael Cohen
Ryan Edward Leary
Scot Duane Junkin
Purnendu Mukherjee
Joao Felipe Santos
Tomasz Kornuta
Varun Praveen
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 DE102022102912A1 publication Critical patent/DE102022102912A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/061Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification
    • G10L17/18Artificial neural networks; Connectionist approaches
    • 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
    • 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
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • G06N3/105Shells for specifying net layout
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/16Speech classification or search using artificial neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Neurology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Biology (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Machine Translation (AREA)

Abstract

Geräte, Systeme und Techniken zur Bereitstellung von Pipelines für effizientes Trainieren, Neutrainieren, Konfigurieren, Einsetzen und Verwenden von Modellen für maschinelles Lernen für Inferenz in benutzerspezifischen Plattformen.

Description

  • TECHNISCHES GEBIET
  • Mindestens eine Ausführungsform bezieht sich auf Verarbeitungsressourcen, die zur Durchführung und Erleichterung künstlicher Intelligenz verwendet werden. Zum Beispiel bezieht sich mindestens eine Ausführungsform auf die Bereitstellung von Pipelines für, in effizienter Weise, Training, Konfiguration, Einsatz und Verwendung von Modellen für maschinelles Lernen in benutzerspezifischen Plattformen.
  • HINTERGRUND
  • Maschinelles Lernen wird häufig in Büro- und Krankenhausumgebungen, in der Automatisierung von Robotern, in Sicherheitsanwendungen, im autonomen Verkehr, in der Strafverfolgung und in vielen anderen Bereichen eingesetzt. Maschinelles Lernen findet insbesondere in der Audio- und Videoverarbeitung Anwendung, wie z.B. bei Sprach- und Objekterkennung. Ein beliebter Ansatz zu maschinellem Lernen besteht darin, ein Computersystem unter Verwendung von Trainingsdaten (Tönen, Bildern und/oder anderen Daten) zu trainieren, um Muster in den Daten zu identifizieren, die eine Klassifizierung der Daten erleichtern können, wie z.B. das Vorhandensein eines bestimmten Objekttyps innerhalb eines Trainingsbilds oder eines bestimmten Worts innerhalb einer Trainingssprache. Das Training kann überwacht oder unüberwacht sein. Modelle maschinellen Lernens können verschiedene Rechenalgorithmen verwenden, wie z.B. Entscheidungsbaumalgorithmen (oder andere regelbasierte Algorithmen), künstliche neuronale Netzwerke und dergleichen. Während einer anschließenden Verwendungs- bzw. Einsatzphase - auch „Inferenzphase“ genannt - werden neue Daten in ein trainiertes Modell maschinellen Lernens eingegeben, und können verschiedene Zielobjekte, Geräusche oder Sätze von Interesse unter Verwendung von Mustern und Merkmalen, die während des Trainings etabliert wurden, identifiziert werden.
  • Figurenliste
    • 1 ist ein Blockdiagramm einer Beispielarchitektur einer anpassbaren Pipeline, die Training, Konfiguration und Einsatz eines oder mehrerer Modelle für maschinelles Lernen unterstützt, in Übereinstimmung mit mindestens einigen Ausführungsformen;
    • 2A ist ein Blockdiagramm einer Beispielarchitektur einer Trainings-Engine der anpassbaren Pipeline von 1, in Übereinstimmung mit mindestens einigen Ausführungsformen;
    • 2B ist ein Blockdiagramm einer Beispielarchitektur einer Build-and-Deploy-Phase der anpassbaren Pipeline von 1, in Übereinstimmung mit mindestens einigen Ausführungsformen;
    • 3 ist eine beispielhafte Computervorrichtung, die in der Lage ist, eine anpassbare Pipeline zu implementieren, die Training, Konfiguration und Einsatz eines oder mehrerer Modelle für maschinelles Lernen unterstützt, in Übereinstimmung mit mindestens einigen Ausführungsformen;
    • 4 ist ein Blockdiagramm einer beispielhaften anpassbaren Pipeline, die ein oder mehrere Modelle für maschinelles Lernen zur Verarbeitung natürlicher Sprache verwendet, in Übereinstimmung mit mindestens einigen Ausführungsformen;
    • 5 ist ein Ablaufdiagramm eines Beispielverfahrens zur Bereitstellung einer anpassbaren Pipeline, die Training, Konfiguration und Einsatz eines oder mehrerer Modelle für maschinelles Lernen unterstützt, in Übereinstimmung mit mindestens einigen Ausführungsformen;
    • 6 ist ein Ablaufdiagramm eines Beispielverfahrens zur Verwendung eingesetzter anpassbarer Modelle für maschinelles Lernen für eine Maschinenpipeline, in Übereinstimmung mit mindestens einigen Ausführungsformen;
    • 7A veranschaulicht eine Inferenzierungs- und/oder Trainingslogik, gemäß mindestens einer Ausführungsform;
    • 7B veranschaulicht die Schlussfolgerungs- und/oder Trainingslogik, gemäß mindestens einer Ausführungsform;
    • 8 veranschaulicht Training und Einsatz eines neuronalen Netzwerks, gemäß mindestens einer Ausführungsform;
    • 9 ist ein Beispiel für ein Datenflussdiagramm für eine fortgeschrittene Datenverarbeitungspipeline, gemäß mindestens einer Ausführungsform;
    • 10 ist ein Systemdiagramm für ein Beispielsystem zum Trainieren, Anpassen, Instanziieren und Bereitstellen von Modellen für maschinelles Lernen in einer fortgeschrittenen Datenverarbeitungspipeline, gemäß mindestens einer Ausführungsform.
  • DETAILLIERTRE BESCHREIBUNG
  • Maschinelles Lernen hat sich in einer Vielzahl von Branchen und Tätigkeiten durchgesetzt, bei denen mindestens einige Stufen der Entscheidungsfindung an Computersysteme delegiert werden können. Derzeit werden Modelle für maschinelles Lernen (MLMs) für bestimmte Zielbereiche und Anwendungen entwickelt. Da die Ziele der verschiedenen Anwendungen des maschinellen Lernens sehr unterschiedlich sein können, müssen MLMs je nach dem beabsichtigten Nutzer der trainierten MLMs unterschiedlich eingerichtet, konfiguriert und trainiert werden. Modelle, die demselben allgemeinen Typ angehören, z.B. Spracherkennungsmodelle, können dennoch in verschiedenen Anwendungsfällen sehr unterschiedlich eingerichtet werden. So können Spracherkennungsmodelle, die für den automatisierten telefonischen Kundendienst entwickelt wurden, anders aufgebaut sein als Modelle, die für Krankenhausanwendungen, z.B. für die Aufzeichnung von Erzählungen von Ärzten, die Diagnosedaten eines Patienten analysieren oder auf Patientenanfragen reagieren, entwickelt wurden. Darüber hinaus müssen selbst MLMs, die in derselben Zieldomäne (z.B. im medizinischen Bereich) eingesetzt werden, in verschiedenen Kontexten möglicherweise unterschiedlich konfiguriert werden. So muss ein Modell, das für die Spracherkennung in einem Operationssaal konzipiert ist, möglicherweise anders trainiert oder konfiguriert werden als ein Modell, das für eine Beobachtungs- oder Aufwachstation konzipiert ist.
  • Gegenwärtig kann die Konfiguration eines MLM für Anwendungen in einem benutzerspezifischen Bereich erheblichen Entwicklungsaufwand erfordern. Die Entwickler eines MLM müssen unter Umständen eine Architektur des Modells entwerfen (z.B. eine Anzahl von Schichten und eine Topologie der Knotenverbindungen im Falle eines MLM für neuronale Netzwerke), das/die MLM(s) anhand relevanter domänenspezifischer Trainingsdaten trainieren und so weiter. In vielen Fällen können das/die MLM(s) nur ein Teil eines größeren Codes sein, der verschiedene zusätzliche Unterstützungsstufen von Berechnungen, wie z.B. Klangvorverarbeitung, Entfernung von Klangartefakten, Filterung, Nachverarbeitung, spektrale Fourier-Analyse und dergleichen, umfasst. Es können mehrere MLMs in ein und derselben Berechnungspipeline vorhanden sein, und der Entwickler muss unter Umständen mehrere MLMs, die jeweils unterschiedliche Funktionen bereitstellen, in eine einzige Berechnungspipeline einbinden. Beispielsweise muss ein Entwickler einer Anwendung zur Verarbeitung natürlicher Sprache möglicherweise die Merkmalsextraktion (die Spektralanalyse verwendet), ein akustisches MLM (das extrahierte Merkmale verarbeitet), ein akustisches Nachverarbeitungsmodul (das Artefakte, Füll- und Stoppwörter usw. entfernt), eine Sprachvorverarbeitung (die Wort-Tokenisierung, Lemmatisierung usw.), ein Sprach-MLM (das ein Thema, die Absicht eines Sprechers, die Interpunktion der Rede usw. identifiziert), eine Sprachnachverarbeitung (zum Durchführen einer regelbasierten Korrektur/Verifizierung von Sprach-MLM-Ausgaben) und so weiter. In einer solchen Pipeline kann eine Ausgabe eines Akustik-MLMs in ein Sprach-MLM eingegeben werden, welches wiederum Daten in ein Modell zur Absichtserkennung einspeisen kann, und so weiter.
  • Um eine oder mehrere MLMs mit verschiedenen Unterstützungsstufen in eine einzige Rechenpipeline oder einen Arbeitsablauf zu integrieren, muss ein Entwickler derzeit einen Code erstellen und verwalten, der den gesamten Arbeitsablauf umfasst. Beispielsweise kann ein Entwickler einen plattformspezifischen Code erstellen, wie etwa eine MLM-Pipeline zur Spracherkennung, die auf die Bedürfnisse einer medizinischen Klinik zugeschnitten ist. Solche Codes können die gemeinsame Nutzung und Skalierung von MLM-Anwendungen außerhalb des ursprünglichen Anwendungsfalls umständlich und technisch herausfordernd machen. Insbesondere können solche Pipelines nicht ohne weiteres an andere Bereiche oder Computerplattformen angepasst werden. Wenn ein anderer Entwickler versucht, die MLMs der Pipeline auf einen anderen Bereich bzw. eine andere Domäne zu rekonfigurieren (z.B. von einem Aktienhandelsunternehmen zu einer Investment-Broker-Firma), muss er möglicherweise nicht nur die eigentlichen MLMs neu konfigurieren, sondern muss möglicherweise auch einen Großteil des gesamten Codes neu entwickeln und überarbeiten, obwohl einige der Teile des Codes ein oder mehrere Standardmodule der Pipeline (z.B. digitale Tonsignalvorverarbeitung) implementieren können. Dies hat zur Folge, dass ein Benutzer (z.B. ein Kunde), der Zugang zur MLM-Pipeline hat, aber nicht über das Fachwissen eines fortgeschrittenen Entwicklers verfügt, möglicherweise nicht in der Lage ist, die Pipeline an die spezifischen Bedürfnisse des Benutzers anzupassen, z.B. um eine MLM-Pipeline für die Programmierung in natürlicher Sprache für die Verwendung in einem anderen Sprachbereich, der für den Benutzer von Interesse ist (z.B. Sportübertragungen), neu zu konfigurieren. Der Benutzer muss daher möglicherweise die MLM-Pipeline verwenden, die für die Erfüllung seiner Ziele nicht optimal ist. Alternativ dazu muss der Benutzer möglicherweise zusätzliche Ressourcen aufwenden und professionelle Entwickler einstellen, um die Pipeline zu konfigurieren und möglicherweise einige oder alle MLMs der Pipeline neu zu trainieren.
  • Aspekte und Ausführungsformen der vorliegenden Offenlegung gehen auf diese und andere Herausforderungen der modernen Technologie ein, indem sie Methoden und Systeme beschreiben, die eine effiziente Verwaltung und Konfiguration von MLM-Pipelines ermöglichen. Implementierungen ermöglichen das Trainieren und erneutes Trainieren von MLMs für benutzerspezifische Zielplattformen, das Ändern von Parametern und der Architektur zuvor trainierter MLMs, das Auswählen und Konfigurieren zuvor trainierter MLMs, das Anpassen ausgewählter MLMs, um benutzerspezifische Anforderungen zu erfüllen, das Integrieren ausgewählter MLMs in weitere anpassbare Arbeitsabläufe, das Bereitstellen der angepassten Arbeitsabläufe auf Benutzer- und Cloud-Hardware, das Eingeben tatsächlicher Inferenzdaten, das Lesen, Speichern und Verwalten von Inferenzierungsausgaben und so weiter.
  • SYSTEMARCHITEKTUR
  • 1 ist ein Blockdiagramm einer Beispielarchitektur einer anpassbaren Pipeline (CP) 100, die das Training, die Konfiguration und den Einsatz eines oder mehrerer Modelle für maschinelles Lernen unterstützt, in Übereinstimmung mit mindestens einigen Ausführungsformen. Wie in 1 dargestellt, kann eine CP 100 auf einer Rechenvorrichtung bzw. einem Computergerät 102 implementiert sein, aber es versteht sich, dass jegliche Maschinen bzw. Engines und Komponenten des Computergeräts 102 auf einer beliebigen Anzahl von Computergeräten oder in einer Cloud implementiert (oder gemeinsam genutzt) werden können. Das Computergerät 102 kann ein Desktop-Computer, ein Laptop-Computer, ein Smartphone, ein Tablet-Computer, ein Server, eine Computergerät, das auf einen entfernten Server zugreift, ein Computergerät, das eine virtualisierte Rechenumgebung nutzt, eine Spielkonsole, ein tragbarer Computer, ein Smart-TV usw. sein. Ein Benutzer der CP 100 kann einen lokalen oder entfernten (z.B. über ein Netzwerk) Zugriff auf das Computergerät 102 haben. Das Computergerät 102 kann eine beliebige Anzahl von Zentralverarbeitungseinheiten (CPUs) und Grafikverarbeitungseinheiten (GPUs) verfügen (in 1 nicht dargestellt), einschließlich virtueller CPUs und/oder virtueller GPUs, oder andere geeignete Verarbeitungsgeräte, die in der Lage sind, die hier beschriebenen Techniken auszuführen, aufweisen. Das Computergerät 102 kann ferner (in 1 nicht dargestellt) eine beliebige Anzahl von Speichergeräten, Netzwerkcontrollern, Peripheriegeräten und dergleichen aufweisen. Peripheriegeräte können Kameras (z.B. Videokameras) zur Aufnahme von Bildern (oder Bildsequenzen), Mikrofone zur Aufnahme von Tönen, Scanner, Sensoren oder andere Geräte zur Datenaufnahme umfassen.
  • In einigen Ausführungsformen kann eine CP 100 eine Reihe von Maschinen bzw. Engines und Komponenten für eine effiziente MLM-Implementierung enthalten. Ein Benutzer (Kunde, Endbenutzer, Entwickler, Datenwissenschaftler usw.) kann mit der CP 100 über eine Benutzerschnittstelle UI 104 interagieren, die eine Befehlszeile, eine grafische UI, eine webbasierte Schnittstelle (z.B. eine über einen Webbrowser zugängliche Schnittstelle), eine auf mobilen Anwendungen basierende UI oder eine beliebige Kombination davon umfassen kann. Die Benutzeroberfläche 104 kann Menüs, Tabellen, Diagramme, Ablaufdiagramme, grafische und/oder textuelle Darstellungen von Software, Daten und Arbeitsabläufen anzeigen. Die Benutzeroberfläche 104 kann auswählbare Elemente enthalten, die es dem Benutzer ermöglichen, verschiedene Pipeline-Einstellungen einzugeben, Trainings/erneute Trainings und andere Daten bereitzustellen, wie nachstehend näher beschrieben wird. Benutzeraktionen, die über die Benutzeroberfläche 104 eingegeben werden, können über eine Pipeline-API 106 an einen Pipeline-Orchestrator 110 der CP 100 übermittelt werden. In einigen Ausführungsformen kann der Benutzer (oder das entfernte Computergerät, das der Benutzer für den Zugriff auf die Pipeline verwendet) vor dem Empfang von Pipeline-Daten vom Pipeline-Orchestrator 110 ein API-Paket auf das entfernte Computergerät herunterladen. Das heruntergeladene API-Paket kann verwendet werden, um die Pipeline-API 106 auf dem entfernten Computergerät zu installieren, damit der Benutzer während der Einrichtung und Verwendung der CP 100 eine Zwei-Wege-Kommunikation mit dem Pipeline-Orchestrator 110 führen kann.
  • Der Pipeline-Orchestrator 110 kann dem Benutzer über die Pipeline-API 106 verschiedene Daten zur Verfügung stellen, die bei der Konfiguration und dem Einsatz eines oder mehrerer MLMs und der Verwendung der eingesetzten MLMs zur Verarbeitung (Inferenzierung) verschiedener eingegebener Benutzerdaten verwendet werden können. Zum Beispiel kann der Pipeline-Orchestrator 110 dem Benutzer Informationen über verfügbare vortrainierte MLMs zur Verfügung stellen, das erneute Trainieren von vortrainierten MLMs auf benutzerspezifische Daten, die vom Benutzer zur Verfügung gestellt werden, oder das Trainieren von neuen (zuvor nicht trainierten) MLMs ermöglichen. Der Pipeline-Orchestrator 110 kann dann die CP 100 auf der Grundlage der vom Benutzer erhaltenen Informationen aufbauen. Beispielsweise kann der Pipeline-Orchestrator 110 die vom Benutzer ausgewählten MLMs konfigurieren und die ausgewählten MLMs zusammen mit verschiedenen anderen (z.B. Vor- und Nachverarbeitungs-) Stufen einsetzen, die bei der Implementierung der ausgewählten MLMs verwendet werden. Zur Durchführung dieser und anderer Aufgaben kann der Pipeline-Orchestrator 110 eine Reihe von Engines koordinieren und verwalten, wobei jede Engine einen Teil der Gesamtfunktionalität der Pipeline implementiert.
  • In einigen Ausführungsformen kann die CP 100 Zugang zu einem oder mehreren zuvor trainierten (vortrainierten) MLMs haben und daher dem Benutzer Zugang zu mindestens einigen dieser vortrainierten MLMs bereitstellen (z.B. auf der Grundlage des Abonnements des Benutzers). Die MLMs können für allgemeine Aufgaben im Bereich der CP-Spezialisierung trainiert sein. Zum Beispiel kann eine CP, die auf Sprachverarbeitung spezialisiert ist, Zugang zu einem oder mehreren MLMs haben, die darauf trainiert sind, typische Sprache zu erkennen, wie z.B. Kundendienstanfragen, übliche Gespräche und dergleichen. Die CP 100 kann außerdem eine Trainings-Engine 120 enthalten. Die Trainings-Engine 120 kann eine Neutrainieren (zusätzliches Training) der vortrainierten MLMs durchführen. Das Neutrainieren kann unter Verwendung von Neutrainingsdaten durchgeführt werden, die auf einen benutzerspezifischen Anwendungsbereich zugeschnitten sind. In einigen Ausführungsformen können die Neutrainingsdaten vom Benutzer bereitgestellt werden. Zum Beispiel kann ein Benutzer Neutrainingsdaten bereitstellen, um die Verarbeitungsfähigkeiten für natürliche Sprache eines der vortrainierten MLMs zu verbessern, um die Erkennung von Sprache zu verbessern, die in einer Investment-Brokerage-Umgebung oder einer Wertpapierhan delsumgebung vorkommen kann. Die Daten können (z.B. von einem Technologiespezialisten des Finanzunternehmens des Benutzers) in Form von digitalen Audioaufzeichnungen in jedem verfügbaren (komprimierten oder unkomprimierten) digitalen Format bereitgestellt werden, z.B. WAV, WavPack, WMA, MP3, MPEG-4, als Tonspur einer Videoaufzeichnung, eines Fernsehprogramms und dergleichen.
  • Vortrainierte MLMs 122 können in einem Speicher für trainierte Modelle 124 gespeichert sein, auf den das Computergerät 102 über ein Netzwerk 140 zugreifen kann. Vortrainierte MLMs 122 können von einem Trainingsserver 162 trainiert sein. Das Netzwerk 140 kann ein öffentliches Netzwerk (z.B. das Internet), ein privates Netzwerk (z.B. ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN)), ein drahtloses Netzwerk, ein persönliches Netzwerk (PAN) oder eine Kombination davon sein. In einigen Ausführungsformen kann der Trainingsserver 162 ein Teil des Computergeräts 102 sein. In anderen Ausführungsformen kann der Trainingsserver 162 direkt oder über das Netzwerk 140 mit dem Computergerät 102 kommunikativ verbunden sein. Der Trainingsserver 162 kann ein Rackmount-Server, ein Router-Computer, ein Personal Computer, ein Laptop-Computer, ein Tablet-Computer, ein Desktop-Computer, ein Media Center oder eine beliebige Kombination davon sein (und/oder umfassen). Der Trainingsserver 162 kann eine Trainings-Engine 160 enthalten. Die Trainings-Engine 160 auf dem Trainingsserver 162 kann mit dem Trainingsserver 162 auf dem Computergerät 102 identisch (oder diesem ähnlich) sein. In einigen Ausführungsformen kann die Trainings-Engine 120 auf dem Computergerät 102 fehlen; stattdessen kann das gesamte Training und die Neutraining von der Trainings-Engine 160 auf dem Trainingsserver 162 durchgeführt werden. In einigen Ausführungsformen kann die Trainings-Engine 160 ein externes Training von vortrainierten MLMs 122 durchführen, während die Trainings-Engine 120 auf dem Computergerät 102 ein erneutes Training von vortrainierten MLMs 122 sowie ein Training von neuen (benutzerdefinierten) MLMs 125 durchführen kann.
  • Während des Trainings oder des Neutrainings kann die Trainings-Engine 160 (120) ein oder mehrere MLMs erzeugen und konfigurieren. MLMs können Regressionsalgorithmen, Entscheidungsbäume, Support-Vektor-Maschinen, K-Means-Clustermodelle, neuronale Netzwerke oder andere Algorithmen maschinellen Lernens umfassen. MLMs für neuronale Netzwerke können Faltungsmodelle, rekurrente Modelle, vollständig verbundene Modelle, Modelle des Langzeitgedächtnisses, Hopfield- und Boltzmann-Netzwerke oder andere Arten von neuronalen Netzwerken umfassen. Bei der Erstellung von MLMs kann ein MLM-Typ (z.B. ein neuronales Netzwerk), eine Architektur, eine Anzahl von Neuronenschichten, die Art der Verbindungen zwischen den Schichten (z.B. vollständig verbunden, gefaltet, entfaltet usw.), die Anzahl der Knoten in jeder Schicht, die Art der Aktivierungsfunktionen, die in verschiedenen Schichten/Knoten des Netzwerks verwendet werden, die Art der Verlustfunktionen, die beim Training des Netzwerks verwendet werden, usw. festgelegt werden. Bei der Erstellung von MLMs können Anfangsparameter (Gewichte, Verzerrungen) der verschiedenen Knoten des Netzwerks (z.B. zufällig) festgelegt werden. Die generierten MLMs können von der Trainings-Engine 160 unter Verwendung von Trainingsdaten trainiert werden, die Trainingseingabe(n) 165 und entsprechende(n) Zielausgabe(n) 167 enthalten können.
  • Für das Training von Spracherkennungs-MLMs 122 können Trainingseingaben 165 beispielsweise eine oder mehrere digitale Tonaufnahmen mit Äußerungen von Wörtern, Phrasen und/oder Sätzen enthalten, für deren Erkennung das MLM trainiert wird. Zielausgaben 167 können Angaben darüber enthalten, ob die Zielwörter und -sätze in den Trainingseingaben 165 vorhanden sind. Die Zielausgaben 167 können auch Transkriptionen der Äußerungen usw. beinhalten. In einigen Ausführungsformen können die Zielausgaben 167 die Identifizierung der Absicht eines Sprechers beinhalten. Beispielsweise kann ein Kunde, der bei einem Essenslieferdienst anruft, eine begrenzte Anzahl von Absichten zum Ausdruck bringen (Essen bestellen, den Status der Bestellung abfragen, die Bestellung stornieren usw.), dies aber auf praktisch unbegrenzte Weise tun. Während die spezifischen Worte und Sätze, die geäußert werden, nicht von großer Bedeutung sind, kann die Bestimmung der Absicht wichtig sein. Dementsprechend können in solchen Ausführungsformen die Zielausgaben 167 eine korrekte Kategorie der Absicht enthalten. In ähnlicher Weise kann eine Zielausgabe 167 für eine Trainingseingabe 165, die eine Äußerung eines Kunden enthält, der bei einem Kundendiensttelefon anruft, sowohl eine Transkription der Äußerung als auch ein Hinweis auf einen emotionalen Zustand des Kunden (z.B. wütend, besorgt, zufrieden usw.) sein. Darüber hinaus kann die Trainings-Engine 160 Zuordnungsdaten 166 (z.B. Metadaten) erzeugen, die die Trainingseingabe(n) 165 mit der/den korrekten Zielausgabe(n) 167 verknüpfen. Während des Trainings der MLMs 122 (oder der benutzerdefinierten MLMs 125) kann die Trainings-Engine 160 (oder 120) Muster in der/den Trainingseingabe(n) 165 auf der Grundlage der gewünschten Zielausgabe(n) 167 identifizieren und die jeweiligen MLMs so trainieren, dass sie die gewünschten Aufgaben ausführen. Der prädiktive Nutzen der identifizierten Muster kann anschließend mit Hilfe zusätzlicher Trainingseingangs-/Zielausgangs-Assoziationen verifiziert werden, bevor sie in der Inferenzphase bei der künftigen Verarbeitung neuer Sprachbeiträge verwendet werden. Beispielsweise kann ein trainiertes MLM 122 beim Empfang einer neuen Sprachnachricht erkennen, dass der Kunde den Status einer bereits aufgegebenen Bestellung überprüfen möchte, und den Namen des Kunden, die Bestellnummer usw. identifizieren.
  • In einigen Ausführungsformen können mehrere MLMs gleichzeitig oder getrennt trainiert werden. Eine Spracherkennungspipeline kann mehrere Modelle umfassen, z.B. ein Akustikmodell bzw. akustisches Modell für die Tonverarbeitung, wie beispielsweise das Parsen von Sprache in Wörter, ein Sprachmodell für die Erkennung von geparsten Wörtern, ein Modell für die Absichtserkennung, ein Modell für das Verstehen einer Frage oder andere Modelle. In einigen Ausführungsformen können einige der Modelle unabhängig voneinander trainiert werden, während andere Modelle gleichzeitig trainiert werden können. Zum Beispiel kann das akustische Modell getrennt von allen anderen Modellen der Sprachverarbeitung trainiert werden, kann das Modell zur Absichtserkennung zusammen mit einem Sprachtranskriptionsmodell trainiert werden, usw.
  • In einigen Ausführungsformen können jedes oder einige der MLMs 122 (und/oder MLMs 125) als neuronale Deep Learning-Netzwerke mit mehreren Ebenen linearer oder nichtlinearer Operationen implementiert sein. Zum Beispiel kann jedes oder können einige der MLMs für die Spracherkennung faltende neuronale Netzwerke, rekurrente neuronale Netzwerke (RNN), vollständig verbundene neuronale Netzwerke usw. sein. In einigen Ausführungsformen kann jedes oder können einige der MLMs 122 (und/oder MLMs 125) mehrere Neuronen enthalten, wobei jedes Neuron seine Eingabe von anderen Neuronen oder von einer externen Quelle erhalten und eine Ausgabe erzeugen kann, indem eine Aktivierungsfunktion auf die Summe der (trainierbaren) gewichteten Eingaben und einen Bias-Wert angewendet wird. In einigen Ausführungsformen kann jedes oder einige der MLMs 122 (und/oder 125) mehrere Neuronen enthalten, die in Schichten angeordnet sind, einschließlich einer Eingabeschicht, einer oder mehrerer verborgener Schichten und einer Ausgabeschicht. Neuronen aus benachbarten Schichten können durch gewichtete Kanten verbunden sein. Zu Beginn können den Kantengewichten einige (z.B. zufällige) Startwerte zugewiesen sein. Für jede Trainingseingabe 165 kann die Trainings-Engine 160 jedes oder einige der MLMs 122 (und/oder MLMs 125) veranlassen, eine oder mehrere Ausgaben zu erzeugen. Die Trainings-Engine 137 kann dann beobachtete Ausgabe(n) mit der/den gewünschten Zielausgabe(n) 167 vergleichen. Der resultierende Fehler oder die resultierende Fehlanpassung, z.B. die Differenz zwischen der/den gewünschten Zielausgabe(n) 167 und der/den tatsächlichen Ausgabe(n) der neuronalen Netzwerke, kann durch die jeweiligen neuronalen Netzwerke zurückverfolgt (back-propagated) werden, und die Gewichte in den neuronalen Netzwerken können angepasst werden, um die tatsächlichen Ausgaben näher an die Zielausgaben 167 heranzuführen. Diese Anpassung kann wiederholt werden, bis der Ausgangsfehler für eine gegebenen Trainingseingabe 165 eine vorgegebene Bedingung erfüllt (z.B. unter einen vorgegebenen Wert fällt). Anschließend kann eine anderer Trainingseingabe 165 gewählt, eine neue Ausgabe erzeugt und eine neue Reihe von Anpassungen vorgenommen werden, bis die jeweiligen neuronalen Netzwerke mit einem akzeptablen Genauigkeitsgrad trainiert sind.
  • Die Trainings-Engine 120 kann (verglichen mit der Trainings-Engine 160) zusätzliche Komponenten enthalten, um das Neutrainieren von zuvor trainierten MLMs 122 für domänenspezifische Anwendungen zu implementieren. Beispielsweise kann die Trainings-Engine 120 ein Modul zur Datenerweiterung enthalten, um vorhandene Trainingsdaten (z.B. die Trainingseingaben 165) mit domänenspezifischen Daten zu erweitern. Beispielsweise können vorhandene Tonaufnahmen mit Zielwörtern und -ausdrücken angereichert werden, die in der Zieldomäne häufig vorkommen. Beispielsweise kann das Modul zur Datenerweiterung vorhandene Trainingseingaben um die Ausdrücke „Leerverkauf‟, „Kapitalertragssteuer“, „Hedgefonds“, „wirtschaftliche Grundlagen“, „Börsengang“ usw. erweitern. Die Zielausgaben 167 können in ähnlicher Weise erweitert werden. Beispielsweise kann das Datenerweiterungsmodul die Zielausgaben 167 mit verschiedenen Fachbegriffen wie „Optionen“ oder „Futures“ aktualisieren, die eine domänenspezifische Bedeutung haben. Die Trainings-Engine 120 kann zusätzlich über ein Beschneidungsmodul verfügen, um die Anzahl der Knoten zu reduzieren, und über ein Bewertungsmodul, um festzustellen, ob die Beschneidung der Knoten die Genauigkeit des neu trainierten Modells nicht unter eine Mindestschwellengenauigkeit reduziert hat.
  • 2A ist ein Blockdiagramm einer Beispielarchitektur 200 einer Trainings-Engine (z.B. der Trainings-Engine 120) der anpassbaren Pipeline 100 von 1, in Übereinstimmung mit mindestens einigen Ausführungsformen. Wie in 2A dargestellt, kann die Architektur 200 der Trainings-Engine eine Reihe von Modulen (Sub-Engines) beinhalten, wie z.B. das Anfangstrainingsmodul 210, das Bewertungsmodul 210, das Neutrainingsmodul 230 usw., die die oben beschriebenen Betriebsabläufe durchführen. Zum Beispiel kann das Anfangstrainingsmodul 210 MLMs 122 unter Verwendung von Anfangsdaten 202 trainieren. Das Anfangstrainingsmodul 210 kann auch benutzerdefinierte MLMs 125 unter Verwendung benutzerdefinierter (benutzerspezifischer und/oder vom Benutzer bereitgestellter) Daten 204 trainieren. Das Bewertungsmodul 220 kann bestimmen, ob das Training der MLMs 122 (oder der benutzerdefinierten MLMs 125) erfolgreich war oder ob ein zusätzliches Training durchgeführt werden muss. Beispielsweise kann das Bewertungsmodul 220 einen Teil der Anfangsdaten 202 (oder der benutzerdefinierten Daten 204) verwenden, der zum Testen/Auswerten reserviert wurde. Falls das betreffende MLM eine Mindestgenauigkeit oder ein Mindestvertrauensniveau nicht erreicht, kann das Anfangstrainingsmodul 210, wie mit dem Pfeil nach hinten dargestellt, ein zusätzliches Training für das MLM durchführen. Sobald das MLM die Bewertung erfolgreich besteht, kann das MLM zur sofortigen oder zukünftigen Verwendung durch den Benutzer gespeichert werden (z.B. im Speicher 124 für trainierte Modelle in 1). Das Neutrainingsmodul 230 kann ein Neutrainieren gespeicherter MLMs unter Verwendung neuer Daten/Abstimmungsdaten 232 durchführen, um neutrainierte MLMs 123 oder neutrainierte benutzerdefinierte MLMs 127 zu erzeugen. Zum Beispiel können zuvor trainierte MLMs für Anwendungen in einem anderen Bereich bzw. einer anderen Domäne neu trainiert werden. Alternativ können zuvor trainierte MLMs neu trainiert werden, um geänderte oder zusätzliche Bedingungen zu berücksichtigen, z.B. eine Änderung der in der Domäne verwendeten Terminologie, die Einstellung eines neuen Mitarbeiters, dessen Sprachmerkmale sich von denen anderer Mitarbeiter unterscheiden, und dergleichen. Ein Neutrainieren kann in ähnlicher Weise durchgeführt werden, bis Bewertungskriterien erfüllt sind (z.B. wie vom Bewertungsmodul 220 bestimmt). Neutrainingskriterien können sich von Anfangstrainingskriterien unterscheiden.
  • Auf 1 Rückbezug nehmend, kann während des MLM-Neutrainings der Benutzer mit dem Pipeline-Orchestrator 110 über die Pipeline-API 106 interagieren, um den Neutrainingsprozess zu überwachen. Zum Beispiel kann der Benutzer zu Beginn (oder in jeder anderen Phase) des Neutrainings einen ersten Satz von vortrainierten MLMs 122 als Modelle auswählen, die ohne Neutrainings unverändert bzw. „as-is“ verwendet werden sollen. Der Benutzer kann ferner einen zweiten Satz von vortrainierten MLMs 122 für das Neutraining durch die Trainings-Engine 120 (oder die Trainings-Engine 160) auswählen, um neutrainierte MLMs 123 zu erzeugen. Zusätzlich kann der Benutzer die Trainings-Engine 120 (oder die Trainings-Engine 160) veranlassen, benutzerdefinierte (vom Benutzer trainierte) MLMs 125 zu erzeugen. Der Benutzer kann über die Benutzeroberfläche 104 Architektur- und Netzwerkparameter für benutzerdefinierte MLMs 125 auswählen; die Trainings-Engine 120 (oder die Trainings-Engine 160) kann die vom Benutzer spezifizierten Parameter über den Pipeline-Orchestrator 110 empfangen und das Training der benutzerdefinierten MLMs 125 entsprechend den empfangenen Parametern durchführen. Die Parameter der vortrainierten MLMs 122, der neutrainierten MLMs 123 und/oder der benutzerdefinierten MLMs 125 können in einem Speichergerät gespeichert werden, auf das der Pipeline-Orchestrator 110 zugreifen kann. Die Speichervorrichtung, die MLMs speichert, kann ein lokaler (z.B. nichtflüchtiger) Speicher auf dem Computergerät 102 oder ein entfernter (z.B. Cloud-basierter) Speicher sein, auf den das Computergerät 102 über das Netzwerk 140 zugreifen kann. Dem Benutzer der CP 100 können Listen einiger oder aller für den Benutzer verfügbarer MLMs (z.B. die MLMs 122, 123 und/oder 125) zur Verfügung gestellt werden, wenn sich der Benutzer bei der Sitzung des Benutzers der CP 100 anmeldet/authentifiziert. Die für den Benutzer zugänglichen Listen können MLMs beinhalten, die während der aktuellen Sitzung neu trainiert (123) oder vom Benutzer trainiert (125) wurden, sowie MLMs, die während einer der vorherigen Benutzersitzungen neu trainiert oder vom Benutzer trainiert wurden. Demgemäß können während oder nach jeder Benutzersitzung neue, vom Benutzer trainierte benutzerdefinierte MLMs 125 im Speicher für trainierte Modelle 124 zur zukünftigen Verwendung gespeichert werden.
  • Die CP 100 kann außerdem eine Export-Engine 130 enthalten. Die Export-Engine 130 kann es dem Benutzer ermöglichen, eine beliebige Anzahl von vortrainierten MLMs 122, neutrainierten MLMs 123 oder benutzerdefinierten MLMs 125 für den späteren Einsatz während der aktuellen (oder zukünftigen) Benutzersitzungen auszuwählen. Die Export-Engine kann die vom Benutzer ausgewählten MLMs unter Verwendung eines von der Implementierung unabhängigen Formats exportieren. In einigen Ausführungsformen kann das Exportieren der MLMs ein Identifizieren und Abrufen einer Topologie der MLMs, der Anzahl und der Typen von Schichten des neuronalen Netzwerks der MLMs und der Werte der Gewichte, die während des von der Trainings-Engine durchgeführten Trainings bestimmt wurden, beinhalten. In solchen Ausführungsformen kann die Export-Engine 130 eine Darstellung der vom Benutzer ausgewählten MLMs erzeugen und die erzeugte Darstellung auf der Benutzeroberfläche 104 anzeigen lassen. Die angezeigte Darstellung kann Graphen, Tabellen, Zahlen, Texteinträge und andere Objekte enthalten, die die Architektur der ausgewählten MLMs charakterisieren, wie z.B. die Anzahl der Schichten, Knoten, Kanten, die Topologie jedes ausgewählten MLMs und dergleichen. Die angezeigte Darstellung kann ferner Parameter der ausgewählten MLMs enthalten, wie z.B. Gewichte, Verzerrungen, Aktivierungsfunktionen für verschiedene Knoten und dergleichen. Von der Export-Engine 130 geladene Metadaten können auch angeben, welche zusätzlichen Komponenten und Module für den Einsatz des vom Benutzer ausgewählten MLMs notwendig sein können. Bei der Geschwindigkeitserkennung können solche zusätzlichen Komponenten einen Spektralanalysator des Sprachklangs, einen Sprachmerkmalsextraktor für das akustische Modell, eine akustische Nachverarbeitungskomponente, die Sprachartefakte, Füll- und Stoppwörter entfernt, eine Sprachvorverarbeitungskomponente, die eine Wort-Tokenisierung, Lemmatisierung usw. durchführt, eine Sprachnachverarbeitungskomponente, die eine regelbasierte Korrektur/Verifizierung der MLM-Sprachausgaben durchführt, und andere Komponenten umfassen.
  • Die CP 100 kann außerdem eine Build-Engine 150 enthalten. Die Build-Engine 150 kann es dem Benutzer ermöglichen, exportierte vortrainierte MLMs 122, neutrainierte MLMs 123 oder benutzerdefinierte MLMs 125 vor dem Einsatz auf der Benutzerplattform zu konfigurieren. Die Darstellungen der exportierten MLMs, die von der Export-Engine 130 bereitgestellt werden, informieren den Benutzer über Architektur und Eigenschaften der MLMs. Die Darstellungen können dem Benutzer anzeigen, welche Aspekte der MLMs statisch (Parameter) sind und welche Aspekte (Einstellungen) anpassbar sind. Beispielsweise können der Typ eines neuronalen Netzwerks (z.B. Faltungsnetzwerk vs. vollständig verbundenes Netzwerk), eine Anzahl der Neuronenschichten in dem neuronalen Netzwerk, die Topologie der Kanten, die die Knoten im Netzwerk verbinden, die Typen der Aktivierungsfunktionen, die in verschiedenen Knoten verwendet werden, usw. feste Parameter sein. Falls der Benutzer einige der festen Parameter ändern möchte, muss er möglicherweise die Trainings-Engine 120 verwenden, um das jeweilige Modell eines neuronalen Netzwerks für die neue Architektur neu zu trainieren. Andererseits kann der Benutzer in der Lage sein, die Einstellungen eines MLMs zu ändern, ohne das Modell neu zu trainieren. Solche konfigurierbaren Einstellungen können eine Chunk-Größe beinhalten, z.B. die Größe eines in einer Streaming-Spracherkennungsanwendung zu verarbeitenden Audiopuffers, eines für die Zuordnung der Ausgaben zu verwendenden Alphabets (z.B. Latein, Kyrillisch usw.), die Sprache (z.B. Englisch, Deutsch, Russisch usw.), eine Fenstergröße zur FFT-Verarbeitung eingegebener Sprachdaten, eine Fensterüberlappung (z.B. 25%, 50%, 75% usw.), Hamming-Fenster-Parameter, Parameter für die Erkennung des Endes einer Äußerung, eine Größe des Audiopuffers, Latenzeinstellungen und so weiter. Die Build-Engine 150 kann es dem Benutzer auch ermöglichen, aus verfügbaren Domänen (z.B. Finanzindustrie, Medizin usw.) auszuwählen, für die die ausgewählten MLMs trainiert wurden (während des Anfangstrainings, des Neutrainings oder des Trainings mit benutzerspezifischen Daten). Die Build-Engine 150 (oder der Pipeline-Orchestrator 110) kann die Anzeige der Einstellungen der exportierten MLMs auf der Benutzeroberfläche 104 zusammen mit den Parametern der exportierten MLMs veranlassen. Die Anzeige kann mit Hinweisen versehen werden, welche Änderungen (von Einstellungen) von der Build-Engine 150 und welche Änderungen (von Parametern oder Einstellungen) von der Training-Engine 120 behandelt werden sollten. Beispielsweise können Modifikationen, die Änderungen an einem Sprachmodell hervorrufen, von der Build-Engine 150 (ohne Aufruf der Trainings-Engine 120) bearbeitet werden, während Modifikationen, die Änderungen an einem akustischen Modell hervorrufen, z.B. die Verarbeitung von Audiodaten während einer Spracherkennungsdecoderstufe, von der Trainings-Engine 120 bearbeitet werden können. In einigen Ausführungsformen können Änderungen, die Änderungen an einem Sprachmodell hervorrufen, ohne Einschränkung die Anpassung der Gewichte einer oder mehrerer Schichten in einem Modell umfassen. Als ein weiteres Beispiel kann eine Modifikation von Einstellungen zwischen Modellen, wie z.B. von einem akustischen Modell einer Sprache, das mit Sprachdaten von Erwachsenen trainiert wurde, zu einem akustischen Modell derselben Sprache, das jedoch mit Sprachdaten von Kindern trainiert wurde, den Aufruf der Trainings-Engine 120 und das erneute Training des akustischen Modells mit neuen Daten auslösen.
  • Einige Einstellungen können sich auf ein einzelnes exportiertes MLM beziehen, z.B. können Alphabeteinstellungen (phonetische Schreibweise oder englische Standardschreibweise) auf das Sprachmodell, nicht aber auf das akustische Modell auswirken. Einige Einstellungen können sich auf mehrere MLMs beziehen, z.B. kann die Konfiguration des Sprachmodells für die chinesische Spracherkennung auch eine Änderung (z.B. automatisch oder standardmäßig) in den Einstellungen des akustischen Modells bewirken, um sich an unterschiedliche Kadenz und Töne der Sprache anzupassen. Einige Einstellungen können die Interaktion eines oder mehrerer MLMs mit verschiedenen Vor- und Nachverarbeitungskomponenten der Pipeline beeinflussen. Beispielsweise kann ein Ändern der Einstellungen des Sprachmodells zur Verwendung des Modells für die Spracherkennung in einer anderen Sprachdomäne auch eine Modifikation von Einstellungen eines Vorverarbeitungsblocks, der Stoppwörter eliminiert, erfordern. Insbesondere kann ein Sprachmodell, das die Spracherkennung einer förmlichen Präsentation auf einer Fachkonferenz durchführen soll, eine weniger aggressive Entfernung von Stopp-/Füllwörtern verwenden als die Transkription eines informellen Brainstorming-Geschäftsmeetings.
  • 2B ist ein Blockdiagramm einer Beispielarchitektur 200 einer Build-and-Deploy-Phase der anpassbaren Pipeline 100 von 1, in Übereinstimmung mit mindestens einigen Ausführungsformen. Während die Build-Engine 150 es dem Benutzer ermöglicht, exportierte MLMs vor dem Einsatz zu konfigurieren, führt eine Deployment (Einsatz)-Engine 170 eine tatsächliche Implementierung der CP 100 auf der für den Benutzer zugänglichen Plattform durch. Wie in 2B dargestellt, können von der Export-Engine 130 exportierte MLMs verschiedene Modellartefakte 252 (z.B. Module, Abhängigkeiten, Metadaten usw.) und eine oder mehrere Konfigurationsdateien 254, die die tatsächliche Ausführung der exportierten MLMs konfigurieren, beinhalten. Der Benutzer kann modifizierte Konfigurationseinstellungen 256 (die z.B. über die Benutzeroberfläche 104 von 1 empfangen wurden) eingeben, die dann von der Build-Engine 150 verarbeitet werden können. Modifizierte Konfigurationseinstellungen können in die Konfigurationsdatei(en) 254 zurückgeschrieben werden, wobei verschiedene Felder, z.B. Standardfelder, die ursprünglich von der Trainings-Engine 120 bereitgestellt wurden, mit den vom Benutzer angegebenen Einstellungen überschrieben werden. Die Build-Engine 150 kann die Konfigurationsdatei(en) 254 und die Modellartefakte 252 (z.B. Quellcodes, Bibliotheken und andere Abhängigkeiten) für die exportierten MLMs verarbeiten und ausführbare Artefakte für die exportierten MLMs, Konfigurationsdateien und verschiedene andere Abhängigkeiten, wie z.B. Bibliotheken, ausführbare Codes für Vor- und Nachverarbeitungskomponenten der Pipeline und Ähnliches, erzeugen. Die Ausgabe der Build-Engine 150 kann eine Zwischendarstellung (IR) der Pipeline sein. In einigen Ausführungsformen kann die IR der MLM-Pipeline als ein Docker-Image 260 oder ein Image für eine ähnliche Plattform zur Ausführung von Container-Anwendungen verpackt sein. In einigen Ausführungsformen kann ein Image in einem anderen (als dem Docker-) Format verwendet werden, z.B. in einem beliebigen proprietären Format. In einigen Implementierungen kann ein geeignetes Archiv eines Formats verwendet werden, das verschiedene ausführbare Komponenten, Bibliotheken, Daten und Metadaten bündelt. Der Inhalt der IR kann in einer Speichervorrichtung (z.B. als ein Archiv) eines Computergeräts des Benutzers, z. B. des Computergeräts 102, oder in einem für das Computergerät 102 zugänglichen Speichergerät (z.B. in der Cloud) gespeichert werden. Die Build-Engine 150 kann ein Werkzeug oder eine Anwendung sein, das bzw. die in der Sprache Python, C++, Java oder einer beliebigen anderen Programmiersprache implementiert ist.
  • Die Deployment bzw. Einsatz-Engine 170 der konfigurierbaren Pipeline (z.B. der CP 100 von 1) kann die Pipeline auf für den Benutzer zugänglichen Hardwareressourcen (der Zielplattform) implementieren. Der Benutzer kann Zugriff auf ein (z.B. lokales) Computergerät 102 mit einer Reihe von CPUs, GPUs und Speichervorrichtungen haben. Alternativ oder zusätzlich kann der Benutzer Zugang zu einem oder mehreren Cloud-Computing-Servern haben, die Virtualisierungsdienste anbieten. Die Einsatz-Engine 170 kann es dem Benutzer ermöglichen, die Beschreibung oder Identifikation der für den Benutzer zugänglichen Zielplattform-Ressourcen 262 einzugeben, was die Identifikation der verfügbaren Rechen-, Speicher-, Netzwerk- usw. Ressourcen beinhalten kann. In einigen Ausführungsformen kann die Einsatz-Engine 170 Informationen über lokale Ressourcen des Computergeräts 102 unter Verwendung beliebiger verfügbarer Metriksammelvorrichtungen oder Treiber sammeln. Alternativ oder zusätzlich kann die Einsatz-Engine 170 oder der Pipeline-Orchestrator 110 Informationen über verfügbare virtuelle (Cloud-)Verarbeitungsressourcen sammeln (z.B. unter Verwendung eines Fernzugriffsservers oder eines Authentifizierungsdienstes eines entfernten Virtualisierungsservers). Gesammelte Informationen können die CPU-Geschwindigkeit, die Anzahl von CPU-Kernen (physisch oder virtuell), die Anzahl und den Typ von GPUs (physisch oder virtuell), eine Menge verfügbaren Systemspeichers und/oder GPU-Speichers, eine Anzahl von für die Pipeline-Bereitstellung verfügbaren entfernten Verarbeitungsknoten, den Typ und die Version des auf dem Computergerät 102 installierten Betriebssystems (oder der Typ/die Version des in der virtualisierten Umgebung instanziierten Gastbetriebssystems) und dergleichen beinhalten, ohne darauf beschränkt zu sein. Die Einsatz-Engine 170 ermöglicht die Ausführung der MLM-Pipeline (z.B. der CP 100) auf vom Benutzer zugänglichen Computerressourcen ohne den funktionalen Charakter der MLM-Pipeline neu zu konfigurieren, nachdem vom Benutzer gewählte Konfigurationseinstellungen von der Build-Engine 150 implementiert wurden.
  • In einigen Ausführungsformen kann die Einsatz-Engine 170 auf die IR der MLM-Pipeline zugreifen, die (lokal oder in einer Cloud) von der Build-Engine 150 gespeichert wurde, und ein Inferenz-Ensemble aus ausführbaren Codes (z.B. implementiert in Objektcode oder Bytecode), Konfigurationsdateien, Bibliotheken, Abhängigkeiten und anderen Ressourcen erzeugen, die zur Verwendung durch eine Inferenz-Engine 180 erzeugt werden. In Ausführungsformen, in denen die IR der MLM-Pipeline ein Docker-Image (oder ein ähnliches Image) 260 ist, kann die Einsatz-Engine 170 einen Pipeline-Docker-Container 270 instanziieren, der auf dem Docker-Image 260 basiert, z.B. unter Verwendung eines Containerisierungsdienstes der für den Benutzer zugänglichen Zielplattform. In einigen Ausführungsformen kann das Inferenz-Ensemble ein Triton-Ensemble für Triton Inference Server sein, das die Bereitstellung von MLMs erleichtert und dem Benutzer die Ausführung von MLMs unter Verwendung verschiedener verfügbarer Frameworks (z.B. TensorFlow, TersorRT, PyTorch, ONNX Runtime usw.) oder eines benutzerdefinierten Frameworks ermöglicht. Die Einsatz-Engine 170 kann die in der IR angegebenen Befehle ausführen, um die von der Build-Engine 150 erzeugten ausführbaren Codes, Bibliotheken und anderen Abhängigkeiten auszuführen. Darüber hinaus kann die Einsatz-Engine 170 eine Zuordnung der von der Build-Engine 150 erzeugten MLM-Pipeline-Konfiguration zur Verarbeitung auf den Rechenressourcen der spezifischen Zielplattform, einschließlich der verfügbaren GPUs und/oder CPUs, vornehmen. Die von der Deployment Engine 170 erzeugten Konfigurationsdateien können in plattformneutralen Protokollpuffern gespeichert werden, die in ASCII-Serienform vorliegen können. Die Verwendung von Protokollpuffern ermöglicht es, typografische und serialisierungsbezogene Fehler zu minimieren, die andernfalls auftreten könnten, wenn der Benutzer (Entwickler) Unterstützung für die MLM-Architektur hinzufügt.
  • Auf 1 Rückbezug nehmend, kann, nachdem die Einsatz-Engine 170 die IR in das zur Ausführung durch die Inferenz-Engine 180 bereite Inferenz-Ensemble (z.B. in den Pipeline-Docker-Container) konvertiert, die MLM-Pipeline für die Verarbeitung von eingegebenen Benutzerdaten 182 bereit sein. Die Benutzerdaten 182 können beliebige Daten sein, auf die die konfigurierte MLM-Pipeline angewendet werden kann. Für die Sprachverarbeitung können die Benutzerdaten 182 beispielsweise eine Sprachaufzeichnung, z.B. eine digitale Aufzeichnung eines Gesprächs, einer Präsentation, einer Erzählung oder einer anderen Tonaufnahme, die transkribiert werden soll, umfassen. In einigen Ausführungsformen können die Benutzerdaten eine Frage (oder eine Reihe von Fragen) enthalten, die beantwortet werden sollen. In einigen Ausführungsformen können die Benutzerdaten 182 ein Bild (oder eine Folge von Bildern) mit zu identifizierenden Objekten, zu erkennenden Bewegungsmustern usw. sein. Beliebige andere Benutzerdaten 182 können in die Inferenz-Engine 180 eingegeben werden, wobei die Art der Benutzerdaten von der benutzerspezifischen Domäne abhängt. In Ausführungsformen, die die Verarbeitung natürlicher Sprache involvieren, können benutzerspezifische Domänen Kundendienstunterstützung, medizinisches Fragen, eine Bildungsumgebung, eine Gerichtssaalumgebung, ein Gespräch mit Notfallpersonal oder jede beliebige andere Art von Umgebung umfassen.
  • Die Inferenz-Engine 180 kann Benutzerdaten 182 verarbeiten und eine Inferenzausgabe 184 erzeugen. Die Inferenzausgabe 184 kann jede geeignete Art und jedes geeignete Format haben. Beispielsweise kann die Inferenzausgabe 184 eine Transkription einer Rede oder eines Gesprächs sein, eine Identifizierung einer Absicht oder einer Emotion des/der Sprecher(s), eine Antwort auf eine Frage (z.B. in Text- oder numerischer Form) usw. Das Format der Inferenzausgabe 184 kann ein Text, eine Zahl, eine numerische Tabelle, eine Audiodatei, eine Videodatei oder eine Kombination davon sein.
  • Verschiedene Engines der CP 100 brauchen nicht in einer linearen Abfolge angewendet zu werden. In einigen Ausführungsformen können die verschiedenen Engines der CP 100 mehrfach angewendet werden. Beispielsweise können die Benutzerdaten 182 als Testdaten verwendet werden, und kann die erhaltene Inferenzausgabe 184 als Rückmeldung über den aktuellen Zustand der Pipeline verwendet werden. Die Rückmeldung kann den Benutzer darüber informieren, wie die Pipeline zu modifizieren ist, um ihre Leistung zu verbessern. In einigen Ausführungsformen kann eine solche Änderung iterativ durchgeführt werden. Beispielsweise kann der Benutzer nach Erhalt der Rückmeldung ein Neutraining einiger der in der Pipeline enthaltenen MLMs unter Verwendung der Trainings-Engine 120 einleiten. Der Benutzer kann auch einige der MLMs durch andere (z.B. vorab trainierte oder vom Benutzer trainierte) MLMs ersetzen und die neu hinzugefügten MLMs mithilfe der Export-Engine 130 exportieren. Der Benutzer kann Konfigurationen einiger der alten, nachtrainierten oder neu trainierten MLMs mit Hilfe der Build-Engine 150 ändern. Die Build-Engine 150 kann dazu konfiguriert sein, nur die Modellartefakte und Konfigurationsdateien derjenigen MLMs und Komponenten der Pipeline zu aktualisieren (z.B. durch Generierung einer aktualisierten IR), die geändert wurden (z.B. über aktualisierte Konfigurationseinstellungen), ohne Modelle und Komponenten zu ändern, die unverändert geblieben sind, um die Installation zu beschleunigen. In einigen Ausführungsformen kann eine solche schnellere Installation durch die Verwendung des PIP (Package Installation for Python) Wheel build-package format (.whl) erreicht werden. Anschließend kann die Einsatz-Engine 170 die aktualisierte IR verwenden, um die aktualisierte Pipeline auf der Zielplattform bereitzustellen. In einigen Ausführungsformen kann der Benutzer die MLMs und ihre jeweiligen Konfigurationseinstellungen beibehalten, aber die auf der Zielplattform verfügbaren Ressourcen (durch Erhöhen, Verringern oder anderweitiges Modifizieren) modifizieren.
  • 3 ist ein Beispiel für eine Rechenvorrichtung bzw. ein Computergerät 300, die bzw. das in der Lage ist, eine anpassbare Pipeline zu implementieren, die Training, Konfiguration und Einsatz eines oder mehrerer Modelle für maschinelles Lernen unterstützt, in Übereinstimmung mit mindestens einigen Ausführungsformen. In einigen Ausführungsformen kann das Computergerät 300 einige oder alle Engines der anpassbaren Pipeline enthalten, z.B. die CP 100von 1, einschließlich der Trainings-Engine 120, der Export-Engine 130, der Build-Engine 150, der Einsatz-Engine 170 und der Inferenz-Engine 180. Obwohl 3 alle Engines als Teil desselben Computergeräts darstellt, kann in einigen Implementierungen jede der dargestellten Engines tatsächlich auf verschiedenen Rechenvorrichtungen implementiert sein, einschließlich virtueller Rechenvorrichtungen, Cloud-basierter Verarbeitungsvorrichtungen und dergleichen. Zum Beispiel kann das Computergerät 300 die Inferenz-Engine 180 enthalten, aber keine anderen Engines der anpassbaren Pipeline. Die Inferenz-Engine 180 (und/oder andere Engines der Pipeline) kann von einem oder mehreren GPUs 310 ausgeführt werden, um Spracherkennung, Objekterkennung oder andere Inferenzen, die maschinelles Lernen beinhalten, durchzuführen. In einigen Ausführungsformen umfasst eine GPU 310 mehrere Kerne 311, wobei jeder Kern in der Lage ist, mehrere Threads 312 auszuführen. Jeder Kern kann mehrere Threads 312 gleichzeitig (z.B. parallel) ausführen. In einigen Ausführungsformen können die Threads 312 Zugriff auf Register 313 haben. Die Register 313 können thread-spezifische Register sein, wobei der Zugriff auf ein Register auf einen bestimmten Thread beschränkt ist. Darüber hinaus kann auf gemeinsam genutzte Register 314 von allen Threads des Kerns zugegriffen werden. In einigen Ausführungsformen kann jeder Kern 311 einen Planer bzw. Scheduler 315 enthalten, um Rechenaufgaben und Prozesse auf die verschiedenen Threads 312 des Kerns 311 zu verteilen. Eine Versende- bzw. Dispatch-Einheit 316 kann geplante Aufgaben auf geeigneten Threads unter Verwendung korrekter privater Register 313 und gemeinsamer Register 314 implementieren. Das Computergerät 300 kann eine oder mehrere Eingabe-/Ausgabekomponenten 334 enthalten, um den Informationsaustausch mit einem oder mehreren Benutzern oder Entwicklern zu erleichtern.
  • In einigen Ausführungsformen kann die GPU 310 über einen (Hochgeschwindigkeits -) Cache 318 verfügen, auf den mehrere Kerne 311 gemeinsam zugreifen können. Ferner kann das Computergerät 300 einen GPU-Speicher 319 beinhalten, in dem die GPU 310 Zwischen- und/oder Endergebnisse (Ausgaben) verschiedener von der GPU 310 durchgeführter Berechnungen speichern kann. Nach Abschluss einer bestimmten Aufgabe kann die GPU 310 (oder die CPU 330) die Ausgabe in den (Haupt -)Speicher 304 verschieben. In einigen Ausführungsformen kann die CPU 330 Prozesse ausführen, die serielle Berechnungsaufgaben beinhalten (die von einem der Engines der Pipeline zugewiesen werden), während die GPU 310 Aufgaben ausführen kann (z.B. Multiplikation der Eingänge eines neuronalen Knotens mit Gewichten und Hinzufügen von Verzerrungen), die sich für eine parallele Verarbeitung eignen. In einigen Ausführungsformen kann eine jeweilige Engine der Pipeline (z.B. die Build-Engine 150, die Inferenz-Engine 180 usw.) bestimmen, welche von der jeweiligen Engine verwalteten Prozesse auf der GPU 310 und welche Prozesse auf der CPU 330 ausgeführt werden sollen. In einigen Ausführungsformen kann die CPU 330 bestimmen, welche Prozesse auf der GPU 310 und welche Prozesse auf der CPU 330 ausgeführt werden sollen.
  • 4 ist ein Blockdiagramm einer beispielhaften anpassbaren Pipeline 400, die ein oder mehrere Modelle für maschinelles Lernen zur Verarbeitung natürlicher Sprache verwendet, in Übereinstimmung mit mindestens einigen Ausführungsformen. Einige oder alle der MLMs der Pipeline 400 können trainierte Modelle neuronaler Netzwerke sein, z.B. vortrainierte und/oder kundenspezifisch trainierte neuronale Deep-Learning-Netzwerke. Eine Spracheingabe 402 in die Pipeline 400 kann ein analoges Signal sein, z.B. von einem Mikrofon erzeugt und in eine digitale Datei in einem beliebigen Audioformat konvertiert, das von einer Verarbeitungsvorrichtung gelesen werden kann. Die Spracheingabe 402 kann einer Audiovorverarbeitung 410 unterzogen werden, die eine Spektralanalyse und andere Verarbeitungen umfassen kann. Beispielsweise kann die Spracheingabe 402 gefiltert, hoch- oder heruntergesampelt, vorverzerrt, in Fenster eingeteilt (z.B. unter Verwendung eines 20-ms-Fensters, das alle 10 ms weitergeschaltet wird), mit dem Mel Frequency Cepstral Coefficients (MFCC)-AIgorithmus versehen und/oder auf andere Weise verarbeitet werden. Mehrdimensionale Vektoren, die extrahierte Merkmale repräsentieren, können in ein erstes MLM 420 eingegeben werden, das ein akustisches MLM sein kann (z.B. ein Akustikmodell bzw. ein akustisches Modell eines neuronalen Netzwerks). Das Akustik-MLM 420 kann ein Modell eines neuronalen Netzwerks sein, das dazu trainiert wurde, die Identifizierung verschiedener Phoneme (elementare Teilwortlaute) auszugeben, denen jeweils eine bestimmte Wahrscheinlichkeit zugeordnet ist. Die akustische Nachverarbeitung 430 kann die Dekodierung von Sprache (z.B. die Zuweisung von Wahrscheinlichkeiten zu verschiedenen Wörtern) umfassen und darüber hinaus das Entfernen von Klangartefakten, Füll- oder Stoppwörtern oder andere Arten der akustischen Nachverarbeitung beinhalten. Eine sprachliche Vorverarbeitung 440 kann die Wortstammbildung oder Lemmatisierung (Bestimmung der Stammform von Wörtern), die Tokenisierung (Identifizierung der Abfolge von Zeichen und Wörtern) und dergleichen umfassen. Eine Ausgabe der Sprachvorverarbeitung 440 kann als eine Eingabe in ein zweites MLM 450 verwendet werden, das ein oder mehrere Sprach-MLMs (z.B. Sprachmodelle eines neuronalen Netzwerks) enthalten kann. Das zweite MLM 450 kann ein weiteres neuronales Netzwerk sein, das trainiert wurde, um eine Textausgabe 460 zu erzeugen, die eine Transkription der Spracheingabe 402 sein kann. In einigen Ausführungsformen kann das zweite MLM 450 dazu konfiguriert sein, eine Interpunktionserkennung (450-1), eine Äußerungserkennung (450-2) und eine Erkennung der Absicht des Sprechers (450-3) vorzunehmen, die über zusätzliche Ausgänge/Neuronenschichten desselben zweiten MLM 450 oder als zusätzliche Modelle neuronaler Netzwerke implementiert sein können. Das zweite MLM 450 kann ein Modell eines neuronalen Netzwerks 450-4 für das Sprachverständnis und/oder ein Modell eines neuronalen Netzwerks 450-5 für das Frage-Antwort (Q-A)-Verhalten umfassen. Eine Ausgabe des Q-A-Modells 450-5 kann eine Darstellung (z.B. eine Textdarstellung) einer Antwort auf eine in der Spracheingabe 402 enthaltene Frage sein. In einigen Ausführungsformen kann die Ausgabe des Q-A-Modells 450-5 einem Sprachsynthesizer zur Verfügung gestellt werden, der ein drittes MLM 470 sein kann, das für die Ausgabe künstlicher Sprache als Teil einer Sprachausgabe 472 trainiert wurde.
  • Wie vorstehend in Bezug auf 1 und 2 beschrieben wurde, können das erste MLM 420, das zweite MLM 450 und/oder das dritte MLM 470 durch die Trainings-Engine 120 vortrainiert oder benutzerdefiniert trainiert werden, wie schematisch mit gestrichelten Pfeilen dargestellt ist. In einigen Ausführungsformen können einige oder alle MLMs 420, 430 und 470 unter Verwendung von domänenspezifischen Benutzerdaten neu trainiert werden. Darüber hinaus können, wie in 4 dargestellt, einige oder alle MLMs 420, 430 und 470 mit Hilfe der Build-Engine 150 und auf der Grundlage der vom Benutzer bereitgestellten Konfigurationseinstellungen konfiguriert werden (ohne erneutes Training).
  • 5 und 6 sind Ablaufdiagramme von Beispielverfahren 500 bzw. 600, die sich auf die Bereitstellung von anpassbaren Pipelines für maschinelles Lernen beziehen, in Übereinstimmung mit mindestens einigen Ausführungsformen. Die Verfahren 500 und 600 können durchgeführt werden, um MLMs zur Verwendung in der Stimmerkennung, Spracherkennung, Sprachsynthese, Objekterkennung, Bewegungserkennung, Gefahrenerkennung, in Robotikanwendungen, in der Vorhersage und vielen anderen Kontexten und Anwendungen, in denen maschinelles Lernen verwendet werden kann, einzusetzen. In mindestens einer Ausführungsform können das Verfahren 500 und das Verfahren 600 von Verarbeitungseinheiten des Computergeräts 102, des Computergeräts 300 oder eines anderen Computergeräts oder einer Kombination mehrerer Computergeräte durchgeführt werden. Die Verfahren 500 und 600 können von einer oder mehreren Verarbeitungseinheiten (z.B. CPUs und/oder GPUs) ausgeführt werden, die eine oder mehrere Speichervorrichtungen enthalten (oder mit diesen kommunizieren) können. In mindestens einer Ausführungsform können das Verfahren 500 und das Verfahren 600 von mehreren Verarbeitungs-Threads (z.B. CPU-Threads und/oder GPU-Threads) ausgeführt werden, wobei jeder Thread eine oder mehrere individuelle Funktionen, Routinen, Unterprogramme oder Operationen bzw. Betriebsabläufe des Verfahrens ausführt. In mindestens einer Ausführungsform können Verarbeitungs-Threads, die das Verfahren 500 (und in ähnlicher Weise das Verfahren 600) implementieren, synchronisiert werden (z.B. unter Verwendung von Semaphoren, kritischen Abschnitten und/oder anderen Thread-Synchronisierungsmechanismen). Alternativ können Verarbeitungs-Threads, die das Verfahren 500 (und in ähnlicher Weise auch das Verfahren 600) implementieren, asynchron zueinander ausgeführt werden. Verschiedene Operationen der Verfahren 500 und 600 können in einer anderen Reihenfolge als der in den 5 und 6 dargestellten Reihenfolge ausgeführt werden. Einige Operationen bzw. Betriebsabläufe der Verfahren können gleichzeitig mit anderen Operationen bzw. Betriebsabläufen ausgeführt werden. In mindestens einer Ausführungsform brauchen ein oder mehrere der in den 5 und 6 dargestellten Operationen nicht immer ausgeführt zu werden.
  • 5 ist ein Ablaufdiagramm eines Beispielverfahrens 500 zur Bereitstellung einer anpassbaren Pipeline, die Training, Konfiguration und Einsatz eines oder mehrerer Modelle für maschinelles Lernen unterstützt, in Übereinstimmung mit mindestens einigen Ausführungsformen. Die anpassbare Pipeline kann die CP 100 sein, die verschiedene Maschinen bzw. Engines, Module und Komponenten umfassen kann, wie vorstehend in Bezug auf 1 und 2A-B beschrieben. Verarbeitungseinheiten, die das Verfahren 500 durchführen, können bei Block 510 auf eine Vielzahl von trainierten MLMs zugreifen, die vortrainierte MLMs 122 (z.B. von den Anbietern der Pipeline-Dienste) oder benutzerdefinierte (von einem Benutzer der Pipeline trainierte) MLMs 125 sein können. Die ausgewählten MLMs können unter Verwendung eines ersten Satzes von Trainingsdaten trainiert werden, die zuvor von den Anbietern der Pipeline-Dienste oder vom Benutzer bereitgestellt werden können. Die Pflege trainierter MLMs kann ein Speichern von Dateien und Daten umfassen, die für den Einsatz und die Ausführung der MLMs ausreichen, oder ein Speichern von Verweisen auf solche Dateien und Daten, z.B. Links zu den herunterladbaren Dateien und Daten, die an anderer Stelle (z.B. in einem Cloud-Speicher) gespeichert sind. Einige oder jede der verwalteten MLMs können Anfangskonfigurationseinstellungen zugeordnet sein, die in Konfigurationsdateien, Datenbanken usw. für die jeweiligen MLMs gespeichert sein können. Auf die Konfigurationseinstellungen kann auch von den Verarbeitungseinheiten, die das Verfahren 500 durchführen, zugegriffen werden. In einigen Ausführungsformen können mindestens einige der ausgewählten MLMs ein Modell eines neuronalen Netzwerks mit einer Vielzahl von Neuronenschichten sein (oder enthalten). Bei einigen der Modelle neuronaler Netzwerke kann es sich um Modelle neuronaler Netzwerke mit Deep Learning handeln.
  • Bei Block 520 können die Verarbeitungseinheiten, die das Verfahren 500 durchführen, (für den Benutzer) eine Benutzerschnittstelle (UI) bereitstellen, um eine Benutzereingabe zu empfangen, die eine Auswahl eines oder mehrerer MLMs aus der Vielzahl von trainierten MLMs anzeigt. Der Benutzer kann beispielsweise versuchen, eine Pipeline für maschinelles Lernen einzurichten, und kann aus den verfügbaren MLMs diejenigen MLMs auswählen, die ein bestimmtes Problem oder eine Gruppe von Problemen für den Benutzer lösen können. Beispielsweise kann der Benutzer, der eine Pipeline für Spracherkennung einrichten will, ein akustisches Modell zur Dekodierung einer eingegebenen Sprache und ein Sprachmodell zur Erkennung der dekodierten Sprache auswählen. Um bei der Auswahl von MLMs für die Pipeline zu helfen, können die Verarbeitungseinheiten vor dem Empfang der Benutzerauswahl des einen oder der mehreren MLMs eine Anzeige auf der Benutzeroberfläche von einer oder mehreren Listen der Vielzahl von trainierten MLMs veranlassen, die für den Benutzer verfügbar sein können. In einigen Ausführungsformen können die Auflistungen in Form von aufgezählten Elementen, anklickbaren Schaltflächen, Symbolen, Menüs oder anderen Aufforderungen verfügbar sein. Die Auflistungen können für einige oder alle der aufgelisteten MLMs eine Darstellung der Architektur der jeweiligen MLMs enthalten, die in Form eines Diagramms, einer Tabelle, einer Darstellung von Schichten, einer Beschreibung der Topologie der MLMs usw. vorliegen kann. In einigen Ausführungsformen können die Auflistungen auch Parameter der jeweiligen MLMs enthalten, wie z.B. die Anzahl der Knoten, der Kanten, der Aktivierungsfunktionen oder jede andere Spezifikation der Eigenschaften der MLMs.
  • Im Ansprechen auf die Betrachtung der MLMs kann der Benutzer entscheiden, dass einige der ausgewählten MLMs geändert werden sollten, um den Besonderheiten des Benutzerprojekts besser zu entsprechen. In einigen Fällen kann eine Modifikation der MLMs signifikant genug sein, dass ein erneutes Training der ausgewählten MLMs erforderlich ist, z.B. unter Verwendung zweiter Trainingsdaten, die vom Benutzer ausgewählte Daten zum erneuten Training der ausgewählten MLMs für eine bestimmte Domäne sein können, in der die MLM-Pipeline anzuwenden ist. Insbesondere können die Verarbeitungseinheiten, die das Verfahren 500 durchführen, einen zweiten Satz von Trainingsdaten für ein domänenspezifisches Training der einen oder mehreren ausgewählten MLMs empfangen. Beispielsweise können die Verarbeitungseinheiten auf der Grundlage der Benutzereingabe über die Benutzeroberfläche einen Hinweis auf die MLMs erhalten, die neu zu trainieren sind. Zum Beispiel kann der Benutzer aus dem Akustik-MLM und dem Sprach-MLM, die für eine Spracherkennungspipeline ausgewählt wurden, angeben, dass das Sprach-MLM für die japanische Sprache neu zu trainieren ist (nachdem es zuvor für Englisch trainiert wurde). Der Benutzer kann auch einen Ort (z.B. eine Cloud-Speicheradresse) identifizieren, an dem sich die Neutrainingsdaten (z.B. die zweiten Daten) befinden. Die Neutrainingsdaten können eine Trainingseingabe (z.B. Tondateien), eine Zielausgabe (z.B. Transkriptionen von Sprache in den Tondateien) und Zuordnungsdaten (Angaben über die Übereinstimmung der Trainingseingaben mit den Zielausgaben) beinhalten. Im Ansprechen auf den Empfang der Angaben zu den neu zu trainierenden MLMs und den Neutrainingsdaten können die Verarbeitungseinheiten die Ausführung einer Trainings-Engine der Pipeline (z.B. der Trainings-Engine 120) veranlassen, um das domänenspezifische Training des einen oder der mehreren ausgewählten MLMs durchzuführen, wie vorstehend in Verbindung mit 1 ausführlicher beschrieben wurde. Das Neutraining kann sowohl für vortrainierte MLMs 122 als auch für zuvor trainierte benutzerdefinierte MLMs 125 durchgeführt werden.
  • In manchen Fällen ist eine erforderliche Modifikation der MLMs nicht so wesentlich, dass sie ein erneutes Training erfordert. In einigen Ausführungsformen können die modifizierten Konfigurationseinstellungen Spracheinstellungen für das Sprachmodell des neuronalen Netzwerks umfassen. Unter Verwendung des vorangehenden Beispiels kann, um den Wechsel von der englischen Sprache zu der japanischen Sprache zu vollziehen, der Benutzer beschließen, Einstellungen des akustischen MLMs zu modifizieren, z.B. die Größe des gleitenden Fensters. Im Ansprechen auf den Empfang der Benutzereingabe, die spezifiziert, wie die Anfangskonfigurationseinstellungen für das eine oder die mehreren MLMs zu modifizieren sind, können die Verarbeitungseinheiten, die das Verfahren 500 durchführen, bei Block 530 auf der Grundlage der Benutzereingabe modifizierte Konfigurationseinstellungen für das eine oder die mehreren ausgewählten MLMs bestimmen. In einigen Ausführungsformen können die modifizierten Konfigurationseinstellungen für das eine oder die mehreren ausgewählten MLMs eine Audio-Puffergröße, Einstellungen für das Ende einer Äußerung oder Latenzeinstellungen für das akustische MLM umfassen. Andere MLMs zur Verarbeitung natürlicher Sprache, die in ähnlicher Weise konfiguriert werden können, sind z.B. ein Sprachsynthese-MLM, ein Sprachverständnis-MLM, ein Fragebeantwortungs-MLM oder ein beliebiges andere MLM.
  • Bei Block 540 können die Verarbeitungseinheiten, die das Verfahren 500 durchführen, die Ausführung einer Build-Engine der MLM-Pipeline veranlassen (z.B. durch Ausgabe einer Anweisung zur Initiierung), um die eine oder die mehreren ausgewählten MLMs in Übereinstimmung mit den modifizierten Konfigurationseinstellungen zu modifizieren, wie vorstehend in Verbindung mit 1 ausführlicher beschrieben wurde. Bei Block 550 kann das Verfahren damit fortgesetzt werden, dass die Verarbeitungseinheiten die Ausführung einer Einsatz-Engine der Pipeline veranlassen, um das eine oder die mehreren modifizierten MLMs einzusetzen, wie vorstehend in Verbindung mit 1 ausführlicher beschrieben wurde. Bei Block 560 können die Verarbeitungseinheiten, die das Verfahren 500 durchführen, die Anzeige einer Darstellung des einen oder der mehreren eingesetzten MLMs auf der Benutzeroberfläche veranlassen, wie vorstehend in Verbindung mit 1 ausführlicher beschrieben wurde. Die angezeigte Darstellung kann dem Benutzer anzeigen, dass die eingesetzten MLMs bereit sind, Benutzerdaten zu verarbeiten. Die konfigurierbare MLM-Pipeline kann für das Training, den Einsatz und die Inferenz mit einer beliebigen Anzahl von Modellen maschinellen Lernens eines beliebigen Typs verwendet werden.
  • 6 ist ein Ablaufdiagramm eines Beispielverfahrens 600 zur Verwendung einer eingesetzten anpassbaren Maschinenpipeline mit Modellen maschinellen Lernens, in Übereinstimmung mit mindestens einigen Ausführungsformen. In einigen Ausführungsformen kann das Verfahren 600 in Verbindung mit dem Verfahren 500 verwendet werden. Das Verfahren 600 kann durchgeführt werden, nachdem die Auflistungen der vortrainierten MLMs 122 und der benutzerdefinierten MLMs 125 zur Präsentation für den Benutzer bereitgestellt wurden, und optional nach dem Neutrainieren der MLMs, die von dem Benutzer für das Neutraining durch die Trainings-Engine ausgewählt wurden. Bei Block 610 können die Verarbeitungseinheiten, die das Verfahren 600 durchführen, die Benutzerauswahl des einen oder der mehreren MLMs (die in der konfigurierbaren Pipeline zu platzieren sind) empfangen und die Ausführung einer Export-Engine der Pipeline veranlassen, um das eine oder die mehreren ausgewählten MLMs zu initialisieren. Bei Block 620 kann das Verfahren 600 damit fortfahren, das eine oder die mehreren ausgewählten MLMs zur Verarbeitung von Benutzereingabedaten verfügbar zu machen (z.B. unter Verwendung der Export-Engine). Darüber hinaus kann das Verfahren 600 die Ausführung der Build-Engine (Block 540) und der Einsatz-Engine (Block 560) umfassen, wie in Bezug auf das Verfahren 500 von 5 beschriebe wurden.
  • Bei Block 630 können die Verarbeitungseinheiten, die das Verfahren 600 durchführen, die Benutzereingabedaten empfangen und bei Block 640 veranlassen (z.B. unter Verwendung der Inferenz-Engine), dass das eine oder die mehreren eingesetzten MLMs auf die Benutzereingabedaten angewendet werden, um Ausgabedaten zu erzeugen. Eine Ausgabe der Anwendung des einen oder der mehreren MLMs kann, bei Block 650, auf der Benutzeroberfläche die Anzeige mindestens einer Darstellung der Ausgabedaten oder eines Verweises auf eine gespeicherte Darstellung der Ausgabedaten veranlassen. Falls die Benutzereingabedaten beispielsweise Sprache enthalten, kann die Darstellung der Ausgabedaten ein Text mit der Transkription der eingegebenen Sprache, eine Identifizierung der Absicht des Sprechers, eine Interpunktion der eingegebenen Sprache, eine Tonantwort (z.B. unter Verwendung einer synthetisierten Stimme) auf eine gestellte Frage usw. sein. In einigen Ausführungsformen kann die Darstellung der Ausgabedaten ein Text oder ein Ton sein, der dem Benutzer direkt präsentiert wird, z.B. auf der Benutzeroberfläche. In einigen Ausführungsformen kann die Darstellung der Ausgabedaten ein Hinweis darauf sein, wo die Ausgabedaten gespeichert sind (auf einem lokalen Rechner oder in einer Cloud).
  • INFERENZ- UND TRAININGSLOGIK
  • 7A zeigt die Inferenz- und/oder Trainingslogik 715, die verwendet wird, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind.
  • In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715, ohne darauf beschränkt zu sein, einen Code- und/oder Datenspeicher 701 zur Speicherung von Vorwärts- und/oder Ausgabegewicht und/oder Ein-/Ausgabedaten und/oder andere Parameter zur Konfiguration von Neuronen oder Schichten eines neuronalen Netzwerks umfassen, die zur Inferenz trainiert und/oder verwendet werden, gemäß Aspekten einer oder mehrerer Ausführungsformen. In mindestens einer Ausführungsform kann die Trainingslogik 715 den Code und/oder den Datenspeicher 701 umfassen oder mit diesem gekoppelt sein, um Graphcode oder andere Software zur Steuerung von Zeitgebung und/oder Reihenfolge zu speichern, in der Gewichts- und/oder andere Parameterinformationen geladen werden, um die Logik zu konfigurieren, einschließlich ganzzahliger und/oder Gleitkommaeinheiten (kollektiv arithmetisch-logische Einheiten (ALUs) oder einfach Schaltkreise). In mindestens einer Ausführungsform lädt Code, wie z.B. Graphcode, Gewichts- oder andere Parameterinformationen in Prozessor-ALUs, basierend auf einer Architektur eines neuronalen Netzwerks, dem solcher Code entspricht. In mindestens einer Ausführungsform speichert der Code- und/oder Datenspeicher 701 Gewichtsparameter und/oder Ein-/Ausgabedaten jeder Schicht eines neuronalen Netzwerks, die während der Vorwärtspropagierung von Ein-/Ausgabedaten und/oder Gewichtsparametern während des Trainings und/oder der Inferenzierung unter Verwendung von Aspekten einer oder mehrerer Ausführungsformen trainiert oder verwendet werden. In mindestens einer Ausführungsform kann jeder Teil des Code- und/oder Datenspeichers 701 mit anderen On-Chip- oder Off-Chip-Datenspeichern, einschließlich des L1-, L2- oder L3-Cache- oder Systemspeichers eines Prozessors, zusammengefasst sein.
  • In mindestens einer Ausführungsform kann jeder Teil des Code- und/oder Datenspeichers 701 intern oder extern von einem oder mehreren Prozessoren oder anderen Hardware-Logik-Geräten oder -Schaltungen ausgeführt sein. In mindestens einer Ausführungsform kann der Code- und/oder der Code- und/oder Datenspeicher 701 ein Cachespeicher, ein dynamischer, zufällig adressierbarer Speicher (engl. dynamic randomly addressable memory, „DRAM“), ein statischer, zufällig adressierbarer Speicher (engl. static randomly addressable memory, „SRAM“), ein nichtflüchtiger Speicher (z.B. Flash-Speicher) oder ein anderer Speicher sein. In mindestens einer Ausführungsform kann die Wahl, ob der Code- und/oder der Code- und/oder Datenspeicher 701 beispielsweise prozessorintern oder prozessorextern ist oder DRAM, SRAM, Flash oder einen anderen Speichertyp umfasst, von dem verfügbaren Speicher auf dem Chip gegenüber dem Speicher außerhalb des Chips, von Latenzanforderungen der ausgeführten Trainings- und/oder Inferenzfunktionen, von der Stapelgröße der bei der Inferenzierung und/oder dem Training eines neuronalen Netzwerks verwendeten Daten oder von einer Kombination dieser Faktoren abhängen.
  • In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715, ohne darauf beschränkt zu sein, einen Code und/oder einen Datenspeicher 705 umfassen, um Rückwärts- und/oder Ausgabegewichte und/oder Ein-/Ausgabedaten zu speichern, die Neuronen oder Schichten eines neuronalen Netzwerks entsprechen, die in Aspekten einer oder mehrerer Ausführungsformen für Inferenz trainiert und/oder verwendet werden. In mindestens einer Ausführungsform speichert der Code- und/oder Datenspeicher 705 Gewichtsparameter und/oder Ein-/Ausgabedaten jeder Schicht eines neuronalen Netzwerks, die während einer Rückwärtspropagierung von Ein-/Ausgabedaten und/oder Gewichtsparametern während des Trainings und/oder der Inferenzierung unter Verwendung von Aspekten einer oder mehrerer Ausführungsformen trainiert oder verwendet werden. In mindestens einer Ausführungsform kann die Trainingslogik 715 einen Code- und/oder Datenspeicher 705 umfassen oder mit diesem gekoppelt sein, um Graphcode oder andere Software zur Steuerung des Zeitablaufs und/oder der Reihenfolge zu speichern, in der Gewichts- und/oder andere Parameterinformationen geladen werden sollen, um die Logik zu konfigurieren, einschließlich ganzzahliger und/oder Gleitkommaeinheiten (zusammen arithmetisch-logischer Einheiten (ALUs)).
  • In mindestens einer Ausführungsform veranlasst Code, wie z.B. Graphcode, das Laden von Gewichts- oder anderen Parameterinformationen in Prozessor-ALUs, basierend auf einer Architektur eines neuronalen Netzwerks, dem der Code entspricht. In mindestens einer Ausführungsform kann jeder Teil des Code- und/oder Datenspeichers 705 mit anderen On-Chip- oder Off-Chip-Datenspeichern, einschließlich des L1-, L2- oder L3-Cachespeichers oder des Systemspeichers eines Prozessors, zusammengefasst sein. In mindestens einer Ausführungsform kann jeder Teil des Code- und/oder Datenspeichers 705 intern oder extern in einem oder mehreren Prozessoren oder anderen Hardware-Logikgeräten oder -schaltungen enthalten sein. In mindestens einer Ausführungsform kann der Code- und/oder Datenspeicher 705 Cachespeicher, DRAM, SRAM, nichtflüchtiger Speicher (z.B. Flash-Speicher) oder ein anderer Speicher sein. In mindestens einer Ausführungsform kann die Wahl, ob der Code- und/oder Datenspeicher 705 z.B. prozessorintern oder prozessorextern ist oder DRAM, SRAM, Flash-Speicher oder einen anderen Speichertyp umfasst, von dem verfügbaren Speicher on-chip oder off-chip, von den Latenzanforderungen der ausgeführten Trainings- und/oder Inferenzfunktionen, von der Stapelgröße der bei der Inferenz und/oder dem Training eines neuronalen Netzwerks verwendeten Daten oder von einer Kombination dieser Faktoren abhängen.
  • In mindestens einer Ausführungsform können der Code- und/oder Datenspeicher 701 und der Code- und/oder Datenspeicher 705 separate Speicherstrukturen sein. In mindestens einer Ausführungsform können der Code- und/oder Datenspeicher 701 und der Code- und/oder Datenspeicher 705 eine kombinierte Speicherstruktur sein. In mindestens einer Ausführungsform können der Code- und/oder Datenspeicher 701 und der Code- und/oder Datenspeicher 705 teilweise kombiniert und teilweise separat sein. In mindestens einer Ausführungsform kann jeder Teil des Code- und/oder Datenspeichers 701 und des Code- und/oder Datenspeichers 705 mit anderen On-Chip- oder Off-Chip-Datenspeicher zusammengefasst sein, einschließlich des L1-, L2- oder L3-Cachespeichers oder des Systemspeichers eines Prozessors.
  • In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715, ohne darauf beschränkt zu sein, eine oder mehrere arithmetisch-logische Einheit(en) („ALU(s)“) 710, einschließlich Ganzzahl- und/oder Gleitkommaeinheiten, umfassen, um logische und/oder mathematische Operationen durchzuführen, die zumindest teilweise auf einem Trainings- und/oder Inferenzcode basieren oder durch diesen angegeben werden (z.B. Graphcode), dessen Ergebnis in einem Aktivierungsspeicher 720 gespeicherte Aktivierungen (z.B. Ausgabewerte von Schichten oder Neuronen innerhalb eines neuronalen Netzes) erzeugen kann, die Funktionen von in Code- und/oder Datenspeicher 701 und/oder Code- und/oder Datenspeicher 705 gespeicherten Ein-/Ausgabe- und/oder Gewichtsparameterdaten sind. In mindestens einer Ausführungsform werden in einem Aktivierungsspeicher 720 gespeicherte Aktivierungen gemäß linearer algebraischer und/oder matrixbasierter Mathematik erzeugt, die von ALU(s) 710 als Reaktion auf die Ausführung von Befehlen oder anderem Code ausgeführt wird, wobei in Code- und/oder Datenspeicher 705 und/oder Datenspeicher 701 gespeicherte Gewichtswerte als Operanden zusammen mit anderen Werten, wie z.B. Vorgabewerten (engl. bias values), Gradienteninformationen, Impulswerten oder anderen Parametern oder Hyperparametern, die beliebig oder vollständig in Code- und/oder Datenspeicher 705 oder Code- und/oder Datenspeicher 701 oder einem anderen Speicher on oder off-chip gespeichert werden können, verwendet werden.
  • In mindestens einer Ausführungsform sind die ALU(s) 710 in einem oder mehreren Prozessoren oder anderen Hardware-Logikgeräten oder -schaltungen enthalten, während in einer anderen Ausführungsform die ALU(s) 710 außerhalb eines Prozessors oder einer anderen Hardware-Logikvorrichtung oder -schaltung liegen können, die sie verwenden (z.B. ein Co-Prozessor). In mindestens einer Ausführungsform können die ALU(s) 710 in den Ausführungseinheiten eines Prozessors oder anderweitig in einer Gruppe von ALUs enthalten sein, auf die die Ausführungseinheiten eines Prozessors entweder innerhalb desselben Prozessors oder verteilt auf verschiedene Prozessoren unterschiedlichen Typs (z.B. Zentraleinheiten, Grafikverarbeitungseinheiten, Einheiten mit fester Funktionalität usw.) zugreifen können. In mindestens einer Ausführungsform können sich der Code und/oder Datenspeicher 701, der Code- und/oder Datenspeicher 705 und der Aktivierungsspeicher 720 einen Prozessor teilen oder einer anderen Hardware-Logikvorrichtung oder -schaltung befinden, während sie sich in einer anderen Ausführungsform in verschiedenen Prozessoren oder anderen Hardware-Logikvorrichtungen oder -schaltungen oder in einer Kombination aus gleichen und verschiedenen Prozessoren oder anderen Hardware-Logikvorrichtungen oder -schaltungen befinden können. In mindestens einer Ausführungsform kann jeder Teil des Aktivierungsspeichers 720 mit einem anderen On-Chip- oder Off-Chip-Datenspeicher, einschließlich des L1-, L2- oder L3-Cachespeichers oder des Systemspeichers eines Prozessors, zusammengefasst sein. Darüber hinaus kann der Inferenz- und/oder Trainingscode zusammen mit anderem Code gespeichert werden, auf den ein Prozessor oder eine andere Hardware-Logik oder -Schaltung zugreifen kann, und unter Verwendung des Abrufs, der Dekodierung, der Planung, der Ausführung, der Abschaltung und/oder anderer logischer Schaltungen eines Prozessors abgerufen und/oder verarbeitet werden.
  • In mindestens einer Ausführungsform kann der Aktivierungsspeicher 720 Cachespeicher, DRAM, SRAM, nichtflüchtiger Speicher (z.B. Flash-Speicher) oder ein anderer Speicher sein. In mindestens einer Ausführungsform kann der Aktivierungsspeicher 720 ganz oder teilweise innerhalb oder außerhalb eines oder mehrerer Prozessoren oder anderer logischer Schaltungen liegen. In mindestens einer Ausführungsform kann die Wahl, ob der Aktivierungsspeicher 720 z.B. prozessorintern oder prozessorextern ist oder DRAM, SRAM, Flash-Speicher oder einem anderen Speichertyp umfasst, von dem verfügbaren Speicher auf dem Chip oder außerhalb des Chips, von den Latenzanforderungen der ausgeführten Trainings- und/oder Inferenzfunktionen, von der Stapelgröße der bei der Inferenz und/oder dem Training eines neuronalen Netzwerks verwendeten Daten oder von einer Kombination dieser Faktoren abhängen.
  • In mindestens einer Ausführungsform kann die in 7A dargestellte Inferenz- und/oder Trainingslogik 715 in Verbindung mit einer anwendungsspezifischen integrierten Schaltung („ASIC“) verwendet werden, wie z.B. der Tensorflow® Processing Unit von Google, einer Inferenz-Verarbeitungseinheit (IPU) von Graphcore™ oder einem NervanaⓇ (z. B. „Lake Crest“) Prozessor von Intel Corp. In mindestens einer Ausführungsform kann die in 14A dargestellte Inferenz- und/oder Trainingslogik 715 in Verbindung mit Hardware der Central Processing Unit („CPU“), Hardware der Graphics Processing Unit („GPU“) oder anderer Hardware, wie z.B. Field Programmable Gate Arrays („FPGAs“), verwendet werden.
  • 7B zeigt die Inferenz- und/oder Trainingslogik 715 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715, ohne darauf beschränkt zu sein, eine Hardware-Logik umfassen, in der Rechenressourcen dediziert oder anderweitig ausschließlich in Verbindung mit Gewichtswerten oder anderen Informationen verwendet werden, die einer oder mehreren Schichten von Neuronen innerhalb eines neuronalen Netzwerks entsprechen. In mindestens einer Ausführungsform kann die in 7B dargestellte Inferenz - und/oder Trainingslogik 715 in Verbindung mit einer anwendungsspezifischen integrierten Schaltung (ASIC) verwendet werden, wie z.B. der Tensorflow® Processing Unit von Google, einer Inferenz-Verarbeitungseinheit (IPU) von Graphcore™ oder einem NervanaⓇ (z.B. „Lake Crest“) Prozessor von Intel Corp. In mindestens einer Ausführungsform kann die in 7B dargestellte Inferenz- und/oder Trainingslogik 715 in Verbindung mit der Hardware der Zentraleinheit (CPU), der Hardware der Grafikverarbeitungseinheit (GPU), der Hardware einer Datenverarbeitungseinheit (DPU) oder anderer Hardware, wie z.B. Field Programmable Gate Arrays (FPGAs), verwendet werden. In mindestens einer Ausführungsform umfasst die Inferenz - und/oder Trainingslogik 715, ohne darauf beschränkt zu sein, den Code- und/oder Datenspeicher 701 und den Code- und/oder Datenspeicher 705, die zur Speicherung von Code (z.B. Graphcode), Gewichtswerten und/oder anderen Informationen, einschließlich Vorgabewerten, Gradienteninformationen, Impulswerten und/oder anderen Parameter- oder Hyperparameterinformationen, verwendet werden können. In mindestens einer Ausführungsform, das in 7B gezeigt wird, ist sowohl der Code- und/oder Datenspeicher 701 als auch der Code- und/oder Datenspeicher 705 mit einer dedizierten Rechenressource assoziiert, wie z.B. der Rechenhardware 702 bzw. der Rechenhardware 706. In mindestens einer Ausführungsform umfassen sowohl die Rechenhardware 702 als auch die Rechenhardware 706 eine oder mehrere ALUs, die mathematische Funktionen, wie z.B. lineare algebraische Funktionen, nur auf Informationen ausführen, die im Code und/oder Datenspeicher 701 bzw. im Code und/oder Datenspeicher 705 gespeichert sind und deren Ergebnis im Aktivierungsspeicher 720 gespeichert wird.
  • In mindestens einer Ausführungsform entspricht jeder der Code- und/oder Datenspeicher 701 und 705 und der entsprechenden Rechenhardware 702 bzw. 706 verschiedenen Schichten eines neuronalen Netzwerks, so dass die aus einem „Speicher-/Berechnungspaar 701/702“ resultierende Aktivierung des Code- und/oder Datenspeichers 701 und der Rechenhardware 702 als Eingabe für das nächste „Speicher-/Berechnungspaar 705/706“ des Code- und/oder Datenspeichers 705 und der Rechenhardware 706 bereitgestellt wird, um die konzeptionelle Organisation eines neuronalen Netzwerks widerzuspiegeln. In mindestens einer Ausführungsform kann jedes der Speicher-/Berechnungspaare 701/702 und 705/706 mehr als einer Schicht eines neuronalen Netzwerks entsprechen. In mindestens einer Ausführungsform können zusätzliche Speicher-/Berechnungspaare (nicht gezeigt) im Anschluss an oder parallel zu den Speicher-/Berechnungspaaren 701/702 und 705/706 in der Inferenz- und/oder Trainingslogik 715 enthalten sein.
  • TRAINING UND EINSATZ NEURONALER NETZWERKE
  • 8 zeigt das Training und den Einsatz eines Deep-Neural-Network, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform wird das untrainierte neuronale Netzwerk 806 unter Verwenden eines Trainingsdatensatzes 802 trainiert. In mindestens einer Ausführungsform ist die das Trainingsframework (Rahmenstruktur) 804 ein PyTorch-Framework, während in anderen Ausführungsformen das Trainingsframework 804 ein Tensorflow, Boost, Caffe, Microsoft Cognitive Toolkit/CNTK, MXNet, Chainer, Keras, Deeplearning4j oder ein anderes Trainingsframework ist. In mindestens einer Ausführungsform trainiert das Trainingsframework 804 ein untrainiertes neuronales Netzwerk 806 und ermöglicht dessen Training unter Verwendung der hier beschriebenen Verarbeitungsressourcen, um ein trainiertes neuronales Netzwerk 808 zu erzeugen. In mindestens einer Ausführungsform können die Gewichte nach dem Zufallsprinzip oder durch Vortraining unter Verwendung eines Deep-Believe-Netzwerks ausgewählt werden. In mindestens einer Ausführungsform kann das Training entweder beaufsichtigt, teilweise beaufsichtigt oder unbeaufsichtigt durchgeführt werden.
  • In mindestens einer Ausführungsform wird das untrainierte neuronale Netzwerk 806 unter Verwenden von beaufsichtigtem Lernen trainiert, wobei der Trainingsdatensatz 802 eine Eingabe gepaart mit einer gewünschten Ausgabe für eine Eingabe umfasst, oder wobei der Trainingsdatensatz 802 eine Eingabe mit einer bekannten Ausgabe umfasst und eine Ausgabe des neuronalen Netzwerks 806 manuell abgestuft wird. In mindestens einer Ausführungsform wird das untrainierte neuronale Netzwerk 806 unter Aufsicht trainiert, verarbeitet Eingaben aus dem Trainingsdatensatz 802 und vergleicht die resultierenden Ausgaben mit einem Satz erwarteter oder gewünschter Ausgaben. In mindestens einer Ausführungsform werden dann Fehler durch das untrainierte neuronale Netzwerk 806 zurückpropagiert. In mindestens einer Ausführungsform passt das Trainings-Framework 804 Gewichte an, die das untrainierte neuronale Netzwerk 806 steuern. In mindestens einer Ausführungsform umfasst das Trainings-Framework 804 Werkzeuge, mit denen überwacht werden kann, wie gut das untrainierte neuronale Netzwerk 806 zu einem Modell wie dem trainierten neuronalen Netzwerk 808 konvergiert, das geeignet ist, auf der Grundlage bekannter Eingabedaten wie z.B. neuer Daten 812 korrekte Antworten wie im Ergebnis 814 zu generieren. In mindestens einer Ausführungsform trainiert das Trainings-Framework 804 das untrainierte neuronale Netzwerk 806 wiederholt, während die Gewichte angepasst werden, um eine Ausgabe des untrainierten neuronalen Netzwerks 806 unter Verwendung einer Verlustfunktion und eines Anpassungsalgorithmus, wie z.B. stochastischer Gradientenabfall, zu verfeinern. In mindestens einer Ausführungsform trainiert das Trainings-Framework 804 das untrainierte neuronale Netzwerk 806, bis das untrainierte neuronale Netzwerk 806 eine gewünschte Genauigkeit erreicht. In mindestens einer Ausführungsform kann das trainierte neuronale Netzwerk 808 dann zur Implementierung einer beliebigen Anzahl von maschinellen Lernoperationen eingesetzt werden.
  • In mindestens einer Ausführungsform wird das untrainierte neuronale Netzwerk 806 unter Verwendung von unbeaufsichtigtem Lernen trainiert, wobei das untrainierte neuronale Netzwerk 806 versucht, sich selbst unter Verwendung unmarkierter Daten zu trainieren. In mindestens einer Ausführungsform enthält der Datensatz 802 für unüberwachtes Lernen Eingabedaten ohne zugehörige Ausgabedaten oder Ground-Truth-Daten (engl. ground truth). In mindestens einer Ausführungsform kann das untrainierte neuronale Netzwerk 806 Gruppierungen innerhalb des Trainingsdatensatzes 802 lernen und bestimmen, wie individuelle Eingaben mit dem untrainierten Datensatz 802 in Beziehung stehen. In mindestens einer Ausführungsform kann durch unüberwachtes Training eine selbstorganisierende Karte erzeugt werden, bei der es sich um eine Art trainiertes neuronales Netzwerk 808 handelt, das in der Lage ist, Operationen durchzuführen, die zur Verringerung der Dimensionalität eines neuen Datensatzes 812 nützlich sind. In mindestens einer Ausführungsform kann unüberwachtes Training auch zur Durchführung von Anomalieerkennung verwendet werden, was die Identifizierung von Datenpunkten in einem neuen Datensatz 812 ermöglicht, die von den normalen Mustern des neuen Datensatzes 812 abweichen.
  • In mindestens einer Ausführungsform kann halbbeaufsichtigtes Lernen verwendet werden, eine Technik, bei der der Datensatz 802 im Training eine Mischung aus markierten und nicht markierten Daten umfasst. In mindestens einer Ausführungsform kann das Trainings-Framework 804 verwendet werden, um inkrementelles Lernen durchzuführen, z.B. durch übertragene Lerntechniken. In mindestens einer Ausführungsform ermöglicht das inkrementelle Lernen dem trainierten neuronalen Netzwerk 808, sich an neue Datensätze 812 anzupassen, ohne das Wissen zu vergessen, das während des initialen Trainings in das trainierte neuronale Netzwerk 808 eingegangen ist.
  • Bezug nehmend auf 9 ist 9 ein beispielhaftes Datenflussdiagramm für einen Prozess 900 zur Erzeugung und zum Einsetzen einer Verarbeitungs- und Inferenzierungs-Pipeline, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann der Prozess 900 eingesetzt werden, um eine Spielnamenerkennungsanalyse und Inferenzierung auf Benutzerrückmeldungsdaten in einer oder mehreren Einrichtungen 902, wie z.B. einem Datenzentrum, durchzuführen.
  • In mindestens einer Ausführungsform kann der Prozess 900 innerhalb eines Trainingssystems 904 und/oder eines Einsatzsystems 906 ausgeführt werden. In mindestens einer Ausführungsform kann das Trainingssystem 904 verwendet werden, um Training, Einsatz und Ausgestaltung von Modellen maschinellen Lernens (z.B. neuronaler Netzwerke, Objekterkennungsalgorithmen, Computer-Vision-Algorithmen usw.) zur Verwendung im Einsatzsystem 906 durchzuführen. In mindestens einer Ausführungsform kann das Einsatzsystem 906 dazu konfiguriert sein, Verarbeitungs- und Rechenressourcen auf eine verteilte Computerumgebung zu verteilen, um die Infrastrukturanforderungen in der Einrichtung 902 zu verringern. In mindestens einer Ausführungsform kann das Einsatzsystem 906 eine optimierte Plattform für die Auswahl, Anpassung und Implementierung virtueller Instrumente zur Verwendung mit Computergeräten in der Einrichtung 902 bereitstellen. In mindestens einer Ausführungsform können virtuelle Instrumente softwaredefinierte Anwendungen zur Durchführung einer oder mehrerer Verarbeitungsoperationen in Bezug auf Rückmeldedaten umfassen. In mindestens einer Ausführungsform können eine oder mehrere Anwendungen in einer Pipeline Dienste (z.B. Inferenz, Visualisierung, Berechnung, KI usw.) des Einsatzsystems 906 während der Ausführung von Anwendungen nutzen oder aufrufen.
  • In mindestens einer Ausführungsform können einige der Anwendungen, die in fortgeschrittenen Verarbeitungs- und Inferenz-Pipelines verwendet werden, Modelle maschinellen Lernens oder andere KI verwenden, um einen oder mehrere Verarbeitungsschritte durchzuführen. In mindestens einer Ausführungsform können Modelle maschinellen Lernens in der Einrichtung 902 unter Verwendung von in der Einrichtung 902 gespeicherten Rückmeldedaten 908 (wie z.B. Rückmeldedaten) oder von Rückmeldedaten 908 aus einer anderen Einrichtung oder anderen Einrichtungen oder einer Kombination davon trainiert werden. In mindestens einer Ausführungsform kann das Trainingssystem 904 verwendet werden, um Anwendungen, Dienste und/oder andere Ressourcen zur Erzeugung funktionierender, einsatzfähiger Modelle maschinellen Lernens für das Einsatzsystem 906 bereitzustellen.
  • In mindestens einer Ausführungsform kann eine Modellregistrierung 924 durch einen Objektspeicher unterstützt werden, der Versionierung und Objektmetadaten unterstützen kann. In mindestens einer Ausführungsform kann auf den Objektspeicher z.B. über eine kompatible Anwendungsprogrammierschnittstelle (API) innerhalb einer Cloud-Plattform zugegriffen werden (z.B. eine Cloud 1026 von 10). In mindestens einer Ausführungsform können Modelle maschinellen Lernens innerhalb der Modellregistrierung 924 von Entwicklern oder Partnern eines Systems, das mit einer API interagiert, hochgeladen, aufgelistet, geändert oder gelöscht werden. In mindestens einer Ausführungsform kann eine API Zugriff auf Verfahren bieten, die es Benutzern mit geeigneten Anmeldeinformationen ermöglichen, Modelle mit Anwendungen zu verknüpfen, sodass Modelle als Teil der Ausführung von containerisierten Instanziierungen von Anwendungen ausgeführt werden können.
  • In mindestens einer Ausführungsform kann eine Trainings-Pipeline 1004 (10) ein Szenario beinhalten, in dem die Einrichtung 902 ihr eigenes Modell maschinellen Lernens trainiert oder ein bestehendes Modell maschinellen Lernens hat, das optimiert oder aktualisiert werden muss. In mindestens einer Ausführungsform können Rückmeldungsdaten 908 aus verschiedenen Kanälen, wie beispielsweise Foren, Web-Formularen oder dergleichen, empfangen werden. In mindestens einer Ausführungsform kann nach dem Empfang von Rückmeldungsdaten 908 eine KI-gestützte Annotation 910 verwendet werden, um bei der Erzeugung von Annotationen zu helfen, die den Rückmeldungsdaten 908 entsprechen und als Basisdaten für ein Modell maschinellen Lernens verwendet werden. In mindestens einer Ausführungsform kann die KI-gestützte Annotation 910 ein oder mehrere Modelle maschinellen Lernens (z.B. faltende neuronale Netzwerke (CNNs)) beinhalten, die trainiert werden können, um Annotationen zu erzeugen, die bestimmten Arten von Rückmeldungsdaten 908 (z.B. von bestimmten Geräten) und/oder bestimmten Arten von Anomalien in Rückmeldungsdaten 908 entsprechen. In mindestens einer Ausführungsform können die KI-gestützten Annotationen 910 dann direkt verwendet oder mit einem Annotationswerkzeug angepasst oder feinabgestimmt werden, um Ground-Truth-Daten zu erzeugen. In mindestens einer Ausführungsform können in einigen Beispielen beschriftete Daten 912 als Ground-Truth-Daten für das Training eines Modells maschinellen Lernens verwendet werden. In mindestens einer Ausführungsform können KI-gestützte Anmerkungen 910, gelabelte Daten 912 oder eine Kombination davon als Ground-Truth-Daten für das Training eines Modells maschinellen Lernens verwendet werden. In mindestens einer Ausführungsform kann ein trainiertes Modell maschinellen Lernens als Ausgabemodell 916 bezeichnet werden und von dem Einsatzsystem 906, wie hier beschrieben, verwendet werden.
  • In mindestens einer Ausführungsform kann die Trainings-Pipeline 1004 (10) ein Szenario umfassen, in dem die Einrichtung 902 ein Modell maschinellen Lernens zur Verwendung bei der Durchführung einer oder mehrerer Verarbeitungsaufgaben für eine oder mehrere Anwendungen im Einsatzsystem 906 benötigt, aber die Einrichtung 902 derzeit möglicherweise nicht über ein solches Modell maschinellen Lernens verfügt (oder möglicherweise nicht über ein Modell verfügt, das für solche Zwecke optimiert, effizient oder effektiv ist). In mindestens einer Ausführungsform kann ein vorhandenes Modell maschinellen Lernens aus der Modellregistrierung 924 ausgewählt werden. In mindestens einer Ausführungsform kann die Modellregistrierung 924 Modelle für maschinelles Lernen enthalten, die für die Durchführung einer Vielzahl von unterschiedlichen Schlussfolgerungsaufgaben auf Bilddaten trainiert wurden. In mindestens einer Ausführungsform können die Modelle maschinellen Lernens in der Modellregistrierung 924 auf Bildgebungsdaten von anderen Einrichtungen als der Einrichtung 902 (z.B. Einrichtungen an einem anderen Standort) trainiert worden sein. In mindestens einer Ausführungsform können die Modelle maschinellen Lernens auf Bildgebungsdaten von einem Standort, zwei Standorten oder einer beliebigen Anzahl von Standorten trainiert worden sein. In mindestens einer Ausführungsform kann das Training, wenn es auf Bildgebungsdaten von einem bestimmten Standort trainiert wird, an diesem Standort stattfinden oder zumindest in einer Weise, die die Vertraulichkeit der Bildgebungsdaten schützt oder die Übertragung von Bildgebungsdaten außerhalb des Standorts einschränkt (z.B. zur Einhaltung von HIPAA-Bestimmungen, Datenschutzbestimmungen usw.). In mindestens einer Ausführungsform kann ein Modell für maschinelles Lernen, sobald es an einem Ort trainiert - oder teilweise trainiert - wurde, zur Modellregistrierung 924 hinzugefügt werden. In mindestens einer Ausführungsform kann ein Modell maschinellen Lernens dann an einer beliebigen Anzahl von anderen Einrichtungen neu trainiert oder aktualisiert werden, und kann ein neu trainiertes oder aktualisiertes Modell in der Modellregistrierung 924 verfügbar gemacht werden. In mindestens einer Ausführungsform kann ein Modell maschinellen Lernens dann aus der Modellregistrierung 924 ausgewählt - und als Ausgabemodell 916 bezeichnet - werden und im Einsatzsystem 906 verwendet werden, um eine oder mehrere Verarbeitungsaufgaben für eine oder mehrere Anwendungen eines Einsatzsystems durchzuführen.
  • In mindestens einer Ausführungsform kann die Trainings-Pipeline 1004 (10) in einem Szenario verwendet werden, in dem die Einrichtung 902 ein Modell maschinellen Lernens zur Verwendung bei der Durchführung einer oder mehrerer Verarbeitungsaufgaben für eine oder mehrere Anwendungen im Einsatzsystem 906 benötigt, aber die Einrichtung 902 verfügt möglicherweise derzeit nicht über ein solches Modell maschinellen Lernens (oder verfügt möglicherweise nicht über ein Modell, das für solche Zwecke optimiert, effizient oder effektiv ist). In mindestens einer Ausführungsform könnte ein aus dem Modellregister 924 ausgewähltes Modell maschinellen Lernens aufgrund von Unterschieden in den Populationen, genetischen Variationen, der Robustheit der zum Trainieren eines Modells maschinellen Lernens verwendeten Trainingsdaten, der Vielfalt der Anomalien der Trainingsdaten und/oder anderer Probleme mit den Trainingsdaten nicht für die in der Einrichtung 902 erzeugten Rückmeldungsdaten 908 feinabgestimmt oder optimiert sein. In mindestens einer Ausführungsform kann die KI-gestützte Annotation 910 verwendet werden, um bei der Erzeugung von Annotationen zu helfen, die den Rückmeldungsdaten 908 entsprechen und als Basisdaten für das Neutrainieren oder Aktualisieren eines Modells maschinellen Lernens verwendet werden. In mindestens einer Ausführungsform können beschriftete Daten 912 als Ground-Truth-Daten für das Training eines Modells maschinellen Lernens verwendet werden. In mindestens einer Ausführungsform kann das erneute Trainieren oder Aktualisieren eines Modells maschinellen Lernens als Modelltraining 914 bezeichnet werden. In mindestens einer Ausführungsform kann das Modelltraining 914 - z. B. KI-gestützte Anmerkungen 910, beschriftete Daten 912 oder eine Kombination davon - als Basiswahrheitsdaten für das Neutrainieren oder Aktualisieren eines Modells maschinellen Lernens verwendet werden.
  • In mindestens einer Ausführungsform kann das Einsatzsystem 906 Software 918, Dienste 920, Hardware 922 und/oder andere Komponenten, Merkmale und Funktionen enthalten. In mindestens einer Ausführungsform kann das Einsatzsystem 906 einen Software-„Stack“ enthalten derart, dass die Software 918 auf den Diensten 920 aufgebaut sein kann und die Dienste 920 zur Ausführung einiger oder aller Verarbeitungsaufgaben verwenden kann, und können die Dienste 920 und die Software 918 auf der Hardware 922 aufgebaut sein und die Hardware 922 zur Ausführung von Verarbeitungs-, Speicher- und/oder anderen Berechnungsaufgaben des Einsatzsystems 906 verwenden.
  • In mindestens einer Ausführungsform kann die Software 918 eine beliebige Anzahl von verschiedenen Containern enthalten, wobei jeder Container eine Instanziierung einer Anwendung ausführen kann. In mindestens einer Ausführungsform kann jede Anwendung eine oder mehrere Verarbeitungsaufgaben in einer erweiterten Verarbeitungs- und Inferenz-Pipeline durchführen (z.B. Inferenz, Objekterkennung, Merkmalserkennung, Segmentierung, Bildverbesserung, Kalibrierung usw.). In mindestens einer Ausführungsform kann es für jede Art von Rechengerät eine beliebige Anzahl von Containern geben, die eine Datenverarbeitungsaufgabe in Bezug auf Rückmeldungsdaten 908 (oder andere Datentypen, wie die hier beschriebenen) durchführen können. In mindestens einer Ausführungsform kann eine erweiterte Verarbeitungs- und Inferenz-Pipeline basierend auf der Auswahl verschiedener Container definiert werden, die für die Verarbeitung von Rückmeldungsdaten 908 gewünscht oder erforderlich sind, zusätzlich zu Containern, die Rückmeldungsdaten zur Verwendung durch jeden Container und/oder zur Verwendung durch die Einrichtung 902 nach der Verarbeitung durch eine Pipeline empfangen und konfigurieren (z.B. (z.B. zur Rückkonvertierung von Ausgaben in einen verwendbaren Datentyp zur Speicherung und Anzeige in der Einrichtung 902). In mindestens einer Ausführungsform kann eine Kombination von Containern innerhalb der Software 918 (die z.B. eine Pipeline bilden) als virtuelles Instrument bezeichnet werden (wie hierin ausführlicher beschrieben), und ein virtuelles Instrument kann Dienste 920 und Hardware 922 nutzen, um einige oder alle Verarbeitungsaufgaben von in Containern instanziierten Anwendungen auszuführen.
  • In mindestens einer Ausführungsform können die Daten als Teil der Datenverarbeitungs-Pipeline einer Vorverarbeitung unterzogen werden, um die Daten für die Verarbeitung durch eine oder mehrere Anwendungen vorzubereiten. In mindestens einer Ausführungsform kann eine Nachverarbeitung an einer Ausgabe von einer oder mehreren Inferenzaufgaben oder anderen Verarbeitungsaufgaben einer Pipeline durchgeführt werden, um Ausgabedaten für eine nächste Anwendung vorzubereiten und/oder Ausgabedaten für die Übertragung und/oder Verwendung durch einen Benutzer vorzubereiten (z.B. als Antwort auf eine Inferenzanforderung). In mindestens einer Ausführungsform können Inferenzaufgaben von einem oder mehreren Modelle maschinellen Lernens durchgeführt werden, z.B. von trainierten oder eingesetzten neuronalen Netzen, die Ausgabemodelle 916 des Trainingssystems 904 enthalten können.
  • In mindestens einer Ausführungsform können Aufgaben der DatenverarbeitungsPipeline in einem oder mehreren Containern gekapselt sein, die jeweils eine diskrete, voll funktionsfähige Instanziierung einer Anwendung und einer virtualisierten Rechenumgebung darstellen, die in der Lage ist, Modelle für maschinelles Lernen zu referenzieren. In mindestens einer Ausführungsform können Container oder Anwendungen in einem privaten (z.B. zugangsbeschränkten) Bereich einer Container-Registry bzw. -Registrierung (hierin ausführlicher beschrieben) veröffentlicht werden, und trainierte oder eingesetzte Modelle können in der Modell-Registry bzw. -Registrierung 924 gespeichert und mit einer oder mehreren Anwendungen verknüpft sein. In mindestens einer Ausführungsform können Bilder von Anwendungen (z.B. Container-Images) in einer Container-Registry verfügbar sein, und sobald sie von einem Benutzer aus einer Container-Registry für die Verwendung in einer Pipeline ausgewählt wurden, kann ein Image verwendet werden, um einen Container für eine Instanziierung einer Anwendung zur Verwendung durch das System eines Benutzers zu erzeugen.
  • In mindestens einer Ausführungsform können Entwickler Anwendungen (z.B. in Form von Containern) zur Durchführung von Verarbeitung und/oder Inferenzierung auf bereitgestellte Daten entwickeln, veröffentlichen und speichern. In mindestens einer Ausführungsform kann die Entwicklung, Veröffentlichung und/oder Speicherung unter Verwendung eines Softwareentwicklungskits (SDK) erfolgen, das mit einem System verbunden ist (z.B. um sicherzustellen, dass eine entwickelte Anwendung und/oder ein entwickelter Container mit einem System konform oder kompatibel ist). In mindestens einer Ausführungsform kann eine entwickelte Anwendung lokal (z.B. in einer ersten Einrichtung, auf Daten von einer ersten Einrichtung) mit einem SDK getestet werden, das mindestens einige der Dienste 920 als System unterstützen kann (z.B. System 1000 von 10). In mindestens einer Ausführungsform kann eine Anwendung, nachdem sie von dem System 1000 validiert wurde (z.B. im Hinblick auf Genauigkeit usw.), in einer Container-Registry zur Auswahl und/oder Ausführung durch einen Benutzer (z.B. ein Krankenhaus, eine Klinik, ein Labor, einen Gesundheitsdienstleister usw.) verfügbar sein, um eine oder mehrere Verarbeitungsaufgaben in Bezug auf Daten in einer Einrichtung (z.B. einer zweiten Einrichtung) eines Benutzers durchzuführen.
  • In mindestens einer Ausführungsform können Entwickler dann Anwendungen oder Container über ein Netzwerk für den Zugriff und die Verwendung durch Benutzer eines Systems freigeben (z.B. System 1000 von 10). In mindestens einer Ausführungsform können fertige und validierte Anwendungen oder Container in einer Container-Registry gespeichert sein, und können zugehörige Modelle maschinellen Lernens in der Modell-Registry 924 gespeichert sein. In mindestens einer Ausführungsform kann eine anfragende Entität - die eine Inferenz- oder Bildverarbeitungsanforderung stellt - eine Container-Registry und/oder Modell-Registry 924 nach einer Anwendung, einem Container, einem Datensatz, einem Modell maschinellen Lernens usw. durchsuchen, eine gewünschte Kombination von Elementen zur Aufnahme in die Datenverarbeitungs-Pipeline auswählen und eine Verarbeitungsanforderung übermitteln. In mindestens einer Ausführungsform kann eine Anforderung Eingabedaten enthalten, die zur Durchführung einer Anforderung erforderlich sind, und/oder eine Auswahl von Anwendungen und/oder Modelle maschinellen Lernens enthalten, die bei der Verarbeitung einer Anforderung ausgeführt werden sollen. In mindestens einer Ausführungsform kann eine Anforderung dann an eine oder mehrere Komponenten des Einsatzsystems 906 (z.B. eine Cloud) weitergeleitet werden, um die Verarbeitung der Datenverarbeitungs-Pipeline durchzuführen. In mindestens einer Ausführungsform kann die Verarbeitung durch das Einsatzsystem 906 das Referenzieren ausgewählter Elemente (z.B. Anwendungen, Container, Modelle usw.) aus einer Container-Registry und/oder Model-Registry 924 umfassen. In mindestens einer Ausführungsform können die Ergebnisse, sobald sie von einer Pipeline erzeugt wurden, an einen Benutzer als Referenz zurückgegeben werden (z.B. zur Anzeige in einer Anzeigeanwendungssuite, die auf einer lokalen, lokalen Workstation oder einem Terminal ausgeführt wird).
  • In mindestens einer Ausführungsform können zur Unterstützung der Verarbeitung oder Ausführung von Anwendungen oder Containern in Pipelines Dienste 920 genutzt werden. In mindestens einer Ausführungsform können die Dienste 920 Rechendienste, Dienste für künstliche Intelligenz (KI), Visualisierungsdienste und/oder andere Diensttypen umfassen. In mindestens einer Ausführungsform können Dienste 920 Funktionalität bereitstellen, die einer oder mehreren Anwendungen in der Software 918 gemeinsam ist, so dass die Funktionalität zu einem Dienst abstrahiert werden kann, der von Anwendungen aufgerufen oder genutzt werden kann. In mindestens einer Ausführungsform kann die von den Diensten 920 bereitgestellte Funktionalität dynamisch und effizienter ablaufen, während sie auch gut skaliert, indem sie Anwendungen die parallele Verarbeitung von Daten ermöglicht (z.B. unter Verwendung einer Plattform für paralleles Rechnen bzw. Parallelrechenplattform 1030 (10)). In mindestens einer Ausführungsform muss nicht jede Anwendung, die dieselbe von einem Dienst 920 angebotene Funktionalität nutzt, über eine entsprechende Instanz des Dienstes 920 verfügen, sondern kann der Dienst 920 von und zwischen verschiedenen Anwendungen gemeinsam genutzt werden. In mindestens einer Ausführungsform können die Dienste einen Inferenzserver oder eine Inferenz-Engine enthalten, die zur Ausführung von Erkennungs- oder Segmentierungsaufgaben verwendet werden können, als nicht beschränkende Beispiele. In mindestens einer Ausführungsform kann ein Modelltrainingsdienst enthalten sein, der Funktionen zum Trainieren und/oder erneuten Trainieren von Modellen maschinellen Lernens bereitstellt.
  • In mindestens einer Ausführungsform, in der ein Dienst 920 einen KI-Dienst (z.B. einen Inferenzdienst) enthält, können ein oder mehrere Modelle maschinellen Lernens, die mit einer Anwendung zur Erkennung von Anomalien (z.B. Tumoren, Wachstumsanomalien, Narbenbildung usw.) verbunden sind, ausgeführt werden, indem ein Inferenzdienst (z.B. ein Inferenzserver) aufgerufen wird (z.B. als API-Aufruf), um Modelle maschinellen Lernens oder deren Verarbeitung als Teil der Anwendungsausführung auszuführen. In mindestens einer Ausführungsform, in der eine andere Anwendung ein oder mehrere Modelle maschinellen Lernens für Segmentierungsaufgaben enthält, kann eine Anwendung einen Inferenzdienst aufrufen, um Modelle maschinellen Lernens auszuführen, um eine oder mehrere der mit Segmentierungsaufgaben verbundenen Verarbeitungsoperationen durchzuführen. In mindestens einer Ausführungsform kann die Software 918, die eine erweiterte Verarbeitungs- und Inferenz-Pipeline implementiert, rationalisiert werden, da jede Anwendung denselben Inferenzdienst aufrufen kann, um eine oder mehrere Inferenzaufgaben durchzuführen.
  • In mindestens einer Ausführungsform kann Hardware 922 GPUs, CPUs, DPUs, Grafikkarten, ein KI-/Deep-Learning-System (z.B. ein KI-Supercomputer, wie das DGX-Supercomputersystem von NVIDIA), eine Cloud-Plattform oder eine Kombination davon umfassen. In mindestens einer Ausführungsform können verschiedene Arten von Hardware 922 verwendet werden, um effiziente, zweckmäßige Unterstützung für Software 918 und Dienste 920 im Einsatzsystem 906 bereitzustellen. In mindestens einer Ausführungsform kann die Verwendung von GPU-Verarbeitung für die Verarbeitung lokal (z.B. in der Einrichtung 902), innerhalb eines KI/Deep-Learning-Systems, in einem Cloud-System und/oder in anderen Verarbeitungskomponenten des Einsatzsystems 906 implementiert sein, um die Effizienz, Genauigkeit und Wirksamkeit einer Spielnamenerkennung zu verbessern.
  • In mindestens einer Ausführungsform können die Software 918 und/oder die Dienste 920 für die GPU-Verarbeitung im Hinblick auf Deep Learning, maschinelles Lernen und/oder Hochleistungsrechnen optimiert sein, als nicht beschränkende Beispiele. In mindestens einer Ausführungsform kann mindestens ein Teil der Rechenumgebung des Einsatzsystems 906 und/oder des Trainingssystems 904 in einem Rechenzentrum auf einem oder mehreren Supercomputern oder Hochleistungsrechnern mit GPU-optimierter Software (z.B. Hardware- und Softwarekombination des DGX-Systems von NVIDIA) ausgeführt werden. In mindestens einer Ausführungsform kann die Hardware 922 eine beliebige Anzahl von GPUs umfassen, die zur parallelen Verarbeitung von Daten, wie hier beschrieben, herangezogen werden können. In mindestens einer Ausführungsform kann die Cloud-Plattform außerdem eine GPU-Verarbeitung für die GPU-optimierte Ausführung von Deep-Learning-Aufgaben, maschinellen Lernaufgaben oder anderen Rechenaufgaben umfassen. In mindestens einer Ausführungsform kann die Cloud-Plattform (z.B. NVIDIAs NGC) unter Verwendung eines oder mehrerer KI/Deep-Learning-Supercomputer und/oder GPU-optimierter Software (z.B. wie auf NVIDIAs DGX-Systemen) als Hardware-Abstraktions- und Skalierungsplattform ausgeführt werden. In mindestens einer Ausführungsform kann die Cloud-Plattform ein Anwendungscontainer-Clustering-System oder Orchestrierungssystem (z.B. KUBER-NETES) auf mehreren GPUs integrieren, um eine nahtlose Skalierung und Lastverteilung zu ermöglichen.
  • 10 ist ein Systemdiagramm für ein Beispielsystem 1000 zum Erzeugen und Einsetzen einer Einsatz-Pipeline gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann das System 1000 verwendet werden, um den Prozess 900 von 9 und/oder andere Prozesse, einschließlich erweiterter Verarbeitungs- und Inferenz-Pipelines, zu implementieren. In mindestens einer Ausführungsform kann das System 1000 das Trainingssystem 904 und das Einsatzsystem 906 umfassen. In mindestens einer Ausführungsform können das Trainingssystem 904 und das Einsatzsystem 906 unter Verwendung von Software 918, Diensten 920 und/oder Hardware 922 implementiert sein, wie hierin beschrieben.
  • In mindestens einer Ausführungsform kann das System 1000 (z.B. das Trainingssystem 904 und/oder das Einsatzsystem 906) in einer Cloud-Computing-Umgebung implementiert sein (z.B. unter Verwendung der Cloud 1026). In mindestens einer Ausführungsform kann das System 1000 lokal in Bezug auf eine Einrichtung oder als eine Kombination aus Cloud- und lokalen Rechenressourcen implementiert sein. In mindestens einer Ausführungsform kann der Zugriff auf die APIs in der Cloud 1026 durch erlassene Sicherheitsmaßnahmen oder -protokolle auf autorisierte Benutzer beschränkt werden. In mindestens einer Ausführungsform kann ein Sicherheitsprotokoll Web-Token enthalten, die von einem Authentifizierungsdienst (z.B. AuthN, AuthZ, Gluecon usw.) signiert sein können und eine entsprechende Autorisierung tragen können. In mindestens einer Ausführungsform können APIs virtueller Instrumente (wie hier beschrieben) oder andere Instanziierungen des Systems 1000 auf einen Satz öffentlicher IPs beschränkt sein, die für die Interaktion überprüft oder autorisiert wurden.
  • In mindestens einer Ausführungsform können verschiedene Komponenten des Systems 1000 unter Verwendung einer Vielzahl verschiedener Netzwerktypen untereinander kommunizieren, einschließlich, aber nicht beschränkt auf lokale Netzwerke (LANs) und/oder Weitverkehrsnetzwerke (WANs) über verdrahtete und/oder drahtlose Kommunikationsprotokolle. In mindestens einer Ausführungsform kann die Kommunikation zwischen Einrichtungen und Komponenten des Systems 1000 (z.B. zum Übertragen von Ableitungsanforderungen, zum Empfangen von Ergebnissen von Ableitungsanforderungen usw.) über einen Datenbus oder Datenbusse, drahtlose Datenprotokolle (Wi-Fi), verdrahtete Datenprotokolle (z.B. Ethernet) usw. erfolgen.
  • In mindestens einer Ausführungsform kann das Trainingssystem 904 Trainings-Pipelines 1004 ausführen, ähnlich denen, die hier in Bezug auf 9 beschrieben sind. In mindestens einer Ausführungsform, in der ein oder mehrere Modelle maschinellen Lernens in Einsatz-Pipelines 1010 durch das Einsatzsystem 906 verwendet werden sollen, können die Trainings-Pipelines 1004 verwendet werden, um ein oder mehrere (z.B. vortrainierte) Modelle zu trainieren oder neu zu trainieren und/oder ein oder mehrere der vortrainierten Modelle 1006 zu implementieren (z.B. ohne die Notwendigkeit eines erneuten Trainings oder einer Aktualisierung). In mindestens einer Ausführungsform können als Ergebnis der Trainings-Pipelines 1004 Ausgabemodell(e) 916 erzeugt werden. In mindestens einer Ausführungsform können die Trainings-Pipelines 1004 eine beliebige Anzahl von Verarbeitungsschritten, KI-gestützte Annotation 910, Beschriftung oder Annotation von Rückmeldungsdaten 908, um beschriftete Daten 912 zu erzeugen, Modellauswahl aus einer Modellregistrierung, Modelltraining 914, Training, Neutraining oder Aktualisierung von Modellen und/oder andere Verarbeitungsschritte umfassen. In mindestens einer Ausführungsform können für unterschiedliche Modelle maschinellen Lernens, die von dem Einsatzsystem 906 verwendet werden, unterschiedliche Trainings-Pipelines 1004 verwendet werden. In mindestens einer Ausführungsform kann für ein erstes Modell maschinellen Lernens eine Trainings-Pipeline 1004 verwendet werden, die einem ersten Beispiel ähnlich ist, das in Bezug auf 9 beschrieben ist, für ein zweites Modell maschinellen Lernens kann eine Trainings-Pipeline 1004 verwendet werden, die einem zweiten Beispiel ähnlich ist, das in Bezug auf 9 beschrieben ist, und für ein drittes Modell maschinellen Lernens kann eine Trainings-Pipeline 1004 verwendet werden, die einem dritten Beispiel ähnlich ist, das in Bezug auf 9 beschrieben ist. In mindestens einer Ausführungsform kann eine beliebige Kombination von Aufgaben innerhalb des Trainingssystems 904 verwendet werden, je nachdem, was für jedes jeweilige Modell maschinellen Lernens erforderlich ist. In mindestens einer Ausführungsform können eines oder mehrere der Modelle maschinellen Lernens bereits trainiert und einsatzbereit sein, so dass die Modelle maschinellen Lernens keiner Verarbeitung durch das Trainingssystem 904 unterzogen und durch das Einsatzsystem 906 implementiert sein können.
  • In mindestens einer Ausführungsform können das/die Ausgabemodell(e) 916 und/oder das/die vortrainierte(n) Modell(e) 1006 alle Arten von Modellen maschinellen Lernens umfassen, je nach Ausgestaltung oder Ausführungsform. In mindestens einer Ausführungsform und, ohne darauf beschränkt zu sein, können die von dem System 1000 verwendeten Modelle maschinellen Lernens Modelle maschinellen Lernens unter Verwendung von linearer Regression, logistischer Regression, Entscheidungsbäumen, Support-Vektor-Maschinen (SVM), Naive Bayes, k-nächster Nachbar (Knn), K-Mittel-Clustering, Random Forest, Dimensionalitätsreduktionsalgorithmen, Gradient-Boosting-Algorithmen, neuronalen Netzen (z.B. Autokodierer, Autokodierer, neuronale Netze) umfassen z.B. Autokodierer, Faltungsalgorithmen, rekurrente Algorithmen, Perceptrons, Long/Short Term Memory (LSTM), Bi-LSTM, Hopfield, Boltzmann, Deep Belief, Deconvolutional, Generative Adversarial, Liquid State Machine usw.) und/oder andere Arten von Machine-Learning-Modellen.
  • In mindestens einer Ausführungsform können die Trainings-Pipelines 1004 eine KI-gestützte Annotation umfassen. In mindestens einer Ausführungsform können beschriftete Daten 912 (z.B. traditionelle Annotation) durch eine beliebige Anzahl von Techniken erzeugt werden. In mindestens einer Ausführungsform können Beschriftungen oder andere Anmerkungen in einem Zeichenprogramm (z.B. einem Anmerkungsprogramm), einem CAD-Programm (Computer Aided Design), einem Beschriftungsprogramm, einem anderen Programmtyp, der für die Erzeugung von Anmerkungen oder Beschriftungen für die Ground-Truth geeignet ist, erzeugt werden und/oder in einigen Beispielen von Hand gezeichnet werden. In mindestens einer Ausführungsform können die Ground-Truth-Daten synthetisch erzeugt werden (z.B. aus Computermodellen oder Renderings), real erzeugt werden (z.B. aus realen Daten entworfen und erzeugt werden), maschinell automatisiert werden (z.B. unter Verwendung von Merkmalsanalyse und Lernen, um Merkmale aus Daten zu extrahieren und dann Beschriftungen zu erzeugen), von Menschen beschriftet werden (z.B. Beschrifter oder Beschriftungsexperte, der die Position der Beschriftungen definiert) und/oder eine Kombination davon. In mindestens einer Ausführungsform kann es für jede Instanz von Rückmeldungsdaten 908 (oder anderen Datentypen, die von Modelle maschinellen Lernens verwendet werden) entsprechende Grundwahrheits- bzw. Ground-Truth-Daten geben, die von dem Trainingssystem 904 erzeugt werden. In mindestens einer Ausführungsform kann die KI-gestützte Annotation als Teil der Einsatz-Pipelines 1010 durchgeführt werden; entweder zusätzlich zu oder anstelle der KI-gestützten Annotation, die in den Trainings-Pipelines 1004 enthalten ist. In mindestens einer Ausführungsform kann das System 1000 eine mehrschichtige Plattform umfassen, die eine Softwareschicht (z.B. Software 918) von Diagnoseanwendungen (oder anderen Anwendungstypen) enthalten kann, die eine oder mehrere medizinische Bildgebungs- und Diagnosefunktionen ausführen können.
  • In mindestens einer Ausführungsform kann eine Softwareschicht als sichere, verschlüsselte und/oder authentifizierte API implementiert sein, über die Anwendungen oder Container aus einer externen Umgebung (z.B. Einrichtung 902) aufgerufen werden können. In mindestens einer Ausführungsform können Anwendungen dann einen oder mehrere Dienste 920 aufrufen oder ausführen, um Rechen-, KI- oder Visualisierungsaufgaben auszuführen, die mit den jeweiligen Anwendungen verbunden sind, und die Software 918 und/oder die Dienste 920 können die Hardware 922 nutzen, um Verarbeitungsaufgaben auf effektive und effiziente Weise auszuführen.
  • In mindestens einer Ausführungsform kann das Einsatzsystem 906 Einsatz-Pipelines 1010 ausführen. In mindestens einer Ausführungsform können Einsatz-Pipelines 1010 eine beliebige Anzahl von Anwendungen enthalten, die sequenziell, nicht sequenziell oder auf andere Weise auf Rückmeldungsdaten (und/oder andere Datentypen) angewendet werden können - einschließlich KI-gestützter Annotation, wie vorstehend beschrieben. In mindestens einer Ausführungsform, wie hierin beschrieben, kann eine Einsatz-Pipeline 1010 für ein einzelnes Gerät als virtuelles Instrument für ein Gerät bezeichnet werden. In mindestens einer Ausführungsform kann es für ein einzelnes Gerät mehr als eine Einsatz-Pipeline 1010 geben, je nachdem, welche Informationen aus den von einem Gerät erzeugten Daten gewünscht werden.
  • In mindestens einer Ausführungsform können die für die Einsatz-Pipelines 1010 verfügbaren Anwendungen alle Anwendungen umfassen, die für die Durchführung von Verarbeitungsaufgaben an Rückmeldungsdaten oder anderen Daten von Geräten verwendet werden können. Da in mindestens einer Ausführungsform verschiedene Anwendungen gemeinsame Bildoperationen durchführen können, kann in einigen Ausführungsformen eine Datenerweiterungsbibliothek (z.B. als einer der Dienste 920) zur Beschleunigung dieser Operationen verwendet werden. In mindestens einer Ausführungsform kann zur Vermeidung von Engpässen bei herkömmlichen Verarbeitungsansätzen, die sich auf die CPU-Verarbeitung stützen, die parallele Rechenplattform 1030 zur GPU-Beschleunigung dieser Verarbeitungsaufgaben verwendet werden.
  • In mindestens einer Ausführungsform kann das Einsatzsystem 906 eine Benutzerschnittstelle 1014 (z.B. eine grafische Benutzerschnittstelle, eine Webschnittstelle usw.) enthalten, die verwendet werden kann, um Anwendungen zur Aufnahme in die Einsatz-Pipeline(s) 1010 auszuwählen, Anwendungen anzuordnen, Anwendungen oder Parameter oder Konstrukte davon zu modifizieren oder zu ändern, die Einsatz-Pipeline(s) 1010 während der Einrichtung und/oder Bereitstellung zu verwenden und mit ihr zu interagieren und/oder anderweitig mit dem Einsatzsystem 906 zu interagieren. In mindestens einer Ausführungsform, die jedoch in Bezug auf das Trainingssystem 904 nicht dargestellt ist, kann die Benutzerschnittstelle 1014 (oder eine andere Benutzerschnittstelle) zur Auswahl von Modellen für die Verwendung im Einsatzsystem 906, zur Auswahl von Modellen für das Training oder das erneute Training im Trainingssystem 904 und/oder zur sonstigen Interaktion mit dem Trainingssystem 904 verwendet werden.
  • In mindestens einer Ausführungsform kann ein Pipeline-Verwalter 1012 zusätzlich zu einem Anwendungs-Orchestrierungssystem 1028 verwendet werden, um die Interaktion zwischen Anwendungen oder Containern der Einsatz-Pipeline(s) 1010 und Diensten 920 und/oder Hardware 922 zu verwalten. In mindestens einer Ausführungsform kann der Pipeline-Verwalter 1012 dazu konfiguriert sein, die Interaktion von Anwendung zu Anwendung, von Anwendung zu Dienst 920 und/oder von Anwendung oder Dienst zu Hardware 922 zu erleichtern. In mindestens einer Ausführungsform ist der Pipeline-Verwalter 1012 in den Diensten 920 enthalten, obwohl er in der Software 918 enthalten ist, was jedoch nicht als Beschränkung zu verstehen ist. In mindestens einer Ausführungsform kann das Anwendungs-Orchestrierungssystem 1028 (z.B. Kubernetes, DOCKER usw.) ein Container-Orchestrierungssystem umfassen, das Anwendungen in Containern als logische Einheiten für die Koordination, Verwaltung, Skalierung und Bereitstellung gruppieren kann. In mindestens einer Ausführungsform kann durch die Zuordnung von Anwendungen aus der/den Einsatz-Pipeline(s) 1010 (z.B. eine Rekonstruktionsanwendung, eine Segmentierungsanwendung usw.) zu einzelnen Containern jede Anwendung in einer in sich geschlossenen Umgebung (z.B. auf Kernel-Ebene) ausgeführt werden, um die Geschwindigkeit und Effizienz zu erhöhen.
  • In mindestens einer Ausführungsform kann jede Anwendung und/oder jeder Container (oder ein Image davon) individuell entwickelt, modifiziert und bereitgestellt werden (z.B. kann ein erster Benutzer oder Entwickler eine erste Anwendung entwickeln, modifizieren und bereitstellen, und ein zweiter Benutzer oder Entwickler kann eine zweite Anwendung separat von einem ersten Benutzer oder Entwickler entwickeln, modifizieren und bereitstellen), was die Konzentration auf und die Aufmerksamkeit für eine Aufgabe einer einzelnen Anwendung und/oder eines einzelnen Containers ermöglichen kann, ohne durch Aufgaben einer anderen Anwendung oder eines anderen Containers behindert zu werden. In mindestens einer Ausführungsform kann die Kommunikation und Zusammenarbeit zwischen verschiedenen Containern oder Anwendungen durch den Pipeline-Verwalter 1012 und das Anwendungs-Orchestrierungssystem 1028 unterstützt werden. In mindestens einer Ausführungsform kann, solange eine erwartete Eingabe und/oder Ausgabe jedes Containers oder jeder Anwendung einem System bekannt ist (z.B. auf der Grundlage von Konstrukten von Anwendungen oder Containern), das Anwendungs-Orchestrierungssystem 1028 und/oder der Pipeline-Verwalter 1012 die Kommunikation unter und zwischen den Anwendungen oder Containern und die gemeinsame Nutzung von Ressourcen unter und zwischen ihnen erleichtern. In mindestens einer Ausführungsform können eine oder mehrere Anwendungen oder Container in der/den Einsatz-Pipeline(s) 1010 dieselben Dienste und Ressourcen gemeinsam nutzen, so dass das Anwendungs-Orchestrierungssystem 1028 die gemeinsame Nutzung von Diensten oder Ressourcen zwischen verschiedenen Anwendungen oder Containern orchestrieren, ausgleichen und festlegen kann. In mindestens einer Ausführungsform kann ein Scheduler verwendet werden, um die Ressourcenanforderungen von Anwendungen oder Containern, die aktuelle oder geplante Nutzung dieser Ressourcen und die Ressourcenverfügbarkeit zu verfolgen. In mindestens einer Ausführungsform kann ein Scheduler auf diese Weise verschiedenen Anwendungen Ressourcen zuweisen und Ressourcen zwischen und unter Anwendungen im Hinblick auf die Anforderungen und die Verfügbarkeit eines Systems verteilen. In einigen Beispielen kann ein Scheduler (und/oder eine andere Komponente des Anwendungs-Orchestrierungssystems 1028) die Ressourcenverfügbarkeit und -verteilung auf der Grundlage von Beschränkungen bestimmen, die einem System auferlegt werden (z.B. Benutzerbeschränkungen), wie z.B. Dienstgüte (QoS), Dringlichkeit des Bedarfs an Datenausgaben (z.B. um zu bestimmen, ob Echtzeitverarbeitung oder verzögerte Verarbeitung ausgeführt werden soll) usw.
  • In mindestens einer Ausführungsform können die Dienste 920, die von Anwendungen oder Containern im Einsatzsystem 906 genutzt und gemeinsam verwendet werden, Rechendienste 1016, KI-Dienste 1018, Visualisierungsdienste 1020 und/oder andere Diensttypen umfassen. In mindestens einer Ausführungsform können Anwendungen einen oder mehrere der Dienste 920 aufrufen (z.B. ausführen), um Verarbeitungsvorgänge für eine Anwendung durchzuführen. In mindestens einer Ausführungsform können die Rechendienste 1016 von Anwendungen genutzt werden, um Supercomputing- oder andere High-Performance-Computing (HPC)-Aufgaben auszuführen. In mindestens einer Ausführungsform kann/können der/die Rechendienst(e) 1016 genutzt werden, um eine parallele Verarbeitung (z.B. unter Verwendung einer parallelen Rechenplattform 1030) zur Verarbeitung von Daten durch eine oder mehrere Anwendungen und/oder eine oder mehrere Aufgaben einer einzelnen Anwendung im Wesentlichen gleichzeitig durchzuführen. In mindestens einer Ausführungsform kann die parallele Datenverarbeitungsplattform 1030 (z.B. NVIDIAs CUDA) Allzweck-Computing auf GPUs (z.B. GPUs 1022) ermöglichen. In mindestens einer Ausführungsform kann eine Softwareschicht der parallelen Rechenplattform 1030 Zugriff auf virtuelle Befehlssätze und parallele Rechenelemente von GPUs für die Ausführung von Rechenkernen bieten. In mindestens einer Ausführungsform kann die parallele Rechenplattform 1030 Speicher enthalten, und in einigen Ausführungsformen kann ein Speicher zwischen mehreren Containern und/oder zwischen verschiedenen Verarbeitungsaufgaben innerhalb eines einzelnen Containers gemeinsam genutzt werden. In mindestens einer Ausführungsform können IPC-Aufrufe (Inter-Process Communication) für mehrere Container und/oder für mehrere Prozesse innerhalb eines Containers erzeugt werden, um dieselben Daten aus einem gemeinsam genutzten Speichersegment der parallelen Rechenplattform 1030 zu verwenden (z.B. wenn mehrere verschiedene Stufen einer Anwendung oder mehrere Anwendungen dieselben Informationen verarbeiten). In mindestens einer Ausführungsform können dieselben Daten an derselben Stelle eines Speichers für eine beliebige Anzahl von Verarbeitungsaufgaben verwendet werden (z.B. zur selben Zeit, zu verschiedenen Zeiten usw.), anstatt eine Kopie der Daten zu erstellen und die Daten an verschiedene Stellen im Speicher zu verschieben (z.B. eine Lese-/Schreiboperation). In mindestens einer Ausführungsform können bei der Verwendung von Daten zur Erzeugung neuer Daten als Ergebnis der Verarbeitung diese Informationen über einen neuen Speicherort der Daten gespeichert und von verschiedenen Anwendungen gemeinsam genutzt werden. In mindestens einer Ausführungsform können der Speicherort von Daten und der Speicherort von aktualisierten oder geänderten Daten Teil einer Definition sein, wie eine Nutzlast innerhalb von Containern zu verstehen ist.
  • In mindestens einer Ausführungsform können die KI-Dienste 1018 genutzt werden, um Inferenzdienste für die Ausführung von Modellen maschinellen Lernens durchzuführen, die Anwendungen zugeordnet sind (z.B. mit der Aufgabe, eine oder mehrere Verarbeitungsaufgaben einer Anwendung auszuführen). In mindestens einer Ausführungsform können die KI-Dienste 1018 das KI-System 1024 nutzen, um Modelle maschinellen Lernens (z.B. neuronale Netzwerke wie CNNs) für Segmentierung, Rekonstruktion, Objekterkennung, Merkmalserkennung, Klassifizierung und/oder andere Inferenzaufgaben auszuführen. In mindestens einer Ausführungsform können die Anwendungen der Einsatz-Pipeline(s) 1010 eines oder mehrere der Ausgabemodelle 916 aus dem Trainingssystem 904 und/oder andere Modelle von Anwendungen verwenden, um Schlussfolgerungen aus Bildgebungsdaten (z.B. DICOM-Daten, RIS-Daten, CIS-Daten, REST-konforme Daten, RPC-Daten, Rohdaten usw.) zu ziehen. In mindestens einer Ausführungsform können zwei oder mehr Beispiele für die Inferenzierung unter Verwendung des Anwendungs-Orchestrierungssystems 1028 (z.B. ein Scheduler) verfügbar sein. In mindestens einer Ausführungsform kann eine erste Kategorie einen Pfad mit hoher Priorität/geringer Latenz umfassen, der höhere Service Level Agreements erreichen kann, z.B. für die Durchführung von Inferenzen bei dringenden Anfragen während eines Notfalls oder für einen Radiologen während der Diagnose. In mindestens einer Ausführungsform kann eine zweite Kategorie einen Pfad mit Standardpriorität umfassen, der für Anfragen verwendet werden kann, die nicht dringlich sind oder bei denen die Analyse zu einem späteren Zeitpunkt durchgeführt werden kann. In mindestens einer Ausführungsform kann das Anwendungs-Orchestrierungssystem 1028 Ressourcen (z.B. Dienste 920 und/oder Hardware 922) auf der Grundlage von Prioritätspfaden für verschiedene Inferenzaufgaben der KI-Dienste 1018 verteilen.
  • In mindestens einer Ausführungsform kann ein gemeinsam genutzter Speicher in die KI-Dienste 1018 innerhalb des Systems 1000 eingebunden sein. In mindestens einer Ausführungsform kann der gemeinsam genutzte Speicher als ein Cache (oder ein anderer Speichergerätetyp) fungieren und zur Verarbeitung von Inferenzanforderungen von Anwendungen verwendet werden. In mindestens einer Ausführungsform kann bei der Übermittlung einer Inferenzanforderung eine Anforderung von einer Reihe von API-Instanzen des Einsatzsystems 906 empfangen werden, und können eine oder mehrere Instanzen ausgewählt werden (z.B. für die beste Anpassung, für den Lastausgleich usw.), um eine Anforderung zu verarbeiten. In mindestens einer Ausführungsform kann zur Verarbeitung einer Anforderung eine Anforderung in eine Datenbank eingegeben werden, kann ein Modell maschinellen Lernens aus der Modellregistrierung 924 gefunden werden, wenn es sich nicht bereits in einem Cache befindet, kann ein Validierungsschritt sicherstellen, dass ein geeignetes Modell maschinellen Lernens in einen Cache (z.B. einen gemeinsamen Speicher) geladen wird, und/oder kann eine Kopie eines Modells in einem Cache gespeichert werden. In mindestens einer Ausführungsform kann ein Scheduler (z.B. der Pipeline-Verwalter 1012) verwendet werden, um eine Anwendung zu starten, auf die in einer Anforderung verwiesen wird, wenn eine Anwendung noch nicht läuft oder wenn nicht genügend Instanzen einer Anwendung vorhanden sind. In mindestens einer Ausführungsform kann ein Inferenzserver gestartet werden, wenn er noch nicht gestartet ist, um ein Modell auszuführen. In mindestens einer Ausführungsform kann eine beliebige Anzahl von Inferenzservern pro Modell gestartet werden. In mindestens einer Ausführungsform können in einem Pull-Modell, in dem die Inferenzserver geclustert sind, die Modelle zwischengespeichert werden, wenn ein Lastausgleich vorteilhaft ist. In mindestens einer Ausführungsform können Inferenzserver statisch in entsprechende, verteilte Server geladen werden.
  • In mindestens einer Ausführungsform kann die Inferenzierung mit Hilfe eines Inferenzservers durchgeführt werden, der in einem Container läuft. In mindestens einer Ausführungsform kann eine Instanz eines Inferenzservers einem Modell (und optional einer Vielzahl von Versionen eines Modells) zugeordnet sein. In mindestens einer Ausführungsform kann eine neue Instanz eines Inferenzservers geladen werden, wenn eine Anforderung zur Durchführung einer Inferenz an einem Modell nicht vorhanden ist. In mindestens einer Ausführungsform kann beim Starten eines Inferenzservers ein Modell an einen Inferenzserver übergeben werden, so dass ein und derselbe Container zur Bedienung verschiedener Modelle verwendet werden kann, solange der Inferenzserver als eine andere Instanz läuft.
  • In mindestens einer Ausführungsform kann während der Anwendungsausführung eine Inferenzanforderung für eine bestimmte Anwendung empfangen werden, und kann ein Container (z.B. mit einer Instanz eines Inferenzservers) geladen werden (falls noch nicht geschehen), und kann eine Startprozedur aufgerufen werden. In mindestens einer Ausführungsform kann die Vorverarbeitungslogik in einem Container eingehende Daten laden, dekodieren und/oder eine zusätzliche Vorverarbeitung durchführen (z.B. unter Verwendung von CPU(s) und/oder GPU(s) und/oder DPU(s)). In mindestens einer Ausführungsform kann ein Container, sobald die Daten für die Inferenz vorbereitet sind, die Inferenz wie erforderlich an den Daten durchführen. In mindestens einer Ausführungsform kann dies einen einzigen Inferenzaufruf für ein Bild (z.B. ein Handröntgenbild) umfassen oder eine Inferenz für Hunderte von Bildern (z.B. ein Brust-CT) erfordern. In mindestens einer Ausführungsform kann eine Anwendung die Ergebnisse vor der Fertigstellung zusammenfassen, was, ohne darauf beschränkt zu sein, einen einzelnen Konfidenzwert, eine Segmentierung auf Pixelebene, eine Segmentierung auf Voxel-Ebene, die Erstellung einer Visualisierung oder die Erstellung von Text zur Zusammenfassung der Ergebnisse umfassen kann. In mindestens einer Ausführungsform können verschiedenen Modellen oder Anwendungen unterschiedliche Prioritäten zugewiesen werden. Zum Beispiel können einige Modelle eine Echtzeitpriorität (TAT weniger als eine Minute) haben, während andere eine niedrigere Priorität haben (z.B. TAT weniger als 10 Minuten). In mindestens einer Ausführungsform kann die Ausführungszeit des Modells von der anfragenden Institution oder Einrichtung aus gemessen werden und kann die Zeit für die Durchquerung des Partnernetzwerks sowie die Ausführung durch einen Inferenzdienst umfassen.
  • In mindestens einer Ausführungsform kann die Übertragung von Anfragen zwischen den Diensten 920 und Inferenzanwendungen hinter einem Software Development Kit (SDK) verborgen sein, und kann der robuste Transport über eine Warteschlange bereitgestellt werden. In mindestens einer Ausführungsform wird eine Anforderung über eine API für eine individuelle Anwendungs-/Benutzer (engl. tenant)-ID-Kombination in eine Warteschlange gestellt, und zieht ein SDK eine Anforderung aus einer Warteschlange und gibt eine Anforderung an eine Anwendung weiter. In mindestens einer Ausführungsform kann ein Name einer Warteschlange in einer Umgebung bereitgestellt werden, aus der ein SDK diese abholt. In mindestens einer Ausführungsform kann die asynchrone Kommunikation über eine Warteschlange nützlich sein, da sie es jeder Instanz einer Anwendung ermöglichen kann, Arbeit aufzunehmen, sobald sie verfügbar wird. In mindestens einer Ausführungsform können die Ergebnisse über eine Warteschlange zurück übertragen werden, um sicherzustellen, dass keine Daten verloren gehen. In mindestens einer Ausführungsform können Warteschlangen auch die Möglichkeit bieten, Arbeit zu segmentieren, da Arbeit mit höchster Priorität an eine Warteschlange gehen kann, an die die meisten Instanzen einer Anwendung angeschlossen sind, während Arbeit mit niedrigster Priorität an eine Warteschlange gehen kann, an die eine einzelne Instanz angeschlossen ist, die Aufgaben in der empfangenen Reihenfolge abarbeitet. In mindestens einer Ausführungsform kann eine Anwendung auf einer GPU-beschleunigten Instanz laufen, die in der Cloud 1026 erzeugt wurde, und ein Inferenzdienst kann die Inferenzierung auf einer GPU durchführen.
  • In mindestens einer Ausführungsform können Visualisierungsdienste 1020 genutzt werden, um Visualisierungen für die Anzeige der Ausgaben von Anwendungen und/oder der Einsatz-Pipeline(s) 1010 zu erzeugen. In mindestens einer Ausführungsform können GPUs 1022 von Visualisierungsdiensten 1020 genutzt werden, um Visualisierungen zu erzeugen. In mindestens einer Ausführungsform können Rendering-Effekte, wie z.B. Ray-Tracing, von den Visualisierungsdiensten 1020 implementiert sein, um Visualisierungen von höherer Qualität zu erzeugen. In mindestens einer Ausführungsform können Visualisierungen, ohne darauf beschränkt zu sein, 2D-Bildrenderings, 3D-Volumenrenderings, 3D-Volumenrekonstruktionen, 2D-Tomographieschichten, Virtual-Reality-Anzeigen, Augmented-Reality-Anzeigen usw. umfassen. In mindestens einer Ausführungsform können virtualisierte Umgebungen verwendet werden, um eine virtuelle interaktive Anzeige oder Umgebung (z.B. eine virtuelle Umgebung) für die Interaktion durch Benutzer eines Systems (z.B. Ärzte, Krankenschwestern, Radiologen usw.) zu erzeugen. In mindestens einer Ausführungsform können die Visualisierungsdienste 1020 einen internen Visualizer, Kinematiken und/oder andere Rendering- oder Bildverarbeitungsfähigkeiten oder -funktionen (z.B. Raytracing, Rasterung, interne Optik usw.) umfassen.
  • In mindestens einer Ausführungsform kann die Hardware 922 GPUs 1022, das KI-System 1024, die Cloud 1026 und/oder jede andere Hardware umfassen, die für die Ausführung des Trainingssystems 904 und/oder des Einsatzsystems 906 verwendet wird. In mindestens einer Ausführungsform können die GPUs 1022 (z.B. NVIDIAs TESLA- und/oder QUADRO-GPUs) eine beliebige Anzahl von GPUs umfassen, die für die Ausführung von Verarbeitungsaufgaben der Rechendienste 1016, der KI-Dienste 1018, der Visualisierungsdienste 1020, anderer Dienste und/oder beliebiger Merkmale oder Funktionen der Software 918 verwendet werden können. In Bezug auf die KI-Dienste 1018 können die GPUs 1022 beispielsweise zur Vorverarbeitung von Bilddaten (oder anderen Datentypen, die von Modelle maschinellen Lernens verwendet werden), zur Nachverarbeitung der Ausgaben von Modelle maschinellen Lernens und/oder zur Durchführung von Inferenzen (z.B. zur Ausführung von Modelle maschinellen Lernens) verwendet werden. In mindestens einer Ausführungsform können die Cloud 1026, das KI-System 1024 und/oder andere Komponenten des Systems 1000 GPUs 1022 verwenden. In mindestens einer Ausführungsform kann die Cloud 1026 eine GPU-optimierte Plattform für Deep-Learning-Aufgaben enthalten. In mindestens einer Ausführungsform kann das KI-System 1024 GPUs verwenden, und die Cloud 1026 - oder zumindest ein Teil, der mit Deep Learning oder Inferenzierung beauftragt ist - kann unter Verwendung eines oder mehrerer KI-Systeme 1024 ausgeführt werden. Obwohl die Hardware 922 als diskrete Komponenten dargestellt ist, ist dies nicht als Beschränkung zu verstehen, und alle Komponenten der Hardware 922 können mit anderen Komponenten der Hardware 922 kombiniert oder von ihnen genutzt werden.
  • In mindestens einer Ausführungsform kann das KI-System 1024 ein speziell entwickeltes Rechensystem (z.B. einen Supercomputer oder einen HPC) umfassen, das für Inferenzierung, Deep Learning, maschinelles Lernen und/oder andere Aufgaben der künstlichen Intelligenz konfiguriert ist. In mindestens einer Ausführungsform kann das KI-System 1024 (z.B. der DGX von NVIDIA) GPU-optimierte Software (z.B. einen Software-Stack) enthalten, die unter Verwendung einer Vielzahl von GPUs 1022 ausgeführt werden kann, zusätzlich zu CPUs, RAM, Speicher und/oder anderen Komponenten, Merkmalen oder Funktionen. In mindestens einer Ausführungsform können ein oder mehrere KI-Systeme 1024 in der Cloud 1026 (z.B. in einem Rechenzentrum) implementiert sein, um einige oder alle KI-basierten Verarbeitungsaufgaben des Systems 1000 auszuführen.
  • In mindestens einer Ausführungsform kann die Cloud 1026 eine GPU-beschleunigte Infrastruktur (z.B. NGC von NVIDIA) enthalten, die eine GPU-optimierte Plattform für die Ausführung von Verarbeitungsaufgaben des Systems 1000 bereitstellen kann. In mindestens einer Ausführungsform kann die Cloud 1026 ein oder mehrere KI-Systeme 1024 zur Ausführung einer oder mehrerer KI-basierter Aufgaben des Systems 1000 enthalten (z.B. als Hardware-Abstraktions- und Skalierungsplattform). In mindestens einer Ausführungsform kann die Cloud 1026 mit dem Anwendungsorchestrierungssystem 1028 integriert sein, das mehrere GPUs nutzt, um eine nahtlose Skalierung und einen Lastausgleich zwischen und unter Anwendungen und Diensten 920 zu ermöglichen. In mindestens einer Ausführungsform kann die Cloud 1026 damit beauftragt sein, mindestens einige der Dienste 920 des Systems 1000 auszuführen, einschließlich der Rechendienste 1016, der KI-Dienste 1018 und/oder der Visualisierungsdienste 1020, wie hier beschrieben. In mindestens einer Ausführungsform kann die Cloud 1026 kleine und große Batch-Inferenz durchführen (z.B. Ausführen von NVIDIAs TENSOR RT), eine beschleunigte API und Plattform für paralleles Rechnen 1030 bereitstellen (z.B. NVIDIAs CUDA), ein Anwendungsorchestrierungssystem 1028 ausführen (z.B. KUBERNETES), eine Grafik-Rendering-API und -Plattform bereitstellen (z.B. für Raytracing, 2D-Grafik, 3D-Grafik und/oder andere Rendering-Techniken, um qualitativ hochwertigere Kinofilme zu erzeugen), und/oder andere Funktionen für das System 1000 bereitstellen können.
  • In mindestens einer Ausführungsform kann die Cloud 1026 in dem Bestreben, die Vertraulichkeit der Patientendaten zu wahren (z.B. wenn Patientendaten oder -aufzeichnungen außerhalb der eigenen Räumlichkeiten zu verwenden sind), eine Registrierung bzw. Registry enthalten - wie z.B. eine Deep-Learning-Container-Registry. In mindestens einer Ausführungsform kann eine Registry Container für Instanziierungen von Anwendungen speichern, die Vorverarbeitungen, Nachverarbeitungen oder andere Verarbeitungsaufgaben für Patientendaten durchführen können. In mindestens einer Ausführungsform kann die Cloud 1026 Daten empfangen, die sowohl Patientendaten als auch Sensordaten in Containern enthalten, die angeforderte Verarbeitung nur für die Sensordaten in diesen Containern durchführen und dann eine resultierende Ausgabe und/oder Visualisierungen an geeignete Parteien und/oder Geräte weiterleiten (z.B. medizinische Geräte vor Ort, die zur Visualisierung oder Diagnose verwendet werden), ohne dass Patientendaten extrahiert, gespeichert oder anderweitig darauf zugegriffen werden muss. In mindestens einer Ausführungsform wird die Vertraulichkeit der Patientendaten in Übereinstimmung mit dem HIPAA und/oder anderen Datenvorschriften gewahrt.
  • Mindestens eine Ausführungsform der Offenbarung kann im Hinblick auf die folgenden Abschnitte beschrieben werden:
    • In Abschnitt 1 umfasst ein Verfahren zum Einsetzen eines angepassten Modells für maschinelles Lernen (MLM): Zugreifen auf eine Vielzahl von trainierten MLMs, die jeweils Anfangskonfigurationseinstellungen zugeordnet sind; Bereitstellen einer Benutzerschnittstelle (UI) um eine Benutzereingabe zu empfangen, die eine Auswahl eines oder mehrerer MLMs aus der Vielzahl von trainierten MLMs und eine Modifikation der Anfangskonfigurationseinstellungen für das eine oder die mehreren MLMs angibt; Bestimmen modifizierter Konfigurationseinstellungen für das eine oder die mehreren ausgewählten MLMs auf der Grundlage der Benutzereingabe; Veranlassen der Ausführung einer Build-Engine zum Modifizieren der einen oder der mehreren ausgewählten MLMs in Übereinstimmung mit den modifizierten Konfigurationseinstellungen; Veranlassen der Ausführung einer Einsatz-Engine zum Einsetzen des einen oder der mehreren modifizierten MLMs; und Veranlassen der Anzeige einer Darstellung des einen oder der mehreren eingesetzten MLMs auf der Benutzeroberfläche.
    • In Abschnitt das Verfahren nach Abschnitt 1, wobei das eine oder die mehreren ausgewählten MLMs unter Verwendung eines ersten Satzes von Trainingsdaten vortrainiert werden.
    • In Abschnitt 3 das Verfahren nach Abschnitt 2, ferner umfassend: Empfangen eines zweiten Satzes von Trainingsdaten für ein domänenspezifisches Training des einen oder der mehreren ausgewählten MLMs; und Veranlassen der Ausführung einer Trainings-Engine der Pipeline, um das domänenspezifische Training des einen oder der mehreren ausgewählten MLMs durchzuführen.
    • In Abschnitt 4 das Verfahren nach einem der vorangehenden Abschnitte, ferner umfassend: vor dem Empfangen der Benutzereingabe, die eine Auswahl des einen oder der mehreren MLMs anzeigt, Veranlassen der Anzeige einer Auflistung der Vielzahl von trainierten MLMs auf der Benutzeroberfläche; und nach dem Empfangen der Benutzereingabe, die eine Auswahl des einen oder der mehreren MLMs anzeigt, Veranlassen der Ausführung einer Export-Engine zum Initialisieren des einen oder der mehreren ausgewählten MLMs.
    • In Abschnitt 5 das Verfahren nach Abschnitt 4, wobei das Ausführen der Export-Engine ferner umfasst: Veranlassen der Anzeige einer Darstellung einer Architektur des einen oder der mehreren ausgewählten MLMs und/oder von Parametern des einen oder der mehreren ausgewählten MLMs auf der Benutzeroberfläche.
    • In Abschnitt 6 das Verfahren nach Abschnitt 4 oder 5, wobei das Veranlassen der Ausführung der Export-Engine ferner umfasst: Verfügbarmachen des eines oder der mehreren ausgewählten MLMs zur Verarbeitung von Benutzereingabedaten.
    • In Abschnitt 7 das Verfahren nach Abschnitt 6, ferner umfassend: Empfangen der Benutzereingabedaten; Veranlassen, dass das eine oder die mehreren eingesetzten MLMs auf die Benutzereingabedaten angewendet werden, um Ausgabedaten zu erzeugen; und Veranlassen der Anzeige einer Darstellung der Ausgabedaten oder eines Verweises auf eine gespeicherte Darstellung der Ausgabedaten auf der Benutzeroberfläche.
    • In Abschnitt 8 das Verfahren nach einem der vorangehenden Abschnitte, wobei das eine oder die mehreren ausgewählten MLMs ein Modell eines neuronalen Netzwerks umfassen, das in einer Pipeline angeordnet ist.
    • In Abschnitt 9 das Verfahren nach einem der vorangehenden Abschnitte, wobei das eine oder die mehreren ausgewählten MLMs ein Akustikmodell eines neuronalen Netzwerks und ein Sprachmodell eines neuronales Netzwerks umfassen.
    • In Abschnitt 10 das Verfahren nach Abschnitt 9, wobei die modifizierten Konfigurationseinstellungen für das eine oder die mehreren ausgewählten MLMs mindestens eines umfassen von: einer Audio-Puffergröße einer akustischen Vorverarbeitungsstufe für das Akustikmodell eines neuronalen Netzwerks; Einstellungen für das Ende von Äußerungen für das Akustikmodell eines neuronalen Netzwerks; Latenzeinstellungen für das Akustikmodell eines neuronalen Netzwerks; oder Spracheinstellungen für ein Sprachmodell des neuronalen Netzwerks.
    • In Abschnitt 11 das Verfahren nach einem der Abschnitte 8 bis 10, wobei das eine oder die mehreren ausgewählten MLMs ein Sprachsynthesemodell eines neuronalen Netzwerks, ein Sprachverständnismodell eines neuronalen Netzwerks und/oder ein Fragenbeantwortungsmodell eines neuronalen Netzwerks umfassen.
    • In Abschnitt 12 ein System, umfassend: eine Speichervorrichtung; und eine oder mehrere Verarbeitungsvorrichtungen, die kommunikativ mit der Speichervorrichtung gekoppelt sind, um: auf eine Vielzahl von trainierten Modellen maschinellen Lernens, MLMs, zuzugreifen, die jeweils Anfangskonfigurationseinstellungen zugeordnet sind; eine Benutzerschnittstelle, UI, bereitzustellen, um eine Benutzereingabe zu empfangen, die eine Auswahl eines oder mehrerer MLMs aus der Vielzahl von trainierten MLMs und eine Modifikation von Anfangskonfigurationseinstellungen für das eine oder die mehreren MLMs angibt; modifizierte Konfigurationseinstellungen für das eine oder die mehreren ausgewählten MLMs auf der Grundlage der Benutzereingabe zu bestimmen; die Ausführung einer Build-Engine einer Pipeline zum Modifizieren des einen oder der mehreren ausgewählten MLMs in Übereinstimmung mit den modifizierten Konfigurationseinstellungen zu veranlassen; die Ausführung einer Einsatz-Engine der Pipeline zum Einsetzen des einen oder der mehreren modifizierten MLMs zu veranlassen; und die Anzeige einer Darstellung des einen oder der mehreren eingesetzten MLMs auf der Benutzeroberfläche zu veranlassen.
    • In Abschnitt 13 das System nach Abschnitt 12, wobei die eine oder die mehreren Verarbeitungsvorrichtungen ferner angeordnet sind zum: Veranlassen, vor dem Empfangen der Benutzereingabe, die eine Auswahl des einen oder der mehreren MLMs anzeigt, der Anzeige einer Auflistung der Vielzahl von trainierten MLMs auf der Benutzeroberfläche; und Veranlassen, nach dem Empfangen der Benutzereingabe, die eine Auswahl des einen oder der mehreren MLMs anzeigt, der Ausführung einer Export-Engine der Pipeline, um das eine oder die mehreren ausgewählten MLMs zu initialisieren.
    • In Abschnitt 14 das System nach Abschnitt 13, wobei zur Veranlassung der Ausführung der Export-Engine die eine oder die mehreren Verarbeitungsvorrichtungen ferner angeordnet sind zum: Veranlassen der Anzeige einer Darstellung einer Architektur des einen oder der mehreren ausgewählten MLMs und/oder von Parametern des einen oder der mehreren ausgewählten MLMs auf der Benutzeroberfläche.
    • In Abschnitt 15 das System nach einem der Abschnitte 12 bis 14, wobei die eine oder die mehreren Verarbeitungsvorrichtungen ferner angeordnet sind zum: Empfangen von Benutzereingabedaten; Veranlassen, dass das eine oder die mehreren eingesetzten MLMs auf die Benutzereingabedaten angewendet werden, um Ausgabedaten zu erzeugen; und Veranlassen der Anzeige einer Darstellung der Ausgabedaten und/oder eines Verweises auf eine gespeicherte Darstellung der Ausgabedaten auf der Benutzeroberfläche.
    • In Abschnitt 16 das System nach einem der Abschnitte 12 bis 15, wobei die modifizierten Konfigurationseinstellungen für das eine oder die mehreren ausgewählten MLMs mindestens eines umfassen von: einer Audio-Puffergröße einer akustischen Vorverarbeitungsstufe für das Akustikmodell eines neuronalen Netzwerks; Einstellungen für das Ende von Äußerungen für das Akustikmodell eines neuronalen Netzwerks; Latenzeinstellungen für das Akustikmodell eines neuronalen Netzwerks; oder Spracheinstellungen für ein Sprachmodell des neuronalen Netzwerks.
    • In Abschnitt 17 das System nach einem der Abschnitte 12 bis 16, wobei das eine oder die mehreren ausgewählten MLMs ein Sprachsynthesemodell eines neuronalen Netzwerks, ein Sprachverständnismodell eines neuronalen Netzwerks und/oder ein Fragenbeantwortungsmodell eines neuronalen Netzwerks umfassen.
    • In Abschnitt 18 ein nicht-transitorisches computerlesbares Medium, auf dem Anweisungen gespeichert sind, wobei die Anweisungen, wenn sie von einer Verarbeitungsvorrichtung ausgeführt werden, die Verarbeitungsvorrichtung veranlassen zum: Zugreifen auf eine Vielzahl von trainierten Modellen maschinellen Lernens, MLMs, die jeweils Anfangskonfigurationseinstellungen zugeordnet sind; Bereitstellen einer Benutzerschnittstelle, UI, um eine Benutzereingabe zu empfangen, die eine Auswahl eines oder mehrerer MLMs aus der Vielzahl von trainierten MLMs und eine Modifikation von Anfangskonfigurationseinstellungen für das eine oder die mehreren MLMs angibt; Bestimmen modifizierter Konfigurationseinstellungen für das eine oder die mehreren ausgewählten MLMs auf der Grundlage der Benutzereingabe; Veranlassen der Ausführung einer Build-Engine einer Pipeline zum Modifizieren des einen oder der mehreren ausgewählten MLMs in Übereinstimmung mit den modifizierten Konfigurationseinstellungen; Veranlassen der Ausführung einer Einsatz-Engine der Pipeline zum Einsetzen des einen oder der mehreren modifizierten MLMs; und Veranlassen der Anzeige einer Darstellung des einen oder der mehreren eingesetzten MLMs auf der Benutzeroberfläche.
    • In Abschnitt 19 das computerlesbare Medium nach Abschnitt 18, wobei die Anweisungen ferner dazu dienen, die Verarbeitungsvorrichtung zu veranlassen zum: Veranlassen, vor dem Empfangen der Benutzereingabe, die eine Auswahl des einen oder der mehreren MLMs anzeigt, der Anzeige einer Auflistung der Vielzahl von trainierten MLMs auf der Benutzeroberfläche; und Veranlassen, nach dem Empfangen der Benutzereingabe, die eine Auswahl des einen oder der mehreren MLMs anzeigt, der Ausführung einer Export-Engine der Pipeline, um das eine oder die mehreren ausgewählten MLMs zu initialisieren.
    • In Abschnitt 20 das computerlesbare Medium nach Abschnitt 19, wobei zum Veranlassen der Ausführung der Export-Engine die Anweisungen ferner dazu dienen, die Verarbeitungsvorrichtung zu veranlassen zum: Veranlassen der Anzeige einer Darstellung einer Architektur des einen oder der mehreren ausgewählten MLMs und/oder von Parametern des einen oder der mehreren ausgewählten MLMs auf der Benutzeroberfläche.
    • In Abschnitt 21 das computerlesbare Medium nach einem der Abschnitte 18 bis 20, wobei die Anweisungen ferner dazu dienen, die Verarbeitungsvorrichtung zu veranlassen zum: Empfangen einer Benutzereingabe; Veranlassen, dass das eine oder die mehreren eingesetzten MLMs auf die Benutzerdaten angewendet werden, um Ausgabedaten zu erzeugen; und Veranlassen der Anzeige einer Darstellung der Ausgabedaten und/oder eines Verweises auf eine gespeicherte Darstellung der Ausgabedaten auf der Benutzeroberfläche.
    • In Abschnitt 22 das computerlesbare Medium nach Abschnitt 20, wobei die modifizierten Konfigurationseinstellungen für das eine oder die mehreren ausgewählten MLMs mindestens eines umfassen von: einer Audio-Puffergröße einer akustischen Vorverarbeitungsstufe für das Akustikmodell eines neuronalen Netzwerks; Einstellungen für das Ende von Äußerungen für das Akustikmodell eines neuronalen Netzwerks; Latenzeinstellungen für das Akustikmodell eines neuronalen Netzwerks; oder Spracheinstellungen für ein Sprachmodell des neuronalen Netzwerks.
    • In Abschnitt 23 das computerlesbare Medium nach einem der Abschnitte 20 bis 22, wobei das eine oder die mehreren ausgewählten MLMs ein Sprachsynthesemodell eines neuronalen Netzwerks, ein Sprachverständnismodell eines neuronalen Netzwerks und/oder ein Fragenbeantwortungsmodell eines neuronalen Netzwerks umfassen.
  • Andere Abwandlungen sind im Sinne der Erfindung. Daher sind, während offenbarte Techniken für verschiedene Modifikationen und alternative Konstruktionen zugänglich sind, bestimmte illustrierte Ausführungsformen davon in Zeichnungen gezeigt und wurden vorstehend im Einzelnen beschrieben. Es versteht sich jedoch, dass die Erfindung nicht auf eine bestimmte Form oder bestimmte Formen zu beschränken ist, sondern dass im Gegenteil beabsichtigt ist, alle Modifikationen, alternativen Konstruktionen und Äquivalente abzudecken, die in den Rahmen und den Umfang der Erfindung fallen, wie er in den beigefügten Ansprüchen definiert ist.
  • Die Verwendung der Begriffe „ein“ und „eine“ und „der“ und ähnlicher Bezeichnungen im Zusammenhang mit der Beschreibung offenbarter Ausführungsformen (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 als offene Begriffe zu verstehen (im Sinne von „einschließlich, aber nicht beschränkt auf“), sofern nicht anders angegeben. „Verbunden“ ist, wenn es unverändert bleibt und sich auf physische Verbindungen bezieht, als teilweise oder ganz darin enthalten, daran angebracht oder damit verbunden zu verstehen, auch wenn etwas dazwischen liegt. Die Aufzählung von Wertebereichen soll lediglich als ein Abkürzungsverfahren der individuellen Bezugnahme auf jeden einzelnen Wert, der in den Bereich fällt, dienen sofern hier nicht anders angegeben, und jeder einzelne Wert ist in die Spezifikation aufgenommen, als ob er hier einzeln aufgeführt wäre. In mindestens einer Ausführungsform ist die Verwendung des Begriffs „Menge“ (z.B. „eine Menge von Elementen“) oder „Teilmenge“, sofern nicht anders angegeben oder durch den Kontext widerlegt, als eine nicht leere Sammlung zu verstehen, die ein oder mehrere Elemente umfasst. Sofern nicht anders vermerkt oder durch den Kontext widerlegt, bezeichnet der Begriff „Teilmenge“ einer entsprechenden Menge nicht unbedingt eine echte Teilmenge der entsprechenden Menge, sondern Teilmenge und entsprechende Menge können gleich sein.
  • Konjunktive Sprache, wie z.B. Phrasen der Form „mindestens eines von A, B und C“ oder „mindestens eines von A, B und C“, wird, sofern nicht ausdrücklich anders angegeben oder anderweitig eindeutig durch den Kontext widersprochen, im Allgemeinen so verstanden, dass damit ausgedrückt wird, dass ein Element, Begriff usw., entweder A oder B oder C oder eine beliebige nicht leere Teilmenge der Menge von A und B und C sein kann. So beziehen sich z.B. im illustrativen Beispiel einer Menge mit drei Mitgliedern die konjunktiven Ausdrücke „mindestens eines von A, B und C“ und „mindestens eines von A, B und C“ auf eine der folgenden Mengen: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}. Eine solche konjunktivische Sprache soll also nicht generell bedeuten, dass bei bestimmten Ausführungsformen jeweils mindestens eines von A, mindestens eines von B und mindestens eines von C vorhanden sein muss. Zusätzlich, sofern nicht anders vermerkt oder durch den Kontext widersprochen, zeigt der Begriff „Mehrzahl“ einen Zustand an, in dem er plural ist (z.B. „eine Mehrzahl von Elementen“ zeigt mehrere Elemente an). In mindestens einer Ausführungsform beträgt die Anzahl der Elemente in einer Mehrzahl mindestens zwei, kann aber auch mehr sein, wenn dies entweder explizit oder durch den Kontext angegeben wird. Ferner bedeutet die Formulierung „basierend auf‟, sofern nicht anders angegeben oder aus dem Kontext ersichtlich, „zumindest teilweise basierend auf“ und nicht „ausschließlich basierend auf. "
  • Operationen der hierin beschriebenen Prozesse können in jeder geeigneten Reihenfolge ausgeführt werden, sofern hier nicht anders angegeben oder durch den Kontext eindeutig widerlegt. In mindestens einer Ausführungsform wird ein Prozess wie die hierin beschriebenen Prozesse (oder Variationen und/oder Kombinationen davon) unter der Steuerung eines oder mehrerer Computersysteme 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 Anwendungen) implementiert sind, die gemeinsam auf einem oder mehreren Prozessoren, durch Hardware oder Kombinationen davon ausgeführt werden. In mindestens einer Ausführungsform 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 einer Ausführungsform ist ein computerlesbares Speichermedium ein nicht-transitorisches computerlesbares Speichermedium, das transitorische Signale (z.B. eine sich ausbreitende transiente elektrische oder elektromagnetische Übertragung) ausschließt, aber nicht-transitorische Datenspeicherschaltungen (z.B. Puffer, Cache und Warteschlangen) innerhalb von Transceivern für transitorische Signale enthält. In mindestens einer Ausführungsform ist Code (z.B. ausführbarer Code oder Quellcode) auf einem Satz von einem oder mehreren nicht-transitorischen computerlesbaren Speichermedien gespeichert, auf denen ausführbare Anweisungen (oder ein anderer Speicher zum Speichern von ausführbaren Anweisungen) gespeichert sind, die, wenn sie von einem oder mehreren Prozessoren eines Computersystems ausgeführt werden (d.h. als Ergebnis der Ausführung), das Computersystem veranlassen, hierin beschriebene Operationen durchzuführen. In mindestens einer Ausführungsform umfasst der Satz nicht-transitorischer, computerlesbarer Speichermedien mehrere nicht-transitorische, computerlesbare Speichermedien und einem oder mehreren der einzelnen nicht-transitorischen Speichermedien der mehreren nicht-transitorischen, computerlesbaren Speichermedien fehlt der gesamte Code, während die mehreren nicht-transitorischen, computerlesbaren Speichermedien gemeinsam den gesamten Code speichern. In mindestens einer Ausführungsform werden ausführbare Befehle so ausgeführt, dass verschiedene Befehle von verschiedenen Prozessoren ausgeführt werden - zum Beispiel speichert ein nicht-transitorisches computerlesbares Speichermedium Befehle und eine zentrale Verarbeitungseinheit („CPU“) führt einige der Befehle aus, während eine Grafikverarbeitungseinheit („GPU“) und/oder eine Datenverarbeitungseinheit („DPU“) (potenziell in Verbindung mit einer GPU) andere Befehle ausführt. In mindestens einer Ausführungsform haben verschiedene Komponenten eines Computersystems separate Prozessoren und verschiedene Prozessoren führen verschiedene Teilmengen von Befehlen aus.
  • Dementsprechend sind In mindestens einer Ausführungsform Computersysteme so konfiguriert, dass sie einen oder mehrere Dienste implementieren, die einzeln oder gemeinsam Operationen der hierin beschriebenen Prozesse durchführen, und solche Computersysteme sind mit anwendbarer Hardware und/oder Software konfiguriert, die die Durchführung der Operationen ermöglichen. Ferner ist ein Computersystem, das mindestens eine Ausführungsform der Erfindung implementiert, ein einzelnes Gerät und in einer anderen Ausführungsform ein verteiltes Computersystem, das mehrere Geräte umfasst, die unterschiedlich arbeiten, so dass das verteilte Computersystem die hierin beschriebenen Operationen durchführt und ein einzelnes Gerät nicht alle Operationen durchführt.
  • Die Verwendung von Beispielen oder beispielhaften Formulierungen (z.B. „wie“) dient lediglich der besseren Veranschaulichung von Ausführungsformen der Erfindung und stellt keine Einschränkung des Umfangs der Erfindung dar, sofern nicht anders angegeben. Keine Formulierung in der Beschreibung ist so auszulegen, dass ein nicht beanspruchtes Element als wesentlich für die Praxis der Erfindung angesehen wird.
  • Alle Bezugnahmen, einschließlich Veröffentlichungen, Patentanmeldungen und Patente, die hier zitiert werden, werden hiermit durch Verweis in demselben Umfang einbezogen, als ob jede Referenz einzeln und ausdrücklich als durch Verweis einbezogen angegeben wäre und hier in ihrer Gesamtheit wiedergegeben würde.
  • In der Beschreibung und den Ansprüchen können die Begriffe „gekoppelt“ und „verbunden“ sowie deren Ableitungen verwendet werden. Es versteht sich, dass diese Begriffe nicht als Synonyme füreinander gedacht sind. Vielmehr kann in bestimmten Beispielen „verbunden“ oder „gekoppelt“ verwendet werden, um anzuzeigen, dass zwei oder mehr Elemente in direktem oder indirektem physischem oder elektrischem Kontakt zueinander stehen. „Gekoppelt“ kann auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt zueinander stehen, aber dennoch miteinander kooperieren oder interagieren.
  • Sofern nicht ausdrücklich anders angegeben, beziehen sich Begriffe wie „Verarbeitung“, „Berechnung“, „Berechnen“, „Bestimmen“ o. ä. in der gesamten Spezifikation auf Aktionen und/oder Prozesse eines Computers oder Rechensystems oder eines ähnlichen elektronischen Rechengeräts, die Daten, die als physische, z.B. elektronische, Größen in den Registern und/oder Speichern des Rechensystems dargestellt werden, manipulieren und/oder in andere Daten umwandeln, die in ähnlicher Weise als physische Größen in den Speichern, Registern oder anderen derartigen Informationsspeicher-, -übertragungs- oder -anzeigegeräten des Rechensystems dargestellt werden.
  • In ähnlicher Weise kann sich der Begriff „Prozessor“ auf ein beliebiges Gerät oder einen Teil eines Geräts beziehen, das elektronische Daten aus Registern und/oder Speicher verarbeitet und diese elektronischen Daten in andere elektronische Daten umwandelt, die in Registern und/oder Speicher gespeichert werden können. Als nicht beschränkende Beispiele kann „Prozessor“ eine CPU oder eine GPU sein. Eine „Datenverarbeitungsplattform“ kann einen oder mehrere Prozessoren umfassen. Wie hierin verwendet, können „Software“-Prozesse z.B. Software- und/oder Hardware-Entitäten umfassen, die im Laufe der Zeit Arbeit verrichten, wie z.B. Aufgaben, Threads und intelligente Agenten. Außerdem kann sich jeder Prozess auf mehrere Prozesse beziehen, um Anweisungen nacheinander oder parallel, kontinuierlich oder intermittierend auszuführen. In mindestens einer Ausführungsform werden die Begriffe „System“ und „Verfahren“ hier austauschbar verwendet, da ein System eine oder mehrere Verfahren verkörpern kann und Verfahren als ein System betrachtet werden können.
  • Im vorliegenden Dokument kann auf das Beschaffen, Erfassen, Empfangen oder Eingeben von analogen oder digitalen Daten in ein Subsystem, Computersystem oder eine computerimplementierte Maschine Bezug genommen werden. In mindestens einer Ausführungsform kann der Prozess des Erhaltens, Erfassens, Empfangens oder Eingebens von analogen und digitalen Daten auf verschiedene Weise erfolgen, z.B. durch Empfangen von Daten als Parameter eines Funktionsaufrufs oder eines Aufrufs an eine Anwendungsprogrammierschnittstelle. In mindestens einer Ausführungsform können Prozesse des Erhaltens, Erfassens, Empfangens oder Eingebens von analogen oder digitalen Daten durch die Übertragung von Daten über eine serielle oder parallele Schnittstelle durchgeführt werden. In mindestens einer Ausführungsform können Prozesse des Erhaltens, Erfassens, Empfangens oder Eingebens von analogen oder digitalen Daten durch die Übertragung von Daten über ein Computernetzwerk von der bereitstellenden Einheit zur erfassenden Entität durchgeführt werden. In mindestens einer Ausführungsform kann auch auf das Bereitstellen, Ausgeben, Übertragen, Senden oder Präsentieren analoger oder digitaler Daten Bezug genommen werden. In verschiedenen Beispielen können Prozesse 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 Anwendungsprogrammierschnittstelle oder eines Interprozess-Kommunikationsmechanismus erfolgen.
  • Obwohl die Beschreibungen hierin beispielhafte Ausführungsformen der beschriebenen Techniken darlegt, können auch andere Architekturen verwendet werden, um die beschriebene Funktionalität zu implementieren, und sollen diese in den Anwendungsbereich dieser Erfindung fallen. Obwohl oben zu Beschreibungszwecken spezifische Verteilungen von Verantwortlichkeiten definiert sein können, könnten verschiedene Funktionen und Verantwortlichkeiten je nach den Umständen auf unterschiedliche Weise verteilt und aufgeteilt werden.
  • Auch wenn der Gegenstand in einer Sprache beschrieben wurde, die sich auf strukturelle Merkmale und/oder methodische Handlungen bezieht, versteht sich, dass der in den beigefügten Ansprüchen beanspruchte Gegenstand nicht notwendigerweise auf bestimmte beschriebene Merkmale oder Handlungen beschränkt ist. Vielmehr werden bestimmte Merkmale und Handlungen als beispielhafte Ausführungsformen der Ansprüche offenbart.

Claims (23)

  1. Verfahren zum Einsetzen eines angepassten Modells für maschinelles Lernen, MLM, wobei das Verfahren umfasst: Zugreifen auf eine Vielzahl von trainierten MLMs, denen jeweils Anfangskonfigurationseinstellungen zugeordnet sind; Bereitstellen einer Benutzerschnittstelle, UI, um eine Benutzereingabe zu empfangen, die eine Auswahl eines oder mehrerer MLMs aus der Vielzahl von trainierten MLMs und eine Modifikation der Anfangskonfigurationseinstellungen für das eine oder die mehreren MLMs angibt; Bestimmen modifizierter Konfigurationseinstellungen für das eine oder die mehreren ausgewählten MLMs auf der Grundlage der Benutzereingabe; Veranlassen der Ausführung einer Build-Engine zum Modifizieren der einen oder der mehreren ausgewählten MLMs in Übereinstimmung mit den modifizierten Konfigurationseinstellungen; Veranlassen der Ausführung einer Einsatz-Engine zum Einsetzen des einen oder der mehreren modifizierten MLMs; und Veranlassen der Anzeige einer Darstellung des einen oder der mehreren eingesetzten MLMs auf der Benutzeroberfläche.
  2. Verfahren nach Anspruch 1, wobei das eine oder die mehreren ausgewählten MLMs unter Verwendung eines ersten Satzes von Trainingsdaten vortrainiert werden.
  3. Verfahren nach Anspruch 2, ferner umfassend: Empfangen eines zweiten Satzes von Trainingsdaten für ein domänenspezifisches Training des einen oder der mehreren ausgewählten MLMs; und Veranlassen der Ausführung einer Trainings-Engine der Pipeline, um das domänenspezifische Training des einen oder der mehreren ausgewählten MLMs durchzuführen.
  4. Verfahren nach einem der vorangehenden Ansprüche, ferner umfassend: vor dem Empfangen der Benutzereingabe, die eine Auswahl des einen oder der mehreren MLMs anzeigt, Veranlassen der Anzeige einer Auflistung der Vielzahl von trainierten MLMs auf der Benutzeroberfläche; und nach dem Empfangen der Benutzereingabe, die eine Auswahl des einen oder der mehreren MLMs anzeigt, Veranlassen der Ausführung einer Export-Engine zum Initialisieren des einen oder der mehreren ausgewählten MLMs.
  5. Verfahren nach Anspruch 4, wobei das Ausführen der Export-Engine ferner umfasst: Veranlassen der Anzeige einer Darstellung einer Architektur des einen oder der mehreren ausgewählten MLMs und/oder von Parametern des einen oder der mehreren ausgewählten MLMs auf der Benutzeroberfläche.
  6. Verfahren nach Anspruch 4 oder 5, wobei das Veranlassen der Ausführung der Export-Engine ferner umfasst: Verfügbarmachen des eines oder der mehreren ausgewählten MLMs zur Verarbeitung von Benutzereingabedaten.
  7. Verfahren nach Anspruch 6, ferner umfassend: Empfangen der Benutzereingabedaten; Veranlassen, dass das eine oder die mehreren eingesetzten MLMs auf die Benutzereingabedaten angewendet werden, um Ausgabedaten zu erzeugen; und Veranlassen der Anzeige einer Darstellung der Ausgabedaten oder eines Verweises auf eine gespeicherte Darstellung der Ausgabedaten auf der Benutzeroberfläche.
  8. Verfahren nach einem der vorangehenden Ansprüche, wobei das eine oder die mehreren ausgewählten MLMs ein Modell eines neuronalen Netzwerks umfassen, das in einer Pipeline angeordnet ist.
  9. Verfahren nach einem der vorangehenden Ansprüche, wobei das eine oder die mehreren ausgewählten MLMs ein Akustikmodell eines neuronalen Netzwerks und ein Sprachmodell eines neuronales Netzwerks umfassen.
  10. Verfahren nach Anspruch 9, wobei die modifizierten Konfigurationseinstellungen für das eine oder die mehreren ausgewählten MLMs mindestens eines umfassen von:einer Audio-Puffergröße einer akustischen Vorverarbeitungsstufe für das Akustikmodell eines neuronalen Netzwerks; Einstellungen für das Ende von Äußerungen für das Akustikmodell eines neuronalen Netzwerks; Latenzeinstellungen für das Akustikmodell eines neuronalen Netzwerks; oder Spracheinstellungen für ein Sprachmodell des neuronalen Netzwerks.
  11. Verfahren nach einem der Ansprüche 8 bis 10, wobei das eine oder die mehreren ausgewählten MLMs ein Sprachsynthesemodell eines neuronalen Netzwerks, ein Sprachverständnismodell eines neuronalen Netzwerks und/oder ein Fragenbeantwortungsmodell eines neuronalen Netzwerks umfassen.
  12. System, umfassend: eine Speichervorrichtung; und eine oder mehrere Verarbeitungsvorrichtungen, die kommunikativ mit der Speichervorrichtung gekoppelt sind, um: auf eine Vielzahl von trainierten Modellen maschinellen Lernens, MLMs, zuzugreifen, denen jeweils Anfangskonfigurationseinstellungen zugeordnet sind; eine Benutzerschnittstelle, UI, bereitzustellen, um eine Benutzereingabe zu empfangen, die eine Auswahl eines oder mehrerer MLMs aus der Vielzahl von trainierten MLMs und eine Modifikation von Anfangskonfigurationseinstellungen für das eine oder die mehreren MLMs angibt; modifizierte Konfigurationseinstellungen für das eine oder die mehreren ausgewählten MLMs auf der Grundlage der Benutzereingabe zu bestimmen; die Ausführung einer Build-Engine einer Pipeline zum Modifizieren des einen oder der mehreren ausgewählten MLMs in Übereinstimmung mit den modifizierten Konfigurationseinstellungen zu veranlassen; die Ausführung einer Einsatz-Engine der Pipeline zum Einsetzen des einen oder der mehreren modifizierten MLMs zu veranlassen; und die Anzeige einer Darstellung des einen oder der mehreren eingesetzten MLMs auf der Benutzeroberfläche zu veranlassen.
  13. System nach Anspruch 12, wobei die eine oder die mehreren Verarbeitungsvorrichtungen ferner angeordnet sind zum: Veranlassen, vor dem Empfangen der Benutzereingabe, die eine Auswahl des einen oder der mehreren MLMs anzeigt, der Anzeige einer Auflistung der Vielzahl von trainierten MLMs auf der Benutzeroberfläche; und Veranlassen, nach dem Empfangen der Benutzereingabe, die eine Auswahl des einen oder der mehreren MLMs anzeigt, der Ausführung einer Export-Engine der Pipeline, um das eine oder die mehreren ausgewählten MLMs zu initialisieren.
  14. System nach Anspruch 13, wobei zur Veranlassung der Ausführung der Export-Engine die eine oder die mehreren Verarbeitungsvorrichtungen ferner angeordnet sind zum: Veranlassen der Anzeige einer Darstellung einer Architektur des einen oder der mehreren ausgewählten MLMs und/oder von Parametern des einen oder der mehreren ausgewählten MLMs auf der Benutzeroberfläche.
  15. System nach einem der Ansprüche 12 bis 14, wobei die eine oder die mehreren Verarbeitungsvorrichtungen ferner angeordnet sind zum: Empfangen von Benutzereingabedaten; Veranlassen, dass das eine oder die mehreren eingesetzten MLMs auf die Benutzereingabedaten angewendet werden, um Ausgabedaten zu erzeugen; und Veranlassen der Anzeige einer Darstellung der Ausgabedaten und/oder eines Verweises auf eine gespeicherte Darstellung der Ausgabedaten auf der Benutzeroberfläche.
  16. System nach einem der Ansprüche 12 bis 15, wobei die modifizierten Konfigurationseinstellungen für das eine oder die mehreren ausgewählten MLMs mindestens eines umfassen von:einerAudio-Puffergröße einer akustischen Vorverarbeitungsstufe für das Akustikmodell eines neuronalen Netzwerks; Einstellungen für das Ende von Äußerungen für das Akustikmodell eines neuronalen Netzwerks; Latenzeinstellungen für das Akustikmodell eines neuronalen Netzwerks; oder Spracheinstellungen für ein Sprachmodell des neuronalen Netzwerks.
  17. System nach einem der Ansprüche 12 bis 16, wobei das eine oder die mehreren ausgewählten MLMs ein Sprachsynthesemodell eines neuronalen Netzwerks, ein Sprachverständnismodell eines neuronalen Netzwerks und/oder ein Fragenbeantwortungsmodell eines neuronalen Netzwerks umfassen.
  18. Nicht-transitorisches computerlesbares Medium, auf dem Anweisungen gespeichert sind, wobei die Anweisungen, wenn sie von einer Verarbeitungsvorrichtung ausgeführt werden, die Verarbeitungsvorrichtung veranlassen zum: Zugreifen auf eine Vielzahl von trainierten Modellen maschinellen Lernens, MLMs, denen jeweils Anfangskonfigurationseinstellungen zugeordnet sind; Bereitstellen einer Benutzerschnittstelle, UI, um eine Benutzereingabe zu empfangen, die eine Auswahl eines oder mehrerer MLMs aus der Vielzahl von trainierten MLMs und eine Modifikation von Anfangskonfigurationseinstellungen für das eine oder die mehreren MLMs angibt; Bestimmen modifizierter Konfigurationseinstellungen für das eine oder die mehreren ausgewählten MLMs auf der Grundlage der Benutzereingabe; Veranlassen der Ausführung einer Build-Engine einer Pipeline zum Modifizieren des einen oder der mehreren ausgewählten MLMs in Übereinstimmung mit den modifizierten Konfigurationseinstellungen; Veranlassen der Ausführung einer Einsatz-Engine der Pipeline zum Einsetzen des einen oder der mehreren modifizierten MLMs; und Veranlassen der Anzeige einer Darstellung des einen oder der mehreren eingesetzten MLMs auf der Benutzeroberfläche.
  19. Computerlesbares Medium nach Anspruch 18, wobei die Anweisungen ferner dazu dienen, die Verarbeitungsvorrichtung zu veranlassen zum: Veranlassen, vor dem Empfangen der Benutzereingabe, die eine Auswahl des einen oder der mehreren MLMs anzeigt, der Anzeige einer Auflistung der Vielzahl von trainierten MLMs auf der Benutzeroberfläche; und Veranlassen, nach dem Empfangen der Benutzereingabe, die eine Auswahl des einen oder der mehreren MLMs anzeigt, der Ausführung einer Export-Engine der Pipeline, um das eine oder die mehreren ausgewählten MLMs zu initialisieren.
  20. Computerlesbares Medium nach Anspruch 19, wobei zum Veranlassen der Ausführung der Export-Engine die Anweisungen ferner dazu dienen, die Verarbeitungsvorrichtung zu veranlassen zum: Veranlassen der Anzeige einer Darstellung einer Architektur des einen oder der mehreren ausgewählten MLMs und/oder von Parametern des einen oder der mehreren ausgewählten MLMs auf der Benutzeroberfläche.
  21. Computerlesbares Medium nach einem der Ansprüche 18 bis 20, wobei die Anweisungen ferner dazu dienen, die Verarbeitungsvorrichtung zu veranlassen zum: Empfangen einer Benutzereingabe; Veranlassen, dass das eine oder die mehreren eingesetzten MLMs auf die Benutzerdaten angewendet werden, um Ausgabedaten zu erzeugen; und Veranlassen der Anzeige einer Darstellung der Ausgabedaten und/oder eines Verweises auf eine gespeicherte Darstellung der Ausgabedaten auf der Benutzeroberfläche.
  22. Computerlesbares Medium nach Anspruch 20, wobei die modifizierten Konfigurationseinstellungen für das eine oder die mehreren ausgewählten MLMs mindestens eines umfassen von:einer Audio-Puffergröße einer akustischen Vorverarbeitungsstufe für das Akustikmodell eines neuronalen Netzwerks; Einstellungen für das Ende von Äußerungen für das Akustikmodell eines neuronalen Netzwerks; Latenzeinstellungen für das Akustikmodell eines neuronalen Netzwerks; oder Spracheinstellungen für ein Sprachmodell des neuronalen Netzwerks.
  23. Computerlesbares Medium nach einem der Ansprüche 20 bis 22, wobei das eine oder die mehreren ausgewählten MLMs ein Sprachsynthesemodell eines neuronalen Netzwerks, ein Sprachverständnismodell eines neuronalen Netzwerks und/oder ein Fragenbeantwortungsmodell eines neuronalen Netzwerks umfassen.
DE102022102912.3A 2021-02-12 2022-02-08 Pipelines für effizientes training und einsatz von modellen für maschinelles lernen Pending DE102022102912A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/248,906 US20220261631A1 (en) 2021-02-12 2021-02-12 Pipelines for efficient training and deployment of machine learning models
US17/248,906 2021-02-12

Publications (1)

Publication Number Publication Date
DE102022102912A1 true DE102022102912A1 (de) 2022-08-18

Family

ID=82611025

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022102912.3A Pending DE102022102912A1 (de) 2021-02-12 2022-02-08 Pipelines für effizientes training und einsatz von modellen für maschinelles lernen

Country Status (4)

Country Link
US (1) US20220261631A1 (de)
JP (1) JP2022123817A (de)
CN (1) CN114925846A (de)
DE (1) DE102022102912A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB202004594D0 (en) * 2020-03-30 2020-05-13 Microsoft Technology Licensing Llc Partitioning for an execution pipeline
US11978438B1 (en) * 2021-03-29 2024-05-07 Amazon Technologies, Inc. Machine learning model updating
US11889112B2 (en) * 2021-04-30 2024-01-30 Tencent America LLC Block-wise content-adaptive online training in neural image compression
WO2024065028A1 (en) * 2022-09-26 2024-04-04 FORMIC Al LTD. Application of an ai-based model to a preprocessed data set
CN117785486A (zh) * 2024-02-27 2024-03-29 融科联创(天津)信息技术有限公司 环境资源调配方法、装置、设备和介质

Also Published As

Publication number Publication date
CN114925846A (zh) 2022-08-19
US20220261631A1 (en) 2022-08-18
JP2022123817A (ja) 2022-08-24

Similar Documents

Publication Publication Date Title
DE102022102912A1 (de) Pipelines für effizientes training und einsatz von modellen für maschinelles lernen
US11922322B2 (en) Exponential modeling with deep learning features
CN109863537B (zh) 风格化输入图像
DE112020003547T5 (de) Transfer Learning für neuronale Netzwerke
DE102021128292A1 (de) Skalierbare semantische bildsuche mit deep- template- matching
DE112018005227T5 (de) Merkmalsextraktion mithilfe von multi-task-lernen
DE102021125231A1 (de) Unüberwachte domainanpassung mit neuronalen netzen
DE112020002425T5 (de) Bewegungsvorhersage unter verwendung eines oder mehrerer neuronaler netzwerke
DE112021002965T5 (de) Generierung von szenengraphen für unmarkierte daten
DE112021004694T5 (de) Trainieren eines frage-antwort-dialogsystems zum vermeiden von gegnerischen angriffen
DE102021125855A1 (de) Selbstlernende sprachsteuerung durch künstliche intelligenz auf grundlage eines benutzerverhaltens während einer interaktion
US20230177754A1 (en) Image manipulation by text instruction
DE102022112157A1 (de) Echtzeit-verbesserung für streaming-inhalt
DE102022003003A1 (de) Automatische Fotobearbeitung mittels sprachlicher Anweisung
DE102022106956A1 (de) Konversationelle ki-plattformen mit dialogintegration von geschlossenen domänen und offenen domänen
DE102021132529A1 (de) Adaptive zeitliche bildfilterung zum rendern einer realistischen beleuchtung
US11948084B1 (en) Function creation for database execution of deep learning model
CN110059164B (zh) 用于呈现对话系统的用户界面的方法和系统
DE102023103679A1 (de) Texturübertragung und -synthese unter verwendung ausgerichteter karten in bildgenerierungssystemen und -anwendungen
DE102022126287A1 (de) Speicherung und abruf von unstrukturierten daten in anwendungen konversationeller künstlicher intelligenz
DE102022001733A1 (de) Maschinell lernende Modelle zum Detektieren von thematisch abweichenden Digitalvideos
DE112021005482T5 (de) Ar- (augmented reality) gestützte selektive geräuscheinbindung aus der umgebung während der ausführung eines sprachbefehls
US11670023B2 (en) Artificial intelligence techniques for performing image editing operations inferred from natural language requests
US20240119927A1 (en) Speaker identification, verification, and diarization using neural networks for conversational ai systems and applications
Jain et al. Virtually Interactive User Manual for Command and Control Systems Using Rule-Based Chatbot

Legal Events

Date Code Title Description
R012 Request for examination validly filed