DE112020003547T5 - Transfer Learning für neuronale Netzwerke - Google Patents

Transfer Learning für neuronale Netzwerke Download PDF

Info

Publication number
DE112020003547T5
DE112020003547T5 DE112020003547.6T DE112020003547T DE112020003547T5 DE 112020003547 T5 DE112020003547 T5 DE 112020003547T5 DE 112020003547 T DE112020003547 T DE 112020003547T DE 112020003547 T5 DE112020003547 T5 DE 112020003547T5
Authority
DE
Germany
Prior art keywords
model
data
machine learning
inference
trained
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
DE112020003547.6T
Other languages
English (en)
Inventor
Farzin Aghdasi
Varun Praveen
Fnu Ratnesh Kumar
Partha Sriram
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 DE112020003547T5 publication Critical patent/DE112020003547T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Abstract

Transfer Learning kann verwendet werden, um es einem Benutzer zu ermöglichen, ein maschinelles Lernmodell zu erhalten, das für eine beabsichtige Inferenzaufgabe vollständig trainiert ist, ohne das Modell von Grund auf trainieren zu müssen. Es kann ein vortrainiertes Modell erhalten werden, das für diese Inferenzaufgabe relevant ist. Zusätzliche Trainingsdaten, die mindestens einer zusätzlichen Klasse von Daten entsprechen können, können verwendet werden, um dieses Modell weiter zu trainieren. Dieses Modell kann dann ausgedünnt und erneut trainiert werden, um ein kleineres Modell zu erhalten, das eine hohe Genauigkeit für die beabsichtigte Inferenzaufgabe bewahrt.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht die Priorität aus der nicht provisorischen US-Patentanmeldung Seriennummer 17/029,725 , eingereicht am 23. September 2020 mit dem Titel „Transfer Learning for Neural Networks“ und der provisorischen Patentanmeldung Seriennummer 62/906,054 , eingereicht am 25. September 2019 mit dem Titel „Transfer-Learning-Toolkit,“ die hiermit in ihrer Gesamtheit für alle Zwecke aufgenommen werden.
  • BACKGROUND
  • Techniken der künstlichen Intelligenz und des maschinellen Lernens werden zur Verwendung bei der Durchführung einer zunehmenden Vielfalt von Aufgaben über eine breite Vielfalt von Branchen übernommen. Während eine solche Verwendung viele Vorteile bieten kann, gibt es verschiedene Hindernisse für eine weitverbreitete Einführung. Beispielsweise ist es nicht einfach, ein neuronales Netzwerk zum Durchführen bestimmter Inferenzierungsarten zu trainieren und zu optimieren. Um Benutzern dabei zu helfen, ein neuronales Netzwerk zu trainieren, sind verschiedene Tools und Frameworks bereitgestellt worden, um es einem Benutzer zu ermöglichen, zu bewirken, dass ein Netzwerk trainiert wird, ohne sich mit einem Großteil der Komplexität befassen zu müssen. In vielen Situationen sind diese Tools und Frameworks jedoch immer noch ziemlich komplex und erfordern jemanden mit Erfahrung in neuronalen Netzwerken, um sie effektiv zu nutzen.
  • Figurenliste
  • Es werden verschiedene Ausführungsformen gemäß der vorliegenden Offenbarung unter Bezugnahme auf die Zeichnungen beschrieben, in denen:
    • 1A und 1B stellen Bilder in einem Inferenzprozess gemäß mindestens einer Ausführungsform dar;
    • 2 stellen beispielhafte Architektur dar, die für Transfer Learning genutzt werden kann, gemäß mindestens einer Ausführungsform;
    • 3 stellt Komponenten eines beispielhaften Transfer-Learning-Containers gemäß mindestens einer Ausführungsform dar;
    • 4A und 4B stellen Komponenten, die mit einem Transfer-Learning-System verwendet werden können, gemäß mindestens einer Ausführungsform dar;
    • 5 stellt einen Prozess zum Erhalten eines trainierten neuronalen Netzwerks zur Inferenzierung gemäß mindestens einer Ausführungsform dar;
    • 6 stellt einen Prozess zum weiteren Trainieren und Optimieren eines vortrainierten Modells gemäß mindestens einer Ausführungsform dar;
    • 7A stellt eine Inferenz- und/oder Trainingslogik gemäß mindestens einer Ausführungsform dar;
    • 7B stellt eine Inferenz- und/oder Trainingslogik gemäß mindestens einer Ausführungsform dar;
    • 8 stellt ein beispielhaftes Datenzentrumssystem gemäß mindestens einer Ausführungsform dar;
    • 9 stellt ein Computersystem gemäß mindestens einer Ausführungsform dar;
    • 10 stellt ein Computersystem gemäß mindestens einer Ausführungsform dar;
    • 11 stellt mindestens Abschnitte eines Grafikprozessors gemäß einer oder mehreren Ausführungsformen dar;
    • 12 stellt mindestens Abschnitte eines Grafikprozessors gemäß einer oder mehreren Ausführungsformen dar;
    • 13 ist ein beispielhaftes Datenflussdiagramm für eine fortschrittliche Rechen-Pipeline gemäß mindestens einer Ausführungsform;
    • 14 ist ein Systemdiagramm für ein beispielhaftes System zum Trainieren, Anpassen, Instanziieren und Einsetzen von maschinellen Lernmodellen in einer fortschrittlichen Rechen-Pipeline gemäß mindestens einer Ausführungsform; und
    • 15A und 15B stellen ein Datenflussdiagramm für einen Prozess, um ein maschinelles Lernmodell zu trainieren, sowie eine Client-Server-Architektur, um Annotationstools mit vortrainierten Annotationsmodellen zu verbessern, gemäß mindestens einer Ausführungsform dar.
  • DETAILLIERTE BESCHREIBUNG
  • Ansätze gemäß verschiedenen Ausführungsformen können einen Satz von vortrainierten neuronalen Netzwerken oder andere derartige Modelle oder Netzwerke bereitstellen, die für maschinelles Lernen und künstliche Intelligenz nützlich sind. Ein Benutzer oder andere Einheit kann ein oder mehrerer dieser vortrainierten Modelle erhalten und sie weiter trainieren, um imstande zu sein, Inferenzen für eine oder mehrere zusätzliche Klassen oder Typen von Eingabedaten vornehmen zu können. Diese Modelle können ausgedünnt und für diese spezifische Inferenzaufgaben optimiert werden, was es ihnen ermöglicht, hochgenau, verhältnismäßig leicht und schnell bei der Inferenzierung zu sein. Die Fähigkeit, bereits trainierte Modelle zu nehmen und sie für eine spezifische Inferenzaufgabe anzupassen oder weiter zu trainieren, kann den Trainingsprozess für einen Endbenutzer oder eine Einheit erheblich vereinfachen, die mit der Bereitstellung von maschinellem Lernen für diese Aufgabe beauftragt ist.
  • Beispielsweise könnte maschinelles Lernen verwendet werden, um in aufgenommenen Bilddaten dargestellte Objekte schnell und genau zu erfassen und zu klassifizieren. Beispielsweise könnte ein Fahrzeug unter Verwendung einer oder mehrerer Kameras Bilddaten seiner Umgebung aufnehmen. 1A stellt ein beispielhaftes Bild 100 dar, das unter Verwendung einer solchen Kamera aufgenommen werden könnte. Maschinelles Lernen könnte verwendet werden, um zu versuchen, verschiedene Arten von Objekten in einem solchen Bild zum Zweck z. B. einer autonomen Navigation oder Kollisionsvermeidung zu erfassen und zu klassifizieren. In mindestens einigen Ausführungsformen kann es wünschenswert sein, unterschiedliche Arten von Objekten zum Zweck einer solchen Entscheidungsfindung zu klassifizieren. Wenn beispielsweise ein Navigationssystem eine Entscheidung treffen muss, ob es eine Kollision mit 10 mph mit einem ersten Objekt oder einem zweiten Objekt entlang zwei potentiellen Wegen aushalten soll, kann es von Vorteil sein, zu wissen, ob diese Objekte andere Fahrzeuge sind, die imstande sein können, diese Kollision mit geringem Schaden auszuhalten, ein Felsbrocken, der wahrscheinlich mindestens einige Schäden am gegenwärtigen Fahrzeug verursachen wird, oder ein Mensch, der sich wahrscheinlich aus einer solchen Kollision eine Verletzung zuziehen wird.
  • Um genaue Inferenzen für diese Arten oder Klassen von Objekten in aufgenommenen Bilddaten zu erzeugen, müssen ein oder mehrere neuronale Netzwerke trainiert werden, um diese Klassen aus Bilddaten zu erkennen. Dies kann das Erhalten einer großen Menge von Trainingsdaten beinhalten, die in diesem Fall eine große Anzahl von Bildern jeder dieser Klassen von Daten umfassen, wobei Instanzen dieser Klassen von Objekten gekennzeichnet oder auf andere Weise identifiziert sind. Dies kann ein komplexes und teures Unterfangen sein. Sobald sie erhalten worden sind, müssen diese Trainingsbilder verwendet werden, um ein oder mehrere neuronale Netzwerke zu trainieren, um diese Klassen von Objekten durch Klassifizierungssinferenzen genau zu identifizieren, was, wie oben erläutert, ein komplizierter Prozess sein kann, der Fachkenntnisse in neuronalen Netzwerken erfordert.
  • Um mindestens einen Teil dieser Komplexität zu reduzieren oder zu beseitigen, kann ein Benutzer ein vortrainiertes neuronales Netzwerk erhalten, das für eine oder mehrere zusätzliche Klassen von Daten angepasst werden kann. Beispielsweise werden im Bild 150 der 1B mehrere Fahrzeuge dargestellt, die sich in dieser Szene oder Umgebung befinden. Dementsprechend könnte ein Benutzer in der Lage sein, ein Modell zu erhalten, das bereits trainiert ist, verschiedene Arten von Fahrzeugen zu erkennen und zu klassifizieren. Wenn folglich ein solches Bild als Eingabe in dieses neuronale Netzwerk bereitgestellt wird, kann die Ausgabe dieses Netzwerks Instanzinformationen 152 für erfasste Fahrzeuge, sowie Informationen über diese Fahrzeuge, wie z. B. Typ, Bewegung, Verhalten usw. enthalten. Das vortrainierte Modell kann in diesem Fall jedoch nicht in der Lage sein, eine Instanz 154 eines Menschen oder Fußgängers in diesem Bild zu erfassen und zu klassifizieren, da das Modell nicht spezifisch trainiert wurde, diese Objektklasse zu erkennen. In mindestens einer Ausführungsform kann ein Benutzer das Modell erhalten, das vortrainiert ist, Fahrzeuge genau zu erkennen, und kann dieses Modell weiter trainieren, Menschen in eingegebenen Bilddaten zu erkennen. Auf diese Weise muss der Benutzer nur Trainingsdaten für eine Menschenklassifizierung von Objekten bereitstellen und muss das Netzwerk nicht von Grund auf trainieren, sondern kann dieses Modell einfach weiter trainieren, eine zusätzliche Objektklasse zu erkennen. In mindestens einer Ausführungsform kann eine Anwendung, ein Framework oder ein Toolkit bereitgestellt werden, das dieses zusätzliche Training unterstützen kann, wobei es zusätzliche Schritte wie z. B. Ausdünnung und Optimierung durchführt.
  • 2 stellt eine beispielhafte Systemarchitektur 200 dar, die verwendet werden kann, um eine solche Funktionalität gemäß verschiedenen Ausführungsformen bereitzustellen. In diesem Beispiel kann es mehrere Benutzer geben, die vortrainierte neuronale Netzwerke erhalten möchten und jeweilige Client-Vorrichtungen 250 verwenden können, um diese Netzwerke anzufordern oder zu erhalten. In diesem Beispiel können diese Client-Vorrichtungen alle geeigneten Rechenvorrichtungen umfassen, die einen Tischcomputer, einen Notebook-Computer, eine Set-Top-Box, eine Streaming-Vorrichtung, eine Spielkonsole, ein Smartphone, einen Tablet-Computer, einen VR-Headset, eine AR-Brille, einen tragbaren Computer oder einen intelligenten Fernseher umfassen können. Jede Client-Vorrichtung 250, 260 kann eine Anfrage über mindestens ein drahtgebundenes oder drahtloses Netzwerk 240 stellen, das das Internet, ein Ethernet, ein lokales Netzwerk (LAN) oder ein Mobilfunknetz, unter anderen derartigen Optionen umfassen kann. In diesem Beispiel werden diese Anfragen an eine Adresse gestellt, die mit einem Cloud-Anbieter verknüpft ist, der eine oder mehrere elektronische Ressourcen in einer Cloud-Anbieterumgebung 202 betreiben oder steuern kann, die ein Datenzentrum oder eine Serverfarm umfassen können. In mindestens einer Ausführungsform kann die Anfrage durch mindestens einen Edge-Server 230 empfangen oder verarbeitet werden, der sich an einem Netzwerkrand befindet und sich außerhalb mindestens einer Sicherheitsschicht 220 befindet, die mit der Cloud-Anbieterumgebung verknüpft ist. Auf diese Weise kann die Latenz reduziert werden, indem es den Client-Vorrichtungen ermöglicht wird, mit Servern zu interagieren, die sich in unmittelbarer Nähe befinden, während die Sicherheit der Ressourcen in der Cloud-Anbieterumgebung verbessert wird.
  • In mindestens einer Ausführungsform kann die Cloud-Anbieterumgebung 202 einen Modellmanager 206 umfassen, der einen Satz vortrainierter neuronaler Netzwerke verwaltet, die in einer Modellbibliothek 208 oder einem Repository gespeichert sind. Diese Modelle könnten unter Verwendung von Ressourcen in der Cloud-Anbieterumgebung 202 trainiert oder anderweitig erhalten werden. In mindestens einer Ausführungsform kann der Modellmanager 206 beauftragt werden, mindestens einige dieser vortrainierten Modelle einem oder mehreren Edge-Servern 230 unter Verwendung von einem oder mehreren Servern 204 in der Cloud-Anbieterumgebung bereitzustellen, so dass die Edge-Server mindestens einige dieser Modelle lokal in einem Edge-Modell-Repository 232 gespeichert haben. Unter Verwendung einer solchen Architektur kann dann eine Client-Vorrichtung 250, 252 eine oder mehrere dieser Modelle von einem Edge-Server 230 zur Speicherung in einem lokalen Speicher 254, 264 auf der Client-Vorrichtung erhalten. Es versteht sich, dass kein Edge-Server erforderlich ist und dass ein vortrainiertes Modell aus der Cloud-Anbieterumgebung, von einem Dritten oder aus einem nichtflüchtigen computerlesbaren Speichermedium, auf das die Client-Vorrichtung zugreifen kann, unter anderen derartigen Optionen erhalten werden kann. Sobald sie erhalten worden sind, kann eine Inferenzanwendung 252, 262 verwendet werden, um diese vortrainierten Modelle für eine oder mehrere zusätzliche Klassen von Objekten oder Eingaben weiter zu trainieren, die dann zur Inferenzierung verwendet werden, sobald sie trainiert sind. In mindestens einigen Ausführungsformen kann ein vortrainiertes Modell an einer oder mehreren Klassen von Objekten trainiert werden, für die sich der Endbenutzer nicht interessiert und nicht bei der Inferenzierung verwenden wird, jedoch ein Training einer Art von Inferenzierung bereitstellen wird, die auf eine oder mehrere interessierende Klassen übertragen werden kann.
  • 3 stellt eine beispielhafte Architektur 300 dar, die verwendet werden kann, um ein vortrainiertes Modell 302 gemäß mindestens einer Ausführungsform weiter zu trainieren. Dieses Beispiel stellt verschiedene Komponenten in eine Transfer-Learning-Container 306 dar, jedoch wird ein solcher Container (z.B. ein Docker-Container) nur in bestimmten Ausführungsformen verwendet und ist nicht erforderlich, wenn nicht spezifisch angegeben oder für eine bestimmte Implementierung bestimmt. In diesem Beispiel werden zusätzliche Trainingsdaten 304 zusammen mit dem vortrainierten Modell 302 bereitgestellt, um ein Modell 324 zu erhalten, das für eine oder mehrere Klassen trainiert ist, die in diesen zusätzlichen Trainingsdaten dargestellt werden. In diesem Beispiel empfängt eine Client-Vorrichtung einen Software-Container 306, der Komponenten und eine Funktionalität enthält, die für dieses weitere Training nützlich sind, der unter anderen derartigen Optionen auf einer Client-Vorrichtung oder einem Cloud-Server ausgeführt werden kann.
  • Ein Benutzer kann ein geeignetes vortrainiertes Modell aus einer Modellquelle erhalten, wie in Bezug auf 2 erläutert. In einigen Ausführungsformen kann ein Benutzer ein geeignetes Modell auswählen, während in anderen Ausführungsformen ein Benutzer eine Art der durchzuführenden Inferenzierung spezifizieren könnte und ein geeignetes Modell für diesen Benutzer ausgewählt werden könnte. In einigen Ausführungsformen kann mehr als ein Modell für ein weiteres Training bereitgestellt werden, wobei ein Modell ausgewählt werden kann, das ein höchstes Leistungsniveau (in Bezug auf Genauigkeit, Geschwindigkeit, Kompaktheit usw.) liefert. Ein Benutzer kann die zusätzlichen Trainingsdaten 304 erhalten oder erzeugen, die benötigt werden, um dieses Modell für eine oder mehrere zusätzliche Klassen von Objekten oder Eingaben weiter zu trainieren. Dies kann gekennzeichnete Bild-, Audio-, Video-, Text- oder andere derartige Daten umfassen. Diese Trainingsdaten 304 können durch einen Datenkonverter 308 geleitet werden, um jede notwendige Datenkonvertierung durchzuführen, die für das Training benötigt wird. In einigen Ausführungsformen kann dies auch mindestens eine Vorverarbeitung der Daten umfassen, wie z. B. das Komprimieren oder Filtern einiger Aspekte der Daten. Diese Daten können auch durch mindestens ein Datenerweiterungsmodul 310 oder Prozess verarbeitet werden, was dazu beitragen kann, zusätzliche Daten für das Training zu erzeugen. Wenn beispielsweise Bilddaten bereitgestellt werden, dann kann dieses Erweiterungsmodul zusätzliche Versionen jedes Bildes erzeugen, wie z. B. um eine andere Auflösung, Ansicht, Ausrichtung, Größe, Kontrast oder Farbe zu erhalten, und kann auch Rauschen, Unschärfe, Beleuchtung, Schattierung oder Artefakt anwenden, zusätzlich zum Bereitstellen zusätzlicher Instanzen einer Objektklasse unter unterschiedlichen Umständen oder Bedingungen. In mindestens einer Ausführungsform kann dies einen Datensatz bereitstellen, der etwa zehnmal so viele Trainingsdateninstanzen enthält wie ein ursprünglicher Eingabesatz. Diese erweiterten Trainingsdaten können dann zusammen mit dem vortrainierten Modell einem Trainingsmodul 312 im Container 306 bereitgestellt werden.
  • Diese Trainingsmodul 312 kann das vortrainierte Modell unter Verwendung der erweiterten Trainingsdaten weiter trainieren. Sobald ein Kriterium zur Beendigung des Trainings erfüllt ist, beispielsweise wenn alle Trainingsdaten verarbeitet oder eine Anzahl von Iterationen durchgeführt worden sind, kann ein Bewertungsmodul 314 eine Bewertung des Modells durchführen, wie z. B. durch Verwenden eines Anteils der erweiterten Trainingsdaten, der zum Testen zurückgehalten wurde. Wenn das Modell nicht mindestens eine minimale Genauigkeits- oder Konfidenzschwelle erreicht, können zusätzliche Trainingsdaten erhalten und ein weiteres Training durchgeführt werden. Sobald eine erfolgreiche Bewertung erhalten worden ist, wird der Benutzer ein Modell erhalten haben, das für die zusätzliche(n) Klasse(n) von Daten, die in den zusätzlichen Trainingsdaten 304 dargestellt sind, äußerst genau ist.
  • Sobald es vollständig trainiert ist, kann das Modell jedoch verhältnismäßig groß sein. Dementsprechend kann dieses trainierte Modell an ein Modellausdünnungsmodul 306 oder einen Prozess weitergegeben werden, um zu versuchen, ein Modell zu erzeugen, das kleiner ist und dennoch ein hohes Maß an Genauigkeit bietet. Ein Ausdünnungsprozess kann eine Anzahl von Knoten im Modell reduzieren, was beispielsweise eine Anzahl von Netzwerkparametern von etwa 200.000.000 auf etwa 2.000.000 reduzieren könnte, was eine etwa 10-fache Reduzierung der Speicher- und Rechenanforderungen liefert. Die Ausdünnung dieses Netzwerks kann jedoch zu einem gewissen Genauigkeitsverlust geführt haben, so dass das ausgedünnte Modell zu einem anderen Neutrainingsmodul 318 (oder erneut zum selben Trainingsmodul 312) zum weiteren Training weitergegeben werden kann. Ein aus diesem erneuten Training resultierendes Modell kann zu einem Bewertungsmodul 320 (oder demselben Bewertungsmodul 314) weitergegeben werden, um festzustellen, ob die Genauigkeit ausreichend wiederhergestellt wurde oder noch bereitgestellt wird, und wenn dies der Fall ist, kann das Modell einem Exportmodul 322 bereitgestellt werden, das das trainierte Modell 324 zur Verwendung durch einen Endbenutzer oder andere derartige Einheit bereitstellen kann. Wie bei der früheren Bewertung können, wenn die Bewertung fehlschlägt, dann zusätzliche Trainingsdaten erhalten und ein weiteres erneutes Training eingeleitet werden. In diesem Prozess könnte die Ausdünnung erneut versucht werden, wenn keine erfolgreiche Bewertung erhalten werden kann, wobei ein geringerer Ausdünnungsgrad angewendet werden könnte, um zu versuchen, die Genauigkeit des Modells zu bewahren, selbst wenn dies zu einem geringfügig größeren Modell führt.
  • Wie im System 400 der 4A dargestellt, kann ein Transfer-Learning-Toolkit 406 verwendet werden, das ein oder mehrere Trainingsmodule 408, 412 sowie ein Ausdünnungsmodul 410 enthält, das ein vollständig trainiertes Modell 414 aus einem vortrainierten Modell und zusätzlichen Trainingsdaten erzeugen kann. Dieses trainierte Modell kann dann zur Inferenzzeit durch eine Inferenzanwendung 416 verwendet werden. In einer solchen Situation können Live-Daten 418 als Eingabe bereitgestellt oder empfangen werden, wie z. B. Bild- oder Videodaten, die von einer Kamera gestreamt werden. Diese Live-Daten können unter Verwendung des trainierten Modells 414 verarbeitet werden, das eine oder mehrere Inferenzen 420, wie z. B. Klassen von Objekten (und einzelne Instanzen dieser Klassen), die inferenziert werden, um in den Live-Daten dargestellt zu werden, sowie verwandte Informationen wie z. B. die Position, Bewegung usw. ausgeben kann. Diese Inferenzen können dann durch diese Anwendung 416 oder eine andere Anwendung bei der Durchführung einer bestimmten Aufgabe, wie z. B. der Kollisionsvermeidung oder Navigation verwendet werden.
  • Wie erwähnt, kann ein Benutzer in der Lage sein, ein vortrainiertes Modell aus einer Bibliothek oder einer anderen Gruppe vortrainierter Modelle zu erhalten. Als Beispiel stellt 4B eine beispielhaftes System 450 dar, in dem ein Benutzer in der Lage ist, eine Client-Vorrichtung 470 zu nutzen, um ein Modell unter Verwendung einer gemeinsamen Schnittstelle 454 anzufordern oder zu erhalten, die die Form einer grafischer Benutzerschnittstelle (GUI), einer Befehlszeilenschnittstelle (CLI) oder Anwendungsprogrammierschnittstelle (API) unter anderen derartigen Optionen annehmen kann. Die Schnittstelle 454 kann es einem Benutzer ermöglichen, irgendeines einer Anzahl von Modellen zu erhalten, die in einem Modellarchiv 452 gespeichert sind. Es kann verschiedene Transfer-Learning-Module geben, die optimierte Modelle zum Zugriff durch eine Client-Vorrichtung bereitstellen können. Beispiele umfassen Module für medizinisches Lernen 456, Transportlernen 458, Verhaltenslernen 460 oder Gesichtslernen (z. B. Erfassung) 462. Jedes dieser Module kann Module bereitstellen oder erzeugen, die für jeweilige Inferenzarten trainiert sind, wie z. B. um Klassen von Objekten, Posen, Bewegungen und dergleichen zu erkennen. Eine Register-API 468 kann verwendet werden, um es diesem Client 170 zu ermöglichen, eines oder mehrere dieser Module in einem lokalen Register zu erhalten oder zu empfangen. In mindestens einer Ausführungsform kann ein Benutzer ein spezifisches Modul auswählen, während in anderen Ausführungsformen ein oder mehrere Modelle für den Benutzer basierend auf Informationen ausgewählt werden können, die durch den Benutzer bereitgestellt werden, wie z. B. für eine beabsichtigte Art der Inferenz, die durchgeführt werden soll. In einigen Ausführungsformen kann ein Benutzer eine Anfrage durch eine gemeinsame Schnittstelle 454 stellen, und diese Anfrage wird analysiert, um eine Art der Inferenz zu bestimmen, die durchgeführt werden soll, und dann kann ein geeignetes Lernmodul aktiviert werden, um seinen Arbeitsablauf durchzuführen und ein optimiertes Modell erzeugen, das dann in einem Register unter Verwendung einer Register-API 468 angeordnet werden kann, die für die Client-Vorrichtung 470 lokal ist.
  • 5 stellt eine beispielhaften Prozess 500 zum Erhalten eines trainierten Modells zur Inferenz dar, das gemäß verschiedenen Ausführungsformen genutzt werden kann. Es versteht sich, dass es für diese und andere hierin präsentierten Prozesse zusätzliche, weniger oder alternative Schritte, die die in ähnlicher oder alternativer Reihenfolge oder mindestens teilweise parallel durchgeführt werden, innerhalb des Umfangs verschiedener Ausführungsformen geben kann. wenn nicht anders spezifisch angegeben. In diesem Beispiel wird eine Anfrage nach einem vortrainierten Modell gestellt 502, das für eine Art der Inferenz relevant ist, die durchgeführt werden soll. Beispielsweise könnte dies ein Modell sein, das vortrainiert ist, um bestimmte Klassen von Objekten in Bilddaten zu klassifizieren, wobei diese Klassen nicht in einem oder mehreren Klassen für die Art der Inferenz enthalten sein können, die durchgeführt werden soll. Als Reaktion kann ein vortrainiertes Modell empfangen werden 504, das spezifisch durch den Benutzer ausgewählt oder basierend auf Informationen ausgewählt werden kann, die mit der Anfrage verknüpft sind oder auf andere Weise für die Quelle der Anfrage bekannt sind. Um das vortrainierte Modell weiter zu trainieren, werden zusätzliche Trainingsdaten bereitgestellt 506, wie sich für solche Zwecke erhalten oder erzeugt werden können. In mindestens einer Ausführungsform werden diese zusätzliche Trainingsdaten klassifizierte oder gekennzeichnete Daten umfassen, die die für die Art der Inferenz spezifisch sind, die durchgeführt werden soll, die eine oder mehrere zusätzliche Klassen von Objekten oder Daten betreffen können. Dieses Modell kann dann für ein weiteres Training der Daten verwendet werden. Nach diesem zusätzlichen Training kann das Modell ausgedünnt werden 508, um zu versuchen, ein kleineres Modell mit ähnlicher Genauigkeit zu erhalten. Als Ergebnis kann ein ausgedünntes Modell erhalten werden 510, das für die Art der Inferenz, die durchgeführt werden soll, trainiert und äußerst genau ist. Falls notwendig kann am ausgedünnten Modell ein zusätzliches Training durchgeführt werden, um eine Genauigkeit zurückzugewinnen, die während des Ausdünnungsprozesses verloren gegangen sein kann. Es kann dann eine Inferenz der beabsichtigten Art unter Verwendung dieses trainierten Modells durchgeführt werden 512.
  • 6 stellt einen beispielhaften Prozess 600 dar, der verwendet werden kann, um ein solches Modell gemäß verschiedener Ausführungsformen erneut zu trainieren. In diesem Beispiel wird ein vortrainiertes Modell für eine Art der Inferenz empfangen 602. Zusätzliche Trainingsdaten werden für mindestens eine zusätzliche Klasse oder Art von Daten erhalten 604, die nicht für das Vortraining des Modells verwendet wurden. In einigen Fällen kann mindestens eine Konversion und/oder Erweiterung dieser Trainingsdaten durchgeführt 606 werden, die zu zusätzlichen Trainingsdaten eines bestimmten Formats führen kann. Diese zusätzlichen Trainingsdaten können dann verwendet werden, um dieses vortrainierte Modell für mindestens eine zusätzliche Klasse oder Art von Daten weiter zu trainieren 608. Wenn durch eine Bewertung festgestellt wird 610, dass das Training nicht erfolgreich war, wie z. B. wo die Genauigkeit oder Konfidenz des trainierten Modells nicht mindestens einen minimalen Schwellenwert erreicht, dann kann ein weiteres Training mit zusätzlichen Trainingsdaten stattfinden. Wenn das Training als erfolgreich bewertet wird, kann eine Ausdünnung am Modell durchgeführt werden 612, um zu versuchen, eine Größe (z.B. eine Anzahl von Knoten) des Modells zu reduzieren. Dieses ausgedünnte Modell kann dann unter Verwendung derselben oder zusätzlicher Trainingsdaten erneut trainiert werden 614, um zu versuchen, eine Genauigkeit zurückzugewinnen, die während des Ausdünnungsprozesses verloren gegangen ist. Wenn festgestellt wird 616, dass dieses erneute Training nicht erfolgreich war, dann kann ein weiteres erneutes Training durchgeführt werden. Andernfalls kann das trainierte und ausgedünnte Modell zur Inferenz einer beabsichtigten Art exportiert werden 618, die eine Inferenz für die eine oder die mehrere zusätzlichen Klassen oder Arten von Daten umfasst. Das trainierte Modell kann in einem solchen Ansatz ohne jede Codierung seitens des Endbenutzers erhalten werden, wobei stattdessen nur wenige Werte durch eine Konsole oder Anwendung zum erneuten Training spezifiziert oder ausgewählt werden müssen. Dieses Modell kann klein genug sein, um an verschiedenen Orten ausgeführt zu werden, wie z. B. auf einem Edge-Server oder einer Client-Vorrichtung, oder sogar auf einer Vorrichtung wie z. B. einer Kamera oder einem Fahrzeug. In mindestens einigen Ausführungsformen kann diese Inferenz unter Verwendung jeder geeigneten Verarbeitungskomponente durchgeführt werden, die mindestens eine CPU oder GPU enthält, wie an anderer Stelle hierin detaillierter erläutert.
  • Wie erwähnt, kann in mindestens einigen Ausführungsformen diese Funktionalität als Teil eines Transfer-Learning-Toolkits vorgesehen werden. Ein Toolkit kann einen Benutzer mit einer Funktionalität versehen, die mit einem vortrainierten Modell verwendet werden kann, um ein Modell zu erzeugen, das für eine spezifische Aufgabe oder mindestens eine zusätzliche Klasse trainiert ist. Ein Toolkit kann eine Funktionalität für ein zusätzliches Training, eine Modellausdünnung und eine Szenenanpassung, unter anderen derartigen Optionen bereitstellen, die hierin erläutert und vorgeschlagen werden. Dieses Toolkit kann auf einer Abstraktion sitzen, um die Komplexität zu reduzieren und die Modellentwicklung zu beschleunigen, wie z. B. TensorFlow, Keras oder PyTorch, die selbst auf einem späteren parallelen Programmiermodell und Optimierungsinferenz sitzen können, die CUDA, cuDNN und TensorRT von der NVIDIA Corporation umfassen können. Dieser Boden kann später eine Funktionalität wie z. B. Clustering und Nachverarbeitung bereitstellen, während die Abstraktionsschicht eine Funktionalität in Bezug auf Modellkonstruktion, Verlustberechnung und Datenerweiterung bereitstellen kann. Diese Schichten können alle auf einer Hardwareschicht sitzen, die in mindestens einigen Ausführungsformen Edge-Vorrichtungen einer Berechnungsplattform umfassen kann. Dieses Toolkit kann eine Schnittstelle bereitstellen, um es einem Ingenieur oder einer anderen Person zu ermöglichen, Informationen bereitzustellen, wie z. B. Informationen und Trainingsdaten für eine neue Klasse von Objekten, die verwendet werden sollen, um ein vortrainiertes Modell weiter zu trainieren. Eine solche Schnittstelle kann es einem Benutzer auch ermöglichen, Eingaben in Bezug auf andere Aufgaben bereitzustellen, wie z. B. Datenerweiterung und Ausdünnung usw. In mindestens einigen Fällen kann es ein Toolkit einem Benutzer auch ermöglichen, aus verschiedenen vortrainierten Modellen auszuwählen, die Modelle umfassen können, die trainiert sind, Inferenzen in Bezug auf Personen, Verkehr, Bewegung, Navigation, Fahrzeuge, Gesichter, Posen, Gesten, Blicke, Handlungen und dergleichen vorzunehmen. Ein Toolkit kann es auch ermöglichen, dass ein Modell erzeugt und exportiert wird, das einen gewissen Grad an Verschlüsselung eines spezifizierten Typs enthält, der auch für eine bestimmte Hardware wie z. B. eine oder mehrere GPUs optimiert sein kann.
  • In einigen Ausführungsformen kann ein Toolkit auch ein anfängliches Testen eines vortrainierten Modells unter Verwendung der zusätzlichen Trainingsdaten durchführen. Wenn die Leistung dieses vortrainierten Modells bereits mindestens ein minimales Leistungskriterium in Bezug auf diese zusätzlichen Trainingsdaten erfüllt, kann das zusätzliche Training nicht benötigt werden und das vortrainierte Modell kann verwendet werden. In mindestens einigen Ausführungsformen kann immer noch ein Versuch unternommen werden, dieses Modell auszudünnen und dann erneut zu trainieren, um zu versuchen, keinen signifikanten Genauigkeitsverlust (z.B. weniger als 1% Verlust der Genauigkeit) aufgrund der Ausdünnung sicherzustellen. Dieses Modell könnte dann mit minimaler zusätzlicher Verarbeitung zur Verwendung exportiert werden. In einigen Ausführungsformen könnte ein Toolkit mehrere Modelle erhalten und an jedem eine Anfangsanalyse durchführen und dann fortfahren, das Modell mit dem höchsten Leistungsniveau vor einem zusätzlichen Training erneut zu trainieren. In anderen Ausführungsformen könnte ein Toolkit mehrere Modelle erneut trainieren und ausdünnen, dann das erneut trainierte Modell mit der höchsten oder besten Leistung, der kleinsten Modellgröße usw. exportieren. Dieses Toolkit könnte an vielen unterschiedlichen Orten arbeiten, wie z. B. auf einer Client-Vorrichtung, einem Edge-Server oder einem Cloud-Server.
  • Daten können möglicherweise in verschiedenen Formaten in ein solches Toolkit aufgenommen werden. Beispielsweise kann eine Klassifizierungsaufgabe ein Verzeichnis von Bildern mit einer bestimmten Struktur erwarten, wobei jede Klasse ihr eigenes Verzeichnis mit dem Klassennamen aufweist. Die Namenskonvention für das Training und die Bewertung kann sich unterscheiden, da der Pfad jedes Satzes individuell spezifiziert werden kann. Die Vorverarbeitung der Eingabe für diese Klassifizierung kann für andere Objekterfassungs-Netzwerke anders durchgeführt werden. Für bestimmte neuronale Netzwerkmodelle kann ein Objektdetektor die Daten aus einem ersten Datensatz mit einem ersten Format lesen (z. B. in nicht einschränkenden Beispielen im KITTI-Dateiformat) und diese Daten in Daten konvertieren, die so formatiert sind, dass sie einem zweiten Datensatz entsprechen (z. B. TensorFlow Records oder „TFRecords“), die dabei helfen können, durch die Daten schneller zu iterieren. In einer oder mehreren Ausführungsformen kann ein Benutzer Eingabedaten in einem Format (z. B. KITTI) bereitstellen, und ein Konverter kann vorgesehen werden, um die Daten in ein Format zu konvertieren, das einem anderen Datensatz entspricht (z. B. einer TFRecords-Konvertierungsspezifikationsdatei). Für neuronale Netzwerkmodelle wie FasterRCNN kann das Eingabebild für FasterRCNN entweder aus RGB- oder Graustufenbildern bestehen. Diese Kennzeichnungen können auch im ersten (z. B. KITTI) Datensatzformat als diejenige vorliegen, die zur Detektion verwendet werden. Ein Unterschied besteht darin, dass die Kennzeichnungen für FasterRCNN nicht in das Format des zweiten Datensatzes (z. B. TFRecords) konvertiert werden können, sondern die rohen Textkennzeichnungen des ersten Datensatzes (z. B. KITTI) direkt verwendet werden können. In einer oder mehreren Ausführungsformen kann das Daten-I/O-Konversionswerkzeug eine Spezifikationsdatei aufnehmen, um die Parameter zu definieren, die zum Umwandeln von Daten aus dem ersten Format in das zweite Format erforderlich sind. Gemäß einem nicht einschränkenden Beispiel kann die Spezifikationsdatei als Datei im Prototxt-Format mit einem oder mehreren globalen Parametern implementiert werden.
  • Ein Transfer-Learning-Toolkit kann in mindestens einer Ausführungsform auch Befehle wie einen Trainingsbefehl und einen Bewertungsbefehl enthalten. Diese können verwendet werden, um ein neues Modell von Grund auf neu zu trainieren oder ein vorher trainiertes Netzwerk erneut zu trainieren bzw. ein neu trainiertes Modell zu bewerten. Diese Befehle können mehrere Parameter aufweisen, an denen kleine Verbesserungen vorgenommen werden können, um die Leistung zu optimieren. Jedoch kann es gemäß herkömmlichen Ansätzen mühsam sein, eine solch große Anordnung von Eingaben über die Befehlszeile zu instanziieren. Um diesen Prozess zu vereinfachen, stellt eine Ausführungsform des Toolkits Konfigurationsdateien oder Spezifikationsdateien bereit, die verwendet werden können, um diese Befehle für ein Experiment eines Benutzers zu konfigurieren. In einer oder mehreren nicht einschränkenden Ausführungsformen kann ein Trainingsbefehl zur Klassifizierung mehrere konfigurierbare Komponenten enthalten. Um ein erfolgreiches Training, Bewertung und Inferenz in mindestens einer Ausführungsform auszuführen, kann es sein, dass mehrere Komponenten jeweils mit ihren eigenen Parametern konfiguriert werden müssen. Daher kann die Verwendung einer Spezifikationsdatei von Vorteil sein. Die Trainings- und Bewertungsbefehle können dieselbe Konfigurationsdatei verwenden, wobei eine andere Konfigurationsdatei für die Inferenz verwendet wird. Eine Spezifikationsdatei für das Training kann verwendet werden, um verschiedene Komponenten einer Trainingspipeline zu konfigurieren, die Komponenten wie z. B. ein Modell, einen Bounding-Box-Ground-Truth-Generator, ein Nachbearbeitungsmodul, eine Kostenfunktionskonfiguration, einen Trainer, ein Erweiterungsmodul, Bewerter oder Datenlader enthalten kann.
  • Wie erwähnt, kann ein Toolkit auch ein oder mehrere Tools zur Datenerweiterung bereitstellen. Ein Erweiterungsmodul kann eine On-the-Fly-Datenvorverarbeitung und -Erweiterung während des Trainings bereitstellen. In einer oder mehreren Ausführungsformen kann eine Erweiterungskonfigurationsdatei Elemente wie Vorverarbeitung, räumliche Erweiterung und Farberweiterung enthalten. Zur Vorverarbeitung kann ein verschachteltes Feld das Vorverarbeitungsmodul für das Eingabebild und die Ground-Truth-Kennzeichnung konfigurieren und die Form des Eingabetensors für das Netzwerk festlegen. Die Ground-Truth-Kennzeichnungen werden vorverarbeitet, um den Dimensionen der Eingabebildtensoren zu entsprechen. Wenn die Ausgabebildhöhe und Ausgabebildbreite des Vorverarbeitungsblocks nicht mit den Dimensionen der Eingabebilder im Datensatz übereinstimmen, können die Dimensionen mit Nullen aufgefüllt werden, oder es können zufällige Beschnitte vorgenommen werden, um sie an die Eingabedimensionen anzupassen. Wenn die Bilder beschnitten sind, dann können die Kennzeichnungen entsprechend geändert werden, um nur Objekte innerhalb des Beschnitts zu berücksichtigen. In einer oder mehreren weiteren Ausführungsformen kann das gesamte Eingabebild und die Kennzeichnung in der Größe verändert werden, um sie an die Eingabeauflösung anzupassen. Zur räumlichen Erweiterung kann dieses konfigurierbare Modul grundlegende räumliche Erweiterungen wie Kippen, Zoomen und Verschieben unterstützen. Zur Farberweiterung kann dieses Modul verwendet werden, um die Farbraumtransformationen zu konfigurieren, nämlich Farbverschiebung, Farbtonrotation, Sättigungsverschiebung und Kontrastanpassung. Wenn die Ausgabebildhöhe und Ausgabebildbreite des Vorverarbeitungsblocks nicht mit den Dimensionen der Eingabebilder im Datensatz übereinstimmen, können die Dimensionen mit Nullen aufgefüllt werden, oder es können zufällige Beschnitte vorgenommen werden, um sie an die Eingabedimensionen anzupassen. Wenn die Bilder beschnitten sind, dann können die Kennzeichnungen entsprechend geändert werden, um nur Objekte innerhalb des Beschnitts zu berücksichtigen. In einer oder mehreren weiteren Ausführungsformen kann das gesamte Eingabebild und die Kennzeichnung in der Größe verändert werden, um sie an die Eingabeauflösung anzupassen.
  • Manchmal ist die Anzahl der Klassen in den Datensatz-Kennzeichnungen nicht genau die Anzahl der Klassen, die zum Trainieren des Modells erwünscht ist. Beispielsweise kann es wünschenswert sein, zwei unterschiedliche Klassen „Auto“ und „Lieferwagen“ im Training in einer einzigen Klasse zu gruppieren. Wiederum kann es wünschenswert sein, einige spezifische Klassen im Trainingsdatensatz auszufiltern, aber es kann wünschenswert sein, eine Klasse beim Training des Modells für den Anwendungsfall zu ignorieren, in dem diese Klasse nicht von Interesse ist. Dies ist der Grund für die Verwendung eines Klassenzuordnungsfelds. Die Klassenzuordnung kann jeden Klassennamen im ursprünglichen Datensatz einer Ganzzahl zuordnen. Wenn einige Klassen derselben Ganzzahl zugeordnet sind, bedeutet dies, dass sie in einer einzigen Klasse gruppiert sind. Für FasterRCNN kann die Klasse, die der größten Zahl zugeordnet ist, aufgrund der Implementierung immer in den Hintergrund gesetzt werden. Außerdem können, wenn es wünschenswert ist, einige Klassen im Datensatz zu ignorieren, sie -1 zugeordnet werden. Es kann eine Dummy-„Hintergrund“-Klasse hinzugefügt werden, die der größten Zahl zugeordnet wird.
  • In mindestens einigen Ausführungsformen kann ein vortrainierter Modellparameter den Pfad zu dem vortrainierten Modell spezifizieren, das verwendet wird, um das Trainingsmodell zu initialisieren. Das vortrainierte Modell kann beispielsweise entweder ein Keras-Modell oder ein Transfer-Learning-Modell sein. Das Suffix kann verwendet werden, um die Modelltypen zu identifizieren. Wenn das Modell mit ,.hdf5' endet, kann es als Keras-Modell behandelt werden; wenn es mit ,.tlt‘ endet, wird es als Transfer-Learning-Modell behandelt. Wenn der Modellpfad weder mit ,.hdf5‘noch mit ,.tlt‘ endet, kann er in mindestens einer Ausführungsform einen Fehler auslösen.
  • Ein vortrainierter Gewichtungsparameter kann den Pfad zu den vortrainierten Gewichtungen anzeigen, die verwendet werden, um das Trainingsmodell zu initialisieren. Dies ähnelt dem vortrainierten Modell, ist jedoch flexibler in Bezug auf die Eingabedimension und die Anzahl der Klassen im Modellkopf. Wenn ein vortrainiertes Modell verwendet wird, kann das Trainingsmodell darauf beschränkt werden, dieselbe Eingabedimension und Anzahl von Klassen wie im vortrainierten Modell aufzuweisen. Mit vortrainierten Gewichten können diese Einschränkungen aufgehoben werden. Vortrainierte Gewichte können in einer oder mehreren Ausführungsformen entweder Keras-Gewichte (.h5) oder Transfer-Learning-Gewichte (.tltw) sein. Wenn die vortrainierten Gewichte nicht mit einem von ihnen enden, kann dies einen Fehler auslösen.
  • Gemäß einer oder mehreren Ausführungsformen können ein Einzel-GPU- und Multi-GPU-Training unter Verwendung desselben Zugangspunkts ausgeführt werden. Ein Trainings-Shellskript kann den Einzel-GPU-Zugangspunkt umhüllen und ein optionales Argument auslesen, das eine Vorgabewert von 1 aufweist. Wenn die Anzahl der GPUs 1 ist, wird der Wrapper direkt ein Einzel-GPU-Trainingsprogramm starten und jede andere Option außer der Anzahl der GPUs übergeben. Wenn die Anzahl von GPUs größer als 1 ist, wird der Wrapper (beispielsweise und ohne Einschränkung) einen Message Passing Interface (MPI) Job starten, der das Training ausführt, wobei die Anzahl der Prozesse mit der angegebenen Anzahl der GPUs übereinstimmt.
  • Sobald ein Modell trainiert worden ist, kann dieses Modell an einem Testdatensatz bewertet werden, um die Genauigkeit dieses Modells zu testen. Dazu kann ein Toolkit einen Auswertungsbefehl oder eine Auswertungsoption enthalten. Eine Klassifizierungsanwendung kann den Bewertungsverlust, die Top-k-Genauigkeit, die Precision und Recall als Metriken berechnen. Unterdessen kann die Bewertung die Metriken des Mittelwerts der Precision pro Klasse und des gewogenen Mittelwerts der Precision berechnen. Es können sowohl ein Abtastals auch der Integrationsmodus unterstützt werden, um den Mittelwert der Precision zu berechnen.
  • Sobald ein Modell trainiert worden ist, können Benutzer darauf gespannt sein, dieses Modell beispielsweise an einem Mustersatz von Testbildern zu testen und ihre Ergebnisse zu visualisieren. Diese Bilder können annotiert werden oder nicht, um daraus Metriken zu berechnen. Um dies zu erleichtern, kann ein Toolkit Benutzer mit einem Inferenzbefehl versehen. Dieser Befehl kann die Inferenz auf einem benutzerspezifizierten Satz von Eingabebildern ausführen. Im Klassifizierungsmodus kann Inferenz eine Klassenbezeichnungsausgabe über die Befehlszeile für ein einzelnes Bild oder eine .csv-Datei liefern, die den Bildpfad und die entsprechenden Kennzeichnungen für mehrere Bilder enthält.
  • In einem Beispiel für die Ausdünnung eines Modells sind MobileNet und MobileNet V2 zwei leichtgewichtige CNN-Modelle, die darauf abzielen, eine schnelle Inferenz auf kostengünstigen Mobilvorrichtungen zu erreichen. Der Kernbaustein der beiden Modelle ist die tiefenweise trennbare Faltungsoperation, die die Anzahl der Parameter im Modell sowie die erforderliche Anzahl der Multiplikations- und Additionsoperationen zur Berechnung des Ergebnisses effektiv reduzieren und folglich die Inferenzeffizienz verbessern kann. Bei der Ausdünnung der tiefenweisen trennbaren Faltungen kann eine besondere Handhabung erforderlich sein, da es einige Unterschiede im Vergleich zur gewöhnlichen Faltungsoperation gibt. Die tiefenweise trennbare Faltung kann tatsächlich in zwei aufeinanderfolgende Teiloperationen zerlegt werden. Die erste wird als tiefenweise Faltung bezeichnet, die zweite als punktweise Faltung. Bei einem gegebenen Eingabetensor wird zuerst die tiefenweise Faltung darauf angewendet, um einen Zwischenausgabetensor zu erhalten. Dann wird als zweiter Schritt die punktweise Faltung auf den Zwischentensor angewendet, um die endgültige Ausgabe der gesamten tiefenweise trennbaren Faltungsoperation zu erhalten. Die erste Operation (tiefenweise Faltung) ist im Wesentlichen eine Faltungsoperation pro Kanal, um Merkmale für jeden Kanal im Eingabetensor zu transformieren und zu extrahieren. Da die Operation pro Kanal einige kanalübergreifende Informationen verlieren könnte, wendet die zweite Operation eine punktweise Faltungsoperation an, um die Aktivierungen pro Kanal zu verschmelzen und die endgültige Merkmalszuordnung zu erhalten. Die erste Operation ist eine spezielle Faltungsoperation pro Kanal, während die zweite Operation einfach eine gewöhnliche Faltung ist, deren Kerngröße 1×1 ist. Die Ausdünnung der tiefenweisen trennbaren Faltung kann eine besondere Handhabung der ersten erfordern. Für eine gewöhnliche Faltung ist die Kernform (m, n, Cin, Cout), während für die tiefenweise Faltung die Kernform (m, n, Cin) ist, da die tiefenweise Faltungsoperation die Kanalanzahl überhaupt nicht ändert. Der Formunterschied bringt es mit sich, dass es einen Unterschied beim Berechnen der Norm der Kerne gibt. Für gewöhnliche Faltungen wird die Norm der Kerne über die Dimensionen 0, 1 und 2 (d. h. die m, n, Cin-Dimensionen) berechnet, während für letztere die Norm nur über die Dimensionen 0 und 1 0 und 1 (die m, n Dimensionen) berechnet wird.
  • In mindestens einer Ausführungsform ist die tiefenweise trennbare Faltung ein Paar von Faltungen. Sobald die Norm der tiefenweisen Faltung und der punktweisen Faltung berechnet ist, kann es Konflikte darüber geben, welcher Kanal erneut trainiert werden soll (oder äquivalent ausgedünnt werden soll). Um diese Möglichkeit zu lösen, wird die Idee der Ausdünnung von Restnetzwerken verfolgt, und für diesen Fall wird auch ein Ausgleichsverfahren verwendet. Insbesondere sobald die Norm für die tiefenweise und punktweise Faltung berechnet worden ist, wird ein Ausgleich für die beiden Normen angewendet, um eine einheitliche Norm für die gesamte tiefenweise trennbare Faltungsoperation zu erhalten. Die für den Ausgleich verwendeten Operatoren können dieselben sein wie bei der Ausdünnung der Restnetzwerke: arithmetisches Mittel, geometrisches Mittel, Vereinigung und Schnittmenge.
  • Wie erwähnt, können eine oder mehrere Ausführungsformen eines Transfer-Learning-Toolkits den Exportbefehl enthalten, um TLT-Modelle zum Einsetzen von Transfer-Learning-Modellen zu exportieren und vorzubereiten. Der Exportbefehl kann optional den Kalibrierungscache zur TensorRT-Engine-Kalibrierung erzeugen. Das Exportieren des Modells kann den Trainingsprozess von der Inferenz entkoppeln und die Konvertierung in TensorRT-Engines außerhalb der TLT-Umgebung ermöglichen. TensorRT-Engines sind für jede Hardwarekonfiguration spezifisch und sollten für jede eindeutige Inferenzumgebung erzeugt werden, aber dasselbe exportierte TLT-Modell kann universell verwendet werden.
  • INFERENZ- UND TRAININGSLOGIK
  • 7A stellt eine Inferenz- und/oder Trainingslogik 715 dar, die verwendet wird, um Inferenz- und/oder Trainingsoperationen durchführen, die mit einer oder mehreren Ausführungsformen verknüpft sind. Details hinsichtlich der Inferenz- und/oder Trainingslogik 715 werden unten in Verbindung mit den 7A und/oder 7B bereitgestellt.
  • In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715 ohne Einschränkung einen Code- und/oder Datenspeicher 701 aufweisen, um Vorwärts- und/oder Ausgabe-Gewichts- und/oder Eingabe-/Ausgabedaten und/oder andere Parameter zu speichern, um Neuronen oder Schichten eines neuronalen Netzwerks zu konfigurieren, das in Aspekten von einer oder mehreren Ausführungsformen zum Inferenzieren trainiert und/oder verwendet wird. In mindestens einer Ausführungsform kann die Trainingslogik 715 den Code- und/oder Datenspeicher 701 enthalten oder mit diesem gekoppelt sein, um Graph-Code oder andere Software zu speichern, um das Timing und/oder die Reihenfolge zu steuern, in der Gewichts- und/oder andere Parameterinformationen geladen werden sollen, um eine Logik zu konfigurieren, die Ganzzahl- und/oder Gleitkomma-Einheiten enthält (zusammen arithmetischlogische Einheiten (ALUs). In mindestens einer Ausführungsform lädt Code, wie graphischer Darstellungscode, Gewichts- und/oder andere Parameterinformationen in Prozessor-ALUs basierend auf einer Architektur eines neuronalen Netzwerks, dem der Code entspricht. In mindestens einer Ausführungsform speichert der Code- und/oder Datenspeicher 701 Gewichtsparameter und/oder Eingabe-/Ausgabedaten jeder Schicht eines neuronalen Netzwerks, das in Verbindung mit einer oder mehreren Ausführungsformen trainiert oder verwendet wird, während der Vorwärtsfortpflanzung von Eingabe-/Ausgabedaten und/oder Gewichtsparametern während des Trainings und/oder der Inferenz unter Verwendung von Aspekten einer oder mehrerer Ausführungsformen. In mindestens einer Ausführungsform kann jeder Abschnitt des Code- und/oder Datenspeichers 701 mit einem anderen Datenspeicher auf dem Chip oder außerhalb des Chips enthalten sein, einschließlich eines L1-, L2- oder L3-Cache des Prozessors oder Systemspeichers.
  • In mindestens einer Ausführungsform kann jeder Abschnitt des Code- und/oder Datenspeichers 701 sich innerhalb oder außerhalb eines oder mehrerer Prozessoren oder anderer Hardware-Logikvorrichtungen oder Schaltungen befinden. In mindestens einer Ausführungsform kann der Code- und/oder Code- und/oder Datenspeicher 701 ein Cache-Speicher, dynamischer wahlfrei adressierbarer Speicher („DRAM“), statischer wahlfrei adressierbarer Speicher („SRAM“), nichtflüchtiger Speicher (z.B. Flash-Speicher) oder anderer Speicher sein. In mindestens einer Ausführungsform kann die Wahl, ob der Code- und/oder Code- und/oder Datenspeicher 701 sich beispielsweise innerhalb oder außerhalb eines Prozessors befindet oder aus einem DRAM, SRAM, Flash- oder einem anderen Speichertyp besteht, vom verfügbaren Speicher auf dem Chip gegenüber außerhalb des Chips, den Latenzanforderungen von Trainings- und/oder Inferenzfunktionen, die durchgeführt werden, der Stapelgröße von Daten, die in der Inferenz und/oder im Training eines neuronalen Netzwerks verwendet werden, oder einer Kombination dieser Faktoren abhängen.
  • In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715 ohne Einschränkung einen Code- und/oder Datenspeicher 705 enthalten, um Rückwärts- und/oder Ausgabe-Gewichts- und/oder Eingabe-/Ausgabedaten zu speichern, die Neuronen oder Schichten eines neuronalen Netzwerks entsprechen, das in Aspekten von einer oder mehreren Ausführungsformen zum Inferenzieren trainiert und/oder verwendet wird. In mindestens einer Ausführungsform speichert der Code- und/oder Datenspeicher 705 Gewichtsparameter und/oder Eingabe-/Ausgabedaten jeder Schicht eines neuronalen Netzwerks, das in Verbindung mit einer oder mehreren Ausführungsformen trainiert oder verwendet wird, während der Rückwärtsfortpflanzung der Eingabe-/Ausgabedaten und/oder Gewichtsparameter während des Trainings und/oder der Inferenz unter Verwendung von Aspekten einer oder mehrerer Ausführungsformen. In mindestens einer Ausführungsform kann die Trainingslogik 715 den Code- und/oder Datenspeicher 705 enthalten oder mit diesem gekoppelt sein, um Graph-Code oder andere Software zu speichern, um das Timing und/oder die Reihenfolge zu steuern, in der Gewichts- und/oder andere Parameterinformationen geladen werden sollen, um eine Logik zu konfigurieren, die Ganzzahl- und/oder Gleitkomma-Einheiten enthält (zusammen arithmetisch-logische Einheiten (ALUs). In mindestens einer Ausführungsform lädt Code, wie graphischer Darstellungscode, Gewichts- und/oder andere Parameterinformationen in Prozessor-ALUs basierend auf einer Architektur eines neuronalen Netzwerks, dem der Code entspricht. In mindestens einer Ausführungsform kann jeder Abschnitt des Code- und/oder Datenspeichers 705 mit einem anderen Datenspeicher auf dem Chip oder außerhalb des Chips enthalten sein, einschließlich eines L1-, L2- oder L3-Cache des Prozessors oder Systemspeichers. In mindestens einer Ausführungsform kann sich jeder Abschnitt des Code- und/oder Datenspeichers 705 innerhalb oder außerhalb eines oder mehrerer Prozessoren oder anderer Hardware-Logikvorrichtungen oder Schaltungen befinden. In mindestens einer Ausführungsform kann der Code- und/oder Datenspeicher 705 ein Cache-Speicher, DRAM, SRAM, nichtflüchtiger Speicher (z.B. Flash-Speicher) oder ein anderer Speicher sein. In mindestens einer Ausführungsform kann die Wahl, ob sich der Code- und/oder Datenspeicher 705 beispielsweise innerhalb oder außerhalb eines Prozessors befindet oder aus einem DRAM, SRAM, Flash- oder einem anderen Speichertyp besteht, vom verfügbaren Speicher auf dem Chip gegenüber außerhalb des Chips, den Latenzanforderungen von Trainings- und/oder Inferenzfunktionen, die durchgeführt werden, der Stapelgröße von Daten, die in der Inferenz und/oder im Training eines neuronalen Netzwerks verwendet werden, oder 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 getrennte Speicherstrukturen sein. In mindestens einer Ausführungsform können der Code- und/oder Datenspeicher 701 und der Code- und/oder Datenspeicher 705 dieselbe Speicherstruktur sein. In mindestens einer Ausführungsform können der Code- und/oder Datenspeicher 701 und der Code- und/oder Datenspeicher 705 teilweise dieselbe Speicherstruktur und teilweise getrennte Speicherstrukturen sein. In mindestens einer Ausführungsform kann jeder Abschnitt des Code- und/oder Datenspeichers 701and Code- und/oder Datenspeicher 705 mit einem anderen Datenspeicher auf dem Chip oder außerhalb des Chips enthalten sein, einschließlich eines L1-, L2- oder L3-Cache des Prozessors oder Systemspeichers.
  • In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715 ohne Einschränkung eine oder mehrere arithmetisch-logische Einheiten („ALU(s)“) 710 enthalten, die Ganzzahl- und/oder Gleitkomma-Einheiten enthalten, um logische und/oder mathematische Operationen durchzuführen, die mindestens teilweise auf Trainings- und/oder Inferenz-Code (z.B. Graph-Code) beruhen oder durch diesen angezeigt werden, deren Ergebnis Aktivierungen erzeugen kann (z.B. Ausgabewerte aus Schichten oder Neuronen innerhalb eines neuronalen Netzwerks), die in einem Aktivierungsspeicher 720 gespeichert sind, die Funktionen von Eingabe-/Ausgabe- und/oder Gewichtsparameterdaten sind, die im Code- und/oder Datenspeicher 701 und/oder Code- und/oder Datenspeicher 705 gespeichert sind. In mindestens einer Ausführungsform werden im Aktivierungsspeicher 720 gespeicherte Aktivierungen gemäß linearer algebraischer und/oder matrixbasierter Mathematik erzeugt, die durch die ALU(s) 710 als Reaktion auf das Ausführen von Anweisungen oder anderem Code ausgeführt werden, wobei Gewichtswerte, die im Code- und/oder Datenspeicher 705 und/oder Code- und/oder Datenspeicher 701 gespeichert sind, als Operanden zusammen mit anderen Werten verwendet werden, wie Verzerrungswerte, Gradienteninformationen, Schwungwerte, oder andere Parameter oder Hyperparameter, von denen einige oder alle im Code- und/oder Datenspeicher 705 oder im Code- und/oder Datenspeicher 701 oder einem anderen Speicher auf dem Chip oder außerhalb des Chips gespeichert sein können.
  • In mindestens einer Ausführungsform sind die ALU(s) 710 in einem oder mehreren Prozessoren oder anderen Hardware-Logikvorrichtungen oder Schaltungen enthalten, wohingegen in einer anderen Ausführungsform sich die ALU(s) 710 außerhalb eines Prozessors oder anderen Hardware-Logikvorrichtung oder Schaltung befinden können, die sie verwendet (z.B. einem Coprozessor). In mindestens einer Ausführungsform können die ALUs 710 in den Ausführungseinheiten eines Prozessors oder anderweitig in einer Bank von ALUs enthalten sein, auf die die Ausführungseinheiten eines Prozessors zugreifen können, entweder innerhalb desselben Prozessors oder verteilt auf unterschiedliche Prozessoren unterschiedlicher Typen (z.B. Zentraleinheiten, Grafikverarbeitungseinheiten, feste Funktionseinheiten usw.). In mindestens einer Ausführungsform können sich der Code- und/oder Datenspeicher 701, der Code- und/oder Datenspeicher 705 und der Aktivierungsspeicher 720 auf demselben Prozessor oder anderen Hardware-Logikvorrichtung oder Schaltung befinden, wohingegen sie sich in einer anderen Ausführungsform in unterschiedlichen Prozessoren oder anderen Hardware-Logikvorrichtungen oder Schaltungen, oder einer Kombination derselben und unterschiedlichen Prozessoren oder anderen Hardware-Logikvorrichtungen oder Schaltungen befinden können. In mindestens einer Ausführungsform kann jeder Abschnitt des Aktivierungsspeichers 720 mit einem anderen Datenspeicher auf dem Chip oder außerhalb des Chips enthalten sein, einschließlich eines L1-, L2- oder L3-Cache des Prozessors oder Systemspeichers. Darüber hinaus kann Inferenz- und/oder Trainingscode mit anderem Code gespeichert werden, auf den ein Prozessor oder andere Hardwarelogik oder -Schaltung zugreifen kann, und unter Verwendung von Abruf-, Decodier-, Planungs-, Ausführungs-, Rückzugs- und/oder anderen logischen Schaltungen eines Prozessors abgerufen und/oder verarbeitet werden.
  • In mindestens einer Ausführungsform kann der Aktivierungsspeicher 720 ein Cache-Speicher, DRAM, SRAM, nichtflüchtiger Speicher (z.B. Flash-Speicher) oder anderer Speicher sein. In mindestens einer Ausführungsform kann sich der Aktivierungsspeicher 720 vollständig oder teilweise innerhalb oder außerhalb von einem oder mehreren Prozessoren oder anderen logischen Schaltungen befinden. In mindestens einer Ausführungsform kann die Wahl, ob sich der Aktivierungsspeicher 720 beispielsweise innerhalb oder außerhalb eines Prozessors befindet oder aus einem DRAM, SRAM, Flash- oder einem anderen Speichertyp besteht, vom verfügbaren Speicher auf dem Chip gegenüber außerhalb des Chips, den Latenzanforderungen von Trainings- und/oder Inferenzfunktionen, die durchgeführt werden, der Stapelgröße von Daten, die in der Inferenz und/oder im Training eines neuronalen Netzwerks verwendet werden, oder 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 der Tensorflow® Processing Unit von Google, einer Inference Processing Unit (IPU) von Graphcore™ oder einem Nervana® (z.B. „Lake Crest“) Prozessor von Intel Corp. In mindestens einer Ausführungsform kann die in 7a dargestellte Inferenz- und/oder Trainingslogik 715 in Verbindung mit einer Zentraleinheits- („CPU“) Hardware, einer Grafikverarbeitungseinheits-(„GPU“) Hardware oder anderen Hardware wie feldprogrammierbaren Gate-Arrays („FPGAs“) verwendet werden.
  • 7b stellt eine Inferenz- und/oder Trainingslogik 715 gemäß mindestens einer oder mehrerer Ausführungsformen dar. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715 ohne Einschränkung eine Hardwarelogik aufweisen, in der Rechenressourcen dediziert oder auf andere Weise 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 verwendet werden in Verbindung mit einer anwendungsspezifischen integrierten Schaltung (ASIC), wie der Tensorflow® Processing Unit von Google, einer Inference Processing Unit (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 einer Zentraleinheits- (CPU) Hardware, einer Grafikverarbeitungseinheits- (GPU) Hardware oder einer anderen Hardware, wie feldprogrammierbaren Gate-Arrays (FPGAs) verwendet werden. In mindestens einer Ausführungsform enthält die Inferenz- und/oder Trainingslogik 715 ohne Einschränkung den Code- und/oder Datenspeicher 701 und den Code- und/oder Datenspeicher 705, der verwendet werden kann, um Code (z.B. Graph-Code), Gewichtswerte und/oder andere Informationen zu speichern, einschließlich Verzerrungswerten, Gradienteninformationen, Schwungwerten und/oder anderen Parametern oder Hyperparameter-Informationen. In mindestens einer in 7b dargestellten Ausführungsform ist jeder des Code- und/oder Datenspeichers 701 und des Code- und/oder Datenspeichers 705 mit einer dedizierten Rechenressource wie der Rechenhardware 702 bzw. der Rechenhardware 706 verknüpft. In mindestens einer Ausführungsform weist jeweils die Rechenhardware 702 und die Rechenhardware 706 eine oder mehrere ALUs auf, die mathematische Funktionen, wie lineare algebraische Funktionen nur an Informationen ausführen, die im Code- und/oder Datenspeicher 701 bzw. im Code- und/oder Datenspeicher 705 gespeichert sind, deren Ergebnis im Aktivierungsspeicher 720 gespeichert wird.
  • In mindestens einer Ausführungsform entsprechen jeweils der Code- und/oder Datenspeicher 701 bzw. 705 und die entsprechende Rechenhardware 702 bzw. 706 unterschiedlichen Schichten eines neuronalen Netzwerks, so dass die resultierende Aktivierung von einem „Speicher/Rechen Paar 701/702“ des Code- und/oder Datenspeichers 701 und der Rechenhardware 702 als Eingabe in das „Speicher-/Rechenpaar 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-/Rechenpaare 701/702 und 705/706 mehr als einer neuronalen Netzwerkschicht entsprechen. In mindestens einer Ausführungsform können (nicht gezeigte) zusätzliche Speicher/Rechenpaare anschließend an oder parallel zu den Speicher-/Rechenpaaren 701/702 und 705/706 in der Inferenz- und/oder Trainingslogik 715 enthalten sein.
  • DATENZENTRUM
  • 8 stellt ein beispielhaftes Datenzentrum 800 dar, in dem mindestens eine Ausführungsform verwendet werden kann. In mindestens einer Ausführungsform weist das Datenzentrum 800 eine Datenzentrum-Infrastrukturschicht 810, eine Framework-Schicht 820, eine Softwareschicht 830 und eine Anwendungsschicht 840 auf.
  • In mindestens einer Ausführungsform, wie in 8 gezeigt, kann die Datenzentrum-Infrastrukturschicht 810 einen Ressourcenorchestrator 812, gruppierte Rechenressourcen 814 und Knoten-Rechenressourcen („Knoten-C.R.s“) 816(1)-816(N) aufweisen, wobei „N“ irgendeine ganze, positive Ganzzahl darstellt. In mindestens einer Ausführungsform können die Knoten-C.R.s 816(1)-816(N) eine beliebige Anzahl von Zentraleinheiten („CPUs“) oder andere Prozessoren (einschließlich Beschleuniger, feldprogrammierbare Gate-Arrays (FPGAs), Grafikprozessoren usw.), Speichervorrichtungen (z.B. dynamische Nur-Lese-Speicher), Massenspeichervorrichtungen (z.B. Festkörper- oder Plattenlaufwerke), Netzwerk Eingabe-/Ausgabe („NW I/O“) Vorrichtungen, Netzwerk-Switches, virtuelle Maschinen („VMs“), Strommodule und Kühlmodule usw. aufweisen, sind jedoch nicht darauf beschränkt. In mindestens einer Ausführungsform können eine oder mehrere Knoten-C.Rs unter den Knoten-C.R.s 816(1)-816(N) ein Server sein, der eine oder mehrere der oben erwähnten Rechenressourcen aufweist.
  • In mindestens einer Ausführungsform können gruppierte Rechenressourcen 814 getrennte Gruppierungen von Knoten-C.R.s, die in einen oder mehreren (nicht gezeigten) Racks untergebracht sind, oder viele Racks aufweisen, die in Datenzentren an verschiedenen (ebenfalls nicht gezeigten) geografischen Orten untergebracht sind. Getrennte Gruppierungen von Knoten-C.R.s innerhalb gruppierter Rechenressourcen 814 können gruppierte Rechen-, Netzwerk-, Speicher- oder Massenspeicher-Ressourcen aufweisen, die konfiguriert oder zugeordnet sein können, eine oder mehrere Arbeitslasten zu unterstützen. In mindestens einer Ausführungsform können mehrere Knoten-C.R.s einschließlich CPUs oder Prozessoren innerhalb eines oder mehrerer Racks gruppiert sein, um Rechenressourcen bereitzustellen, um eine oder mehrere Arbeitslasten zu unterstützen. In mindestens einer Ausführungsform können eine oder mehrere Racks auch eine beliebige Anzahl von Strommodulen, Kühlmodulen und Netzwerk-Switches in beliebiger Kombination enthalten.
  • In mindestens einer Ausführungsform kann der Ressourcenorchestrator 812 eine oder mehrere Knoten-C.R.s 816(1)-816(N) und/oder gruppierte Rechenressourcen 814 konfigurieren oder auf andere Weise steuern. In mindestens einer Ausführungsform kann der Ressourcenorchestrator 812 eine Software-Design-Infrastruktur- („SDP“) Verwaltungseinheit für das Datenzentrum 800 aufweisen. In mindestens einer Ausführungsform kann der Ressourcenorchestrator Hardware, Software oder eine Kombination davon aufweisen.
  • In mindestens einer Ausführungsform, wie in 8 gezeigt, enthält die Framework-Schicht 820 einen Job-Scheduler 822, einen Konfigurationsmanager 824, einen Ressourcenmanager 826 und ein verteiltes Dateisystem 828. In mindestens einer Ausführungsform kann die Framework-Schicht 820 ein Framework enthalten, um Software 832 der Softwareschicht 830 und/oder eine oder mehrere Anwendungen 842 der Anwendungsschicht 840 zu unterstützen. In mindestens einer Ausführungsform können die Software 832 oder die Anwendung(en) 842 jeweils webbasierte Dienstsoftware oder Anwendungen enthalten, wie jene, die durch Amazon Web Services, Google Cloud und Microsoft Azure bereitgestellt werden. In mindestens einer Ausführungsform kann die Framework-Schicht 820 eine Art eines freien und Open-Source-Software-Webanwendungs-Frameworks wie Apache Spark™ (nachstehend „Spark“) sein, ist jedoch nicht darauf beschränkt, das ein verteiltes Dateisystem 828 für eine Datenverarbeitung im großen Maßstab (z.B. „Big Data“) nutzen kann. In mindestens einer Ausführungsform kann der Job-Scheduler 822 einen Spark-Treiber enthalten, um die Planung von Arbeitslasten zu erleichtern, die von verschiedenen Schichten des Rechenzentrums 800 unterstützt werden. In mindestens einer Ausführungsform kann der Ressourcenmanager 826 imstande sein, unterschiedliche Schichten zu konfigurieren, wie der Softwareschicht 830 und der Framework-Schicht 820, die Spark und das verteilte Dateisystem 828 enthält, um eine Datenverarbeitung im großen Maßstab zu unterstützen. In mindestens einer Ausführungsform kann der Ressourcenmanager 826 zum Verwalten geclusterter oder gruppierter Rechenressourcen imstande sein, die zur Unterstützung des verteilten Dateisystems 828 und des Job-Schedulers 822 zugewiesen oder zugeordnet sind. In mindestens einer Ausführungsform können geclusterte oder gruppierte Rechenressourcen eine gruppierte Rechenressource 814 auf der Datenzentrum-Infrastrukturschicht 810 aufweisen. In mindestens einer Ausführungsform kann sich der Ressourcenmanager 826 mit dem Ressourcenorchestrator 812 abstimmen, um diese zugewiesenen oder zugeordneten Rechenressourcen zu verwalten.
  • In mindestens einer Ausführungsform kann in der Softwareschicht 830 enthaltene Software 832 Software umfassen, die mindestens durch Abschnitte der Knoten-C.R.s 816(1)-816(N), der gruppierten Rechenressourcen 814 und/oder des verteilten Dateisystems 828 der Framework-Schicht 820 verwendet werden. Die eine oder die mehrere Arten der Software können eine Internet-Webseiten-Suchsoftware, E-Mailviren-Scansoftware, Datenbanksoftware und Streaming-Video-Inhaltssoftware umfassen, sind jedoch nicht darauf beschränkt.
  • In mindestens einer Ausführungsform kann/können die in der Anwendungsschicht 840 enthaltenen Anwendung(en) 842 eine oder mehrere Arten von Anwendungen umfassen, die mindestens durch Abschnitte der Knoten-C.R.s 816(1)-816(N), der gruppierten Rechenressourcen 814 und/oder des verteilten Dateisystems 828 der Framework-Schicht 820 verwendet werden. Eine oder mehrere Arten von Anwendungen können eine beliebige Anzahl einer Genomikanwendung, einer kognitiven Berechnung und einer maschinellen Lernanwendung umfassen, einschließlich einer Trainings- oder Inferenzsoftware, Framework-Software für maschinelles Lernen (z.B. PyTorch, TensorFlow, Caffe usw.) oder andere maschinelle Lernanwendungen, die in Verbindung mit einer oder mehreren Ausführungsformen verwendet werden, sind jedoch nicht darauf beschränkt.
  • In mindestens einer Ausführungsform können jeweils der Konfigurationsmanager 824, der Ressourcenmanager 826 und der Ressourcenorchestrator 812 eine beliebige Anzahl und Art von selbstmodifizierenden Aktionen basierend auf einer beliebigen Menge und Art von Daten implementieren, die auf jede technisch machbare Weise erfasst werden. In mindestens einer Ausführungsform können selbstmodifizierende Aktionen einen Datenzentrumsoperator des Datenzentrums 800 davon befreien, möglicherweise schlechte Konfigurationsentscheidungen zu treffen, und möglicherweise nicht ausgelastete und/oder leistungsschwache Teile eines Rechenzentrums zu vermeiden.
  • In mindestens einer Ausführungsform kann das Datenzentrum 800 Tools, Dienste, Software oder andere Ressourcen aufweisen, um eine oder mehrere maschinelle Lernmodelle zu trainieren oder Informationen unter Verwendung eines oder mehrerer maschineller Lernmodelle gemäß einer oder mehrerer hierin beschriebener Ausführungsformen vorherzusagen oder abzuleiten. Beispielsweise kann in mindestens einer Ausführungsform ein maschinelles Lernmodell durch Berechnen von Gewichtsparametern gemäß einer neuronalen Netzwerkarchitektur unter Verwendung von Software und Rechenressourcen trainiert werden, die oben in Bezug auf das Datenzentrum 800 beschrieben werden. In mindestens einer Ausführungsform können trainierte maschinelle Lernmodelle, die einem oder mehreren neuronalen Netzwerken entsprechen, verwendet werden, um Informationen unter Verwendung von Ressourcen abzuleiten oder vorherzusagen, die oben in Bezug auf das Datenzentrum 800 beschrieben werden, indem Gewichtsparameter verwendet werden, die durch eine oder mehrere hierin beschriebene Trainingstechniken berechnet werden.
  • In mindestens einer Ausführungsform kann das Datenzentrum CPUs, anwendungsspezifische integrierte Schaltungen (ASICs), GPUs, FPGAs, oder andere Hardware verwenden, um das Training und/oder die Inferenz unter Verwendung der oben beschriebenen Ressourcen durchführen. Darüber hinaus können eine oder mehrere oben beschriebene Software- und/oder Hardware-Ressourcen als Dienst konfiguriert sein, Benutzern das Trainieren oder Durchführen von Inferenzen von Informationen zu ermöglichen, wie Bilderkennung, Spracherkennung oder andere Dienste der künstlichen Intelligenz.
  • Die Inferenz- und/oder Trainingslogik 715 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen verknüpft sind. Details hinsichtlich der Inferenz- und/oder Trainingslogik 715 werden unten in Verbindung mit den 7A und/oder 7B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715 im System der 8 für Inferenz- oder Vorhersageoperationen mindestens teilweise auf Gewichtsparametern basierend verwendet werden, die unter Verwendung von Trainingsoperationen eines neuronalen Netzwerks, Funktionen und/oder Architekturen eines neuronalen Netzwerks oder hierin beschriebenen Anwendungsfällen eines neuronalen Netzwerks berechnet werden.
  • Solche Komponenten können verwendet werden, um vortrainierte Modelle für eine beabsichtigte Art der Inferenz weiter zu trainieren, die durchgeführt werden soll. Diese vortrainierten Modelle können weiter trainiert und ausgedünnt werden, um kleinere Modelle zu erhalten, die eine hohe Genauigkeit für diese beabsichtigte Art der Inferenz bewahren.
  • COMPUTERSYSTEME
  • 9 ist ein Blockdiagramm, das ein exemplarisches Computersystem darstellt, das ein System mit miteinander verbundenen Vorrichtungen und Komponenten, ein System-on-a-Chip (SOC) oder eine Kombination davon 900 sein kann, das mit einem Prozessor ausgebildet ist, der Ausführungseinheiten enthalten kann, um eine Anweisung auszuführen, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann das Computersystem 900 ohne Einschränkung eine Komponente wie etwa einen Prozessor 902 enthalten, um Ausführungseinheiten einzusetzen, die eine Logik enthalten, um Algorithmen für Prozessdaten auszuführen, gemäß der vorliegenden Offenbarung, wie in der hierin beschriebenen Ausführungsform. In mindestens einer Ausführungsform kann das Computersystem 900 Prozessoren enthalten, wie Mikroprozessoren der PENTIUM®-Prozessorfamilie, Xeon™, Itanium®, XScale™ und/oder StrongARM™, Intel® Core™, oder Intel® Nervana™ erhältlich von Intel Corporation of Santa Clara, Kalifornien, obwohl auch andere Systeme (einschließlich PCs mit anderen Mikroprozessoren, Entwicklungs-Workstations, Set-Top-Boxen und dergleichen) verwendet werden können. In mindestens einer Ausführungsform kann das Computersystem 900 eine Version des Betriebssystems WINDOWS ausführen, das von der Microsoft Corporation of Redmond, Washington, erhältlich ist, obwohl auch andere Betriebssysteme (z.B. UNIX und Linux), eingebettete Software und/oder grafische Benutzerschnittstellen verwendet werden können.
  • Ausführungsformen können in anderen Vorrichtungen verwendet werden, wie tragbaren Vorrichtungen und eingebetteten Anwendungen. Einige Beispiele von tragbaren Vorrichtungen umfassen Mobiltelefone, Internetprotokoll-Vorrichtungen, Digitalkameras, persönliche digitale Assistenten („PDAs“), und tragbare PCs. In mindestens einer Ausführungsform können eingebettete Anwendungen einen Mikrocontroller, einen digitalen Signalprozessor („DSP“), System-on-a-Chip, Netzwerkcomputer („NetPCs“), Set-Top-Boxen, Netzwerk-Hubs, Wide Area Network („WAN“) Switches oder ein beliebiges anderes System umfassen, das eine oder mehrere Anweisungen gemäß mindestens einer Ausführungsform durchführen kann.
  • In mindestens einer Ausführungsform kann das Computersystem 900 ohne Einschränkung einen Prozessor 902 enthalten, der ohne Einschränkung eine oder mehrere Ausführungseinheiten 908 umfassen kann, um ein Training eines maschinellen Lernmodells und/oder eine Inferenz gemäß den hierin beschriebenen Techniken durchzuführen. In mindestens einer Ausführungsform ist das Computersystem 900 ein Einzelprozessor-Tischcomputer- oder Serversystem, jedoch kann das Computersystem 900 in einer anderen Ausführungsform ein Mehrprozessorsystem sein. In mindestens einer Ausführungsform kann der Prozessor 902 ohne Einschränkung einen Complex Instruction Set Computer („CISC“) Mikroprozessor, einen Reduced Instruction Set Computer („RISC“) Mikroprozessor, einen Very Long Instruction Word („VLIW“) Mikroprozessor, einen Prozessor, der eine Kombination von Anweisungssätzen implementiert, oder irgendeine andere Prozessorvorrichtung, wie beispielsweise einen digitalen Signalprozessor umfassen. In mindestens einer Ausführungsform kann der Prozessor 902 mit einem Prozessorbus 910 gekoppelt sein, der Datensignale zwischen dem Prozessor 902 und anderen Komponenten im Computersystem 900 übertragen kann.
  • In mindestens einer Ausführungsform kann der Prozessor 902 ohne Einschränkung einen Level 1 („L1“) internen Cache-Speicher („Cache“) 904 enthalten. In mindestens einer Ausführungsform kann der Prozessor 902 einen einzelnen internen Cache oder mehrere Level des internen Cache aufweisen. In mindestens einer Ausführungsform kann sich der Cache-Speicher außerhalb des Prozessors 902 befinden. Andere Ausführungsformen können auch eine Kombination aus sowohl internen als auch externen Caches umfassen, abhängig von der besonderen Implementierung und den Anforderungen. In mindestens einer Ausführungsform kann die Registerdatei 906 unterschiedliche Arten von Daten in verschiedenen Registern speichern, einschließlich ohne Einschränkung Ganzzahlregister, Gleitkommaregister, Statusregister und Befehlszeigerregister.
  • In mindestens einer Ausführungsform befindet sich die Ausführungseinheit 908, die ohne Einschränkung eine Logik zum Durchführen von Ganzzahl- und Gleitkommaoperationen aufweist, ebenfalls im Prozessor 902. In mindestens einer Ausführungsform kann der Prozessor 902 auch einen Mikrocode- („ucode“) Nur-Lese-Speicher („ROM“) aufweisen, der Mikrocode für bestimmte Makrobefehle speichert. In mindestens einer Ausführungsform kann die Ausführungseinheit 908 Logik zum Handhaben eines gepackten Befehlssatzes 909 enthalten. Indem in mindestens einer Ausführungsform der gepackte Befehlssatz 909 in einen Befehlssatz eines Allzweckprozessors 902 samt den zugehörigen Schaltungen enthalten ist, um Befehle auszuführen, können Operationen, die durch viele Multimedia-Anwendungen verwendet werden, unter Verwendung von gepackten Daten in einem Allzweckprozessor 902 ausgeführt werden. In einer oder mehreren Ausführungsformen können viele Multimedia-Anwendungen beschleunigt und effizienter ausgeführt werden, indem die volle Breite eines Datenbusses eines Prozessors zum Ausführen von Operationen an gepackten Daten verwendet wird, was die Notwendigkeit beseitigen kann, kleinere Dateneinheiten über den Datenbus des Prozessors zu übertragen, um eine oder mehrere Operationen für jeweils ein Datenelement auszuführen.
  • In mindestens einer Ausführungsform kann die Ausführungseinheit 908 auch in Mikrocontrollern, eingebetteten Prozessoren, Grafikvorrichtungen, DSPs und anderen Arten von Logikschaltungen verwendet werden. In mindestens einer Ausführungsform kann das Computersystem 900 ohne Einschränkung einen Speicher 920 enthalten. In mindestens einer Ausführungsform kann der Speicher 920 als eine dynamische Direktzugriffsspeicher-(„DRAM“) Vorrichtung, eine statische Direktzugriffsspeicher- („SRAM“) Vorrichtung, Flash-Speichervorrichtung oder andere Speichervorrichtung implementiert sein. In mindestens einer Ausführungsform kann der Speicher 920 Anweisung(en) 919 und/oder Daten 921 speichern, die durch Datensignale dargestellt werden, die durch den Prozessor 902 ausgeführt werden können.
  • In mindestens einer Ausführungsform kann ein Systemlogikchip mit dem Prozessorbus 910 und dem Speicher 920 gekoppelt sein. In mindestens einer Ausführungsform kann der Systemlogikchip ohne Einschränkung einen Speichercontroller-Hub („MCH“) 916 aufweisen, und der Prozessor 902 kann mit dem MCH 916 über den Prozessorbus 910 kommunizieren. In mindestens einer Ausführungsform kann der MCH 916 einen Speicherweg 918 mit hoher Bandbreite 918 zum Speicher 920 zur Befehls- und Datenspeicherung und zur Speicherung von Grafikbefehlen, Daten und Texturen bereitstellen. In mindestens einer Ausführungsform kann der MCH Datensignale zwischen dem Prozessor 902, dem Speicher 920 und anderen Komponenten im Computersystem 900 leiten und Datensignale zwischen dem Prozessorbus 910, dem Speicher 920 und einer System-I/O 922 überbrücken. In mindestens einer Ausführungsform kann der Systemlogikchip einer Grafikport für zur Kopplung mit einem Grafikcontroller bereitstellen. In mindestens einer Ausführungsform kann der MCH mit dem Speicher 920 durch einen Speicherweg 918 mit hoher Bandbreite 918 gekoppelt sein, und eine Grafik-/Videokarte 912 kann mit dem MCH 916 durch eine Accelerated Graphics Port („AGP“) Zusammenschaltung 914 gekoppelt sein.
  • In mindestens einer Ausführungsform kann das Computersystem 900 die System-I/O 922 verwenden, die ein proprietärer Hub-Schnittstellenbus ist, um den MCH 916 mit dem I/O-Controller-Hub („ICH“) 930 zu koppeln. In mindestens einer Ausführungsform kann der ICH 930 direkte Verbindungen mit einigen I/O Vorrichtungen über einen lokalen I/O-Bus bereitstellen. In mindestens einer Ausführungsform kann der lokale I/O-Bus ohne Einschränkung einen Hochgeschwindigkeits-I/O-Bus zum Verbinden von Peripheriegeräten mit dem Speicher 920, dem Chipsatz und dem Prozessor 902 aufweisen. Beispiele können ohne Einschränkung einen Audiocontroller 929, einen Firmware-Hub („Flash-BIOS“) 928, einen drahtlosen Transceiver 926, einen Datenspeicher 924, einen Alt-I/O-Controller 923, der Benutzereingabe- und Tastaturschnittstellen 925 enthält, einen seriellen Erweiterungsport 927, wie einen Universal Serial Bus („USB“) und einen Netzwerkcontroller 934 umfassen. Der Datenspeicher 924 kann ein Festplattenlaufwerk, ein Diskettenlaufwerk, eine CD-ROM-Vorrichtung, eine Flash-Speichervorrichtung oder andere Massenspeichervorrichtung aufweisen.
  • In mindestens einer Ausführungsform stellt 9 ein System dar, das zusammengeschaltete Hardware-Vorrichtungen oder „Chips“ umfasst, wohingegen in anderen Ausführungsformen 9 einen exemplarischen System-on-a-Chip („SoC“) darstellen kann. In mindestens einer Ausführungsform können Vorrichtungen mit proprietären Zusammenschaltungen, standardisierten Zusammenschaltungen (z.B. PCIe) oder einer Kombination davon zusammengeschaltet sein. In mindestens einer Ausführungsform sind eine oder mehrere Komponenten des Computersystems 900 unter Verwendung von Compute Express Link (CXL) Zusammenschaltungen zusammengeschaltet.
  • Die Inferenz- und/oder Trainingslogik 715 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen verknüpft sind. Details hinsichtlich der Inferenz- und/oder Trainingslogik 715 werden unten in Verbindung mit den 7A und/oder 7B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715 im System der 9 für Inferenz- oder Vorhersageoperationen verwendet werden, die mindestens teilweise auf Gewichtsparametern beruhen, die unter Verwendung von Trainingsoperationen eines neuronalen Netzwerks, Funktionen und/oder Architekturen eines neuronalen Netzwerks oder hierin beschriebenen Anwendungsfällen eines neuronalen Netzwerks berechnet werden.
  • Solche Komponenten können verwendet werden, um vortrainierte Modelle für eine beabsichtigte Art der Inferenz weiter zu trainieren, die durchgeführt werden soll. Diese vortrainierten Modelle können weiter trainiert und ausgedünnt werden, um kleinere Modelle zu erhalten, die eine hohe Genauigkeit für diese beabsichtigte Art der Inferenz bewahren.
  • 10 ist ein Blockdiagramm, das eine elektronische Vorrichtung 1000 zur Nutzung eines Prozessors 1010 gemäß mindestens einer Ausführungsform darstellt. In mindestens einer Ausführungsform kann die elektronische Vorrichtung 1000 beispielsweise und ohne Einschränkung ein Notebook, ein Tower-Server, ein Rack-Server, ein Blade-Server, ein Laptop, ein Tischcomputer, ein Tablet, eine mobile Vorrichtung, ein Telefon, ein eingebetteter Computer oder jede andere geeignete elektronische Vorrichtung sein.
  • In mindestens einer Ausführungsform kann das System 1000 ohne Einschränkung einen Prozessor 1010 umfassen, der kommunikativ mit einer beliebigen geeigneten Anzahl oder Art von Komponenten, Peripheriegeräten, Modulen oder Vorrichtungen gekoppelt ist. In mindestens einer Ausführungsform ist der Prozessor 1010 unter Verwendung eines Busses oder einer Schnittstelle gekoppelt, wie einen I2C-Bus, einen System Management Bus („SMBus“), einen Low Pin Count (LPC) Bus, einer Serial Peripheral Interface („SPI“), einen High Definition Audio („HDA“) Bus, eine Serial Advance Technology Attachment („SATA“) Bus, einen Universal Serial Bus („USB“) (Versionen 1, 2, 3) oder einen Universal Asynchronous Receiver/Transmitter („UART“) Bus. In mindestens einer Ausführungsform stellt 10 ein System dar, das zusammengeschaltete Hardware-Vorrichtungen oder „Chips“ umfasst, wohingegen in anderen Ausführungsformen 10 einen exemplarischen System-on-a-Chip („SoC“) darstellen kann. In mindestens einer Ausführungsform können in 10 dargestellte Vorrichtungen mit proprietären Zusammenschaltungen, standardisierten Zusammenschaltungen (z.B. PCIe) oder einer Kombination davon zusammengeschaltet sein. In mindestens einer Ausführungsform sind eine oder mehrere Komponenten der 10 unter Verwendung von Compute Express Link (CXL) Zusammenschaltungen zusammengeschaltet.
  • In mindestens einer Ausführungsform kann 10 eine Anzeige 1024, einen Berührungsbildschirm 1025, ein Touchpad 1030, eine Near Field Communications Einheit („NFC“) 1045, einen Sensor-Hub 1040, einen Temperatursensor 1046, einen Express Chipset („EC“) 1035, ein Trusted Platform Module („TPM“) 1038, einen BIOS/Firmware/Flash-Speicher („BIOS, FW Flash“) 1022, einen DSP 1060, ein Laufwerk 1020 wie eine Solid State Disk („SSD“) oder ein Festplattenlaufwerk („HDD“), eine drahtlose lokale Netzwerkeinheit („WLAN“) 1050, eine Bluetooth-Einheit 1052, eine drahtlose Weitverkehrsnetzwerkeinheit („WWAN“) 1056, ein globales Positionsbestimmungssystem (GPS) 1055, eine Kamera („USB 3.0 Kamera“) 1054 wie eine USB 3.0 Kamera, und/oder eine Low Power Double Data Rate („LPDDR“) Speichereinheit („LPDDR3“) 1015 umfassen, die beispielsweise im LPDDR3-Standard implementiert ist. Diese Komponenten können jeweils auf jede geeignete Weise implementiert werden.
  • In mindestens einer Ausführungsform können andere Komponenten durch oben erläuterte Komponenten kommunikativ mit dem Prozessor 1010 gekoppelt sein. In mindestens einer Ausführungsform können ein Beschleunigungsmesser 1041, ein Umgebungslichtsensor („ALS“) 1042, ein Kompass 1043 und ein Gyroskop 1044 kommunikativ mit dem Sensor-Hub 1040 gekoppelt sein. In mindestens einer Ausführungsform können der Temperatursensor 1039, ein Ventilator 1037, eine Tastatur 1046 und ein Touchpad 1030 kommunikativ mit dem EC 1035 gekoppelt sein. In mindestens einer Ausführungsform können ein Lautsprecher 1063, ein Kopfhörer 1064 und ein Mikrofon („Mic“) 1065 kommunikativ mit einer Audioeinheit („Audio-Codec und Klasse D Amp“) 1062 gekoppelt sein, die wiederum kommunikativ mit dem DSP 1060 gekoppelt sein kann. In mindestens einer Ausführungsform kann die Audioeinheit 1064 beispielsweise und ohne Einschränkung einen Audiocodierer/-decodierer („Codec“) und einen Klasse-D-Verstärker umfassen. In mindestens einer Ausführungsform kann eine SIM-Karte („SIM“) 1057 kommunikativ mit der WWAN-Einheit 1056 gekoppelt sein. In mindestens einer Ausführungsform können Komponenten wie die WLAN-Einheit 1050 und die Bluetooth-Einheit 1052, sowie die WWAN-Einheit 1056 in einem Next Generation Form Factor („NGFF“) implementiert sein.
  • Die Inferenz- und/oder Trainingslogik 715 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen verknüpft sind. Details hinsichtlich der Inferenz- und/oder Trainingslogik 715 werden unten in Verbindung mit den 7A und/oder 7B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715 im System der 10 für Inferenz- oder Vorhersageoperationen verwendet werden, die mindestens teilweise auf Gewichtsparametern beruhen, die unter Verwendung von Trainingsoperationen eines neuronalen Netzwerks, Funktionen und/oder Architekturen eines neuronalen Netzwerks oder hierin beschriebenen Anwendungsfällen eines neuronalen Netzwerks berechnet werden.
  • Solche Komponenten können verwendet werden, um vortrainierte Modelle für eine beabsichtigte Art der Inferenz weiter zu trainieren, die durchgeführt werden soll. Diese vortrainierten Modelle können weiter trainiert und ausgedünnt werden, um kleinere Modelle zu erhalten, die eine hohe Genauigkeit für diese beabsichtigte Art der Inferenz bewahren.
  • 11 ist ein Blockdiagramm eines Verarbeitungssystems gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform enthält das System 1100 einen oder mehrere Prozessoren 1102 und einen oder mehrere Grafikprozessoren 1108, und kann ein Einzelprozessor-Desktopsystem, ein Multiprozessor-Workstationsystem oder ein Serversystem mit einer großen Anzahl von Prozessoren 1102 oder Prozessorkernen 1107 sein. In mindestens einer Ausführungsform ist das System 1100 ein Verarbeitungsplattform, die in einer integrierten System-on-a-Chip (SoC)-Schaltung zur Verwendung in mobilen, tragbaren oder eingebetteten Vorrichtungen enthalten ist.
  • In mindestens einer Ausführungsform kann das System 1100 eine serverbasierte Spieleplattform, eine Spielkonsole, einschließlich einer Spiel- und Medienkonsole, einer mobilen Spielkonsole, einer tragbaren Spielkonsole oder einer Online-Spielkonsole umfassen oder in dieser enthalten sein. In mindestens einer Ausführungsform ist das System 1100 ein Mobiltelefon, ein Smartphone, eine Tablet-Rechenvorrichtung oder eine mobile Internetvorrichtung. In mindestens einer Ausführungsform kann das Verarbeitungssystem 1100 auch eine tragbare Vorrichtung, wie eine tragbare Smartwatch-Vorrichtung, intelligente Brillenvorrichtung, eine Vorrichtung für eine erweiterte Realität oder eine Vorrichtung für eine virtuelle Realität umfassen, mit dieser gekoppelt oder darin integriert sein. In mindestens einer Ausführungsform ist das Verarbeitungssystem 1100 eine Fernseh- oder Set-Top-Box-Vorrichtung mit einem oder mehreren Prozessoren 1102 und einer grafischen Schnittstelle, die durch einen oder mehrere Grafikprozessoren 1108 erzeugt wird.
  • In mindestens einer Ausführungsform umfassen ein oder mehrere Prozessoren 1102 jeweils einen oder mehreren Prozessorkerne 1107 zum Verarbeiten von Anweisungen, die, wenn sie ausgeführt werden, Operationen für System- und Benutzersoftware ausführen. In mindestens einer Ausführungsform ist jeder des einen oder der mehreren Prozessorkerne 1107 konfiguriert, einen spezifischen Befehlssatz 1109 zu verarbeiten. In mindestens einer Ausführungsform kann der Befehlssatz 1109 Complex Instruction Set Computing (CISC), Reduced Instruction Set Computing (RISC) oder die Berechnung über eine Very Long Instruction Word (VLIW) erleichtern. In mindestens einer Ausführungsform können die Prozessorkerne 1107 jeweils einen anderen Befehlssatz 1109 verarbeiten, der Befehle enthalten kann, um die Emulation anderer Befehlssätze zu erleichtern. In mindestens einer Ausführungsform kann der Prozessorkern 1107 auch andere Verarbeitungsvorrichtungen umfassen, wie einen digitalen Signalprozessor (DSP).
  • In mindestens einer Ausführungsform weist der Prozessor 1102 einen Cache-Speicher 1104 auf. In mindestens einer Ausführungsform kann der Prozessor 1102 einen einzelnen internen Cache oder mehrere Level eines internen Cache aufweisen. In mindestens einer Ausführungsform wird der Cache-Speicher von verschiedenen Komponenten des Prozessors 1102 gemeinsam genutzt. In mindestens einer Ausführungsform verwendet der Prozessor 1102 auch einen externen Cache (z.B. einen Level-3-(L3-) Cache oder einen (nicht gezeigten) Last-Level-Cache (LLC)), der von den Prozessorkernen 1107 unter Verwendung bekannter Cache-Kohärenztechniken gemeinsam genutzt werden kann. In mindestens einer Ausführungsform ist die Registerdatei 1106 zusätzlich im Prozessor 1102 enthalten, die unterschiedliche Arten von Registern zum Speichern unterschiedlicher Datentypen (z.B. Ganzzahlregister, Gleitkommaregister, Statusregister und ein Befehlszeigerregister) umfassen kann. In mindestens einer Ausführungsform kann die Registerdatei 1106 Mehrzweckregister oder andere Register enthalten.
  • In mindestens einer Ausführungsform sind ein oder mehrere Prozessoren 1102 mit einem oder mehreren Schnittstellenbussen 1110 gekoppelt, um Kommunikationssignale wie Adress-, Daten- oder Steuersignale zwischen dem Prozessor 1102 und anderen Komponenten im System 1100 zu übertragen. In mindestens einer Ausführungsform kann der Schnittstellenbus 1110 in einer Ausführungsform ein Prozessorbus sein, wie beispielsweise eine Version eines Direct Media Interface (DMI)-Busses. In mindestens einer Ausführungsform ist die Schnittstelle 1110 nicht auf einen DMI-Bus beschränkt und kann einen oder mehrere Peripheral Component Interconnect-Busse (z.B. PCI, PCI Express), Speicherbusse oder andere Arten von Schnittstellenbussen umfassen. In mindestens einer Ausführungsform weist der Prozessor(en) 1102 einen integrierten Speichercontroller 1116 und einen Plattformcontroller-Hub 1130 auf. In mindestens einer Ausführungsform erleichtert der Speichercontroller 1116 die Kommunikation zwischen einer Speichervorrichtung und anderen Komponenten des Systems 1100, während der Plattformcontroller-Hub (PCH) 1130 Verbindungen mit I/O-Vorrichtungen über einen lokalen I/O-Bus bereitstellt.
  • In mindestens einer Ausführungsform kann die Speichervorrichtung 1120 eine dynamische Direktzugriffsspeicher- (DRAM) Vorrichtung, eine statische Direktzugriffsspeicher-(SRAM) Vorrichtung, eine Flash-Speichervorrichtung, eine Phasenänderungs-Speichervorrichtung oder eine andere Speichervorrichtung mit einer geeigneten Leistung sein, um als Prozessspeicher zu dienen. In mindestens einer Ausführungsform kann die Speichervorrichtung 1120 als Systemspeicher für das System 1100 arbeiten, um Daten 1122 und Anweisungen 1121 zur Verwendung zu speichern, wenn ein oder mehrere Prozessoren 1102 eine Anwendung oder einen Prozess ausführen. In mindestens einer Ausführungsform ist der Speichercontroller 1116 auch mit einem optionalen externen Grafikprozessor 1112 gekoppelt, der mit einem oder mehreren Grafikprozessoren 1108 in den Prozessoren 1102 kommunizieren kann, um Grafik- und Medienoperationen auszuführen. In mindestens einer Ausführungsform kann eine Anzeigevorrichtung 1111 mit dem/den Prozessor(en) 1102 verbunden sein. In mindestens einer Ausführungsform kann die Anzeigevorrichtung 1111 eine oder mehrere einer internen Anzeigevorrichtung, wie in einer mobilen elektronischen Vorrichtung oder einer Laptop-Vorrichtung oder einer externen Anzeigevorrichtung umfassen, die über eine Anzeigeschnittstelle (z.B. DisplayPort usw.) angeschlossen ist. In mindestens einer Ausführungsform kann die Anzeigevorrichtung eine am Kopf angebrachte Anzeige (HMD) wie eine stereoskopische Anzeigevorrichtung zur Verwendung in Anwendungen der virtuellen Realität (VR) oder Anwendungen der erweiterten Realität (AR) umfassen.
  • In mindestens einer Ausführungsform ermöglicht es der Plattformcontroller-Hub 1130 Peripheriegeräten, sich über einen Hochgeschwindigkeits-I/O-Bus mit der Speichervorrichtung 1120 und dem Prozessor 1102 zu verbinden. In mindestens einer Ausführungsform umfassen I/O-Peripheriegeräte, sind jedoch nicht darauf beschränkt, einen Audiocontroller 1146, einen Netzwerkcontroller 1134, eine Firmware-Schnittstelle 1128, einen drahtlosen Transceiver 1126, Berührungssensoren 1125, eine Datenspeichervorrichtung 1124 (z.B. Festplattenlaufwerk, Flash-Speicher usw.). In mindestens einer Ausführungsform kann die Datenspeichervorrichtung 1124 über eine Speicherschnittstelle (z.B. SATA) oder über einen Peripheriebus, wie einen Peripheral Component Interconnect-Bus (z.B. PCI, PCI Express) verbunden sein. In mindestens einer Ausführungsform können Berührungssensoren 1125 Berührungsbildschirm-Sensoren, Drucksensoren oder Fingerabdrucksensoren umfassen. In mindestens einer Ausführungsform kann der drahtlose Transceiver 1126 ein Wi-Fi-Transceiver, ein Bluetooth-Transceiver oder ein Mobilfunknetz-Transceiver, wie ein 3G-, 4G- oder Long Term Evolution (LTE) Transceiver sein. In mindestens einer Ausführungsform ermöglicht die Firmware-Schnittstelle 1128 eine Kommunikation mit der Systemfirmware, und kann beispielsweise eine Unified Extensible Firmware Interface (UEFI) sein. In mindestens einer Ausführungsform kann der Netzwerkcontroller 1134 eine Netzwerkverbindung mit einem drahtgebundenen Netzwerk ermöglichen. In mindestens einer Ausführungsform ist ein (nicht gezeigter) Hochleistungs-Netzwerkcontroller mit dem Schnittstellenbus 1110 gekoppelt. In mindestens einer Ausführungsform ist der Audiocontroller 1146 ein Mehrkanal-High Definition Audiocontroller. In mindestens einer Ausführungsform enthält das System 1100 einen optionalen Alt-I/O-Controller 1140 zur Kopplung von veralteten (z.B. Personal System 2 (PS/2)) Vorrichtungen mit dem System. In mindestens einer Ausführungsform kann der Plattform-Controller-Hub 1130 auch mit einem oder mehreren Universal Serial Bus (USB)-Controllern 1142 verbunden sein, die Eingabevorrichtungen, Kombinationen aus Tastatur und Maus 1143, eine Kamera 1144 oder andere USB-Eingabevorrichtungen verbinden.
  • In mindestens einer Ausführungsform kann eine Instanz des Speichercontrollers 1116 und des Plattformcontroller-Hubs 1130 in einen diskreten externen Grafikprozessor, wie den externen Grafikprozessor 1112 integriert sein. In mindestens einer Ausführungsform können sich der Plattformcontroller-Hub 1130 und/oder der Speichercontroller 1116 außerhalb von einem oder mehreren Prozessoren 1102 befinden. Beispielsweise kann in mindestens einer Ausführungsform das System 1100 einen externen Speichercontroller 1116 und Plattformcontroller-Hub 1130 enthalten, die als ein Speichercontroller-Hub und Peripheriecontroller-Hub innerhalb eines System-Chipsatzes konfiguriert sein können, der mit dem/den Prozessor(en) 1102 in Verbindung steht.
  • Die Inferenz- und/oder Trainingslogik 715 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen verknüpft sind. Details hinsichtlich der Inferenz- und/oder Trainingslogik 715 werden unten in Verbindung mit den 7A und/oder 7B bereitgestellt. In mindestens einer Ausführungsform können Abschnitte oder die gesamte Inferenz- und/oder Trainingslogik 715 im Grafikprozessor 1500 enthalten sein. Beispielsweise können in mindestens einer Ausführungsform die hierin beschriebenen Trainings- und/oder Inferenztechniken eine oder mehrere ALUs verwenden, die in einem Grafikprozessor ausgeführt sind. Darüber hinaus können in mindestens einer Ausführungsform die hierin beschriebenen Inferenz- und/oder Trainingsoperationen unter Verwendung einer anderen Logik als der in den 7A oder 7B dargestellten Logik durchgeführt werden. In mindestens einer Ausführungsform können Gewichtsparameter in einem (gezeigten oder nicht gezeigten) Speicher und/oder Registern auf dem Chip oder außerhalb des Chips gespeichert werden, die ALUs eines Grafikprozessors konfigurieren, um eine oder mehrere maschinelle Lernalgorithmen, neuronale Netzwerkarchitekturen, Anwendungsfälle oder Trainingstechniken durchzuführen, die hierin beschrieben werden.
  • Solche Komponenten können verwendet werden, um vortrainierte Modelle für eine beabsichtigte Art der Inferenz weiter zu trainieren, die durchgeführt werden soll. Diese vortrainierten Modelle können weiter trainiert und ausgedünnt werden, um kleinere Modelle zu erhalten, die eine hohe Genauigkeit für diese beabsichtigte Art der Inferenz bewahren.
  • 12 ist ein Blockdiagramm eines Prozessors 1200 mit einem oder mehreren Prozessorkernen 1202A-1202N, einem integrierten Speichercontroller 1214 und einem integrierten Grafikprozessor 1208, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann der Prozessor 1200 zusätzliche Kerne bis zu einschließlich den zusätzlichen Kern 1202N enthalten, die durch gestrichelt linierte Kästen dargestellt werden. In mindestens einer Ausführungsform weist jeder der Prozessorkerne 1202A-1202N eine oder mehrere interne Cache-Einheiten 1204A-1204N auf. In mindestens einer Ausführungsform hat jeder Prozessorkern auch Zugriff auf eine oder mehrere gemeinsam genutzte Cache-Einheiten 1206.
  • In mindestens einer Ausführungsform stellen interne Cache-Einheiten 1204A-1204N und gemeinsam genutzte Cache-Einheiten 1206 eine Cache-Speicherhierarchie innerhalb Prozessor 1200 dar. In mindestens einer Ausführungsform können Cache-Speichereinheiten 1204A-1204N mindestens einen Level eines Anweisungs- und Daten-Cache innerhalb jedes Prozessorkerns und einen oder mehrere Level eines gemeinsam genutzten Cache eines mittleren Levels aufweisen, wie einen Level 2 (L2), Level 3 (L3), Level 4 (L4) oder andere Cache-Level, wobei der höchste Cache-Level vor dem externen Speicher als LLC klassifiziert wird. In mindestens einer Ausführungsform erhält eine Cache-Kohärenzlogik die Kohärenz zwischen verschiedene Cache-Einheiten 1206 und 1204A-1204N aufrecht.
  • In mindestens einer Ausführungsform kann der Prozessor 1200 auch einen Satz von einer oder mehrere Buscontrollereinheiten 1216 und einen Systemagentenkern 1210 aufweisen. In mindestens einer Ausführungsform verwalten eine oder mehrere Buscontrollereinheiten 1216 einen Satz von Peripheriebussen, wie einen oder mehrere PCI- oder PCI express-Busse. In mindestens einer Ausführungsform stellt der Systemagentenkern 1210 eine Verwaltungsfunktionalität für verschiedene Prozessorkomponenten bereit. In mindestens einer Ausführungsform enthält der Systemagentenkern 1210 einen oder mehrere integrierte Speichercontroller 1214, um den Zugriff auf verschiedene (nicht gezeigte) externen Speichervorrichtungen zu verwalten.
  • In mindestens einer Ausführungsform enthalten ein oder mehrere Prozessorkerne 1202A-1202N eine Unterstützung für simultanes Multithreading. In mindestens einer Ausführungsform enthält der Systemagentenkern 1210 Komponenten zum Koordinieren und Betreiben der Kerne 1202A - 1202N während einer Multithread-Verarbeitung. In mindestens einer Ausführungsform kann der Systemagentenkern 1210 zusätzlich eine Leistungssteuereinheit (PCU) enthalten, die eine Logik und Komponenten enthält, um einen oder mehrere Leistungszustände der Prozessorkerne 1202A-1202N und des Grafikprozessor 1208 zu regeln.
  • In mindestens einer Ausführungsform enthält der Prozessor 1200 zusätzlich den Grafikprozessor 1208, um Grafikverarbeitungsoperationen auszuführen. In mindestens einer Ausführungsform ist der Grafikprozessor 1208 mit den gemeinsam genutzten Cache-Einheiten 1206 und dem Systemagentenkern 1210 gekoppelt, einschließlich einem oder mehreren integrierten Speichercontrollern 1214. In mindestens einer Ausführungsform enthält der Systemagentenkern 1210 auch einen Anzeigecontroller 1211 zum Ansteuern der Grafikprozessorausgabe an eine oder mehrere gekoppelte Anzeigen. In mindestens einer Ausführungsform kann der Anzeigecontroller 1211 auch ein getrenntes Modul sein, das mit dem Grafikprozessor 1208 über mindestens eine Zusammenschaltung gekoppelt ist, oder kann in den Grafikprozessor 1208 integriert sein.
  • In mindestens einer Ausführungsform wird eine ringbasierte Zusammenschaltungseinheit 1212 verwendet, um interne Komponenten des Prozessors 1200 zu koppeln. In mindestens einer Ausführungsform kann eine alternative Zusammenschaltungseinheit verwendet werden, wie eine Punkt-zu-Punkt-Zusammenschaltung, eine vermittelte Zusammenschaltung oder andere Techniken. In mindestens einer Ausführungsform ist der Grafikprozessor 1208 mit der Ring-Zusammenschaltung 1212 über einen I/O-Link 1213 gekoppelt.
  • In mindestens einer Ausführungsform stellt der I/O-Link 1213 mindestens eine von mehreren Arten von I/O-Zusammenschaltungen dar, einschließlich einer gehäuseinternen I/O-Zusammenschaltung, die die Kommunikation zwischen verschiedenen Prozessorkomponenten und einem eingebetteten Hochleistungs-Speichermodul 1218, wie einem eDRAM-Modul erleichtert. In mindestens einer Ausführungsform verwenden jeder der Prozessorkerne 1202A-1202N und der Grafikprozessor 1208 die eingebetteten Speichermodule 1218 als einen gemeinsam genutzten Last Level Cache.
  • In mindestens einer Ausführungsform sind die Prozessorkerne 1202A-1202N homogene Kerne, die eine gemeinsame Befehlssatzarchitektur ausführen. In mindestens einer Ausführungsform sind die Prozessorkerne 1202A-1202N hinsichtlich der Befehlssatzarchitektur (ISA) heterogen, wobei einer oder mehrere der Prozessorkerne 1202A - 1202N einen gemeinsamen Befehlssatz ausführen, während ein oder mehrere andere Kerne der Prozessorkerne 1202A-1202N eine Teilmenge eines gemeinsamen Befehlssatzes oder einen anderen Befehlssatz ausführen. In mindestens einer Ausführungsform sind die Prozessorkerne 1202A-1202N hinsichtlich der Mikroarchitektur heterogen, wobei ein oder mehrere Kerne mit einem verhältnismäßig höheren Stromverbrauch mit einem oder mehreren Kernen mit einem niedrigeren Stromverbrauch gekoppelt sind. In mindestens einer Ausführungsform kann der Prozessor 1200 auf einem oder mehreren Chips oder als eine integrierte SoC-Schaltung implementiert sein.
  • Die Inferenz- und/oder Trainingslogik 715 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen verknüpft sind. Details hinsichtlich der Inferenz- und/oder Trainingslogik 715 werden unten in Verbindung mit den 7A und/oder 7B bereitgestellt. In mindestens einer Ausführungsform können Abschnitte oder die gesamte Inferenz- und/oder Trainingslogik 715 im Prozessor 1200 enthalten sein. Beispielsweise können in mindestens einer Ausführungsform die hierin beschriebenen Trainings- und/oder Inferenztechniken eine oder mehrere ALUs verwenden, die im Grafikprozessor 1512, in dem oder den Grafikkern(en) 1202A-1202N oder anderen Komponenten in 12 ausgeführt sind. Darüber hinaus können in mindestens einer Ausführungsform die hierin beschriebenen Inferenz- und/oder Trainingsoperationen unter Verwendung einer anderen Logik als der in den 7A oder 7B dargestellten Logik durchgeführt werden. In mindestens einer Ausführungsform können Gewichtsparameter in einem (gezeigten oder nicht gezeigten) Speicher und/oder Registern auf dem Chip oder außerhalb des Chips gespeichert werden, die ALUs des Grafikprozessors 1200 konfigurieren, um eine oder mehrere maschinelle Lernalgorithmen, neuronale Netzwerkarchitekturen, Anwendungsfälle oder Trainingstechniken durchzuführen, die hierin beschrieben werden.
  • Solche Komponenten können verwendet werden, um vortrainierte Modelle für eine beabsichtigte Art der Inferenz weiter zu trainieren, die durchgeführt werden soll. Diese vortrainierten Modelle können weiter trainiert und ausgedünnt werden, um kleinere Modelle zu erhalten, die eine hohe Genauigkeit für diese beabsichtigte Art der Inferenz bewahren.
  • VIRTUALISIERTE RECHENPLATTFORM
  • 13 ist ein beispielhaftes Datenflussdiagramm für einen Prozess 1300 zum Erzeugen und Einsetzen einer Bildverarbeitungs- und Inferenz-Pipeline gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann der Prozess 1300 zur Verwendung mit Bildgebungsvorrichtungen, Verarbeitungsvorrichtungen und/oder anderen Vorrichtungstypen in einer oder mehreren Einrichtungen 1302 eingesetzt werden. Der Prozess 1300 kann innerhalb eines Trainingssystems 1304 und/oder eines Einsatzsystems 1306 ausgeführt werden. In mindestens einer Ausführungsform kann das Trainingssystem 1304 verwendet werden, um das Training, den Einsatz und die Implementierung von maschinellen Lernmodellen (z.B. neuronalen Netzwerken, Objekterfassungsalgorithmen, Computersehalgorithmen usw.) zur Verwendung im Einsatzsystem 1306 durchzuführen. In mindestens einer Ausführungsform kann das Einsatzsystem 1306 konfiguriert sein, Verarbeitungs- und Rechenressourcen in einer verteilten Rechenumgebung auszulagern, um die Infrastrukturanforderungen an der Einrichtung 1302 zu reduzieren. In mindestens einer Ausführungsform können eine oder mehrere Anwendungen in einer Pipeline Dienste (z.B. Inferenz, Visualisierung, Berechnung, KI usw.) des Einsatzsystems 1306 während der Ausführung von Anwendungen verwenden oder aufrufen.
  • In mindestens einer Ausführungsform können einige der Anwendungen, die in fortschrittlichen Verarbeitungs- und Inferenz-Pipelines verwendet werden, maschinelle Lernmodelle oder andere KI verwenden, um einen oder mehrere Verarbeitungsschritte durchzuführen. In mindestens einer Ausführungsform können maschinelle Lernmodelle in der Einrichtung 1302 unter Verwendung von Daten 1308 (wie Bildgebungsdaten) trainiert werden, die in der Einrichtung 1302 erzeugt werden (und in einem oder mehreren Bildarchivierungs- und Kommunikationssystem- (PACS) Servern in der Einrichtung 1302 gespeichert werden), können unter Verwendung von Bildgebungs- oder Sequenzierungsdaten 1308 von einer anderen Einrichtung(en) trainiert werden oder eine Kombination davon. In mindestens einer Ausführungsform kann das Trainingssystem 1304 verwendet werden, um Anwendungen, Dienste und/oder andere Ressourcen zum Erzeugen von funktionierenden, einsetzbaren maschinellen Lernmodellen für das Einsatzsystem 1306 bereitzustellen.
  • In mindestens einer Ausführungsform kann das Modellregister 1324 durch einen Objektspeicher unterstützt werden, der Versionierung und Objektmetadaten unterstützen kann. In mindestens einer Ausführungsform kann der Objektspeicher durch beispielsweise eine mit einem Cloud-Speicher (z.B. Cloud 1426 der 14) kompatible Anwendungsprogrammierschnittstelle (API) von innerhalb einer Cloud-Plattform zugänglich sein. In mindestens einer Ausführungsform können maschinelle Lernmodelle innerhalb des Modellregisters 1324 durch Entwickler oder Partner eines Systems, das mit einer API interagiert, hochgeladen, aufgelistet, modifiziert oder gelöscht werden. In mindestens einer Ausführungsform kann eine API Zugriff auf Verfahren bereitstellen, die es Benutzern mit geeigneten Berechtigungen ermöglichen, Modelle mit Anwendungen zu verknüpfen, so dass Modelle als Teil der Ausführung von containerisierten Instanziierungen von Anwendungen ausgeführt werden können.
  • In mindestens einer Ausführungsform kann die Trainingspipeline 1404 (14) ein Szenario aufweisen, in dem die Einrichtung 1302 ihr eigenes maschinelles Lernmodell trainiert oder eine vorhandenes maschinelles Lernmodell aufweist, das optimiert oder aktualisiert werden muss. In mindestens einer Ausführungsform können Bildgebungsdaten 1308, die durch Bildgebungsvorrichtung(en), Sequenzierungsvorrichtungen und/oder andere Vorrichtungstypen erzeugt werden, empfangen werden. In mindestens einer Ausführungsform kann, sobald Bildgebungsdaten 1308 empfangen werden, eine KI-unterstützte Annotation 1310 verwendet werden, um beim Erzeugen von Annotationen zu helfen, die den Bildgebungsdaten 1308 entsprechen, die als Ground-Truth-Daten für ein maschinelles Lernmodell verwendet werden sollen. In mindestens einer Ausführungsform kann eine KI-unterstützte Annotation 1310 ein oder mehrere maschinelle Lernmodelle (z.B. neuronale Faltungsnetzwerke (CNNs)) umfassen, die trainiert werden können, Annotationen zu erzeugen, die bestimmten Arten von Bildgebungsdaten 1308 (z.B. aus bestimmten Vorrichtungen) entsprechen. In mindestens einer Ausführungsform können die KI-unterstützte Annotationen 1310 dann direkt verwendet werden, oder können unter Verwendung eines Annotationswerkzeugs angepasst oder feinabgestimmt werden, um Ground-Truth-Daten zu erzeugen. In mindestens einer Ausführungsform können KI-unterstützte Annotationen 1310, gekennzeichnete Klinikdaten 1312 oder eine Kombination davon als Ground-Truth-Daten zum Training eines maschinellen Lernmodells verwendet werden. In mindestens einer Ausführungsform kann ein trainiertes maschinelles Lernmodell als Ausgabemodell 1316 bezeichnet werden, und kann durch das Einsatzsystem 1306 verwendet werden, wie hierin beschrieben.
  • In mindestens einer Ausführungsform kann die Trainingspipeline 1404 (14) ein Szenario aufweisen, in dem die Einrichtung 1302 ein maschinelles Lernmodell zur Verwendung bei der Ausführung einer oder mehrere Verarbeitungsaufgaben für eine oder mehrere Anwendungen im Einsatzsystem 1306 benötigt, jedoch die Einrichtung 1302 gegenwärtig vielleicht über kein solches maschinelles Lernmodell verfügt (oder über kein Modell verfügt, das für solche Zwecke optimiert, effizient oder effektiv ist). In mindestens einer Ausführungsform kann ein vorhandenes maschinelles Lernmodell aus einem Modellregister 1324 ausgewählt werden. In mindestens einer Ausführungsform kann das Modellregister 1324 maschinelle Lernmodelle enthalten, die trainiert sind, eine Vielfalt unterschiedlicher Inferenzaufgaben an Bildgebungsdaten auszuführen. In mindestens einer Ausführungsform können maschinelle Lernmodelle im Modellregister 1324 an Bildgebungsdaten aus anderen Einrichtungen als der Einrichtung 1302 (z.B. entfernt gelegenen Einrichtungen) trainiert worden sein. In mindestens einer Ausführungsform können maschinelle Lernmodelle an Bildgebungsdaten von einem Ort, zwei Orten oder einer beliebigen Anzahl von Orten trainiert worden sein. In mindestens einer Ausführungsform kann beim Training an Bildgebungsdaten von einem spezifischen Ort das Training an diesem Ort stattfinden, oder mindestens in einer Weise, die die Vertraulichkeit der Bildgebungsdaten schützt oder verhindert, dass die Bildgebungsdaten außer Haus übertragen werden. In mindestens einer Ausführungsform kann sobald ein Modell an einem Ort trainiert wird - oder teilweise trainiert wird - ein maschinelles Lernmodell zum Modellregister 1324 hinzugefügt werden. In mindestens einer Ausführungsform kann ein maschinelles Lernmodell dann an einer beliebigen Anzahl anderer Einrichtungen erneut trainiert oder aktualisiert werden, und ein erneut trainiertes oder aktualisiertes Modell kann im Modellregister 1324 verfügbar gemacht werden. In mindestens einer Ausführungsform kann ein maschinelles Lernmodell dann aus dem Modellregister 1324 ausgewählt - und als Ausgabemodell 1316 bezeichnet werden - und kann im Einsatzsystem 1306 verwendet werden, um eine oder mehrere Verarbeitungsaufgaben für eine oder mehrere Anwendungen eines Einsatzsystems auszuführen.
  • In mindestens einer Ausführungsform kann die Trainingspipeline 1404 (14) ein Szenario umfassen, dass die Einrichtung 1302 ein maschinelles Lernmodell zur Verwendung bei der Ausführung einer oder mehrerer Verarbeitungsaufgaben für eine oder mehrere Anwendungen in Einsatzsystem 1306 benötigt, jedoch die Einrichtung 1302 gegenwärtig vielleicht über kein solches maschinelles Lernmodell verfügt (oder über kein Modell verfügt, das für solche Zwecke optimiert, effizient oder effektiv ist). In mindestens einer Ausführungsform kann ein aus dem Modellregister 1324 ausgewähltes maschinelles Lernmodell für Bildgebungsdaten 1308, die in der Einrichtung 1302 erzeugt werden, aufgrund von Differenzen der Populationen, Robustheit der verwendeten Trainingsdaten, um ein maschinelles Lernmodell zu trainieren, Vielfalt der Anomalien der Trainingsdaten und/oder anderer Probleme mit den Trainingsdaten nicht feinabgestimmt oder optimiert werden. In mindestens einer Ausführungsform kann die KI-unterstützte Annotation 1310 verwendet werden, um beim Erzeugen von Annotationen zu helfen, die den Bildgebungsdaten 1308 entsprechen, die als Ground-Truth-Daten zum erneuten Trainieren oder Aktualisieren eines maschinellen Lernmodells verwendet werden sollen. In mindestens einer Ausführungsform können gekennzeichnete Daten 1312 als Ground-Truth-Daten zum Training eines maschinellen Lernmodells verwendet werden. In mindestens einer Ausführungsform kann das erneute Trainieren oder Aktualisieren eines maschinellen Lernmodells als Modelltraining 1314 bezeichnet werden. In mindestens einer Ausführungsform kann das Modelltraining 1314 - z.B. KI-unterstützte Annotationen 1310, gekennzeichnete Klinikdaten 1312 oder eine Kombination davon - als Ground-Truth-Daten zum erneuten Trainieren oder Aktualisieren eines maschinellen Lernmodells verwendet werden. In mindestens einer Ausführungsform kann ein trainiertes maschinelles Lernmodell als Ausgabemodell 1316 bezeichnet werden, und kann durch das Einsatzsystem 1306 verwendet werden, wie hierin beschrieben.
  • In mindestens einer Ausführungsform kann das Einsatzsystem 1306 Software 1318, Dienste 1320, Hardware 1322 und/oder andere Komponenten, Merkmale und Funktionalität umfassen. In mindestens einer Ausführungsform kann das Einsatzsystem 1306 einen Software-„Stapel“ aufweisen, so dass die Software 1318 auf den Diensten 1320 aufgebaut werden kann und die Dienste 1320 verwenden kann, um einige oder alle Verarbeitungsaufgaben auszuführen, und die Dienste 1320 und die Software 1318 können auf die Hardware 1322 aufgebaut werden und die Hardware 1322 verwenden, um die Verarbeitung, Speicherung und/oder andere Rechenaufgaben des Einsatzsystems 1306 auszuführen. In mindestens einer Ausführungsform kann die Software 1318 eine beliebige Anzahl von unterschiedlichen Containern aufweisen, wobei jeder Container eine Instanziierung einer Anwendung ausführen kann. In mindestens einer Ausführungsform kann jede Anwendung eine oder mehrere Verarbeitungsaufgaben in einer fortschrittlichen Verarbeitungs- und Inferenz-Pipeline ausführen (z.B. Inferenzierung, Objekterfassung, Merkmalserfassung, Segmentierung, Bildverbesserung, Kalibrierung usw.). In mindestens einer Ausführungsform kann eine fortschrittliche Verarbeitungs- und Inferenz-Pipeline basierend auf Auswahlen von unterschiedlichen Containern definiert werden, die zur Verarbeitung der Bildgebungsdaten 1308 erwünscht oder erforderlich sind, zusätzlich zu Containern, die Bildgebungsdaten zur Verwendung durch jeden Container und/oder zur Verwendung durch die Einrichtung 1302 nach der Verarbeitung durch eine Pipeline empfangen und konfigurieren (z.B. um Ausgaben zurück in einen verwendbaren Datentyp umzuwandeln). In mindestens einer Ausführungsform kann eine Kombination von Containern innerhalb der Software 1318 (die z.B. eine Pipeline bilden) als ein virtuelles Instrument bezeichnet werden (wie hierin detaillierter beschrieben), und ein virtuelles Instrument kann die Dienste 1320 und die Hardware 1322 wirksam einsetzen, um einige oder alle Verarbeitungsaufgaben der in den Containern instanziierten Anwendungen auszuführen.
  • In mindestens einer Ausführungsform kann eine Datenverarbeitungspipeline Eingabedaten (z.B. Bildgebungsdaten 1308) in einem spezifischen Format als Reaktion auf eine Inferenzanfrage (z.B. eine Anfrage von einem Benutzer des Einsatzsystems 1306) empfangen. In mindestens einer Ausführungsform können Eingabedaten für ein oder mehrere Bilder, Videos und/oder andere Datendarstellungen repräsentativ sein, die durch eine oder mehrere Bildgebungsvorrichtungen erzeugt werden. In mindestens einer Ausführungsform können Daten als Teil einer Datenverarbeitungspipeline einer Vorverarbeitung unterzogen werden, um Daten für die Verarbeitung durch eine oder mehrere Anwendungen vorzubereiten. In mindestens einer Ausführungsform kann eine Nachverarbeitung an einer Ausgabe einer oder mehrerer Inferenzaufgaben oder anderer Verarbeitungsaufgaben einer Pipeline durchgeführt werden, um Ausgabedaten für eine nächsten Anwendung vorzubereiten und/oder Ausgabedaten zur Übertragung und/oder Verwendung durch einen Benutzer vorzubereiten (z.B. als Antwort auf eine Inferenzanfrage). In mindestens einer Ausführungsform können Inferenzaufgaben durch eine oder mehrere maschinelle Lernmodelle ausgeführt werden, wie trainierte oder eingesetzte neuronale Netzwerke, die Ausgabemodelle 1316 des Trainingssystems 1304 umfassen können.
  • In mindestens einer Ausführungsform können Aufgaben der Datenverarbeitungspipeline in einem oder mehreren Containern eingekapselt sein, die jeweils eine diskrete, voll funktionsfähige Instanziierung einer Anwendung und einer virtualisierten Rechenumgebung darstellen, die imstande ist, maschinelle Lernmodelle zu referenzieren. In mindestens einer Ausführungsform können Container oder Anwendungen in einem privaten Bereich (mit z.B. eingeschränktem Zugriff) eines Containerregisters veröffentlicht werden (das hierin detaillierter beschrieben wird), und trainierte oder eingesetzte Modelle können im Modellregister 1324 gespeichert und mit einer oder mehreren Anwendungen verknüpft werden. In mindestens einer Ausführungsform können Bilder von Anwendungen (z.B. Containerbilder) in einem Containerregister verfügbar sein, und sobald es durch einen Benutzer aus einem Containerregister zum Einsatz in einer Pipeline ausgewählt worden ist, kann ein Bild 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 (z.B. Softwareentwickler, Kliniker, Ärzte usw.) Anwendungen (z.B. als Container) zum Durchführen einer Bildverarbeitung und/oder einer Inferenzierung an gelieferten Daten entwickeln, veröffentlichen und speichern. In mindestens einer Ausführungsform kann die Entwicklung, Veröffentlichung und/oder Speicherung unter Verwendung eines Software Development Kit (SDK) durchgeführt werden, das mit einem System verknüpft ist (um z.B. sicherzustellen, dass eine entwickelte Anwendung und/oder ein entwickelter Container einem System entspricht oder damit kompatibel ist). In mindestens einer Ausführungsform kann eine Anwendung, die entwickelt wird, lokal (z.B. in einer ersten Einrichtung, an Daten aus einer ersten Einrichtung) mit einem SDK getestet werden, das mindestens einige der Dienste 1320 als System (z.B. das System 1400 der 14) unterstützen kann. Da DICOM-Objekte irgendwo zwischen einem bis zu Hunderten Bildern oder andere Datentypen enthalten können, und aufgrund einer Variation der Daten kann in mindestens einer Ausführungsform ein Entwickler für die Verwaltung (z.B. das Errichten von Konstrukten für oder das Einbauen einer Vorverarbeitung in eine Anwendung usw.) die Extraktion und Vorbereitung eingehender Daten verantwortlich sein. In mindestens einer Ausführungsform kann eine Anwendung, sobald sie durch das System 1400 (z.B. auf Genauigkeit) überprüft worden ist, in einem Containerregister zur Auswahl und/oder Implementierung durch einen Benutzer verfügbar sein, um eine oder mehrere Verarbeitungsaufgaben in Bezug auf Daten in einer Einrichtung (z.B. einer zweiten Einrichtung) eines Benutzers auszuführen.
  • In mindestens einer Ausführungsform können Entwickler dann Anwendungen oder Container durch ein Netzwerk zum Zugriff und zur Verwendung durch Benutzer eines Systems (z.B. des Systems 1400 der 14) gemeinsam nutzen. In mindestens einer Ausführungsform können abgeschlossene und geprüfte Anwendungen oder Container in einem Containerregister gespeichert werden, und zugehörige maschinelle Lernmodelle können im Modellregister 1324 gespeichert werden. In mindestens einer Ausführungsform kann eine anfragende Einrichtung - die eine Inferenz- oder Bildverarbeitungsanfrage bereitstellt - ein Containerregister und/oder Modellregister 1324 für eine Anwendung, einen Container, einen Datensatz, ein maschinelles Lernmodell usw. durchsuchen, eine gewünschte Kombination von Elementen zur Einbeziehung in die Datenverarbeitungspipeline auswählen und eine Bildverarbeitungsanforderung einreichen. In mindestens einer Ausführungsform kann eine Anfrage Eingabedaten (und in einigen Beispielen zugehörige Patientendaten) enthalten, die notwendig sind, um eine Anfrage durchzuführen, und/oder kann eine Auswahl von Anwendungen und/oder maschinellen Lernmodellen enthalten, die bei der Verarbeitung einer Anfrage ausgeführt werden sollen. In mindestens einer Ausführungsform kann dann eine Anfrage an eine oder mehrere Komponenten des Einsatzsystems 1306 (z.B. eine Cloud) weitergeleitet werden, um eine Verarbeitung der Datenverarbeitungspipeline durchzuführen. In mindestens einer Ausführungsform kann die Verarbeitung durch das Einsatzsystem 1306 das Referenzieren ausgewählter Elemente (z.B. Anwendungen, Container, Modelle usw.) aus einem Containerregister und/oder Modellregister 1324 umfassen. Sobald Ergebnisse durch eine Pipeline erzeugt worden sind, können in mindestens einer Ausführungsform die Ergebnisse an einen Benutzer zur Bezugnahme zurückgeschickt werden (z.B. zur Betrachtung in einer Betrachtungsanwendungsansammlung die auf einer lokalen Workstation vor Ort oder Endgerät ausgeführt wird).
  • In mindestens einer Ausführungsform können Dienste 1320 wirksam eingesetzt werden, um bei der Verarbeitung oder Ausführung von Anwendungen oder Containern in Pipelines zu helfen. In mindestens einer Ausführungsform können die Dienste 1320 Rechendienste, Dienste künstlicher Intelligenz (KI), Visualisierungsdienste und/oder andere Diensttypen umfassen. In mindestens einer Ausführungsform können Dienste 1320 eine Funktionalität bereitstellen, die einer oder mehreren Anwendungen in der Software 1318 gemeinsam ist, so dass die Funktionalität zu einem Dienst abgesondert werden kann, der von Anwendungen aufgerufen oder wirksam eingesetzt werden kann. In mindestens einer Ausführungsform kann die von den Diensten 1320 bereitgestellte Funktionalität dynamisch und effizienter ausgeführt werden, während sie auch gut skaliert werden kann, indem Anwendungen ermöglicht wird, Daten parallel zu verarbeiten (z.B. unter Verwendung einer parallelen Berechnungsplattform 1430 (14)). In mindestens einer Ausführungsform kann der Dienst 1320 zwischen und unter verschiedenen Anwendungen gemeinsam genutzt werden, anstatt es erforderlich ist, dass jede Anwendung, die eine selbe durch einen Dienst 1320 angebotene Funktionalität gemeinsam nutzt, eine jeweilige Instanz des Dienstes 1320 aufweist. In mindestens einer Ausführungsform können Dienste als nicht einschränkende Beispiele einen Inferenzserver oder -Engine aufweisen, der zum Ausführen von Erfassungs- oder Segmentierungsaufgaben verwendet werden kann. In mindestens einer Ausführungsform kann ein Modelltrainingsdienst enthalten sein, der Fähigkeiten zum Training und/oder erneuten Training eines maschinellen Lernmodells bereitstellen kann. In mindestens einer Ausführungsform kann ferner ein Datenerweiterungsdienst enthalten sein, der eine GPUbeschleunigte Extraktion, Größenänderung, Skalierung und/oder andere Erweiterung von Daten (z.B. DICOM, RIS, CIS, REST-konform, RPC, Roh usw.) bereitstellen kann. In mindestens einer Ausführungsform kann ein Visualisierungsdienst verwendet werden, der Bildrenderingeffekte hinzufügen kann - wie Raytracing, Rasterung, Entrauschen, Schärfung usw. - um zweidimensionalen (2D) und/oder dreidimensionalen (3D) Modellen Realismus hinzuzufügen. In mindestens einer Ausführungsform können virtuelle Instrumentendienste enthalten sein, die für Strahlformung, Segmentierung, Inferenzbildung, Bildgebung und/oder Unterstützung für andere Anwendungen innerhalb von Pipelines virtueller Instrumente sorgen.
  • In mindestens einer Ausführungsform, in der ein Dienst 1320 einen KI-Dienst (z.B. einen Inferenzdienst) umfasst, können ein oder mehrere maschinelle Lernmodelle ausgeführt werden, indem (z.B. als API-Aufruf) ein Inferenzdienst (z.B. ein Inferenzserver) aufgerufen wird, um ein oder mehrere maschinelle Lernmodelle oder deren Verarbeitung als Teil der Anwendungsausführung auszuführen. In mindestens einer Ausführungsform, in der eine andere Anwendung ein oder mehrere maschinelle Lernmodelle für Segmentierungsaufgaben aufweist, kann eine Anwendung einen Inferenzdienst aufrufen, um maschinelle Lernmodelle zum Ausführen einer oder mehrerer Verarbeitungsoperationen mit verknüpften Segmentierungsaufgaben auszuführen. In mindestens einer Ausführungsform kann die Software 1318, die eine erweiterte Verarbeitungs- und Inferenzpipeline implementiert, die eine Segmentierungsanwendung und eine Anomalieerkennungsanwendung enthält, rationalisiert werden, da jede Anwendung denselben Inferenzdienst aufrufen kann, um eine oder mehrere Inferenzaufgaben durchzuführen.
  • In mindestens einer Ausführungsform kann die Hardware 1322 GPUs, CPUs, Grafikkarten, ein KI/Deep-Learning System (z.B. einen KI-Supercomputer wie DGX von NVIDIA), eine Cloud-Plattform oder eine Kombination davon umfassen. In mindestens einer Ausführungsform können unterschiedliche Arten der Hardware 1322 verwendet werden, um eine effiziente, spezialgefertigte Unterstützung für die Software 1318 und die Dienste 1320 im Einsatzsystem 1306 bereitzustellen. In mindestens einer Ausführungsform kann die Verwendung der GPU-Verarbeitung zur lokalen Verarbeitung (z.B. in der Einrichtung 1302), innerhalb eines KI/Deep-Learning-Systems, in einem Cloud System und/oder in anderen Verarbeitungskomponenten des Einsatzsystems 1306 implementiert werden, um die Effizienz, Genauigkeit und Leistungsfähigkeit der Bildverarbeitung und -Erzeugung zu verbessern. In mindestens einer Ausführungsform können die Software 1318 und/oder die Dienste 1320 als nicht einschränkende Beispiele zur GPU-Verarbeitung in Bezug auf Deep-Learning, maschinelles Lernen und/oder Hochleistungsrechnen optimiert werden. In mindestens einer Ausführungsform kann mindestens ein Teil der Rechenumgebung des Einsatzsystems 1306 und/oder des Trainingssystems 1304 in einem Datenzentrum, einem oder mehreren Supercomputern oder Hochleistungsrechensystemen, mit GPU-optimierter Software (z.B. der Hardware- und Software-Kombination des DGX-Systems von NVIDIA) ausgeführt werden. In mindestens einer Ausführungsform kann die Hardware 1322 eine beliebige Anzahl von GPUs umfassen, die aufgerufen werden können, um die Verarbeitung von Daten parallel durchzuführen, wie hierin beschrieben. In mindestens einer Ausführungsform kann die Cloud-Plattform ferner eine GPU-Verarbeitung für eine GPU-optimierte Ausführung von Deep-Learning-Aufgaben, maschinellen Lernaufgaben oder andere Berechnungsaufgaben umfassen. In mindestens einer Ausführungsform kann die Cloud-Plattform (z.B. NGC von NVIDIA) unter Verwendung eines oder mehrerer KI/Deep-Learning-Supercomputer und/oder GPU-optimierter Software (wie sie z.B. auf den DGX-Systemen von NVIDIA bereitgestellt wird) als eine Hardwareabstraktions- und Skalierungsplattform ausgeführt werden. In mindestens einer Ausführungsform kann die Cloud-Plattform ein Anwendungscontainer-Clusteringssystem oder Orchestrierungssystem (z.B. KUBERNETES) auf mehreren GPUs integrieren, um eine nahtlose Skalierung und Lastverteilung zu ermöglichen.
  • 14 ist ein Systemdiagramm für eine beispielhaftes System 1400 zum Erzeugen und Einsetzen einer Bildgebungseinsatzpipeline gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann das System 1400 verwendet werden, um den Prozess 1300 der 13 und/oder andere Prozesse zu implementieren, die fortschrittliche Verarbeitungs- und Inferenz-Pipelines umfassen. In mindestens einer Ausführungsform kann das System 1400 das Trainingssystem 1304 und das Einsatzsystem 1306 umfassen. In mindestens einer Ausführungsform können das Trainingssystem 1304 und das Einsatzsystem 1306 unter Verwendung der Software 1318, der Dienste 1320 und/oder der Hardware 1322 implementiert werden, wie hierin beschrieben.
  • In mindestens einer Ausführungsform kann das System 1400 (z.B. das Trainingssystem 1304 und/oder das Einsatzsystem 1306) in einer Cloud-Computing-Umgebung (z.B. unter Verwendung der Cloud 1426) implementiert werden. In mindestens einer Ausführungsform kann das System 1400 lokal in Bezug auf eine Gesundheitsdiensteinrichtung oder als eine Kombination aus sowohl Cloud- als auch lokalen Rechenressourcen implementiert werden. In mindestens einer Ausführungsform kann der Zugriff auf APIs in der Cloud 1426 durch verordnete Sicherheitsmaßnahmen oder -Protokolle auf autorisierte Benutzer beschränkt werden. In mindestens einer Ausführungsform kann ein Sicherheitsprotokoll Web Token umfassen, die von einem Authentifizierungsdienst (z.B. AuthN, AuthZ, Gluecon usw.) signiert sein können und eine geeignete Autorisierung tragen können. In mindestens einer Ausführungsform können APIs von (hierin beschriebenen) virtuellen Instrumenten oder andere Instanziierungen des Systems 1400 auf einen Satz öffentlicher IPs beschränkt sein, die überprüft oder für eine Interaktion autorisiert wurden.
  • In mindestens einer Ausführungsform können verschiedene Komponenten des Systems 1400 miteinander und untereinander unter Verwendung eines beliebigen einer Vielfalt von unterschiedlichen Netzwerktypen kommunizieren, einschließlich, aber nicht beschränkt auf lokale Netzwerke (LANs) und/oder Weitverkehrsnetzwerke (WANs) über drahtgebundene und/oder drahtlose Kommunikationsprotokolle. In mindestens einer Ausführungsform kann die Kommunikation zwischen Einrichtungen und Komponenten des Systems 1400 (z.B. zum Senden von Inferenzanfragen, zum Empfangen von Ergebnissen der Inferenzanfragen usw.) über Datenbus(se), drahtlose Datenprotokolle (Wi-Fi), drahtgebundene Datenprotokolle (z.B. Ethernet) usw. übertragen werden.
  • In mindestens einer Ausführungsform kann das Trainingssystem 1304 Trainingspipelines 1404 ausführen, die ähnlich zu jenen sind, die hierin in Bezug auf 13 beschrieben werden. In mindestens einer Ausführungsform, in der eine oder mehrere maschinelle Lernmodelle in den Einsatzpipelines 1410 durch das Einsatzsystem 1306 verwendet werden sollen, können Trainingspipelines 1404 verwendet werden, um eine oder mehrere (z.B. vortrainierte) Modelle zu trainieren oder erneut zu trainieren, und/oder um ein oder mehrere vortrainierte Modelle 1406 zu implementieren (z.B. ohne Notwendigkeit zum erneuten Trainieren oder Aktualisieren). In mindestens einer Ausführungsform können als Ergebnis der Trainingspipelines 1404 Ausgabemodell(e) 1316 erzeugt werden. In mindestens einer Ausführungsform können Trainingspipelines 1404 eine beliebige Anzahl von Verarbeitungsschritten enthalten, wie, jedoch nicht beschränkt auf, die Umwandlung oder Anpassung von Bildgebungsdaten (oder anderen Eingabedaten). In mindestens einer Ausführungsform können für unterschiedliche maschinelle Lernmodelle, die durch das Einsatzsystem 1306 verwendet werden, unterschiedliche Trainingspipelines 1404 verwendet werden. In mindestens einer Ausführungsform kann die Trainingspipeline 1404, die ähnlich zu einem in Bezug auf 13 beschriebenen ersten Beispiel ist, für ein erstes maschinelles Lernmodell verwendet werden, Die Trainingspipeline 1404, die ähnlich zu einem in Bezug auf 13 beschriebenen zweiten Beispiel ist, kann für ein zweites maschinelles Lernmodell verwendet werden, und die Trainingspipeline 1404, die ähnlich zu einem in Bezug auf 13 beschriebenen dritten Beispiel ist, kann für ein drittes maschinelles Lernmodell verwendet werden. In mindestens einer Ausführungsform kann jede Kombination von Aufgaben innerhalb des Trainingssystems 1304 abhängig davon verwendet werden, was für jedes jeweilige maschinelle Lernmodell erforderlich ist. In mindestens einer Ausführungsform können eine oder mehrere maschinelle Lernmodelle bereits trainiert und für den Einsatz bereit sein, so dass die maschinellen Lernmodelle keiner Verarbeitung durch das Trainingssystem 1304 unterzogen werden brauchen, und durch das Einsatzsystem 1306 implementiert werden können.
  • In mindestens einer Ausführungsform können das/die Ausgabemodell(e) 1316 und/oder das/die vortrainierten Modell(e) 1406 abhängig von der Implementierung oder Ausführungsform beliebige Arten von maschinellen Lernmodellen enthalten. In mindestens einer Ausführungsform und ohne Einschränkung können durch das System 1400 verwendete maschinelle Lernmodelle maschinelle Lernmodell(e) enthalten, die lineare Regression, logistische Regression, Entscheidungsbäume, Support Vector Machines (SVM), Naive Bayes, k-Nearest-Neighbor (KNN), K-Means-Clustering, Random Forest, Dimensionsreduktions-Algorithmen, Gradientenverstärkungs-Algorithmen, neuronale Netzwerke (z.B. Autoencoder, Convolutional, rekurrent, Perzeptronen, Long Short-Term Memory (LSTM), Hopfield, Boltzmann, Deep Belief, Deconvolutional, generativ kontradiktorisch, Liquid State Machine usw.), und/oder andere Arten von maschinellen Lernmodellen verwenden.
  • In mindestens einer Ausführungsform können Trainingspipelines 1404 eine KI-unterstützte Annotation umfassen, wie hierin mindestens in Bezug auf 15B detaillierter beschrieben. In mindestens einer Ausführungsform können gekennzeichnete Daten 1312 (z.B. eine herkömmliche Annotation) durch eine beliebige Anzahl von Techniken erzeugt werden. In mindestens einer Ausführungsform können Kennzeichnungen oder andere Annotationen innerhalb eines Zeichenprogramms (z.B. eines Annotationsprogramms), eines computergestützten Entwurfs- (CAD) Programms, eines Kennzeichnungsprogramms, einer anderen Art von Programm erzeugt werden, das zum Erzeugen Annotationen oder Kennzeichnungen für Ground Truth geeignet ist, und/oder können in einigen Beispielen mit der Hand gezeichnet werden. In mindestens einer Ausführungsform können Ground-Truth-Daten synthetisch erzeugt werden (z.B. aus Computermodellen oder Renderings erzeugt werden), real erzeugt werden (z.B. aus realen Daten entworfen und erzeugt werden), maschinenautomatisiert (z.B. unter Verwendung von Merkmalsanalyse und Lernen, um Merkmale aus Daten zu extrahieren und dann Kennzeichnungen zu erzeugen), von Menschen annotiert werden (z.B. definiert ein Etikettierer, oder Annotation Expert, den Ort von Kennzeichnungen), und/oder eine Kombination davon. In mindestens einer Ausführungsform kann es für jede Instanz von Bildgebungsdaten 1308 (oder andere Arten von Daten, die durch maschinelle Lernmodelle verwendet werden), entsprechende Ground-Truth-Daten geben, die durch das Trainingssystem 1304 erzeugt werden. In mindestens einer Ausführungsform kann eine KI-unterstützte Annotation als Teil der Einsatzpipelines 1410 durchgeführt werden; entweder zusätzlich zu oder anstelle der KI-unterstützten Annotation, die in den Trainingspipelines 1404 enthalten ist. In mindestens einer Ausführungsform kann das System 1400 eine mehrschichtige Plattform umfassen, die eine Softwareschicht (z.B. die Software 1318) diagnostischer Anwendungen (oder andere Anwendungstypen) enthalten kann, die eine oder mehrere medizinische Bildgebungs- und Diagnosefunktionen ausführen können. In mindestens einer Ausführungsform kann das System 1400 (z.B. über verschlüsselte Verbindungen) kommunikativ mit PACS-Servernetzwerken einer oder mehrerer Einrichtungen gekoppelt sein. In mindestens einer Ausführungsform kann das System 1400 konfiguriert sein, auf Daten von PACS-Servern zuzugreifen und diese zu referenzieren, um Operationen wie Training maschineller Lernmodelle, Einsetzen maschineller Lernmodelle, Bildverarbeitung, Inferenzierung und/oder andere Operationen auszuführen.
  • In mindestens einer Ausführungsform kann eine Softwareschicht als eine sichere, verschlüsselte und/oder authentifizierte API implementiert sein, durch die Anwendungen oder Container von einer oder mehreren externen Umgebungen (z.B. der Einrichtung 1302) aufgerufen (z.B. angerufen) werden können. In mindestens einer Ausführungsform können Anwendungen dann einen oder mehrere Dienste 1320 zum Ausführen von Berechnungs-, KI- oder Visualisierungsaufgaben mit verknüpften jeweiligen Anwendungen aufrufen und ausführen, und Software 1318 und/oder Dienste 1320 können wirksam Hardware 1322 einsetzen, um Verarbeitungsaufgaben in einer effektiven und effizienten Weise auszuführen.
  • In mindestens einer Ausführungsform kann das Einsatzsystem 1306 Einsatzpipelines 1410 ausführen. In mindestens einer Ausführungsform können Einsatzpipelines 1410 eine beliebige Anzahl von Anwendungen umfassen, die sequentiell, nicht sequentiell oder auf andere Art auf Bildgebungsdaten (und /oder andere Datentypen) angewendet werden können, die durch Bildgebungsvorrichtungen, Sequenzierungsvorrichtungen, Genomikvorrichtungen usw. erzeugt werden - einschließlich KI-gestützter Annotation, wie oben beschrieben. In mindestens einer Ausführungsform kann wie hierin beschrieben eine Einsatzpipeline 1410 für eine einzelne Vorrichtung als ein virtuelles Instrument für eine Vorrichtung bezeichnet werden (z.B. ein virtuelles Ultraschallinstrument, ein virtuelles CT-Scan-Instrument, ein virtuelles Sequenzierungsinstrument usw.). In mindestens einer Ausführungsform kann es für eine einzige Vorrichtung mehr als eine Einsatzpipeline 1410 geben, abhängig von Informationen, die aus Daten gewünscht werden, die durch eine Vorrichtung erzeugt werden. In mindestens einer Ausführungsform kann es dort, wo die Erkennung von Anomalien von einem MRT-Gerät erwünscht ist, eine erste Einsatzpipeline 1410 geben, und wo eine Bildverbesserung von der Ausgabe eines MRT-Geräts erwünscht ist, kann es eine zweite Einsatzpipeline 1410 geben.
  • In mindestens einer Ausführungsform kann eine Bilderzeugungsanwendung eine Verarbeitungsaufgabe enthalten, die die Verwendung eines maschinellen Lernmodells umfasst. In mindestens einer Ausführungsform kann ein Benutzer wünschen, sein eigenes maschinelles Lernmodell zu verwenden, oder ein maschinelles Lernmodell aus dem Modellregister 1324 auszuwählen. In mindestens einer Ausführungsform kann ein Benutzer sein eigenes maschinelles Lernmodell implementieren oder ein maschinelles Lernmodell zur Einbindung in eine Anwendung zum Durchführen einer Verarbeitungsaufgabe auswählen. In mindestens einer Ausführungsform können Anwendungen auswählbar und anpassbar sein, und durch Definieren von Anwendungskonstrukten werden der Einsatz und die Implementierung von Anwendungen für einen bestimmten Benutzer als nahtlosere Benutzererfahrung dargestellt. Indem in mindestens einer Ausführungsform andere Merkmale des Systems 1400 - wie die Dienste 1320 und die Hardware 1322 - wirksam eingesetzt werden, können Einsatzpipelines 1410 noch benutzerfreundlicher sein, eine einfachere Integration ermöglichen und genauere, effizientere und zeitnahere Ergebnisse liefern.
  • In mindestens einer Ausführungsform kann das Einsatzsystem 1306 eine Benutzerschnittstelle 1414 (z.B. eine grafische Benutzerschnittstelle, eine Webschnittstelle usw.) umfassen, die verwendet werden kann, um Anwendungen zur Einbindung in die Einsatzpipeline(s) 1410 auszuwählen, Anwendungen einzurichten, Anwendungen oder Parameter oder Konstrukte davon zu modifizieren oder zu ändern, Einsatzpipeline(s) 1410 während der Einrichtung und/oder dem Einsatz zu verwenden und mit diesen zu interagieren, und/oder auf andere Weise mit dem Einsatzsystem 1306 zu interagieren. In mindestens einer Ausführungsform kann, obwohl dies in Bezug auf das Trainingssystem 1304 nicht dargestellt wird, die Benutzerschnittstelle 1414 (oder eine andere Benutzerschnittstelle) zum Auswählen von Modellen zur Verwendung im Einsatzsystem 1306, zum Auswählen von Modellen zum Training oder erneuten Training im Trainingssystem 1304 und/oder verwendet werden, um auf andere Weise mit dem Trainingssystem 1304 zu interagieren.
  • In mindestens einer Ausführungsform kann der Pipeline-Manager 1412 zusätzlich zu einem Anwendungs-Orchestrierungssystem 1428 verwendet werden, um die Interaktion zwischen Anwendungen oder Containern der Einsatzpipeline(s) 1410 und der Dienste 1320 und/oder der Hardware 1322 zu verwalten. In mindestens einer Ausführungsform kann der Pipeline-Manager 1412 konfiguriert sein, Interaktionen von Anwendung zu Anwendung, von Anwendung zum Dienst 1320 und/oder von Anwendung oder Dienst zur Hardware 1322 zu erleichtern. Obwohl er als in der Software 1318 enthalten dargestellt wird, ist dies nicht dazu bestimmt einschränkend zu sein, und in mindestens einer Ausführungsform und in einigen Beispielen (wie z.B. in 12cc dargestellt) kann der Pipeline-Manager 1412 in den Diensten 1320 enthalten sein. In mindestens einer Ausführungsform kann das Anwendungs-Orchestrierungssystem 1428 (z.B. Kubernetes, DOCKER usw.) ein Container-Orchestrierungssystem umfassen, das Anwendungen in Containern als logische Einheiten zur Koordination, Verwaltung, Skalierung und zum Einsatz gruppieren kann. In mindestens einer Ausführungsform kann durch Verknüpfen von Anwendungen aus der/den Einsatzpipeline(s) 1410 (z.B. einer Rekonstruktionsanwendung, einer Segmentierungsanwendung usw.) mit einzelnen Containern jede Anwendung in einer eigenständigen Umgebung (z.B. auf einer Kernelebene) ausgeführt werden, um die Geschwindigkeit und Effizienz zu steigern.
  • In mindestens einer Ausführungsform kann jede Anwendung und/oder Container (oder Bild davon) einzeln entwickelt, modifiziert und eingesetzt werden (z.B. kann ein erster Benutzer oder Entwickler eine erste Anwendung entwickeln, modifizieren und einsetzen, und ein zweiter Benutzer oder Entwickler kann eine zweite Anwendung getrennt von einem ersten Benutzer oder Entwickler entwickeln, modifizieren und einsetzen), was es ermöglichen kann, sich auf eine Aufgabe einer einzelnen Anwendung und/oder eines oder mehrerer Container zu konzentrieren und darauf zu achten, ohne durch Aufgaben einer oder mehrerer Anwendungen oder Container behindert zu werden. In mindestens einer Ausführungsform kann die Kommunikation und Kooperation zwischen unterschiedlichen Containern oder Anwendungen durch den Pipeline-Manager 1412 und das Anwendungs-Orchestrierungssystem 1428 unterstützt werden. In mindestens einer Ausführungsform kann so lange eine erwartete Eingabe und/oder Ausgabe jedes Containers oder jeder Anwendung durch ein System bekannt ist (z.B. basierend auf Konstrukten der Anwendungen oder Container), das Anwendungs-Orchestrierungssystem 1428 und/oder der Pipeline-Manager 1412 die Kommunikation unter und zwischen, und die gemeinsame Nutzung von Ressourcen unter und zwischen jeder der Anwendungen oder Container erleichtern. Da in mindestens einer Ausführungsform eine oder mehrere Anwendungen oder Container in der/den Einsatzpipeline(s) 1410 dieselben Dienste und Ressourcen gemeinsam nutzen können, kann das Anwendungs-Orchestrierungssystem 1428 die gemeinsame Nutzung der Dienste oder Ressourcen zwischen und unter verschiedenen Anwendungen oder Containern orchestrieren, deren Last ausgleichen und bestimmen. In mindestens einer Ausführungsform kann ein Scheduler verwendet werden, um die Ressourcenanforderungen von Anwendungen oder Containern, die gegenwärtige Nutzung oder geplante Nutzung dieser Ressourcen und die Ressourcenverfügbarkeit zu verfolgen. In mindestens einer Ausführungsform kann ein Scheduler folglich unterschiedlichen Anwendungen Ressourcen zuweisen und Ressourcen zwischen und unter Anwendungen im Hinblick auf Anforderungen und Verfügbarkeit eines Systems verteilen. In einigen Beispielen kann ein Scheduler (und/oder eine andere Komponente des Anwendungs-Orchestrierungssystems 1428) die Ressourcenverfügbarkeit und -Verteilung basierend auf einem System auferlegten Beschränkungen (z.B. Benutzerbeschränkungen) bestimmen, wie der Dienstgüte (QoS), der Dringlichkeit des Bedarfs von Datenausgaben um (z.B. zu bestimmen, ob eine Echtzeitverarbeitung oder verzögerte Verarbeitung ausgeführt werden soll) usw.
  • In mindestens einer Ausführungsform können Dienste 1320, die durch Anwendungen oder Container in Einsatzsystem 1306 wirksam eingesetzt und gemeinsam genutzt werden, Rechendienste 1416, KI-Dienste 1418, Visualisierungsdienste 1420 und/oder andere Diensttypen umfassen. In mindestens einer Ausführungsform können Anwendungen einen oder mehrere der Dienste 1320 aufrufen (z.B. ausführen), um Verarbeitungsoperationen für eine Anwendung durchzuführen. In mindestens einer Ausführungsform können Rechendienste 1416 wirksam durch Anwendungen eingesetzt werden, um Supercomputing- oder andere High-Performance-Computing (HPC)-Aufgaben auszuführen. In mindestens einer Ausführungsform können der oder mehrere der Rechendienste 1416 wirksam eingesetzt werden, um eine Parallelverarbeitung (z.B. unter Verwendung einer parallelen Berechnungsplattform 1430) zur Verarbeitung von Daten durch eine oder mehrere Anwendungen und/oder eine oder mehrere Aufgaben einer einzelnen Anwendung im Wesentlichen gleichzeitig auszuführen. In mindestens einer Ausführungsform kann die parallele Berechnungsplattform 1430 (z.B. CUDA von NVIDIA) eine Allzweckberechnung auf GPUs (GPGPU) (z.B. den GPUs 1422) ermöglichen. In mindestens einer Ausführungsform kann eine Softwareschicht der parallelen Berechnungsplattform 1430 Zugriff auf virtuelle Befehlssätze und parallele Rechenelemente von GPUs zur Ausführung von Rechenkernen bereitstellen. In mindestens einer Ausführungsform kann die parallele Berechnungsplattform 1430 einen Speicher umfassen, und in einigen Ausführungsformen kann ein Speicher zwischen und unter mehreren Containern und/oder zwischen und unter unterschiedlichen Verarbeitungsaufgaben innerhalb eines einzelnen Containers gemeinsam genutzt werden. In mindestens einer Ausführungsform können Interprozesskommunikations-(IPC) Aufrufe 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 1430 zu verwenden (z.B. wo mehrere unterschiedliche Stufen einer Anwendung oder mehrerer Anwendungen dieselben Informationen verarbeiten). In mindestens einer Ausführungsform können, anstatt eine Kopie von Daten zu erstellen und Daten zu unterschiedlichen Orten in Speicher zu bewegen (z.B. eine Schreib-/Leseoperation), dieselben Daten am selben Ort eines Speichers für eine beliebige Anzahl von Verarbeitungsaufgaben (z.B. zur selben Zeit, zu unterschiedlichen Zeiten usw.) verwendet werden. Wenn in mindestens einer Ausführungsform Daten verwendet werden, um als Ergebnis einer Verarbeitung neue Daten zu erzeugen, können diese Informationen über einen neuen Ort der Daten gespeichert und gemeinsam zwischen verschiedenen Anwendungen genutzt werden. In mindestens einer Ausführungsform kann der Ort von Daten und ein Ort von aktualisierten oder modifizierten Daten Teil einer Definition sein, wie eine Nutzdaten innerhalb von Containern verstanden werden.
  • In mindestens einer Ausführungsform KI-Dienste 1418 may be wirksam eingesetzt um Inferenzdienste zum Ausführen maschineller Lernmodelle mit verknüpften Anwendungen auszuführen (die z.B. mit der Ausführung einer oder mehrerer Verarbeitungsaufgaben einer Anwendung beauftragt sind). In mindestens einer Ausführungsform können die KI-Dienste 1418 das KI-System 1424 wirksam einsetzen, um ein oder mehrere maschinelle Lernmodelle (z.B. neuronale Netzwerke, wie CNNs) zur Segmentierung, Rekonstruktion, Objekterfassung, Merkmalserfassung, Klassifizierung und/oder andere Inferenzaufgaben auszuführen. In mindestens einer Ausführungsform können Anwendungen der oder mehrerer Einsatzpipelines 1410 ein oder mehrere Ausgabemodelle 1316 vom Trainingssystem 1304 und/oder andere Modelle von Anwendungen verwenden, um eine Inferenz an Bildgebungsdaten durchzuführen. In mindestens einer Ausführungsform können zwei oder mehr Beispiele einer Inferenzierung unter Verwendung des Anwendungs-Orchestrierungssystems 1428 (z.B. eines Schedulers) verfügbar sein. In mindestens einer Ausführungsform kann eine erste Kategorie einen Weg mit hoher Priorität/niedriger Latenz umfassen, die höhere Service-Level-Agreements erzielen können, wie zum Durchführen von Inferenzen an dringenden Anfragen während eines Notfalls oder für einen Radiologen während einer Diagnose. In mindestens einer Ausführungsform kann eine zweite Kategorie einen Weg mit einer Standardpriorität umfassen, der für Anforderungen verwendet werden kann, die möglicherweise nicht dringend sind oder bei denen eine Analyse zu einem späteren Zeitpunkt durchgeführt werden kann. In mindestens einer Ausführungsform kann das Anwendungs-Orchestrierungssystem 1428 Ressourcen (z.B. Dienste 1320 und/oder Hardware 1322) basierend auf Prioritätswegen für unterschiedliche Inferenzaufgaben der KI-Dienste 1418 verteilen.
  • In mindestens einer Ausführungsform gemeinsam genutzte Speicher an die KI-Dienste 1418 innerhalb des Systems 1400 angeschlossen sein. In mindestens einer Ausführungsform kann der gemeinsam genutzte Speicher ein Cache (oder andere Speichervorrichtungstyp) arbeiten und kann verwendet werden, um Inferenzanfragen von Anwendungen zu verarbeiten. In mindestens einer Ausführungsform kann, wenn eine Inferenzanfrage gesendet wird, eine Anfrage durch einen Satz von API-Instanzen des Einsatzsystems 1306 empfangen werden, und eine oder mehrere Instanzen können (z.B. für eine beste Anpassung, zum Lastausgleich usw.) ausgewählt werden, um eine Anfrage zu verarbeiten. In mindestens einer Ausführungsform kann zum Verarbeiten einer Anfrage eine Anfrage in eine Datenbank eingegeben werden, ein maschinelles Lernmodell kann im Modellregister 1324 lokalisiert werden, wenn es sich nicht schon in einem Cache befindet, ein Prüfungsschritt kann sicherstellen, dass ein geeignetes maschinelles Lernmodell in einen Cache (z.B. einen gemeinsam genutzten Speicher) geladen wird, und/oder eine Kopie eines Modells kann in einem Cache gespeichert werden. In mindestens einer Ausführungsform kann ein Scheduler (z.B. des Pipeline-Managers 1412) verwendet werden, um eine Anwendung zu starten, die in einer Anfrage referenziert wird, wenn eine Anwendung nicht schon ausgeführt wird oder wenn es nicht genug Instanzen einer Anwendung gibt. In mindestens einer Ausführungsform kann ein Inferenzserver gestartet werden, wenn noch kein Inferenzserver gestartet wurde, um ein Modell auszuführen. Pro Modell kann eine beliebige Anzahl von Inferenzservern gestartet werden. In mindestens einer Ausführungsform können in einem Pull-Modell, in dem Inferenzserver geclustert sind, Modelle zwischengespeichert werden, wann immer 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 unter Verwendung eines Inferenzserver durchgeführt werden, der in einem Container ausgeführt wird. In mindestens einer Ausführungsform kann eine Instanz eines Inferenzservers mit einem Modell (und optional mehreren Versionen eines Modells) verknüpft sein. In mindestens einer Ausführungsform kann eine neue Instanz geladen werden, wenn eine Instanz eines Inferenzservers nicht vorhanden ist, wenn eine Anfrage zum Durchführen einer Inferenz an einem Modell empfangen wird. In mindestens einer Ausführungsform kann beim Starten eines Inferenzservers ein Modell an einen Inferenzserver übergeben werden, so dass ein selber Container verwendet werden kann, um unterschiedliche Modelle zu bedienen, solange der Inferenzserver als eine andere Instanz ausgeführt wird.
  • In mindestens einer Ausführungsform kann während der Anwendungsausführung eine Inferenzanforderung für eine gegebene Anwendung empfangen werden, und ein Container (der z.B. eine Instanz eines Inferenzservers hostet) kann geladen werden (falls noch nicht geschehen), und eine Startprozedur kann aufgerufen werden. In mindestens einer Ausführungsform kann die Vorverarbeitungslogik in einem Container eingehende Daten laden, decodieren und/oder eine beliebige zusätzliche Vorverarbeitung durchführen (z.B. unter Verwendung einer oder mehrerer CPUs und/oder GPUs). In mindestens einer Ausführungsform kann ein Container, sobald die Daten für die Inferenz vorbereitet sind, eine Inferenz nach Bedarf an den Daten durchführen. In mindestens einer Ausführungsform kann dies einen einzelnen Inferenzaufruf für ein Bild (z.B. eine Röntgenaufnahme der Hand) umfassen oder kann eine Inferenz an Hunderten von Bildern (z.B. ein Brust-CT) erfordern. In mindestens einer Ausführungsform kann eine Anwendung Ergebnisse zusammenfassen, bevor sie abgeschlossen wird, was ohne Einschränkung einen einzelnen Konfidenzscore, eine Segmentierung auf Pixelebene, eine Segmentierung auf Voxelebene, Erzeugen einer Visualisierung oder Erzeugen von Text zum Zusammenfassen von Befunden umfassen kann. In mindestens einer Ausführungsform können unterschiedlichen Modellen oder Anwendungen unterschiedliche Prioritäten zugewiesen werden. Beispielsweise können einige Modelle eine Echtzeitpriorität (TAT < 1 min) aufweisen, während andere eine niedrigere Priorität aufweisen können (z.B. TAT < 10 min). In mindestens einer Ausführungsform können die Modellausführungszeiten von der anfordernden Institution oder Einheit gemessen werden und können die Partnernetzwerk-Traversierungszeit sowie die Ausführung an einem Inferenzdienst umfassen.
  • In mindestens einer Ausführungsform kann die Übertragung von Anforderungen zwischen Diensten 1320 und Inferenzanwendungen hinter einem Software Development Kit (SDK) verborgen sein, und ein robuster Transport kann durch eine Warteschlange bereitgestellt werden. In mindestens einer Ausführungsform wird eine Anfrage über eine API für eine individuelle Anwendungs-/Mandanten-ID-Kombination in eine Warteschlange gestellt und ein SDK wird eine Anfrage aus einer Warteschlange ziehen und eine Anfrage an eine Anwendung geben. In mindestens einer Ausführungsform kann ein Name einer Warteschlange in einer Umgebung bereitgestellt werden, aus der ein SDK ihn erfassen wird. In mindestens einer Ausführungsform kann eine asynchrone Kommunikation durch eine Warteschlange nützlich sein, da sie es jeder Instanz einer Anwendung ermöglichen kann, Arbeit zu erfassen, sobald sie verfügbar wird. Die Ergebnisse können durch eine Warteschlange zurückübertragen werden, um sicherzustellen, dass keine Daten verloren gehen. In mindestens einer Ausführungsform können Warteschlangen auch eine Fähigkeit bereitstellen, Arbeit zu segmentieren, da die Arbeit mit der höchsten Priorität in eine Warteschlange gehen kann, mit der die meisten Instanzen einer Anwendung verbunden sind, während die Arbeit mit der niedrigsten Priorität in eine Warteschlange gehen kann es, mit der eine einzige Instanz verbunden ist, die Aufgaben in einer empfangenen Reihenfolge verarbeitet. In mindestens einer Ausführungsform kann eine Anwendung auf einer GPU-beschleunigten Instanz ausgeführt werden, die in der Cloud 1426 erzeugt wird, und ein Inferenzdienst kann die Inferenzierung auf einer GPU durchführen.
  • In mindestens einer Ausführungsform können Visualisierungsdienste 1420 wirksam eingesetzt werden, um Visualisierungen zum Betrachten von Ausgaben von Anwendungen und/oder der Einsatzpipelines 1410 zu erzeugen. In mindestens einer Ausführungsform können GPUs 1422 wirksam durch Visualisierungsdienste 1420 eingesetzt werden, um Visualisierungen zu erzeugen. In mindestens einer Ausführungsform können Rendering-Effekte, wie Raytracing, durch die Visualisierungsdienste 1420 implementiert werden, um Visualisierungen höherer Qualität zu erzeugen. In mindestens einer Ausführungsform können Visualisierungen ohne Einschränkung 2D-Bild-Renderings, 3D-Volumen-Renderings, eine 3D-Volumenrekonstruktion, 2D-Tomographie-Schichten, Anzeigen virtueller Realität, Anzeigen erweiterter Realität 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) zur Interaktion durch Benutzer eines Systems (z.B. Ärzte, Krankenschwestern, Radiologen usw.) zu erzeugen. In mindestens einer Ausführungsform können die Visualisierungsdienste 1420 einen internen Visualisierer, Kinematographie- und/oder andere Rendering- oder Bildverarbeitungsfähigkeiten oder -Funktionalität (z.B. Raytracing, Rasterung, interne Optik usw.) umfassen.
  • In mindestens einer Ausführungsform kann die Hardware 1322 die GPUs 1422, das KI-System 1424, die Cloud 1426 und/oder jede andere Hardware umfassen, die zum Ausführen des Trainingssystems 1304 und/oder des Einsatzsystems 1306 verwendet wird. In mindestens einer Ausführungsform können GPUs 1422 (z.B. TESLA und/oder QUADRO GPUs von NVIDIA) eine beliebige Anzahl von GPUs umfassen, die zum Ausführen von Verarbeitungsaufgaben der Rechendienste 1416, der KI-Dienste 1418, der Visualisierungsdienste 1420, anderer Dienste, und/oder jedes der Merkmale oder der Funktionalität der Software 1318 verwendet werden können. Beispielsweise können in Bezug auf KI-Dienste 1418 die GPUs 1422 verwendet werden, um eine Vorverarbeitung an Bildgebungsdaten (oder anderen Datentypen, die durch maschinelle Lernmodelle verwendet werden), eine Nachverarbeitung an Ausgaben maschineller Lernmodelle durchzuführen, und/oder um eine Inferenzierung durchzuführen (z.B. um maschinelle Lernmodelle auszuführen). In mindestens einer Ausführungsform können die Cloud 1426, das KI-System 1424 und/oder andere Komponenten des Systems 1400 die GPUs 1422 verwenden. In mindestens einer Ausführungsform kann die Cloud 1426 eine GPU-optimierte Plattform für Deep-Learning-Aufgaben enthalten. In mindestens einer Ausführungsform kann das KI-System 1424 GPUs verwenden, und die Cloud 1426 - oder mindestens ein Abschnitt, der mit Deep-Learning oder Inferenzierung beauftragt ist - kann unter Verwendung eines oder mehrerer KI-Systeme 1424 ausgeführt werden. Obwohl die Hardware 1322 an sich als diskrete Komponenten dargestellt wird, ist dies nicht dazu bestimmt, einschränkend zu sein, und beliebige Komponenten der Hardware 1322 können mit beliebigen anderen Komponenten der Hardware 1322 kombiniert oder durch diese wirksam eingesetzt werden.
  • In mindestens einer Ausführungsform kann das KI-System 1424 ein spezialgefertigtes Rechensystem (z.B. einen Supercomputer oder einen HPC) umfassen, das zur Inferenzierung, Deep-Learning, maschinelles Lernen und/oder andere künstliche Intelligenzaufgaben konfiguriert ist. In mindestens einer Ausführungsform kann das KI-System 1424 (z.B. DGX von NVIDIA) GPU-optimierte Software (z.B. einen Softwarestapel) umfassen, die unter Verwendung mehrerer GPUs 1422, zusätzlich zu CPUs, RAM, Speicher, und/oder anderer Komponenten, Merkmale oder Funktionalität ausgeführt werden kann. In mindestens einer Ausführungsform können ein oder mehrere KI-Systeme 1424 in der Cloud 1426 (z.B. in einem Datenzentrum) zum Durchführen einiger oder aller KI-beruhenden Verarbeitungsaufgaben des Systems 1400 implementiert sein.
  • In mindestens einer Ausführungsform kann die Cloud 1426 eine GPU-beschleunigte Infrastruktur (z.B. NGC von NVIDIA) umfassen, die eine GPU-optimierte Plattform zum Ausführen von Verarbeitungsaufgaben des Systems 1400 bereitstellen kann. In mindestens einer Ausführungsform kann die Cloud ein oder mehrere KI-Systeme 1424 zum Durchführen einer oder mehrerer KI-basierter Aufgaben des Systems 1400 (z.B. als Hardware-Abstraktions- und Skalierungsplattform) umfassen. In mindestens einer Ausführungsform kann die Cloud in das Anwendungs-Orchestrierungssystem 1428 integriert sein, wobei mehrere GPUs wirksam eingesetzt werden, um eine nahtlose Skalierung und einen Lastausgleich zwischen und unter Anwendungen und Diensten 1320 zu ermöglichen. In mindestens einer Ausführungsform kann die Cloud mit der Ausführung mindestens einiger der Dienste 1320 des Systems 1400, einschließlich der Rechendienste 1416, der KI-Dienste 1418 und/oder der Visualisierungsdienste 1420 beauftragt werden, wie hierin beschrieben. In mindestens einer Ausführungsform kann die Cloud eine kleine und große Batch-Inferenz durchführen (z.B. TENSOR RT von NVIDIA ausführen), eine beschleunigte Parallelverarbeitungs-API und -Plattform 1430 (z.B. CUDA von NVIDIA) bereitstellen, das Anwendungs-Orchestrierungssystem 1428 (z.B. KUBERNETES) ausführen, eine Grafik-Rendering-API und -Plattform (z.B. für Raytracing, 2D-Grafiken, 3D-Grafiken und/oder andere Rendering-Techniken, um Kinematographie höherer Qualität zu erzeugen) bereitstellen, und/oder kann eine andere Funktionalität für das System 1400 bereitstellen.
  • 15A stellt ein Datenflussdiagramm für einen Prozess 1500, um ein maschinelles Lernmodell zu trainieren, erneut zu trainieren oder zu aktualisieren, gemäß mindestens einer Ausführungsform dar. In mindestens einer Ausführungsform kann der Prozess 1500 unter Verwendung des Systems 1400 der 14 als nicht einschränkendes Beispiel ausgeführt werden. In mindestens einer Ausführungsform kann der Prozess 1500 wirksam Dienste 1320 und/oder Hardware 1322 des Systems 1400 einsetzen, wie hierin beschrieben. In mindestens einer Ausführungsform können verfeinerte Modelle 1512, die durch den Prozess 1500 erzeugt werden, durch das Einsatzsystem 1306 für eine oder mehrere containerisierte Anwendungen in den Einsatzpipelines 1410 ausgeführt werden.
  • In mindestens einer Ausführungsform kann das Modelltraining 1314 das erneute Trainieren oder Aktualisieren eines Anfangsmodells 1504 (z.B. eines vortrainierten Modells) unter Verwendung neuer Trainingsdaten (z.B. neuer Eingabedaten, wie dem Kundendatensatz 1506, und/oder neuer Ground-Truth-Daten mit verknüpften Eingabedaten) umfassen. In mindestens einer Ausführungsform können zum Neutrainieren oder Aktualisieren des Anfangsmodells 1504 die Ausgabe- oder Verlustschicht(en) des Anfangsmodells 1504 zurückgesetzt oder gelöscht und/oder durch eine aktualisierte oder neue Ausgabe- oder Verlustschicht(en) ersetzt werden. In mindestens einer Ausführungsform kann das Anfangsmodell 1504 vorhergehend fein abgestimmte Parameter (z.B. Gewichte und/oder Verzerrungen) aufweisen, die vom vorherigen Training übriggeblieben sind, so dass das Training oder erneute Training 1314 nicht so lange brauchen oder so viel Verarbeitung erfordern kann wie das Training eines Modells ganz vom Anfang an. In mindestens einer Ausführungsform können während des Modelltrainings 1314, indem Ausgabe- oder Verlustschicht(en) des Anfangsmodells 1504 zurückgesetzt oder ersetzt worden sind, Parameter für einen neuen Datensatz basierend auf Verlustberechnungen aktualisiert und neu abgestimmt werden, die mit der Genauigkeit von Ausgabe- oder Verlustschicht(en) beim Erzeugen von Vorhersagen über einen neuen Kundendatensatz 1506 (z.B. die Bilddaten 1308 der 13) verbunden sind.
  • In mindestens einer Ausführungsform können vortrainierte Modelle 1406 in einem Datenspeicher oder Register (z.B. dem Modellregister 1324 der 13) gespeichert werden. In mindestens einer Ausführungsform können vortrainierte Modelle 1406 mindestens teilweise in einer oder mehreren anderen Einrichtungen als einer Einrichtung, die den Prozess 1500 ausführt, trainiert worden sein. In mindestens einer Ausführungsform können zum Schutz der Privatsphäre und der Rechte von Patienten, Probanden oder Kunden unterschiedlicher Einrichtungen vortrainierte Modelle 1406 unter Verwendung von vor Ort erzeugten Kunden- oder Patientendaten vor Ort trainiert worden sein. In mindestens einer Ausführungsform können die vortrainierten Modelle 1406 unter Verwendung der Cloud 1426 und/oder anderer Hardware 1322 trainiert werden, jedoch dürfen vertrauliche, datengeschützte Patientendaten nicht an irgendwelche Komponenten der Cloud 1426 (oder andere Hardware außer Haus) übertragen werden, durch diese verwendet werden oder zugänglich sein. In mindestens einer Ausführungsform, in der ein vortrainiertes Modell 1406 auf die Verwendung von Patientendaten von mehr als einer Einrichtung trainiert wird, kann das vortrainierte Modell 1406 für jede Einrichtung individuell trainiert worden sein, bevor es an Patienten- oder Kundendaten von einer anderen Einrichtung trainiert wird. In mindestens einer Ausführungsform, in der z.B. Kunden- oder Patientendaten von Datenschutzbedenken befreit worden sind (z.B. durch Verzicht, zu Versuchszwecken usw.), oder in der Kunden- oder Patientendaten in einem öffentlichen Datensatz enthalten sind, können Kunden- oder Patientendaten aus einer beliebigen Anzahl von Einrichtungen verwendet werden, um das vortrainierte Modell 1406 vor Ort und/oder außer Haus wie in einem Datenzentrum oder einer anderen Cloud-Computing-Infrastruktur zu trainieren.
  • In mindestens einer Ausführungsform kann ein Benutzer bei der Auswahl von Anwendungen zur Verwendung in den Einsatzpipelines 1410 auch maschinelle Lernmodelle auswählen, die für spezifische Anwendungen verwendet werden sollen. In mindestens einer Ausführungsform kann einem Benutzer kein Modell zur Verwendung zur Verfügung stehen, so dass ein Benutzer ein vortrainiertes Modell 1406 zur Verwendung in einer Anwendung auswählen kann. In mindestens einer Ausführungsform kann das vortrainierte Modell 1406 nicht zum Erzeugen genauer Ergebnisse am Kundendatensatz 1506 einer Einrichtung eines Benutzers optimiert sein (z.B. basierend auf einer Vielfalt der Patienten, Demografie, Arten der verwendeten medizinischen Bildgebungsvorrichtungen usw.). In mindestens einer Ausführungsform kann vor dem Einsetzen des vortrainierten Modells 1406 in einer Einsatzpipeline 1410 zur Verwendung mit einer oder mehreren Anwendungen das vortrainierte Modell 1406 zur Verwendung in einer jeweiligen Einrichtung aktualisiert, erneut trainiert und/oder feinabgestimmt werden.
  • In mindestens einer Ausführungsform kann ein Benutzer ein vortrainiertes Modell 1406 auswählen, das aktualisiert, erneut trainiert und/oder feinabgestimmt werden soll, und das vortrainierte Modell 1406 kann als Anfangsmodell 1504 für das Trainingssystem 1304 innerhalb des Prozesses 1500 bezeichnet werden. In mindestens einer Ausführungsform kann der Kundendatensatz 1506 (z.B. Bildgebungsdaten, Genomdaten, Sequenzierungsdaten oder andere Datentypen, die durch Vorrichtungen in einer Einrichtung erzeugt werden) verwendet werden, um das Modelltraining 1314 (das ohne Einschränkung ein Transfer Learning umfassen kann) am Anfangsmodell 1504 durchzuführen, um das verfeinerte Modell 1512 zu erzeugen. In mindestens einer Ausführungsform können dem Kundendatensatz 1506 entsprechende Ground-Truth-Daten durch das Trainingssystem 1304 erzeugt werden. In mindestens einer Ausführungsform können Ground-Truth-Daten mindestens teilweise durch Kliniker, Wissenschaftler, Ärzte, praktische Ärzte in einer Einrichtung (z.B. als die gekennzeichneten Klinikdaten 1312 der 13) erzeugt werden.
  • In mindestens einer Ausführungsform kann die KI-unterstützte Annotation 1310 in einigen Beispielen verwendet werden, um Ground-Truth-Daten zu erzeugen. In mindestens einer Ausführungsform kann die KI-unterstützte Annotation 1310 (die z.B. unter Verwendung eines KI-unterstützten Annotations-SDK implementiert wird) wirksam maschinelle Lernmodelle (z.B. neuronale Netzwerke) einsetzen, um vorgeschlagene oder vorhergesagte Ground-Truth-Daten für einen Kundendatensatz zu erzeugen. In mindestens einer Ausführungsform kann der Benutzer 1510 Annotationstools innerhalb einer Benutzerschnittstelle (einer grafischen Benutzerschnittstelle (GUI)) auf der Rechenvorrichtung 1508 verwenden.
  • In mindestens einer Ausführungsform kann der Benutzer 1510 mit einer GUI über die Rechenvorrichtung 1508 interagieren, um (automatische) Annotationen zu editieren oder feinabzustimmen. In mindestens einer Ausführungsform kann ein Polygon-Editiermerkmal verwendet werden, um Vertices eines Polygons zu genaueren oder feinabgestimmten Orten zu bewegen.
  • In mindestens einer Ausführungsform können, sobald der Kundendatensatz 1506 zugehörige Ground-Truth-Daten aufweist, Ground-Truth-Daten (z.B. aus einer KI-unterstützten Annotation, manuellen Kennzeichnung usw.) während des Modelltrainings 1314 verwendet werden, um das verfeinerte Modell 1512 zu erzeugen. In mindestens einer Ausführungsform kann der Kundendatensatz 1506 auf das Anfangsmodell 1504 mit einer beliebigen Häufigkeit angewendet werden, und Ground-Truth-Daten können verwendet werden, um Parameter des Anfangsmodells 1504 zu aktualisieren, bis ein akzeptables Maß an Genauigkeit für das verfeinerte Modell 1512 erreicht ist. In mindestens einer Ausführungsform kann, sobald das verfeinerte Modell 1512 erzeugt worden ist, das verfeinerte Modell 1512 innerhalb einer oder mehrerer Einsatzpipelines 1410 in einer Einrichtung zum Durchführen einer oder mehrerer Verarbeitungsaufgaben in Bezug auf medizinische Bildgebungsdaten eingesetzt werden.
  • In mindestens einer Ausführungsform kann das verfeinerte Modell 1512 zu vortrainierten Modellen 1406 im Modellregister 1324 hochgeladen werden, um durch eine andere Einrichtung ausgewählt zu werden. In mindestens einer Ausführungsform kann dieser Prozess an einer beliebigen Anzahl von Einrichtungen abgeschlossen werden, so dass das verfeinerte Modell 1512 an neuen Datensätzen beliebig häufig weiter verfeinert werden kann, um ein universelleres Modell zu erzeugen.
  • 15B ist eine beispielhafte Darstellung einer Client-Server-Architektur 1532, um Annotationstools mit vortrainierten Annotationsmodellen zu verbessern, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform können KI-unterstützte Annotationstools 1536 basierend auf einer Client-Server-Architektur 1532 instanziiert werden. In mindestens einer Ausführungsform können Annotationstools 1536 in Bildgebungsanwendungen Radiologen unterstützen, beispielsweise Organe und Anomalien zu identifizieren. In mindestens einer Ausführungsform können Bildgebungsanwendungen Software-Tools enthalten, die dem Benutzer 1510 helfen, als nicht einschränkendes Beispiel einige Extrempunkte an einem bestimmten interessierenden Organ in den Rohbildern 1534 (z.B. in einem 3D-MRT- oder CT-Scan) zu identifizieren und automatisch annotierte Ergebnisse für alle 2D-Schichten eines bestimmten Organs zu erhalten. In mindestens einer Ausführungsform können Ergebnisse in einem Datenspeicher als Trainingsdaten 1538 gespeichert und (beispielsweise und ohne Einschränkung) als Ground-Truth-Daten zum Training verwendet werden. Wenn in mindestens einer Ausführungsform die Rechenvorrichtung 1508 Extrempunkte für die KI-unterstützte Annotation 1310 sendet, kann beispielsweise ein Deep-Learning-Modell diese Daten als Eingabe empfangen und Inferenzergebnisse eines segmentierten Organs oder einer Anomalie zurückgeben. In mindestens einer Ausführungsform können vorinstanziierte Annotationstools, wie das KI-unterstützte Annotationswerkzeug 1536B in 15B, verbessert werden, indem API-Aufrufe (z.B. der API-Aufruf 1544) an einen Server wie einen Annotationsassistentenserver 1540 vorgenommen werden, der einen Satz vortrainierter Modelle 1542 enthalten kann, die beispielsweise in einem Annotationsmodellregister gespeichert sind. In mindestens einer Ausführungsform kann ein Annotationsmodellregister vortrainierte Modelle 1542 (z.B. maschinelle Lernmodelle wie Deep-Learning Modelle) speichern, die vortrainiert sind, um eine KI-unterstützte Annotation an einem bestimmten Organ oder einer Anomalie durchzuführen. Diese Modelle können unter Verwendung der Trainingspipelines 1404 weiter aktualisiert werden. In mindestens einer Ausführungsform können vorinstallierte Annotationstools im Laufe der Zeit verbessert werden, wenn neue gekennzeichnete Klinikdaten 1312 hinzugefügt werden.
  • Solche Komponenten können verwendet werden, um vortrainierte Modelle für eine beabsichtigte Art der Inferenz weiter zu trainieren, die durchgeführt werden soll. Diese vortrainierten Modelle können weiter trainiert und ausgedünnt werden, um kleinere Modelle zu erhalten, die eine hohe Genauigkeit für diese beabsichtigte Art der Inferenz bewahren.
  • Andere Variationen liegen im Geist der vorliegenden Offenbarung. Während folglich offenbarte Techniken für verschiedene Modifikationen und alternative Konstruktionen empfänglich sind, sind bestimmte dargestellte Ausführungsformen davon in den Zeichnungen gezeigt und oben im Detail beschrieben worden. Es versteht sich jedoch, dass keine Absicht besteht, die Offenbarung auf eine spezifische Form oder offenbarte Formen zu beschränken, sondern es im Gegenteil die Absicht ist, alle Modifikationen, alternativen Konstruktionen und Äquivalente abzudecken, die in den Geist und Umfang der Offenbarung fallen, wie sie in den beigefügten Ansprüchen definiert ist.
  • Die Verwendung der Begriffe „ein“ und „eine“ und „der, die, das“ und ähnliche Bezüge im Kontext der Beschreibung offenbarter Ausführungsformen (insbesondere im Kontext der folgenden Ansprüche) ist so auszulegen, dass sie sowohl den Singular als auch den Plural abdecken, wenn nicht hierin anders angegeben oder deutlich durch den Kontext widersprochen, und nicht als Definition eines Begriffs. Die Begriffe „umfassend“, „habend“, „einschließlich“ und „enthaltend“ sind als offene Begriffe auszulegen (bedeutet „einschließlich, aber nicht beschränkt auf“), sofern nicht anders angegeben. Der Begriff „verbunden“ ist, wenn er unverändert ist und sich auf physikalische Verbindungen bezieht, so auszulegen, dass er teilweise oder vollständig darin enthalten, daran befestigt oder miteinander verbunden ist, selbst wenn etwas dazwischentritt. Die Nennung von Wertebereichen hierin soll lediglich als ein Kurzverfahren dienen, um sich einzeln auf jeden einzelnen Wert zu beziehen, der in den Bereich fällt, sofern hierin nichts anderes angegeben ist, und jeder einzelne Wert wird in die Beschreibung aufgenommen, als ob er hierin einzeln angegeben wäre. Die Verwendung des Begriffs „Satz“ (z.B. „ein Satz von Elementen“) oder „Teilmenge“, sofern nicht anders angegeben oder durch den Kontext widersprochen, ist als eine nicht leere Sammlung auszulegen, die ein oder mehrere Elemente umfasst. Ferner bezeichnet der Begriff „Teilmenge“ eines entsprechenden Satzes, sofern nicht anders angegeben oder durch den Kontext widersprochen, nicht notwendigerweise eine richtige Teilmenge eines entsprechenden Satzes, sondern eine Teilmenge und ein entsprechender Satz können gleich sein.
  • Konjunktive Ausdrücke, wie Ausdrücke der Form „mindestens eines von A, B und C“ oder „mindestens eines von A, B und C“, sofern nicht ausdrücklich anders angegeben oder ansonsten deutlich durch den Kontext widersprochen, sind ansonsten im Kontext, wie er im Allgemeinen verwendet wird, so zu verstehen, dass sie darstellen, dass ein Element, Begriff usw. entweder A oder B oder C oder eine beliebige nicht leere Teilmenge des Satzes von A und B und C sein können. Beispielsweise beziehen sich in einem veranschaulichenden Beispiel eines Satzes mit drei Elementen die konjunktiven Ausdrücke „mindestens eines von A, B und C“ und „mindestens eines von A, B und C“ auf einen beliebigen der folgenden Sätze : {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}. Folglich sind solche konjunktiven Ausdrücke im Allgemeinen nicht dazu bestimmt vorauszusetzen, dass es bestimmte Ausführungsformen erfordern, dass jeweils mindestens eines von A, mindestens eines von B und mindestens eines von C vorhanden ist. Zusätzlich gibt der Begriff „Vielzahl“, sofern nicht anders angegeben oder durch den Kontext widersprochen, einen Pluralzustand an (z.B. „eine Vielzahl von Elementen“ bezeichnet mehrere Elemente). Eine Vielzahl besteht aus mindestens zwei Elementen, kann aber mehr sein, wenn dies entweder explizit oder durch den Kontext angegeben ist. Ferner bedeutet der Ausdruck „basierend auf“, sofern nicht anders angegeben oder anderweitig aus dem Kontext ersichtlich, „mindestens teilweise basierend auf“ und nicht „ausschließlich basierend auf“.
  • Operationen von hierin beschriebenen Prozessen können in jeder geeigneten Reihenfolge durchgeführt werden, es sei denn, es ist hierin etwas anderes angegeben oder anderweitig deutlich durch den Kontext widersprochen. In mindestens einer Ausführungsform wird ein Prozess wie die hierin beschriebenen Prozesse (oder Variationen und/oder Kombinationen davon) unter Steuerung von einem oder mehreren Computersystemen durchgeführt, die mit ausführbaren Anweisungen konfiguriert sind, ist als Code implementiert (z.B. ausführbare Anweisungen, eine oder mehrere Computerprogramme oder eine oder mehrere Anwendungen), 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, beispielsweise in Form eines Computerprogramms, das mehrere Anweisungen aufweist, die durch einen oder mehrere Prozessoren ausführbar sind. In mindestens einer Ausführungsform ist ein computerlesbaren Speichermedium ein nichtflüchtiges computerlesbares Speichermedium, das flüchtige Signale ausschließt (z.B. eine sich ausbreitende transiente elektrische oder elektromagnetische Übertragung), jedoch eine nichtflüchtige Datenspeicherschaltung (z.B. Puffer, Cache und Warteschlangen) in Transceivern von flüchtigen Signalen umfasst. In mindestens einer Ausführungsform ist der Code (z.B. ausführbarer Code oder Quellcode) auf einem Satz von einem oder mehreren nichtflüchtigen computerlesbaren Speichermedien gespeichert, auf denen ausführbare Anweisungen gespeichert sind (oder einem anderen Speicher, um ausführbare Anweisungen zu speichern), die, wenn sie durch einen oder mehrere Prozessoren eines Computersystems ausgeführt werden (d.h. als Ergebnis davon, dass sie ausgeführt werden), das Computersystem veranlassen, die hierin beschriebenen Operationen auszuführen. Ein Satz nichtflüchtiger computerlesbarer Speichermedien weist in mindestens einer Ausführungsform mehrere nichtflüchtige computerlesbare Speichermedien und ein oder mehrere einzelne nichtflüchtige Speichermedien von mehreren nichtflüchtigen computerlesbaren Speichermedien auf, denen der gesamte Code fehlt, während mehrere nichtflüchtige computerlesbare Speichermedien zusammen den gesamten Code speichern. In mindestens einer Ausführungsform werden ausführbare Anweisungen so ausgeführt, dass unterschiedliche Anweisungen von unterschiedlichen Prozessoren ausgeführt werden - beispielsweise speichert ein nichtflüchtiges computerlesbares Speichermedium Anweisungen, und eine Hauptzentraleinheit („CPU“) führt einige der Anweisungen aus, während eine Grafikverarbeitungseinheit („GPU“) andere Anweisungen ausführt. In mindestens einer Ausführungsform weisen unterschiedliche Komponenten eines Computersystems getrennte Prozessoren auf, und unterschiedliche Prozessoren führen unterschiedliche Teilmengen der Anweisungen aus.
  • Folglich sind in mindestens einer Ausführungsform Computersysteme konfiguriert, einen oder mehrere Dienste zu implementieren, die einzeln oder zusammen Operationen von hierin beschriebenen Prozessen ausführen, und solche Computersysteme sind mit anwendbarer Hardware und/oder Software konfiguriert, die die Ausführung von Operationen ermöglichen. Ferner ist ein Computersystem, das mindestens eine Ausführungsform der vorliegenden Offenbarung implementiert, eine einzelne Vorrichtung, und ist in einer anderen Ausführungsform ein verteiltes Computersystem, das mehrere Vorrichtungen aufweist, die unterschiedlich arbeiten, so dass das verteilte Computersystem die hierin beschriebenen Operationen ausführt, und so dass eine einzelne Vorrichtung nicht alle Operationen ausführt.
  • Die Verwendung beliebiger und aller Beispiele oder exemplarischer Ausdrücke (z.B. „wie“), die hierin bereitgestellt werden, ist lediglich dazu bestimmt, Ausführungsformen der Offenbarung besser zu erläutern, und stellt keine Einschränkung des Umfangs der Offenbarung dar, sofern nicht anders beansprucht. Keine Ausdrücke in der Beschreibung sollten so ausgelegt werden, dass sie irgendein nicht beanspruchtes Element als wesentlich für die Anwendung der Offenbarung angeben.
  • Alle Quellenangaben, einschließlich Veröffentlichungen, Patentanmeldungen und Patente, die hierin zitiert werden, werden hiermit durch Bezugnahme in dem gleichen Umfang aufgenommen, als ob jede Referenz einzeln und spezifisch als durch Bezugnahme eingeschlossen angegeben wäre und hier in ihrer Gesamtheit dargelegt wäre.
  • In der Beschreibung und den Ansprüchen können die Begriffe „gekoppelt“ und „verbunden“ zusammen mit ihren Ableitungen verwendet werden. Es versteht sich, dass diese Ausdrücke nicht als Synonyme füreinander bestimmt sein können. Vielmehr können in bestimmten Beispielen „verbunden“ oder „gekoppelt“ verwendet werden, um anzugeben, dass zwei oder mehr Elemente in direktem oder indirektem physikalischem oder elektrischem Kontakt miteinander stehen. „Gekoppelt“ kann auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander stehen, aber dennoch kooperieren oder miteinander interagieren.
  • Sofern nicht ausdrücklich anders angegeben, kann erkannt werden, dass sich in der gesamten Beschreibung Ausdrücke wie „Verarbeiten“, „Errechnen“, „Berechnen“, „Bestimmen“ oder dergleichen auf eine Tätigkeit und/oder Prozesse eines Computers oder Rechensystems oder einer ähnlichen elektronischen Rechenvorrichtung beziehen, die Daten, die als physikalische, wie elektronische, Größen in den Registern und/oder Speichern des Computersystems dargestellt werden, in andere Daten manipulieren und/oder transformieren, die ähnlich als physikalische Größen in den Speichern, Registern oder anderen derartigen Informationsspeicher-, Übertragungs- oder Anzeigevorrichtungen des Rechensystems dargestellt werden.
  • In ähnlicher Weise kann sich der Ausdruck „Prozessor“ auf eine beliebige Vorrichtung oder Abschnitt einer Vorrichtung beziehen, die elektronische Daten aus Registern und/oder Speichern verarbeitet und diese elektronischen Daten in andere elektronische Daten transformiert, die in Registern und/oder Speichern gespeichert werden können. Als nicht einschränkende Beispiele kann „Prozessor“ eine CPU oder eine GPU sein. Eine „Berechnungsplattform“ kann einen oder mehrere Prozessoren aufweisen. Wie hierin verwendet, können „Software“-Prozesse beispielsweise Software- und/oder Hardware-Einheiten umfassen, die Arbeit im Laufe der Zeit ausführen, wie zum Beispiel Tasks, Threads und intelligente Agenten. Außerdem kann sich jeder Prozess auf mehrere Prozesse beziehen, um Anweisungen nacheinander oder parallel, kontinuierlich oder intermittierend auszuführen. Die Ausdrücke „System“ und „Verfahren“ werden hier austauschbar verwendet, sofern das System ein oder mehrere Verfahren ausführen kann und Verfahren als ein System betrachtet werden können.
  • In dem vorliegenden Dokument kann auf das Erhalten, Erfassen, Empfangen oder Eingeben analoger oder digitaler Daten in einem Subsystem, Computersystem oder eine computerimplementierten Maschine Bezug genommen werden. Das Erhalten, Erfassen, Empfangen oder Eingeben analoger und digitaler Daten kann auf verschiedene Weise ausgeführt werden, wie durch Empfangen von Daten als Parameter eines Funktionsaufrufs oder eines Aufrufs an eine Anwendungsprogrammierschnittstelle. In einigen Implementierungen kann der Prozess des Erhaltens, Erfassens, Empfangens oder Eingebens von analogen oder digitalen Daten durch Übertragen von Daten über eine serielle oder parallele Schnittstelle durchgeführt werden. In einer anderen Implementierung kann der Prozess des Erhaltens, Erfassens, Empfangens oder Eingebens von analogen oder digitalen Daten durch Übertragen von Daten über ein Computernetzwerk von einer Bereitstellungseinheit zu einer Erfassungseinheit durchgeführt werden. Es kann auch auf das Bereitstellen, Ausgeben, Übertragen, Senden oder Präsentieren von analogen oder digitalen Daten Bezug genommen werden. In verschiedenen Beispielen kann der Prozess des Bereitstellens, Ausgebens, Übertragens, Sendens oder Präsentierens von analogen oder digitalen Daten durch Übertragen von Daten als Eingabe- oder Ausgabeparameter eines Funktionsaufrufs, als Parameter einer Anwendungsprogrammierschnittstelle oder als Interprozess-Kommunikationsmechanismus ausgeführt werden.
  • Obwohl die obige Erläuterung beispielhafte Implementierungen beschriebener Techniken darlegt, können andere Architekturen verwendet werden, um die beschriebene Funktionalität zu implementieren, und sind dazu bestimmt, innerhalb des Umfangs dieser Offenbarung zu liegen. Darüber hinaus können, obwohl oben zu Erläuterungszwecken spezifische Verteilungen von Verantwortlichkeiten definiert wurden, verschiedene Funktionen und Verantwortlichkeiten abhängig von den Umständen auf unterschiedliche Weise verteilt und aufgeteilt werden.
  • Obwohl darüber hinaus der Gegenstand in einer Sprache beschrieben wurde, die für strukturelle Merkmale und/oder methodische Handlungen spezifisch ist, versteht es sich, dass der in den beigefügten Ansprüchen beanspruchte Gegenstand nicht notwendigerweise auf die beschriebenen spezifischen Merkmale oder Handlungen beschränkt ist. Vielmehr werden bestimmte Merkmale und Handlungen als exemplarische Formen der Implementierung der Ansprüche offenbart.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 17/029725 [0001]
    • US 62/906054 [0001]

Claims (20)

  1. Computerimplementiertes Verfahren, das aufweist: Bereitstellen eines maschinellen Lernmodells als Reaktion auf eine Anfrage, das vortrainiert ist, um eine Art der Inferenz durchzuführen; Durchführen eines zusätzlichen Trainings des maschinellen Lernmodells unter Verwendung zusätzlicher Trainingsdaten; Ausdünnen des ausgewählten maschinellen Lernmodells nach dem zusätzlichen Training; Bestimmen, dass das ausgewählte maschinelle Lernmodell nach der Ausdünnung ein spezifiziertes Genauigkeitskriterium erfüllt; und Exportieren des trainierten maschinellen Lernmodells zur Verwendung beim Durchführen der Art der Inferenz.
  2. Computerimplementiertes Verfahren nach Anspruch 1, das ferner aufweist: erneutes Trainieren des ausgewählten maschinellen Lernmodells nach der Ausdünnung, um eine Genauigkeit des ausgedünnten maschinellen Lernmodells zu erhöhen.
  3. Computerimplementiertes Verfahren nach Anspruch 1, wobei das zusätzliche Training Trainingsdaten nutzt, um das ausgewählte maschinelle Lernmodell zum Inferenzieren mindestens einer zusätzlichen Klassifizierung zu trainieren, als sie zum Vortrainieren des maschinellen Lernmodells verwendet wurde.
  4. Computerimplementiertes Verfahren nach Anspruch 1, wobei die Art der Inferenz mindestens eines von Klassifizierung, Objekterfassung, Bildsegmentierung oder medizinischer Bilddiagnostik aufweist.
  5. Computerimplementiertes Verfahren nach Anspruch 1, das ferner aufweist: Verschlüsseln des trainierten maschinellen Lernmodells vor dem Exportieren des trainierten maschinellen Lernmodells zur Verwendung beim Durchführen der Art der Inferenz.
  6. Computerimplementiertes Verfahren nach Anspruch 1, das ferner aufweist: Optimieren des trainierten maschinellen Lernmodells für eine spezifische Hardware vor dem Exportieren, wobei die spezifische Hardware eine oder mehrere Grafikverarbeitungseinheiten, eine oder mehrere Zentraleinheiten oder eine Kombination davon aufweist.
  7. Computerimplementiertes Verfahren nach Anspruch 1, das ferner aufweist: Durchführen einer Erweiterung der zusätzlichen Trainingsdaten vor dem Durchführen des zusätzlichen Trainings des maschinellen Lernmodells, wobei die Erweiterung eine Menge der zusätzlichen Trainingsdaten durch Anpassung von mindestens einem der Ausrichtung, der Farbe, der Auflösung oder des Rauschens erhöht.
  8. Computerimplementiertes Verfahren nach Anspruch 1, das ferner aufweist: Bereitstellen eines Toolkits, das mindestens eine gemeinsame Schnittstelle und eine oder mehrere Module zum Durchführen von mindestens einem des Modelltrainings, der Modellausdünnung der Datenerweiterung und des Modellexports aufweist.
  9. Computerimplementiertes Verfahren nach Anspruch 1, wobei das Toolkit in einem Softwarecontainer zur Ausführung auf einer Zielrechenvorrichtung vorgesehen ist.
  10. System zu Durchführung eines Transfer Learning, das aufweist: mindestens einen Prozessor; und einen Speicher, der Anweisungen enthält, die, wenn sie durch den mindestens einen Prozessor ausgeführt werden, das System veranlassen: aus einem Satz vortrainierter Modelle für zwei oder mehrere unterschiedlichen Arten der Inferenz ein maschinelles Lernmodell auszuwählen, das für eine Art der Inferenz vortrainiert ist; ein zusätzliches Training des ausgewählten maschinellen Lernmodells unter Verwendung zusätzlicher Trainingsdaten für die Art der Inferenz durchzuführen; das ausgewählte maschinelle Lernmodell nach dem zusätzlichen Training auszudünnen; das ausgedünnte maschinelle Lernmodell unter Verwendung der zusätzlichen Trainingsdaten erneut zu trainieren; zu bestimmen, dass das ausgedünnte maschinelle Lernmodell mindestens ein Leistungskriterium erfüllt; und das ausgedünnte maschinelle Lernmodell für die Art der Inferenz bereitzustellen.
  11. System nach Anspruch 10, wobei das zusätzliche Training Trainingsdaten für mindestens eine zusätzliche Klassifizierung für die Art der Inferenz nutzt als sie zum Vortrainieren des ausgewählten maschinellen Lernmodells verwendet wurde.
  12. System nach Anspruch 10, wobei die Anweisungen, wenn sie ausgeführt werden, ferner das System veranlassen: das ausgewählte maschinelle Lernmodell iterativ auszudünnen und erneut zu trainieren, solange das ausgedünnte Modell weiterhin das mindestens eine Leistungskriterium erfüllt.
  13. System nach Anspruch 10, wobei die Anweisungen, wenn sie ausgeführt werden, ferner das System veranlassen: die zusätzlichen Trainingsdaten vor dem Durchführen des zusätzlichen Trainings zu erweitern.
  14. System nach Anspruch 10, wobei die Anweisungen, wenn sie ausgeführt werden, ferner das System veranlassen: die Leistung von zwei oder mehreren des Satzes der vortrainierten Modelle am mindestens einer Teilmenge der zusätzlichen Trainingsdaten vor dem Auswählen des maschinellen Lernmodells zu bewerten.
  15. System nach Anspruch 10, wobei die Anweisungen, wenn sie ausgeführt werden, ferner das System veranlassen: ein Toolkit bereitzustellen, das mindestens eine gemeinsame Schnittstelle und eine oder mehrere Module zum Durchführen von mindestens einem des Modelltrainings, der Modellausdünnung, der Datenerweiterung und des Modellexports aufweist, wobei das Toolkit in einem Softwarecontainer zur Ausführung auf einer Zielrechenvorrichtung vorgesehen ist.
  16. Verfahren, das aufweist: Empfangen durch eine Schnittstelle einer Anfrage nach einem vortrainierten Modell, um mindestens eine Art der Inferenz durchzuführen; Bereitstellen mindestens eines vortrainierten Modells als Reaktion auf die Anfrage; und Bereitstellen zusätzlicher Trainingsdaten, um ein zusätzliches Training des mindestens einen vortrainierten Modells unter Verwendung der zusätzlichne Trainingsdaten für die mindestens eine Art der Inferenz zu bewirken.
  17. Verfahren nach Anspruch 16, das ferner aufweist: Ausdünnen jedes maschinellen Lernmodells, nachdem das zusätzliche Training durchgeführt worden ist; und erneutes Trainieren der ausgedünnten maschinellen Lernmodelle unter Verwendung der zusätzliche Trainingsdaten.
  18. Verfahren nach Anspruch 16, das ferner aufweist: Bereitstellen eines Toolkits, das mindestens eine gemeinsame Schnittstelle und eine oder mehrere Module zum Durchführen von mindestens einem des Modelltrainings, der Modellausdünnung der Datenerweiterung und des Modellexports aufweist, wobei das Toolkit in einem Softwarecontainer zur Ausführung auf einer Zielrechenvorrichtung vorgesehen ist.
  19. Verfahren nach Anspruch 16, das ferner aufweist: Auswählen des mindestens einen vortrainierten Modells aus einem Satz vortrainierter Modelle mindestens teilweise basierend auf der mindestens einen Art der Inferenz, die durchgeführt werden soll.
  20. Verfahren nach Anspruch 16, das ferner aufweist: Durchführen einer Erweiterung der zusätzlichen Trainingsdaten vor dem Durchführen des zusätzlichen Trainings des maschinellen Lernmodells, wobei die Erweiterung eine Menge zusätzlicher Trainingsdaten durch Anpassung von mindestens einem der Ausrichtung, der Farbe, der Auflösung oder des Rauschens erhöht.
DE112020003547.6T 2019-09-25 2020-09-24 Transfer Learning für neuronale Netzwerke Pending DE112020003547T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962906054P 2019-09-25 2019-09-25
US62/906,054 2019-09-25
US17/029,725 2020-09-23
US17/029,725 US20210089921A1 (en) 2019-09-25 2020-09-23 Transfer learning for neural networks
PCT/US2020/052464 WO2021061962A1 (en) 2019-09-25 2020-09-24 Transfer learning for neural networks

Publications (1)

Publication Number Publication Date
DE112020003547T5 true DE112020003547T5 (de) 2022-04-14

Family

ID=74880981

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020003547.6T Pending DE112020003547T5 (de) 2019-09-25 2020-09-24 Transfer Learning für neuronale Netzwerke

Country Status (4)

Country Link
US (1) US20210089921A1 (de)
CN (1) CN114365156A (de)
DE (1) DE112020003547T5 (de)
WO (1) WO2021061962A1 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11657921B2 (en) 2019-09-18 2023-05-23 Tempus Labs, Inc. Artificial intelligence based cardiac event predictor systems and methods
US11663494B2 (en) 2019-12-05 2023-05-30 Uchicago Argonne, Llc Systems and methods for hierarchical multi-objective optimization
US11676161B2 (en) * 2020-02-25 2023-06-13 Nec Corporation Combined light and heavy models for image filtering
US11651839B2 (en) 2020-03-02 2023-05-16 Uchicago Argonne, Llc Systems and methods for generating phase diagrams for metastable material states
US11710038B2 (en) * 2020-04-13 2023-07-25 Uchicago Argonne, Llc Systems and methods for active learning from sparse training data
US12061991B2 (en) * 2020-09-23 2024-08-13 International Business Machines Corporation Transfer learning with machine learning systems
US20220147669A1 (en) * 2020-11-07 2022-05-12 International Business Machines Corporation Scalable Modeling for Large Collections of Time Series
WO2022205685A1 (zh) * 2021-03-29 2022-10-06 泉州装备制造研究所 一种基于轻量化网络的交通标志识别方法
US20220382723A1 (en) * 2021-05-26 2022-12-01 Vmware, Inc. System and method for deduplicating data using a machine learning model trained based on transfer learning
US12073258B2 (en) * 2021-05-28 2024-08-27 Salesforce, Inc. Configuration map based sharding for containers in a machine learning serving infrastructure
WO2022251750A1 (en) 2021-05-28 2022-12-01 Tempus Labs, Inc. Artificial intelligence based cardiac event predictor systems and methods
US20240242349A1 (en) * 2021-05-31 2024-07-18 B-Rayz Ag Method for improving the performance of medical image analysis by an artificial intelligence and a related system
US20240338571A1 (en) * 2021-07-12 2024-10-10 Eaton Intelligent Power Limited Transfer learning method for a machine learning system
US11887314B2 (en) * 2021-11-08 2024-01-30 SmartThings, Inc. Compressed domain motion detection
CN114116051B (zh) * 2021-11-17 2024-03-22 招联消费金融股份有限公司 基于神经网络模型的处理方法、装置、设备和存储介质
WO2023114017A1 (en) * 2021-12-13 2023-06-22 Intel Corporation Network resource model based solutions for ai-ml model training
CN114595833A (zh) * 2022-03-09 2022-06-07 北京百度网讯科技有限公司 模型处理方法、装置、电子设备以及存储介质
WO2024012654A1 (en) * 2022-07-11 2024-01-18 Huawei Cloud Computing Technologies Co., Ltd. Performant collaborative transfer learning between cloud storage and cloud compute
EP4418166A1 (de) * 2023-02-17 2024-08-21 BAE SYSTEMS plc Energieeffiziente maschinenlernmodelle
WO2024170865A1 (en) * 2023-02-17 2024-08-22 Bae Systems Plc Energy efficient machine learning models

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356168B2 (en) * 2004-04-23 2008-04-08 Hitachi, Ltd. Biometric verification system and method utilizing a data classifier and fusion model
US8521664B1 (en) * 2010-05-14 2013-08-27 Google Inc. Predictive analytical model matching
WO2015188275A1 (en) * 2014-06-10 2015-12-17 Sightline Innovation Inc. System and method for network based application development and implementation
US10878320B2 (en) * 2015-07-22 2020-12-29 Qualcomm Incorporated Transfer learning in neural networks
US11315018B2 (en) * 2016-10-21 2022-04-26 Nvidia Corporation Systems and methods for pruning neural networks for resource efficient inference
US10157045B2 (en) * 2016-11-17 2018-12-18 The Mathworks, Inc. Systems and methods for automatically generating code for deep learning systems
WO2018217635A1 (en) * 2017-05-20 2018-11-29 Google Llc Application development platform and software development kits that provide comprehensive machine learning services
US11200495B2 (en) * 2017-09-08 2021-12-14 Vivante Corporation Pruning and retraining method for a convolution neural network
US10831519B2 (en) * 2017-11-22 2020-11-10 Amazon Technologies, Inc. Packaging and deploying algorithms for flexible machine learning
CA3033014A1 (en) * 2018-02-07 2019-08-07 Royal Bank Of Canada Robust pruned neural networks via adversarial training

Also Published As

Publication number Publication date
WO2021061962A1 (en) 2021-04-01
CN114365156A (zh) 2022-04-15
US20210089921A1 (en) 2021-03-25

Similar Documents

Publication Publication Date Title
DE112020003547T5 (de) Transfer Learning für neuronale Netzwerke
US11995883B2 (en) Scene graph generation for unlabeled data
DE102021128292A1 (de) Skalierbare semantische bildsuche mit deep- template- matching
DE112021001481T5 (de) Neuronales rendern für inverse grafikgenerierung
DE112020001253T5 (de) Techniken zum Trainieren eines neuronalen Netzes unter Verwendung von Transformationen
DE102021125231A1 (de) Unüberwachte domainanpassung mit neuronalen netzen
DE102022101664A1 (de) Techniken des maschinellen lernens zur verbesserung von anwendungen für videokonferenzen
DE112020002425T5 (de) Bewegungsvorhersage unter verwendung eines oder mehrerer neuronaler netzwerke
DE102021131289A1 (de) Echtzeit-rendering mit impliziten formen
DE102022112157A1 (de) Echtzeit-verbesserung für streaming-inhalt
DE102021132529A1 (de) Adaptive zeitliche bildfilterung zum rendern einer realistischen beleuchtung
DE102023113190A1 (de) Identifizieren von Applikationspuffern zum Nachbearbeiten und Wiederverwenden in sekundären Applikationen
DE102022128165A1 (de) Datenpfadschaltungsentwurf unter verwendung von reinforcement learning
DE102022108108A1 (de) Zwischenspeicherung von kompilierten shader-programmen in einer cloud-computing-umgebung
DE102023103679A1 (de) Texturübertragung und -synthese unter verwendung ausgerichteter karten in bildgenerierungssystemen und -anwendungen
DE102023112256A1 (de) Neuronale Netze zur Anzeige von Datenabhängigkeiten
DE102023124263A1 (de) Techniken zur Videoerzeugung
DE102023124835A1 (de) Anwendungen zur Verarbeitung natürlicher Sprache unter Verwenden Großer Sprachmodelle
DE102023123461A1 (de) Sprachgesteuerte animation unter verwendung eines oder mehrerer neuronaler netze
DE102023124264A1 (de) Eingabeaufforderungsabstimmung in einem neuronalen Netz
DE102023125188A1 (de) Überblenden von videorahmen
DE102023116064A1 (de) Bildbeleuchtung auf der basis neuronaler netzwerke
DE102023121883A1 (de) Erzeugung texturierter netze unter verwendung von einem oder mehren neuronalen netzwerken
DE102023114089A1 (de) Vorhersage von trajektorien eines neuronalen netzes
US20240169686A1 (en) Directed inferencing using input data transformations

Legal Events

Date Code Title Description
R012 Request for examination validly filed