DE112020005323T5 - Elastische ausführung von machine-learning-arbeitslasten unter verwendung einer anwendungsbasierten profilierung - Google Patents

Elastische ausführung von machine-learning-arbeitslasten unter verwendung einer anwendungsbasierten profilierung Download PDF

Info

Publication number
DE112020005323T5
DE112020005323T5 DE112020005323.7T DE112020005323T DE112020005323T5 DE 112020005323 T5 DE112020005323 T5 DE 112020005323T5 DE 112020005323 T DE112020005323 T DE 112020005323T DE 112020005323 T5 DE112020005323 T5 DE 112020005323T5
Authority
DE
Germany
Prior art keywords
execution
application
resource
profile
computer
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
DE112020005323.7T
Other languages
English (en)
Inventor
Liana Fong
Seetharami Seelam
Ganesh Venkataraman
Debashish Saha
Punleuk Oum
Archit Verma
Prabhat Maddikunta Reddy
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112020005323T5 publication Critical patent/DE112020005323T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/482Application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Electrically Operated Instructional Devices (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Ausführungsformen betreffen ein System, ein Programmprodukt und ein Verfahren zur Unterstützung einer elastischen Ausführung einer Machine-Learning-(ML-)Arbeitslast unter Verwendung einer anwendungsbasierten Profilierung. Ein gemeinsames Profil wird erzeugt, das sowohl aus ML-Anwendungsausführungs- als auch Ressourcennutzungsdaten besteht. Ein oder mehrere Merkmal(e) und eine oder mehrere Signatur(en) aus dem gemeinsamen Profil werden ermittelt und ein ML-Ausführungsmodell für eine ML-Anwendungsausführung und Ressourcennutzung wird erstellt. Das ML-Ausführungsmodell nutzt das/die Merkmal(e) und Signatur(en) und wird angewandt, um eine oder mehrere Anweisungen für eine nachfolgende Anwendungsausführung bereitzustellen. Die Anwendung des ML-Ausführungsmodells unterstützt die ML-Ausführung und ermöglicht ihr, eine oder mehrere Ressourcen von einer Ressourcenverwaltungskomponente elastisch zuzuordnen und anzufordern, wobei die elastische Zuordnung eine Anwendungsausführung unterstützt.

Description

  • HINTERGRUND
  • Die vorliegenden Ausführungsformen betreffen ein Trainieren eines Machine-Learning-Modells für eine Profilausführung von Machine-Learning-Arbeitslasten. Genauer gesagt, die Ausführungsformen betreffen ein Erzeugen eines gemeinsamen Profils einer Anwendungsausführung und Ressourcennutzung sowie ein Verwenden eines in dem trainierten Machine-Learning-Modell gekapselten Ausführungsmodells, um mit einem Ressourcenverwaltungssystem zu interagieren, um eine Ausführung einer Machine-Learning-Anwendung und eine entsprechende Performance zu unterstützen.
  • Künstliche Intelligenz (Kl) betrifft das Gebiet der Informatik, das auf Computer und das auf Menschen bezogene Verhalten von Computern ausgerichtet ist. KI bezieht sich auf die Intelligenz, wenn Maschinen auf der Grundlage von Informationen Entscheidungen treffen können, was die Erfolgsaussicht bei einem bestimmten Thema maximiert. Genauer gesagt, KI kann aus einem Datensatz lernen, um Probleme zu lösen und entsprechende Empfehlungen bereitzustellen. Zum Beispiel verarbeiten auf dem Gebiet der künstlich intelligenten Computersysteme natürlichsprachliche Systeme (wie beispielsweise das künstlich intelligente Computersystem IBM Watson® oder andere natürlichsprachliche Fragenbeantwortungssysteme) natürliche Sprache auf der Grundlage von durch das System erworbenem Wissen. Um natürliche Sprache zu verarbeiten, kann das System mit Daten trainiert werden, die aus Wissenskorpora abgeleitet werden, jedoch kann das resultierende Ergebnis aus einer Vielfalt an Gründen unterschiedliche Genauigkeitsgrade haben.
  • Maschinelles Lernen (ML, Machine Learning), bei dem es sich um eine Teilgruppe der Künstlichen Intelligenz (Kl) handelt, verwendet Algorithmen, um aus Daten zu lernen und auf der Grundlage dieser Daten Prognosen zu erstellen. ML ist die Anwendung von KI durch die Erstellung von Modellen, darunter neuronalen Netzen, die ein Lernverhalten nachweisen können, indem nicht explizit programmierte Aufgaben durchgeführt werden. ML-Arbeitslasten erfordern große Datensätze, einen schnellen und parallelen Zugriff auf die Daten und Algorithmen zum Trainieren, um Erkenntnisse zu unterstützen. Zu Beispielen für Hardware zur Unterstützung von ML-Arbeitslasten gehören, ohne darauf beschränkt zu sein, Beschleuniger wie beispielsweise Grafikverarbeitungseinheiten (GPUs, graphics processing units), Infrastrukturen von zentralen Verarbeitungseinheiten (CPUs, central processing units) und Speicherlösungen. Ressourcennutzungscharakteristiken für ML-Arbeitslasten verfügen über eine Ressourcenprofilierung, die üblicherweise für Debugging- und Ausführungsablaufsteuerungsstudien erfasst wird. Die Ressourcenprofilierungserfassungen verwenden aktuell ein Timing Framework, das unabhängig von der Ausführung einer Anwendung oder Arbeitslast ist. Eine gemeinsame Profilierung von Arbeitslastausführung und Ressourcennutzung unter Verwendung desselben Timing Frameworks für eine verbesserte Korrelation von Arbeitslastausführung und Ressourcennutzung hätte Vorteile. Überdies würde die gemeinsame Profilierung eine differenzierte Korrelation wie beispielsweise auf Aufgabenebenen oder auf Iterationsebenen mit unterschiedlichen Sätzen von ML-Parametern ermöglichen. Folglich kann eine gemeinsame Profilierung mit dem entsprechenden Volumen an Ressourcen zur Unterstützung von ML-Arbeitslasten ein Weg zur Unterstützung einer wirksamen und effizienten Ressourcennutzung und Arbeitslastausführung sein.
  • KU RZDARSTELLU NG
  • Die Ausführungsformen umfassen ein System, ein Computerprogrammprodukt und ein Verfahren zur Nutzung einer Plattform für künstliche Intelligenz, um eine effiziente und wirksame ML-Anwendungsausführung mit einer Zuordnung von Datenverarbeitungsressourcen zu verbinden.
  • In einer einzelnen Ausführungsform wird ein System zur Verwendung mit einer Plattform für künstliche Intelligenz (KI) bereitgestellt, um einen ML-Anwendungsausführungsmodellierer zu trainieren und zu verwalten, um Machine-Learning-Arbeitslasten unter Verwendung einer anwendungsbasierten Profilierung elastisch auszuführen. Wie gezeigt ist, ist das System mit einer Verarbeitungseinheit, z.B. einem Prozessor, ausgestattet, der mit einem Arbeitsspeicher betriebsfähig verbunden ist, und die KI-Plattform steht mit der Verarbeitungseinheit in Verbindung. Die Kl-Plattform ist mit Tools in Form eines Profilmanagers, eines ML-Managers und eines Directors eingebettet. Der Profilmanager dient dazu, ein gemeinsames Profil zu erzeugen, das sowohl aus ML-Anwendungsausführungs- als auch Ressourcennutzungsdaten besteht. Der ML-Manager dient dazu, ein oder mehrere Merkmale und Signaturen aus dem gemeinsamen Profil zu ermitteln und ein ML-Ausführungsmodell für eine ML-Anwendungsausführung und Ressourcennutzung zu erstellen. Das ML-Ausführungsmodell nutzt das/die Merkmal(e) und die Signatur(en). Der Director dient dazu, das ML-Ausführungsmodell anzuwenden und eine oder mehrere Anweisungen für eine nachfolgende Anwendungsausführung bereitzustellen. Die Anwendung durch den Director unterstützt die ML-Ausführung und ermöglicht ihr, eine oder mehrere Ressourcen von einer Ressourcenverwaltungskomponente elastisch zuzuordnen und anzufordern, wobei die elastische Zuordnung eine Anwendungsausführung unterstützt.
  • In einer weiteren Ausführungsform wird ein Computerprogrammprodukt bereitgestellt, um eine elastische Ausführung einer ML-Arbeitslast unter Verwendung einer anwendungsbasierten Profilierung zu unterstützen. Das Computerprogrammprodukt umfasst ein durch einen Computer lesbares Speichermedium mit damit verkörpertem Programmcode, wobei der Programmcode durch einen Prozessor ausführbar ist, um einen ML-Anwendungsausführungsmodellierer zu trainieren und zu verwalten, um ML-Arbeitslasten unter Verwendung einer anwendungsbasierten Profilierung elastisch auszuführen. Programmcode wird bereitgestellt, um ein gemeinsames Profil zu erzeugen, das sowohl aus ML-Anwendungsausführungs- als auch Ressourcennutzungsdaten besteht. Programmcode wird bereitgestellt, um ein oder mehrere Merkmale und Signaturen aus dem gemeinsamen Profil zu ermitteln und ein ML-Ausführungsmodell für eine ML-Anwendungsausführung und Ressourcennutzung zu erstellen. Das ML-Ausführungsmodell nutzt das/die Merkmal(e) und die Signatur(en). Programmcode wendet das ML-Ausführungsmodell an und stellt eine oder mehrere Anweisungen für eine nachfolgende Anwendungsausführung bereit. Eine Anwendung des Programmcodes unterstützt die ML-Ausführung und ermöglicht ihr, eine oder mehrere Ressourcen von einer Ressourcenverwaltungskomponente elastisch zuzuordnen und anzufordern, wobei die elastische Zuordnung eine Anwendungsausführung unterstützt.
  • In noch einer weiteren Ausführungsform wird ein Verfahren zur Unterstützung einer elastischen Ausführung einer ML-Arbeitslast unter Verwendung einer anwendungsbasierten Profilierung bereitgestellt, das ein Trainieren und Verwalten eines ML-Ausführungsmodells umfasst, um ML-Arbeitslasten unter Verwendung einer anwendungsbasierten Profilierung elastisch auszuführen. Ein gemeinsames Profil wird erzeugt, das sowohl aus ML-Anwendungsausführungs- als auch Ressourcennutzungsdaten besteht. Ein oder mehrere Merkmale und eine oder mehrere Signaturen aus dem gemeinsamen Profil werden ermittelt und ein ML-Ausführungsmodell für eine ML-Anwendungsausführung und Ressourcennutzung wird erstellt. Das ML-Ausführungsmodell nutzt das/die Merkmal(e) und die Signatur(en). Das ML-Ausführungsmodell wird angewandt und stellt eine oder mehrere Anweisungen für eine nachfolgende Anwendungsausführung bereit. Die Anwendung des ML-Ausführungsmodells unterstützt die ML-Ausführung und ermöglicht ihr, eine oder mehrere Ressourcen von einer Ressourcenverwaltungskomponente elastisch zuzuordnen und anzufordern, wobei die elastische Zuordnung eine Anwendungsausführung unterstützt.
  • Gemäß einem Aspekt wird ein Computersystem bereitgestellt, das aufweist: eine mit dem Arbeitsspeicher betriebsfähig verbundene Verarbeitungseinheit; eine mit der Verarbeitungseinheit in Verbindung stehende Plattform für künstliche Intelligenz (Kl), die über Tools verfügt, um eine oder mehrere Machine-Learning-Arbeitslasten unter Verwendung einer anwendungsbasierten Profilierung elastisch auszuführen, wobei die Tools aufweisen: einen Profilmanager, um ein gemeinsames Profil zu erzeugen, das aus einer Machine-Learning-(ML-)Anwendungsausführung und Ressourcennutzung besteht; einen Machine-Learning-Manager, um ein oder mehrere Merkmale und eine oder mehrere Signaturen aus dem erzeugten gemeinsamen Profil zu ermitteln und ein ML-Ausführungsmodell für eine ML-Anwendungsausführungsperformance und Ressourcennutzung zu erstellen, wobei das ML-Ausführungsmodell das/die ermittelte(n) eine oder mehreren Merkmal(e) und die ermittelte(n) eine oder mehreren Signatur(en) nutzen soll; sowie einen Director, um das ML-Ausführungsmodell anzuwenden und eine oder mehrere Anweisungen für eine nachfolgende Anwendungsausführung bereitzustellen, die das ML-Ausführungsmodell einschließt, um eine oder mehrere Ressourcen von einer Ressourcenverwaltungskomponente elastisch zuzuordnen und anzufordern, um eine Anwendungsausführung zu unterstützen.
  • Gemäß einem weiteren Aspekt wird ein Computerprogrammprodukt bereitgestellt, um eine elastische Ausführung einer Machine-Learning-Arbeitslast unter Verwendung einer anwendungsbasierten Profilierung zu unterstützen, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit damit verkörpertem Programmcode aufweist, wobei der Programmcode durch einen Prozessor ausführbar ist, um: ein gemeinsames Profil zu erzeugen, das aus einer Machine-Learning-(ML-)Anwendungsausführung und Ressourcennutzung besteht; ein oder mehrere Merkmale und eine oder mehrere Signaturen aus dem erzeugten gemeinsamen Profil zu ermitteln und ein ML-Ausführungsmodell für eine ML-Anwendungsausführungsperformance und Ressourcennutzung zu erstellen, wobei das ML-Ausführungsmodell das/die ermittelte(n) eine oder mehreren Merkmal(e) und die ermittelte(n) eine oder mehreren Signatur(en) nutzen soll; und um das ML-Ausführungsmodell anzuwenden und eine oder mehrere Anweisungen für eine nachfolgende Anwendungsausführung bereitzustellen, die ein elastisches Zuordnen und Anfordern von einer oder mehreren Ressourcen von einer Ressourcenverwaltungskomponente umfasst, um eine Anwendungsausführung zu unterstützen.
  • Gemäß einem weiteren Aspekt wird ein Verfahren bereitgestellt, das umfasst: Erzeugen eines gemeinsamen Profils, das aus einer Machine-Learning-(ML-)Anwendungsausführung und Ressourcennutzung besteht; Ermitteln von einem oder mehreren Merkmalen und einer oder mehreren Signaturen aus dem erzeugten gemeinsamen Profil und Erstellen eines ML-Ausführungsmodells für eine ML-Anwendungsausführungsperformance und Ressourcennutzung, wobei das ML-Ausführungsmodell das/die ermittelte(n) eine oder mehreren Merkmal(e) und die ermittelte(n) eine oder mehreren Signatur(en) nutzt; Anwenden des ML-Ausführungsmodells und Bereitstellen einer Anweisung für eine nachfolgende Anwendungsausführung, die ein elastisches Zuordnen und Anfordern von einer oder mehreren Ressourcen von einer Ressourcenverwaltungskomponente umfasst, um eine Anwendungsausführung zu unterstützen.
  • Diese und andere Merkmale und Vorteile gehen aus der folgenden ausführlichen Beschreibung der derzeit bevorzugten Ausführungsform(en) in Zusammenschau mit den beiliegenden Zeichnungen hervor.
  • Figurenliste
  • Bevorzugte Ausführungsformen der vorliegenden Erfindung werden nun lediglich beispielhaft und unter Bezugnahme auf die folgenden Zeichnungen beschrieben:
    • 1 stellt gemäß einer bevorzugten Ausführungsform ein Blockschaubild dar, um einen Überblick über ein gemeinsames ML-Profil zu geben, um eine effiziente Ausführung von ML-Anwendungen mit einer wirksamen Nutzung von Ressourcen zu unterstützen.
    • 2 ist gemäß einer bevorzugten Ausführungsform eine schematische Darstellung eines Computersystems mit einer Plattform für künstliche Intelligenz, um eine effiziente Ausführung eines ML-Programms und eine wirksame Zuordnung und Nutzung von Datenverarbeitungsressourcen zu unterstützen.
    • 3 stellt gemäß einer bevorzugten Ausführungsform ein Blockschaubild dar, das die Plattform für künstliche Intelligenz und entsprechende Tools, wie in 2 gezeigt und beschrieben, sowie ihre zugehörigen Anwendungsprogrammierschnittstellen veranschaulicht.
    • 4 stellt gemäß einer bevorzugten Ausführungsform einen Ablaufplan dar, um einen Prozess für eine ML-Modellierung und Elastizität einer Zuordnung von Datenverarbeitungsressourcen zu veranschaulichen.
    • 5 stellt gemäß einer bevorzugten Ausführungsform ein Blockschaubild dar, das ein Beispiel eines Computersystems/Servers eines cloudbasierten Unterstützungssystems veranschaulicht, um das System und die Prozesse, die vorstehend in Bezug auf die 1 bis 4 beschrieben wurden, auszuführen.
    • 6 stellt gemäß einer bevorzugten Ausführungsform ein Blockschaubild dar, das eine Cloud-Computing-Umgebung veranschaulicht.
    • 7 stellt gemäß einer bevorzugten Ausführungsform ein Blockschaubild dar, das einen durch die Cloud-Computing-Umgebung bereitgestellten Satz von funktionalen Abstraktionsmodellschichten veranschaulicht.
  • In den Zeichnungen gezeigte Merkmale sind nur für einige und nicht für alle Ausführungsformen als veranschaulichend zu betrachten, sofern nicht ausdrücklich anders angegeben.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Es dürfte ohne Weiteres klar sein, dass die Komponenten der vorliegenden Ausführungsformen, die in den Figuren hierin allgemein beschrieben und veranschaulicht sind, in einer großen Vielfalt von unterschiedlichen Konfigurationen angeordnet und konzipiert werden können. Die folgende ausführliche Beschreibung der Ausführungsformen der Vorrichtung, des Systems, des Verfahrens und des Computerprogrammprodukts der vorliegenden Ausführungsformen, die in den Figuren dargestellt sind, soll folglich den Umfang der Ausführungsformen, wie beansprucht, nicht einschränken, vielmehr steht sie lediglich repräsentativ für ausgewählte Ausführungsformen.
  • Der Verweis in dieser gesamten Spezifikation auf „eine ausgewählte Ausführungsform“, „eine einzelne Ausführungsform“ oder „eine Ausführungsform“ bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, das/die in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer einzelnen Ausführungsform enthalten ist. Folglich beziehen sich Vorkommen der Formulierungen „eine ausgewählte Ausführungsform“, „in einer einzelnen Ausführungsform“ oder „in einer Ausführungsform“ an verschiedenen Stellen in dieser gesamten Spezifikation nicht unbedingt auf dieselbe Ausführungsform.
  • Die veranschaulichten Ausführungsformen lassen sich am besten durch Bezugnahme auf die Zeichnungen verstehen, in denen gleiche Teile überall durch gleiche Bezugszahlen bezeichnet sind. Die folgende Beschreibung hat lediglich Beispielcharakter und veranschaulicht einfach bestimmte ausgewählte Ausführungsformen von Einheiten, Systemen und Prozessen, die den hierin beanspruchten Ausführungsformen entsprechen.
  • Machine Learning folgt einem Prozess des Aufbereitens von Daten, des Trainierens eines Algorithmus und des Erzeugens eines Machine-Learning-Modells und des anschließenden Treffens und Verfeinerns von Vorhersagen. Machine-Learning-Modelle fallen im Allgemeinen unter eine der folgenden Grundkategorien: überwachtes Machine Learning, unüberwachtes Machine Learning, Verstärkungs-Machine-Learning und Deep Learning. Deep Learning nutzt zum Beispiel neuronale Netze als Modelle für die Art und Weise, in der das menschliche Gehirn Informationen verarbeitet. Grundeinheiten der neuronalen Netze werden als Neuronen bezeichnet, die in der Regel in Schichten organisiert sind. Das neuronale Netz funktioniert, indem eine große Anzahl miteinander verbundener Verarbeitungseinheiten simuliert wird, die abstrakten Versionen von Neuronen ähnlich sind. Für gewöhnlich gibt es drei Teile in einem neuronalen Netz, darunter eine Eingabeschicht mit Einheiten, die Eingabefelder darstellen, eine oder mehrere verborgene Schichten und eine Ausgabeschicht mit einer Einheit bzw. Einheiten, die (ein) Zielfeld(er) darstellen. Die Einheiten sind mit verschiedenen Verbindungsstärken bzw. Gewichtungen verbunden. Eingabedaten werden der ersten Schicht präsentiert und Werte von jedem Neuron an jedes Neuron in der nächsten Schicht weitergegeben. Schließlich geben die Ausgabeschichten ein Ergebnis aus. Komplexe neuronale Deep-Learning-Netze sind so ausgeführt, dass sie nachbilden, wie das menschliche Gehirn funktioniert, so dass Computer trainiert werden können, um schlecht definierte Abstraktionen und Probleme zu unterstützen. Neuronale Netze und Deep Learning werden oftmals in Bilderkennungs-, Sprach- und Computer-Vision-Anwendungen verwendet. Machine Learning kann auf der Grundlage von Daten lernen und Prognosen erstellen. Machine Learning kann die gemeinsamen Profilierungsdaten auch verwenden, um Einblicke in eine wirksame Zuordnung von Ressourcen in einem aufgabenspezifischen Intervall zu bekommen, um Einfluss auf eine effiziente Arbeitslastausführung zu nehmen.
  • Es sei darauf hingewiesen, dass ML-Modelle umfangreiche Hardwareanforderungen haben, um die Verarbeitungserfordernisse der Modelle ordnungsgemäß zu unterstützen. Zu Beispielen für solche Anforderungen an Hardwareressourcen gehören, ohne darauf beschränkt zu sein, RAM, Plattenspeicherplatz, GPUs und CPUs. Eine Verwaltung der Ressourcen kann zugeordnet werden, um eine gemeinsame Nutzung der Ressourcen unter einer Mehrzahl von ML-Modellen zu unterstützen. Wie hierin gezeigt und beschrieben und in den Zeichnungen veranschaulicht ist, werden ML-Arbeitslastinformationen mit Ressourceninformationen korreliert, um die Ressourcen zur Unterstützung einer Anwendungsausführung ordnungsgemäß zuzuordnen. Ressourcennutzungsdaten über ML-Routinen werden überwacht und während der Ausführung erfasst, wobei die Ressourcennutzungsdaten dann für eine Vorhersage und Zuordnung von Ressourcen für nachfolgende ML-Arbeitslasten verwendet werden. Folglich werden ML-Techniken zur Ressourcenzuordnung für nachfolgende ML-Arbeitslasten verwendet.
  • Unter Bezugnahme auf 1 ist ein Blockschaubild (100) bereitgestellt, um einen Überblick über ein gemeinsames ML-Profil zu geben, um eine effiziente Ausführung von ML-Anwendungen mit einer wirksamen Nutzung von Ressourcen zu unterstützen. Wie gezeigt ist, wird ein ML-Ausführungsmodell (110) für eine ML-Anwendungsausführung und Ressourcennutzung entwickelt. Das ML-Ausführungsmodell (110) verwendet Machine-Learning-Techniken, um Ressourcen für andere ML-Anwendungen zu erlernen, vorherzusagen und zuzuordnen. Genauer gesagt, bei dem ML-Ausführungsmodell (110) handelt es sich um ein Performance-Vorhersagemodell auf der Grundlage von ML-Techniken. Das Ausführungsmodell wird unter Verwendung von Langzeitdaten aus einer vorherigen Ausführung der ML-Anwendungen (120) und aus vor Kurzem erfassten Daten von vorherigen Iterationen (130) des ML-Ausführungsmodells erstellt. Die Funktionalität des ML-Ausführungsmodells (110) besteht darin, die Performance der Anwendungsausführung mit entsprechenden Datenverarbeitungsressourcen zu korrelieren. Wie hierin gezeigt ist, interagiert das ML-Ausführungsmodell (110) mit einem Ressourcenverwaltungssystem (140), um Ressourcen wirksam und effizient an ein oder mehrere ML-Modelle zur Anwendungsausführung (150) zu übertragen. Wie hierin gezeigt ist, dient das ML-Ausführungsmodell (110) folglich als eine Komponente, um das gemeinsame Profil von Anwendungen und Ressourcenverwaltung zu erzeugen oder zu erfassen.
  • Unter Bezugnahme auf 2 ist eine schematische Darstellung eines Computersystems (200) mit einer Plattform für künstliche Intelligenz abgebildet, um eine effiziente Ausführung eines ML-Programms und eine wirksame Zuordnung und Nutzung von Datenverarbeitungsressourcen zu unterstützen. Wie gezeigt ist, ist ein Server (210) bereitgestellt, der mit einer Mehrzahl von Datenverarbeitungseinheiten (280), (282), (284), (286), (288) und (290) über eine Netzwerkverbindung (205) in Verbindung steht. Der Server (210) ist mit einer Verarbeitungseinheit (212), z.B. einem Prozessor, konfiguriert, die mit einem Arbeitsspeicher (216) über einen Bus (214) in Verbindung steht. Bei dem Prozessor kann es sich um eine CPU oder eine GPU handeln. Der Server (210) ist mit einer Plattform (250) für künstliche Intelligenz (Kl) zur Unterstützung der Zusammenarbeit gezeigt, um ein Machine-Learning-Modell als ein gemeinsames Profil von Anwendungsausführung und Ressourcennutzung zu trainieren. Die Datenverarbeitungseinheiten (280), (282), (284), (286), (288) und (290) tauschen miteinander und mit anderen Einheiten oder Komponenten über eine oder mehrere kabelgebundene und/oder kabellose Datenübertragungsleitungen Daten aus, wobei jede Übertragungsleitung eines oder mehrere von Kabeln, Routern, Switches, Sendern, Empfängern oder dergleichen aufweisen kann. In dieser vernetzten Anordnung ermöglichen der Server (210) und die Netzwerkverbindung (205) eine Erkennung, Anerkennung und Auflösung einer Verbindung. Weitere Ausführungsformen des Servers (210) können mit anderen als den hierin dargestellten Komponenten, Systemen, Subsystemen und/oder Einheiten verwendet werden.
  • Die Kl-Plattform (250) ist hierin als für den Empfang einer Eingabe (202) von verschiedenen Quellen konfiguriert gezeigt. Zum Beispiel kann die Kl-Plattform (250) eine Eingabe von dem Netzwerk (205) empfangen und eine Datenquelle (270), die hierin auch als Korpus oder Wissensbasis bezeichnet wird, nutzen, um eine Ausgabe oder einen Antwortinhalt zu erstellen. Die Kl-Plattform (250) ist mit Tools ausgestattet, um eine Machine-Learning-Zusammenarbeit zu unterstützen und zu ermöglichen und um Machine-Learning-Arbeitslasten unter Verwendung einer anwendungsbasierten Profilierung elastisch auszuführen.
  • Die Kl-Plattform (250) dient als Plattform, um eine Zusammenarbeit zwischen einer Anwendungsausführung und einer Ressourcenzuordnung sowie -verwaltung zu ermöglichen und zu unterstützen. In einer einzelnen Ausführungsform überträgt die Kl-Plattform (250) über das Netzwerk (205) eine Antwortausgabe an Mitglieder, die mit dem Server (210) betriebsfähig verbunden sind, wie beispielsweise eine oder mehrere der Datenverarbeitungseinheiten (280) bis (290).
  • Die Kl-Plattform (250) ist hierin mit mehreren Tools zur Unterstützung der Zusammenarbeit eines neuronalen Modells gezeigt, darunter einem Profilmanager (252), einem Machine-Learning-(ML-)Manager (254), einem Director (256) und einem Ressourcenmanager (258). Der Profilmanager (252) dient dazu, ein gemeinsames Profil zu erzeugen oder zu erfassen, das aus einer ML-Anwendungsausführung und einer Ressourcennutzung besteht. Das gemeinsame Profil kombiniert Einzelheiten einer ML-Anwendungsausführung und einer ML-Ausführung entsprechende Ressourcennutzungsdaten. Zu Beispielen für Einzelheiten einer ML-Anwendungsausführung gehören, ohne darauf beschränkt zu sein, Stapelgröße, Lernrate, Iterationsanzahl, Modellgenauigkeit usw. Zu Beispielen für Ressourcen gehören, ohne darauf beschränkt zu sein, eine Menge an verwendeten CPUs, der CPU-Typ, eine Menge an verwendeten GPUs, GPU-Typen usw. Der Profilmanager (252) überwacht oder empfängt Signale aus ML-Profilen und erfasst eine Ressourcennutzung durch ein entsprechendes ML-Modell und in einer einzelnen Ausführungsform durch ML-Routinen, die Teil des ML-Modells sind. Genauer gesagt, es wird in der Technik davon ausgegangen, dass das Erstellen oder Trainieren des ML-Modells sowie entsprechende ML-Routinen innerhalb des ML-Modells eine Verwendung von Datenverarbeitungsressourcen, darunter von physischen und virtuellen Ressourcen, erforderlich machen, um die Routinefunktionalität und eine entsprechende Verarbeitung zu unterstützen. Der Profilmanager (252) erfasst zu diesen Ressourcen gehörende Daten und einen zugehörigen Ressourcenverbrauch aus dem entsprechenden ML-Modell sowie ML-Routinen, die Teil des ML-Modells sind. Die erfassten Daten werden genutzt, um eine Ressourcenzuordnung für eine nachfolgende ML-Anwendungsausführung vorherzusagen, unabhängig davon, ob die nachfolgende Anwendung im Vergleich zu einer aktuellen Arbeitslast gleich, größer oder kleiner ist oder einen anderen Satz von Parametern oder Konfigurationen hat. Wie hierin gezeigt ist, verwendet der Profilmanager (252) mindestens einen Rückruf, der hierin als RückruffunktionA (252A) gezeigt ist, um eine Anwendungsausführung mit einem oder mehreren relevanten Parametern zu profilieren und um Ressourcennutzungsinformationen zu profilieren. In einer einzelnen Ausführungsform handelt es sich bei einer Erstellung eines Profils von Ressourcennutzungsinformationen um eine Ermittlung von und in einer einzelnen Ausführungsform um eine Übersicht über Datenverarbeitungsressourcen, die zur Unterstützung der Ausführung einer Anwendung verwendet werden oder erforderlich sind. Folglich dient der Profilmanager (252) dazu, Eigenschaften von verwendeten Datenverarbeitungsressourcen und eine Nutzung zusammen mit der Anwendungsausführung mit ihrem Satz von Parametern aufzuzeichnen.
  • Wie hierin gezeigt ist, ist der Server (210) mit der Datenquelle (270) betriebsfähig verbunden. Die Datenquelle (270) ist hierin mit einer Bibliothek (272) von ML-Modellen gezeigt, die sich aus ML-Anwendungen ergaben. Obgleich nur eine Bibliothek gezeigt ist, sei darauf hingewiesen, dass die Datenquelle (270) mit mehreren Bibliotheken konfiguriert werden kann und dass die Bibliothek (272) dem Zweck der Veranschaulichung dient. Die Bibliothek (272) ist mit ML-Modellen gezeigt, darunter einem ML-ModellA (274A) und einem ML-ModellB (274B). Die Menge der ML-Modelle dient dem Zweck der Veranschaulichung und sollte nicht als einschränkend betrachtet werden. In einer einzelnen Ausführungsform sind die ML-Modelle in der Bibliothek auf der Grundlage des Inhalts oder der Funktionalität organisiert. Jedes der ML-Modelle ist mit einem betriebsfähig verbundenen oder zugehörigen Profil gezeigt, das hierin auch als ein gemeinsames Profil bezeichnet wird. Genauer gesagt, das ML-ModellA (274A) ist mit einem ProfilA (276A) und das ML-ModellB (274B) ist mit einem ProfilB (276B) gezeigt. Die ML-Modelle (274A) und (274B) in der Bibliothek (272) sind nicht unbedingt mit einem bestimmten Profil verbunden. ML-Modelle können mit mehreren gemeinsamen Profilen erstellt werden. Wie gezeigt ist, ist das ML-ModellN (274N) zum Beispiel als eine Kombination aus Profilen gezeigt, z.B. als eine Kombination aus einem Profilx (276c), einem ProfilY (276D) und einem ProfilN (276N). Jedes Profil kombiniert eine Ausführung des entsprechenden oder betriebsfähig verbundenen Modells und eine Ressourcennutzung oder einen Ressourcenbedarf, um eine Ausführung des betriebsfähig verbundenen Modells zu unterstützen. Zum Beispiel kann das ML-Modell in einer einzelnen Ausführungsform mit den gleichen Parametern, aber mit einem anderen Satz von Datenverarbeitungsressourcen erstellt werden. Während das resultierende Modell gleich ist, wäre das Konvergierungstiming eines fertigen Modells aufgrund von Ressourcenengpässen anders.
  • Der ML-Manager (254), der hierin als mit dem Profilmanager (252) betriebsfähig verbunden gezeigt ist, dient dazu, ein oder mehrere Merkmale und Signaturen aus dem Profil, z.B. (276A) und (276B), zu ermitteln. Beispiele für Merkmale und Signaturen sind Machine-Learning-Frameworks, Lernstapelgrößen, Anzahl der zugeordneten CPUs, Größe des verwendeten Arbeitsspeichers, Ausführungszeit für jede Iteration oder eine Konvergenzzeit eines Algorithmus. Der ML-Manager (254) ist hierin mit einem betriebsfähig verbundenen ML-Ausführungsmodell (254A) gezeigt. Genauer gesagt, bei dem Modell (254A) handelt es sich um ein ML-Modell, das ML-Technologie verwendet, um eine Nutzung von Datenverarbeitungsressourcen für eine ML-Anwendungsausführung vorherzusagen. Der ML-Manager (254) erstellt und verwaltet das Modell (254A) und führt das Modell (254A) aus, um den Bedarf an Datenverarbeitungsressourcen für ein entsprechendes ML-Modell, z.B. (274A), zu bewerten und vorherzusagen, indem er ein oder mehrere Merkmale und Signaturen aus dem entsprechenden Profil, z.B. (276A), nutzt. In einer einzelnen Ausführungsform wird die Ermittlung von Merkmalen und Eigenschaften, z.B. Signaturen, für die Erzeugung des gemeinsamen Profils und das Erstellen des ML-Modells (254A) mit einer Benutzereingabe abgeleitet. Folglich dient der ML-Manager (254) dazu, ein ML-Modell zu erstellen, das die Funktionalität und Verarbeitung von anderen ML-Modellen, wie beispielsweise den Modellen (274A) und (274B), modelliert, um eine Zuordnung von Datenverarbeitungsressourcen zur Unterstützung der Verarbeitung von ML-Modellen zu ermöglichen.
  • Der Director (256) dient dazu, das ML-Ausführungsmodell (254A) anzuwenden und eine Ausgabe (254B) aus dem Modell zu verwenden, um Anweisungen für eine nachfolgende Anwendungsausführung bereitzustellen. Die Ausgabe (254B) erfolgt in Form von Datenverarbeitungsressourcen, die zur Unterstützung einer effizienten und wirksamen Ausführung von einer oder mehreren ML-Anwendungen erforderlich sind. Die Zuordnung von Ressourcen ist elastisch, z.B. dynamisch, und unterliegt während der Ausführung Änderungen. Der Director (256) verwendet die auf dem ML-Ausführungsmodell (254A) beruhende Ausgabe (254B), um eine oder mehrere Datenverarbeitungsressourcen von einer Ressourcenverwaltungskomponente elastisch zuzuordnen und anzufordern, um eine Anwendungsausführung zu unterstützen. Wie hierin gezeigt ist, ist ein Ressourcenmanager (258) als mit dem Director (256) betriebsfähig verbunden gezeigt. In einer einzelnen Ausführungsform wird die Ausgabe (254B) an den Ressourcenmanager (258) mit einer Anweisung weitergeleitet, Datenverarbeitungsressourcen und eine Bezeichnung der Ressourcen anzugeben, um eine Anwendungsausführung zu unterstützen. Wie hierin erläutert wird, ist die Ressourcenzuordnung als elastisch, z.B. nicht statisch, definiert. Ebenso erfolgt die der Ausgabe (254B) entsprechende Anweisung in Form einer Ressourcenzuordnungsaktion. Das ML-Ausführungsmodell (254A) führt die Ressourcenzuordnungsaktion, z.B. eine Anweisung, aus, um verfügbare Ressourcen zur Unterstützung einer Anwendungsverarbeitung anzufordern. Die Ressourcenzuordnungsaktion kann Ressourcen in Bezug auf eine vorhergehende Anwendungsverarbeitung und -ausführung reduzieren oder erweitern oder in einer einzelnen Ausführungsform kann die Ressourcenzuordnungsaktion die Ressourcenanforderung verwalten. Ebenso verfügen die angeforderten Ressourcen über entsprechende Attribute. Die Ressourcenzuordnungsaktion ermittelt die Ressourcenattribute zur Unterstützung einer Anwendungserarbeitung und -ausführung, die ebenso wie die Ressourcenzuordnung elastisch ist. Folglich dient der Director (256) dazu, eine Ausgabe aus dem ML-Modell (254A) zu unterstützen und zu verarbeiten.
  • Iteration ist ein in ML-Anwendungen verwendeter Begriff und gibt die Häufigkeit an, mit der die Algorithmusparameter aktualisiert werden. Ein Training eines entsprechenden neuronalen Netzes erfordert mehrere Iterationen. In Bezug auf die hierin beschriebene Funktionalität kann sich die Zuordnung von Datenverarbeitungsressourcen über die Iterationen hinweg auf der Grundlage der Anforderungen der ML-Ausführungsmodelle sowie der Verfügbarkeit der Ressourcen ändern. Das ML-Ausführungsmodell (254A) spricht auf die dynamischen Eigenschaften und Iterationen der ML-Modelle an und die entsprechende Ausgabe (254B) spiegelt diesen dynamischen Charakter wider. Der Director (256) kann die Zuordnungen von Datenverarbeitungsressourcen über die ML-Anwendungsiterationen hinweg ändern. In einer einzelnen Ausführungsform können Änderungen von Ressourcenzuordnungen auf Anwendungsausführungsmustern, Ressourcennutzungsmustern oder einer Kombination aus beidem beruhen. Etwaige Änderungen an der Ressourcenzuordnung werden in der Ausgabe (254B) über die ML-Modelliterationen hinweg und der entsprechenden Ressourcenzuordnungsaktion, z.B. einer Anweisung, widergespiegelt.
  • In einigen veranschaulichenden Ausführungsformen kann es sich bei dem Server (210) um das von der International Business Machines Corporation aus Armonk, New York, erhältliche System IBM Watson® handeln, das um die Mechanismen der nachstehend beschriebenen veranschaulichenden Ausführungsformen erweitert werden kann. Das hierin gezeigte und beschriebene System umfasst Tools, um Machine Learning auf der Grundlage von iterativen Optimierungsalgorithmen auszuführen. Die Tools ermöglichen eine elastische Ausführung von ML-Arbeitslasten unter Verwendung einer anwendungsbasierten Profilierung, wodurch Datenverarbeitungsressourcen ML-Anwendungen und ihren entsprechenden neuronalen Netzen wirksam und effizient und über mehrere Iterationen der Erstellung oder des Trainings des Modells hinweg zugeordnet werden.
  • Der Profilmanager (252), der ML-Manager (254), der Director (256) und der Ressourcenmanager (258), die nachstehend gemeinsam als Kl-Tools oder Kl-Plattform-Tools bezeichnet werden, sind als in der Kl-Plattform (250) des Servers (210) verkörpert oder darin integriert gezeigt. Die Kl-Tools können in einem gesonderten Datenverarbeitungssystem (z.B. 290) ausgeführt sein, das über das Netzwerk (205) mit dem Server (210) verbunden ist. Wo immer sie verkörpert sind, dienen die Kl-Tools dazu, eine Modellierung einer ML-Anwendungsausführung und eine entsprechende Elastizität einer Ressourcenzuordnung in einer iterativen Weise zu unterstützen und zu ermöglichen. Die Ausgabe (254A) aus dem ML-Ausführungsmodell (254) kann in Form einer ausführbaren Anweisung erfolgen, die an den Ressourcenmanager (258) weitergeleitet wird, um Datenverarbeitungsressourcen zur Unterstützung einer Ausführung zu übertragen und zu bezeichnen, die zu einem oder mehreren der Modelle (274A) und (274B) führt.
  • Arten von Informationsverarbeitungssystemen, die die Kl-Plattform (250) verwenden können, reichen von kleinen Handheld-Einheiten, wie beispielsweise einem Handheld-Computer/Mobiltelefon (280), bis hin zu großen Mainframe-Systemen, wie beispielsweise einem Mainframe-Computer (282). Zu Beispielen für Handheld-Computer (280) gehören Personal Digital Assistants (PDAs), Personal Entertainment Devices wie beispielsweise MP4-Player, tragbare Fernsehgeräte und CD-Player. Zu weiteren Beispielen von Informationsverarbeitungssystemen gehören ein Pen- oder Tablet-Computer (284), ein Laptop- oder Notebook-Computer (286), ein Personal Computer-System (288) und ein Server (290). Wie gezeigt ist, können die verschiedenen Informationsverarbeitungssysteme unter Verwendung des Computernetzwerks (205) zusammen vernetzt werden. Zu Arten von Computernetzwerken (205), die verwendet werden können, um die verschiedenen Informationsverarbeitungssysteme miteinander zu verbinden, gehören lokale Netze (Local Area Networks, LANs), drahtlose lokale Netze (Wireless Local Area Networks, WLANs), das Internet, das öffentliche Telefonnetz (Public Switched Telephone Network, PSTN), weitere drahtlose Netze und eine beliebige andere Netztopologie, die verwendet werden kann, um die Informationsverarbeitungssysteme miteinander zu verbinden. Viele der Informationsverarbeitungssysteme umfassen nicht flüchtige Datenspeicher, wie beispielsweise Festplattenlaufwerke und/oder nicht flüchtigen Arbeitsspeicher. Einige der Informationsverarbeitungssysteme können gesonderte nicht flüchtige Datenspeicher verwenden (z.B. verwendet der Server (290) einen nicht flüchtigen Datenspeicher (290A) und der Mainframe-Computer (282) verwendet einen nicht flüchtigen Datenspeicher (282A). Bei dem nicht flüchtigen Datenspeicher (282A) kann es sich um eine Komponente handeln, die sich außerhalb der verschiedenen Informationsverarbeitungssysteme befindet, oder sie kann sich innerhalb von einem der Informationsverarbeitungssysteme befinden.
  • Das Informationsverarbeitungssystem, das zur Unterstützung der Kl-Plattform (250) genutzt wird, kann viele Formen annehmen, von denen einige in 2 gezeigt sind. Beispielsweise kann ein Informationsverarbeitungssystem die Form eines Desktop-Computers, eines Servers, eines tragbaren Computers, eines Laptops, eines Notebooks oder eines anderen Formfaktor-Computers oder Datenverarbeitungssystems annehmen. Überdies kann ein Informationsverarbeitungssystem andere Formfaktoren annehmen, wie zum Beispiel eines Personal Digital Assistent (PDA), einer Spielekonsole, eines Bankautomaten, eines tragbaren Telefons, einer Kommunikationseinheit oder anderer Einheiten, die einen Prozessor und einen Arbeitsspeicher umfassen.
  • Bei einer Anwendungsprogrammierschnittstelle (API) wird in der Technik davon ausgegangen, dass es sich dabei um einen Softwarevermittler zwischen zwei oder mehr Anwendungen handelt. In Bezug auf die in 2 gezeigte und beschriebene Kl-Plattform (250) können zwei oder mehr APIs verwendet werden, um eines oder mehrere der Tools (252) bis (258) und ihre zugehörige Funktionalität zu unterstützen. Unter Bezugnahme auf 3 ist ein Blockschaubild (300) bereitgestellt, das die Tools (252) bis (258) und ihre zugehörigen APIs veranschaulicht. Wie gezeigt ist, ist eine Mehrzahl von Tools in die Kl-Plattform (305) eingebettet, wobei zu den Tools der zur API0 (312) gehörende Profilmanager (352), der zur API1 (322) gehörende ML-Manager (354), der zur API2 (332) gehörende Director (356) und der zur API3 (342) gehörende Ressourcenmanager (358) gehören. Jede der APIs kann in einer oder in mehreren Sprachen und Schnittstellenspezifikationen ausgeführt sein. Die APlo (312) stellt funktionale Unterstützung bereit, um das gemeinsame Profil als eine Kombination aus Einzelheiten einer Anwendungsausführung und der Ressourcennutzung einer Anwendungsausführung zu erzeugen; die API1, (322) stellt funktionale Unterstützung bereit, um ein ML-Ausführungsmodell zu erstellen und zu verwalten, das darauf ausgerichtet ist, eine ML-Anwendungsausführung und eine Nutzung von Datenverarbeitungsressourcen zu charakterisieren und zu ermitteln; die API2 (332) stellt funktionale Unterstützung bereit, um Datenverarbeitungsressourcen auf der Grundlage einer Ausgabe aus dem ML-Ausführungsmodell elastisch anzuwenden und anzufordern; und die API3 (342) stellt funktionale Unterstützung bereit, um Datenverarbeitungsressourcen zur Unterstützung einer Ausführung zu übertragen und zu bezeichnen, die sich aus einem oder mehreren der Modelle und ihren entsprechenden neuronalen Netzen ergibt.
  • Wie gezeigt ist, ist jede der APIs (312), (322), (332) and (342) mit einem API-Orchestrator (360) betriebsfähig verbunden, der auch als Orchestrierungsschicht bekannt ist, wobei in der Technik davon ausgegangen wird, dass diese als Abstraktionsschicht dient, um die einzelnen APIs transparent zu verknüpfen. In einer einzelnen Ausführungsform kann die Funktionalität der einzelnen APIs zusammengeführt oder kombiniert werden. Somit sollte die Konfiguration der hierin gezeigten APIs nicht als einschränkend betrachtet werden. Wie hierin gezeigt ist, kann die Funktionalität der Tools folglich durch ihre jeweiligen APIs verkörpert oder unterstützt werden. In einer weiteren Ausführungsform können einzelne APIs in verteilten Datenverarbeitungsressourcen verarbeitet werden, um Elastizität, Skalierbarkeit und Verfügbarkeit zu erreichen.
  • Unter Bezugnahme auf 4 ist ein Ablaufplan (400) bereitgestellt, um einen Prozess für eine ML-Modellierung und Elastizität der Zuordnung von Datenverarbeitungsressourcen zu veranschaulichen. Wie gezeigt ist, wird eine Anforderung, eine Anwendung auszuführen, die hierin auch als Ausführungsanforderung bezeichnet wird, mit Parametern für Anwendungsspezifikationen und Systemprofilierungsspezifikationen empfangen (402). Ausführungsanweisungen werden auf der Grundlage der empfangenen Anforderung vom Schritt (402) und auf der Grundlage eines ML-Ausführungsmodellierers (450) erstellt (404), was Anwendungsparameter und eine Langzeitverarbeitung des Modells/der Modelle mit einschließt. In einer einzelnen Ausführungsform kann, wenn keine Langzeitausführung bekannt oder verfügbar ist, ausschließlich eine benutzerdefinierte Eingabe verwendet werden. Zu möglichen Ausführungsanweisungen gehören, ohne darauf beschränkt zu sein, ein Setzen von Grenzen für eine Arbeitsspeicherbelegung und ein Zuordnen von Ressourcen zur Nutzung. In Bezug auf die Arbeitsspeicherbelegung können Grenzen für Anwendungsinstanzen auf der Grundlage von einer oder mehreren vorherigen Iterationen oder Langzeitdaten aus einer oder mehreren vorherigen Ausführungen gesetzt werden. In Bezug auf Ressourcennutzung können vorherige Langzeitdaten Informationen über eine Ressourcennutzung für dieselben Optimierungsparameter eines Trainingsmodells enthalten, jedoch auf einer anderen Datenverarbeitungsplattform, z.B. mit anderen Mengen an CPUs, CPU-Typen, anderen Mengen an GPUs, GPU-Typen und NVLink-Konnektivität (bei NVLink handelt es sich um ein drahtgebundenes Übertragungsprotokoll). Diese Anweisungen dienen zum Zweck der Veranschaulichung und sollten nicht als einschränkend betrachtet werden. Folglich werden die Anweisungen auf der Grundlage eines ML-Ausführungsmodells und von Parametern erstellt, die der Ausführungsanforderung entsprechen.
  • Die im Schritt (404) erstellen Anweisungen werden zur Interaktion mit einer Ressourcenverwaltung genutzt, um die gewünschten Ressourcen zur Unterstützung der Ausführungsanforderung und zur Ausführung der Ressourcenzuordnung innerhalb der Anforderungsparameter (406) zu erhalten. Genauer gesagt, die im Schritt (404) erhaltenen Anweisungen werden zur Zuordnung von Datenverarbeitungsressourcen verwendet. Zum Beispiel kann die Zuordnung in einer einzelnen Ausführungsform auf einen Container einer bestimmten Größe zur Ausführung mit Flexibilität für eine mögliche dynamische Erweiterung in Bezug auf eine Menge an CPU-Kernen, CPU-Arbeitsspeicher, GPU-Typen und eine Menge an GPUs ausgerichtet sein. Ebenso kann die Zuordnung in einer einzelnen Ausführungsform auf ein Packen von Containern auf den gleichen Maschinen, sofern möglich oder wünschenswert, ausgerichtet sein. In einer weiteren Ausführungsform kann die Zuordnung auf eine gemeinsame Nutzung einer GPU ausgerichtet sein. Nachdem die Ressourcen zugeordnet wurden, werden eine oder mehrere ML-Anwendungen ausgeführt (408) und Profilinformationen der ausgeführten ML-Anwendung(en) werden erfasst (410). In einer einzelnen Ausführungsform verwendet die Erfassung Rückruffunktionen zu ML-Anwendungsspezifikationen und Ressourcennutzungsinformationen. Die erfassten ML-Anwendungsausführungsdaten, die hierin als dynamische Anwendungsinformationen bezeichnet werden, werden an den ML-Ausführungsmodellierer (450) übertragen. Im Anschluss an den Schritt (410) und die Erfassung der Profilinformationen wird festgestellt, ob ein Abschlussschwellenwert erreicht wurde (412). Auf eine negative Antwort auf die Feststellung im Schritt (410) folgt eine Rückkehr zum Schritt (404), und eine positive Antwort beendet den Profilerfassungs- und -entwicklungsprozess.
  • Der ML-Ausführungsmodellierer (450) empfängt eine Eingabe von der Anwendungsausführung und Interaktion mit der Ressourcenverwaltung. Der ML-Ausführungsmodellierer (450) empfängt sowohl statische Eingabedaten (460) als auch dynamische Eingabedaten (470). Die statischen Eingabedaten haben die Form von Eingabedateninformationen (462), Optimierungsparameterbereiche (464) und statischen Datenverarbeitungsinformationen wie beispielsweise CPU- und GPU-Architektur, Arbeitsspeicher und Massenspeicher (466). Die dynamischen Eingabedaten (470) haben die Form einer Einstellung von Parametern (472) und Ressourcennutzungsinformationen (474). Folglich verwendet der ML-Ausführungsmodellierer (450) Anwendungsausführungsinformationen und Ressourceninformationen, um optimale Ressourcen zu ermitteln und eine Bedarfsvorhersage zur Unterstützung von ML-Anwendungen zu erstellen.
  • Wie in 4 gezeigt ist, werden Rückruffunktionen durch die ausgeführte(n) oder sich in Ausführung befindliche(n) ML-Anwendung(en) verwendet, um ML-Anwendungsdaten und eine Ressourcennutzung einer ML-Anwendung zu ermitteln und dadurch ein gemeinsames Profil von ML-Arbeitslasten und Ressourcennutzung zu erzeugen. In einer einzelnen Ausführungsform kann das gemeinsame Profil mit einem Zeitstempel versehene Daten mit Merkmalen oder Signaturen und einer Ressourcennutzung enthalten, die für eine ML-Anwendung spezifisch sind/ist. Das in dem ML-Ausführungsmodellierer erstellte ML-Ausführungsmodell verwendet das/die erzeugte(n) gemeinsame(n) Profil(e), das/die die Einzelheiten der Anwendungsausführung enthält/enthalten. Genauer gesagt, das ML-Ausführungsmodell ist dahingehend dynamisch, dass es Aktualisierungen von dem gemeinsamen Profil/den gemeinsamen Profilen empfängt und anwendet. Das ML-Ausführungsmodell wird unter Verwendung von Daten aus vorherigen Ausführungsläufen oder aus zuletzt erfassten Daten aus vorherigen Iterationen in derselben Ausführung erstellt. Die in dem gemeinsamen Profil/den gemeinsamen Profilen sowie den dynamisch angewandten Aktualisierungen innerhalb des gemeinsamen Profils/der gemeinsamen Profile enthaltenen Merkmale und Signaturen stellen Anweisungen für eine nachfolgende Anwendungsausführung von Iterationen und zur Korrelation einer Anwendungsausführungsperformance mit entsprechenden, und in einer einzelnen Ausführungsform heterogenen, Datenverarbeitungsressourcen bereit. In einer einzelnen Ausführungsform wird ein Satz von APIs genutzt, um die Rückruffunktionen aus den ausgeführten oder in Ausführung befindlichen ML-Anwendungen zu unterstützen. Der Satz von APIs ist von einer Anwendung in einem beliebigen ML-Framework aus aufrufbar. Folglich werden das/die gemeinsame(n) Profil(e) genutzt, um sowohl das ML-Ausführungsmodell in dem ML-Ausführungsmodellierer zu erstellen, und sobald es erstellt ist, werden das/die gemeinsame(n) Profil(e) durch den ML-Ausführungsmodellierer angewandt, um wirksame Ressourcen von einer Ressourcenverwaltungskomponente für eine effiziente Ausführung von ML-Anwendungen in verschiedenen Iterationen anzufordern.
  • Das Folgende ist eine beispielhafte Traceausgabe aus einer API, um Einzelheiten darüber aufzuzeichnen, wie eine Anwendung ausgeführt wird.
  • 2018-05-17 02:51:34.288301 Läuft auf Maschine mit 28 Kernen und Architekturtyp: x86_64
  • 2018-05-17 02:51:34.288305 Läuft auf CPU-Kernen - [3] für diesen Prozess: psutil.Process(pid=4954, Name=‚python‘, gestartet=‚22:51:26‘) CUDA_VISIBLE_DEVICES: [7]; Cuda V.: 384.81; Einheit [7] Typ K80
    2018-05-17 02:51:34.288301 Stapelgröße 1024
    2018-05-17 02:51:34.288352 Epoche 1 beginnt
    2018-05-17 02:51:35.959277 CPU-Auslastung: 68.4 % x 1 Kerne
    2018-05-17 02:51:35.959277 CPU-Arbeitsspeicherauslastung: 1562587136(RSS) 567708688384(VMS)
    2018-05-17 02:51:35.959277 GPU[7] gesamter Arbeitsspeicher: 11995578368
    2018-05-17 02:51:35.959277 GPU[7] verwendeter Arbeitsspeicher: 11485577216
    2018-05-17 02:51:35.959277 GPU[7]-Auslastung: 99 %
    2018-05-17 02:51:35.959277 GPU[7]-Arbeitsspeicherauslastung: 27%
  • 2018-05-17 02:51:35.960202 Antwortzeit für Epoche 1 - 0:00:01.671845; Genauigkeit - 0.6077724358974359
  • Wie gezeigt ist, zeichnet die API Einzelheiten darüber auf, wie die Anwendung ausgeführt wird, darunter die Stapelgröße, Eingabeinformationen, Datentyp, Arbeitsspeicherauslastung und die für die Ausführung der ML-Anwendungsiteration aufgewendete Zeit. Die API kann zeit- oder logikgesteuert sein. Folglich zeichnet die in diesem Beispiel gezeigte API ML-Anwendungsausführungsdaten und eine Ressourcennutzung auf und überträgt die aufgezeichneten Daten an den ML-Ausführungsmodellierer für ML-Anwendungsanweisungen für nachfolgende ML-Anwendungsiterationen.
  • Aspekte der funktionalen Tools (252) bis (258) und ihre zugehörige Funktionalität können in einem Computersystem/Server an einer einzelnen Speicherposition verkörpert sein oder in einer einzelnen Ausführungsform können sie in einem cloudbasierten System konfiguriert sein, das Datenverarbeitungsressourcen gemeinsam nutzt. Unter Bezugnahme auf 5 ist ein Blockschaubild (500) bereitgestellt, das ein Beispiel eines nachstehend als Host (502) bezeichneten Computersystems/Servers (502) veranschaulicht, das/der mit einem cloudbasierten Unterstützungssystem in Verbindung steht, um die vorstehend in Bezug auf die 1 bis 4 beschriebenen Prozesse auszuführen. Der Host (502) kann mit zahlreichen anderen Universal- oder Spezialdatenverarbeitungssystemumgebungen oder - konfigurationen betrieben werden. Zu Beispielen für hinlänglich bekannte Datenverarbeitungssysteme, -umgebungen und/oder -konfigurationen, die gegebenenfalls zur Verwendung mit dem Host (502) geeignet sind, gehören, ohne darauf beschränkt zu sein, Personal Computer-Systeme, Server-Computersysteme, Thin Clients, Thick Clients, Handheld- oder Laptop-Einheiten, Mehrprozessorsysteme, auf einem Mikroprozessor beruhende Systeme, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme und Dateisysteme (z.B. verteilte Speicherumgebungen und verteilte Cloud-Computing-Umgebungen), die beliebige der vorstehenden Systeme, Einheiten und ihrer Äquivalente umfassen.
  • Der Host (502) kann in dem allgemeinen Kontext von durch ein Computersystem ausführbaren Instruktionen, wie zum Beispiel Programmmodulen, die durch ein Computersystem ausgeführt werden, beschrieben werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter umfassen, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen ausführen. Der Host (502) kann in verteilten Cloud-Computing-Umgebungen (580) in die Praxis umgesetzt werden, in denen Aufgaben durch ferne Verarbeitungseinheiten durchgeführt werden, die durch ein Übertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in fernen Speichermedien eines Computersystems, zu denen auch Arbeitsspeichereinheiten gehören, befinden.
  • Wie in 5 gezeigt ist, ist der Host (502) ist in Form einer Universal-Datenverarbeitungseinheit gezeigt. Zu den Komponenten des Hosts (502) können, ohne darauf beschränkt zu sein, ein oder mehrere Prozessoren oder Verarbeitungseinheiten (504), z.B. Hardwareprozessoren, ein Systemspeicher (506) und ein Bus (508) gehören, der verschiedene Systemkomponenten, darunter den Systemspeicher (506), mit dem Prozessor (504) verbindet. Der Bus (508) stellt eine oder mehrere von beliebigen Busstrukturen von mehreren Arten von Busstrukturen dar, darunter einen Speicherbus oder einen Speichercontroller, einen peripheren Bus, einen Accelerated Graphics Port und einen Prozessor- oder lokalen Bus, der beliebige einer Vielfalt an Busarchitekturen verwendet. Beispielhaft und nicht als Einschränkung gehören zu diesen Architekturen ein Industry-Standard-Architecture-(ISA-)Bus, ein Micro-Channel-Architecture-(MCA-)Bus, ein Enhanced-ISA-(EISA-)Bus, ein lokaler Video-Electronics-Standards-Association-(VESA-)Bus und ein Peripheral-Component-Interconnects-(PCI-)Bus. Der Host (502) umfasst üblicherweise eine Vielfalt an durch ein Computersystem lesbaren Datenträgern. Bei diesen Datenträgern kann es sich um jedwede verfügbaren Datenträger handeln, auf die der Host (502) zugreifen kann, und zu ihnen gehören sowohl flüchtige und nicht flüchtige als auch austauschbare und nicht austauschbare Datenträger.
  • Der Arbeitsspeicher (506) kann durch ein Computersystem lesbare Datenträger in Form von flüchtigem Speicher, wie beispielsweise einen Direktzugriffsspeicher (RAM) (530) und/oder einen Cache (532), umfassen. Lediglich als Beispiel kann das Speichersystem (534) für das Lesen von und das Schreiben auf einen nicht austauschbaren, nicht flüchtigen Magnetdatenträger (nicht gezeigt und üblicherweise als „Festplattenlaufwerk“ bezeichnet) bereitgestellt werden. Obgleich nicht gezeigt, können ein Magnetplattenlaufwerk für das Lesen von und das Schreiben auf eine austauschbare, nicht flüchtige Magnetplatte (z.B. eine „Diskette“) und ein optisches Plattenlaufwerk für das Lesen von oder das Schreiben auf eine austauschbare, nicht flüchtige optische Platte, wie beispielsweise ein CD-ROM, DVD-ROM oder andere optische Datenträger, bereitgestellt werden. In diesen Fällen kann jedes Speichermedium durch eine oder mehrere Datenträgerschnittstellen mit dem Bus (508) verbunden sein.
  • Ein Programm/Dienstprogramm (540), das über einen Satz (zumindest einen) von Programmmodulen (542) verfügt, kann beispielhaft, und nicht als Einschränkung, im Arbeitsspeicher (506) gespeichert werden, ebenso wie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten. Die Betriebssysteme, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten oder eine Kombination daraus können jeweils eine Ausführung einer Netzwerkumgebung umfassen. Die Programmmodule (542) führen im Allgemeinen die Funktionen und/oder die Vorgehensweisen von Ausführungsformen aus, um dynamisch Übertragungsauswertung Frageermittlung und Verarbeitung. Zum Beispiel kann der Satz von Programmmodulen (542) die Tools (252) bis (258) umfassen, wie in 1 beschrieben ist.
  • Der Host (502) kann auch mit einer oder mehreren externen Einheiten (514) wie beispielsweise einer Tastatur, einer Zeigereinheit usw.; einem Bildschirm (524); einer oder mehreren Einheiten, die es einem Benutzer ermöglicht/ermöglichen, mit dem Host (502) zu interagieren; und/oder beliebigen Einheiten (z.B. Netzwerkkarte, Modem usw.), die dem Host (502) einen Datenaustausch mit einer oder mehreren anderen Datenverarbeitungseinheiten ermöglichen, Daten austauschen. Ein solcher Datenaustausch kann über (eine) Eingabe-/Ausgabe-(E/A-)Schnittstelle(n) (522) erfolgen. Dennoch kann der Host (502) mit einem oder mehreren Netzwerken wie zum Beispiel einem lokalen Netz (LAN), einem allgemeinen Weitverkehrsnetz (wide area network, WAN) und/oder einem öffentlichen Netz (z.B. dem Internet) über den Netzadapter (520) Daten austauschen. Wie dargestellt ist, tauscht der Netzadapter (520) mit den anderen Komponenten des Hosts (502) über den Bus (508) Daten aus. In einer einzelnen Ausführungsform steht eine Mehrzahl von Knoten eines verteilten Dateisystems (nicht gezeigt) über die E/A-Schnittstelle (522) oder über den Netzadapter (520) in Verbindung mit dem Host (502). Es sollte klar sein, dass auch andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Host (502) verwendet werden könnten, wenngleich diese nicht gezeigt sind. Zu Beispielen gehören, ohne darauf beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Anordnungen von Plattenlaufwerken, RAID-Systeme, Bandlaufwerke sowie Speichersysteme zur Datenarchivierung usw.
  • In diesem Schriftstück werden die Begriffe „Computerprogrammdatenträger“, „durch einen Computer verwendbarer Datenträger“ und „durch einen Computer lesbarer Datenträger“ verwendet, um allgemein auf Datenträger wie beispielsweise einen Hauptspeicher (506), darunter einen RAM (530), einen Cache (532) und ein Speichersystem (534), wie beispielsweise ein austauschbares Speicherlaufwerk und eine in einem Festplattenlaufwerk installierte Festplatte, zu verweisen.
  • Computerprogramme (die auch als Computersteuerlogik bezeichnet werden) werden im Arbeitsspeicher (506) gespeichert. Computerprogramme können auch über eine Übertragungsschnittstelle wie beispielsweise einen Netzwerkadapter (520) empfangen werden. Wenn sie ausgeführt werden, ermöglichen es diese Computerprogramme dem Computersystem, die Merkmale der vorliegenden Ausführungsformen, wie hierin erläutert, durchzuführen. Im Einzelnen ermöglichen es die Computerprogramme der Verarbeitungseinheit (504), wenn sie ausgeführt werden, die Merkmale des Computersystems durchzuführen. Folglich stellen diese Computerprogramme Controller des Computersystems dar.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Instruktionen zur Verwendung durch ein System zur Ausführung von Instruktionen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die folgenden: eine auswechselbare Computerdiskette, eine Festplatte, ein dynamischer oder statischer Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), eine Magnetspeichereinheit, ein auswechselbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Instruktionen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übermittelte elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programminstruktionen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programminstruktionen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programminstruktionen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programminstruktionen zum Ausführen von Arbeitsschritten der vorliegenden Ausführungsformen kann es sich um Assembler-Instruktionen, ISA-Instruktionen (Instruction-Set-Architecture), Maschineninstruktionen, maschinenabhängige Instruktionen, Mikrocode, Firmware-Instruktionen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programminstruktionen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server oder einem Cluster von Servern ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netz (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field-programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programminstruktionen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programminstruktionen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der Ausführungsformen durchzuführen.
  • In einer einzelnen Ausführungsform ist der Host (502) ein Knoten einer Cloud-Computing-Umgebung. Wie in der Technik bekannt ist, ist Cloud-Computing ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerken, Netzwerkbandbreite, Servern, Verarbeitung, Arbeitsspeicher, Massenspeicher, Anwendungen, virtuellen Maschinen und Services), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften umfassen, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle. Beispiele dieser Eigenschaften sind folgende:
    • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
    • Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
    • Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsschicht festzulegen (z.B. Land, Staat oder Rechenzentrum).
    • Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
    • Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsschicht nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Die Nutzung von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Bei den Dienstmodellen handelt es sich um die folgenden:
    • Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende E-Mail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
    • Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
    • Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Bei den Einsatzmodellen handelt es sich um die folgenden:
    • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
    • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
    • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
    • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Entitäten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
    • Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten aufweist.
  • Unter Bezugnahme auf 6 ist ein veranschaulichendes Cloud-Computing-Netzwerk 600 dargestellt. Wie gezeigt ist, umfasst das Cloud-Computing-Netzwerk (600) eine Cloud-Computing-Umgebung (650), die über einen oder mehrere Cloud-Computing-Knoten (610) verfügt, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten Daten austauschen können. Zu Beispielen für diese lokalen Datenverarbeitungseinheiten gehören, ohne darauf beschränkt zu sein, ein Personal Digital Assistant (PDA) oder Mobiltelefon (654A), ein Desktop-Computer (654B), ein Laptop-Computer (654C) und/oder ein Automobil-Computer-System (654N). Einzelne Knoten innerhalb der Knoten (610) können des Weiteren miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie private, Benutzergemeinschafts-, öffentliche oder hybride Clouds gruppiert werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung (600), Infrastruktur, Plattformen und/oder Software als Dienst anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten von in 6 gezeigten Datenverarbeitungseinheiten (654A bis N) lediglich veranschaulichend sein sollen und dass die Cloud-Computing-Umgebung (650) über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen kann.
  • Unter Bezugnahme auf 7 ist ein Satz von funktionalen Abstraktionsschichten (700) gezeigt, die durch das Cloud-Computing-Netzwerk von 6 bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 7 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und die Ausführungsformen nicht darauf beschränkt sind. Wie dargestellt ist, sind die folgenden Schichten und entsprechenden Funktionen bereitgestellt: Hardware- und Softwareschicht (710), Virtualisierungsschicht (720), Verwaltungsschicht (730) und Arbeitslastschicht (740).
  • Die Hardware- und Softwareschicht (710) umfasst Hardware- und Softwarekomponenten. Zu Beispielen für Hardwarekomponenten gehören Mainframe-Computer, in einem Beispiel Systeme der zSeries® von IBM®; Server, auf der RISC-(Reduced Instruction Set Computer-)Architektur beruhende Server, in einem Beispiel Systeme der pSeries® von IBM; Systeme der xSeries® von IBM; BladeCenter®-Systeme von IBM; Speichereinheiten; Netzwerke sowie Netzwerkkomponenten. Zu Beispielen für Softwarekomponenten gehören eine Netzwerk-Anwendungsserver-Software, in einem Beispiel die Anwendungsserver-Software WebSphere® von IBM; und Datenbank-Software, in einem Beispiel die Datenbank-Software DB2® von IBM. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sind Marken der International Business Machines Corporation, die bei vielen Markenämtern weltweit eingetragen sind.)
  • Die Virtualisierungsschicht (720) stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Entitäten bereitgestellt werden können: virtuelle Server; virtueller Speicher; virtuelle Netzwerke, darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme; und virtuelle Clients.
  • In einem Beispiel kann die Verwaltungsschicht (730) die folgenden Funktionen bereitstellen: Ressourcen-Bereitstellung, Erfassung von Verbrauchswerten und Preisermittlung, Benutzerportal, Verwaltung des Dienstumfangs und ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement). Eine Ressourcen-Bereitstellung stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und Preisfindung stellt die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungssoftwarelizenzen umfassen. Eine Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Layer Agreement) stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
  • Die Arbeitslastschicht (740) stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören, ohne darauf beschränkt zu sein: Abbildung und Navigation; Software-Entwicklung und Lebenszyklusverwaltung; Bereitstellung von Ausbildung in virtuellen Klassenzimmern; Datenanalytikverarbeitung; Transaktionsverarbeitung; und ML-Ausführungsmodellierung.
  • Es dürfte sich verstehen, dass hierin ein System, ein Verfahren, eine Vorrichtung und ein Computerprogrammprodukt zum Auswerten einer Eingabe in natürlicher Sprache, zum Erkennen einer Frage in einer entsprechenden Übertragung und zum Lösen der erkannten Frage mit einer Antwort und/oder einem unterstützenden Inhalt offenbart wird.
  • Während bestimmte Ausführungsformen der vorliegenden Ausführungsformen gezeigt und beschrieben wurden, ist es für den Fachmann offensichtlich, dass auf der Grundlage der Lehren hierin Ab- und Veränderungen vorgenommen werden können, ohne von den Ausführungsformen und ihren breiter gefassten Aspekten abzuweichen. Daher sollen die beigefügten Ansprüche innerhalb ihres Umfangs all diese Ab- und Veränderungen einschließen, die unter die wahre Wesensart und den Umfang der Ausführungsformen fallen. Des Weiteren sollte klar sein, dass die Ausführungsformen allein durch die beigefügten Ansprüche definiert sind. Der Fachmann versteht, dass, wenn eine bestimmte Anzahl eines eingeführten Anspruchselements beabsichtigt ist, diese Absicht ausdrücklich in dem Anspruch erwähnt wird, und dass, wenn eine solche Erwähnung fehlt, keine derartige Einschränkung vorliegt. Als ein nicht abschließendes Beispiel, das zum leichteren Verständnis dienen soll, enthalten die folgenden beigefügten Ansprüche eine Verwendung der einleitenden Formulierungen „mindestens ein/eine/einen“ und „ein/eine/einen oder mehrere“, um Anspruchselemente einzuführen. Jedoch sollte die Verwendung solcher Formulierungen nicht in der Bedeutung ausgelegt werden, dass die Einführung eines Anspruchselements durch die unbestimmten Artikel „ein“ oder „eine“, „einen“ einen bestimmten Anspruch, der ein solches eingeführtes Anspruchselement enthält, auf Ausführungsformen beschränkt, die nur ein solches Element enthalten, selbst wenn derselbe Anspruch die einleitenden Formulierungen „ein/eine/einen oder mehrere“ oder „mindestens ein/eine/einen“ sowie unbestimmte Artikel wie „ein“ oder „eine“, „einen“ umfasst; dasselbe gilt für die Verwendung von bestimmten Artikeln in den Ansprüchen.
  • Bei den vorliegenden Ausführungsformen kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Ferner können ausgewählte Aspekte der vorliegenden Ausführungsformen die Form einer reinen Hardware-Ausführungsform, einer reinen Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und/oder Hardware-Aspekte kombiniert, die hierin alle allgemein als eine „Schaltung“, ein „Modul“ oder ein „System“ bezeichnet werden können. Darüber hinaus können Aspekte der vorliegenden Ausführungsformen die Form eines Computerprogrammprodukts annehmen, das in (einem) durch einen Computer lesbaren Speichermedium (oder -medien) verkörpert ist, das/die über darauf befindliche, durch einen Computer lesbaren Programminstruktionen verfügt/verfügen, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Ausführungsformen durchzuführen. Auf diese Weise verkörpert, ist das offenbarte System, ein Verfahren und/oder ein Computerprogrammprodukt in der Lage, die Funktionalität und den Betrieb einer Plattform für künstliche Intelligenz zu verbessern, um eine ML-Anwendungsausführung und Ressourcennutzung, darunter eine effiziente und wirksame ML-Anwendungsperformance und Ressourcenverwaltung, zu modellieren.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Instruktionen zur Verwendung durch ein System zur Ausführung von Instruktionen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die folgenden: eine auswechselbare Computerdiskette, eine Festplatte, ein dynamischer oder statischer Arbeitsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), eine Magnetspeichereinheit, ein auswechselbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Instruktionen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übermittelte elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programminstruktionen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programminstruktionen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programminstruktionen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programminstruktionen zum Ausführen von Arbeitsschritten der vorliegenden Ausführungsformen kann es sich um Assembler-Instruktionen, ISA-Instruktionen (Instruction-Set-Architecture), Maschineninstruktionen, maschinenabhängige Instruktionen, Mikrocode, Firmware-Instruktionen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ und funktionale Programmiersprachen wie beispielsweise Haskell, Lisp oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programminstruktionen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server oder einem Cluster von Servern ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netz (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field-programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programminstruktionen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programminstruktionen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Ausführungsformen durchzuführen.
  • Aspekte der vorliegenden Ausführungsformen sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programminstruktionen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programminstruktionen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Instruktionen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programminstruktionen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Instruktionen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Instruktionen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programminstruktionen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Instruktionen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Ausführungsformen. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder in den Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Instruktionen darstellen, das bzw. der eine oder mehrere ausführbare Instruktionen zur Ausführung der festgelegten logischen Funktion(en) aufweist. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit weitgehend gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computerinstruktionen ausführen.
  • Es dürfte sich verstehen, dass hierin zwar bestimmte Ausführungsformen zum Zweck der Veranschaulichung beschrieben wurden, jedoch verschiedene Veränderungen vorgenommen werden können, ohne von der Wesensart und dem Umfang der Ausführungsformen abzuweichen. Folglich ist der Schutzumfang der Ausführungsformen nur durch die folgenden Ansprüche und ihre gleichwertigen Entsprechungen beschränkt.

Claims (22)

  1. Computersystem, das aufweist: eine Verarbeitungseinheit, die mit einem Arbeitsspeicher betriebsfähig verbunden ist; eine mit der Verarbeitungseinheit in Verbindung stehende Plattform für künstliche Intelligenz (Kl), die über Tools verfügt, um eine oder mehrere Machine-Learning-Arbeitslasten unter Verwendung einer anwendungsbasierten Profilierung elastisch auszuführen, wobei die Tools aufweisen: einen Profilmanager, um ein gemeinsames Profil zu erzeugen, das aus einer Machine-Learning-(ML-)Anwendungsausführung und Ressourcennutzung besteht; einen Machine-Learning-Manager, um ein oder mehrere Merkmale und eine oder mehrere Signaturen aus dem erzeugten gemeinsamen Profil zu ermitteln und ein ML-Ausführungsmodell für eine ML-Anwendungsausführungsperformance und Ressourcennutzung zu erstellen, wobei das ML-Ausführungsmodell das/die ermittelte(n) eine oder mehreren Merkmal(e) und die ermittelte(n) eine oder mehreren Signatur(en) nutzen soll; und einen Director, um das ML-Ausführungsmodell anzuwenden und eine oder mehrere Anweisungen für eine nachfolgende Anwendungsausführung, darunter das ML-Ausführungsmodell, bereitzustellen, um eine oder mehrere Ressourcen von einer Ressourcenverwaltungskomponente elastisch zuzuordnen und anzufordern, um eine Anwendungsausführung zu unterstützen.
  2. Computersystem nach Anspruch 1, wobei eine elastische Zuordnung das ML-Ausführungsmodell umfasst, um eine Ressourcenzuordnungsaktion in Bezug auf Ressourcenverfügbarkeit und Unterstützung für eine Anwendungsverarbeitung auszuführen, wobei die Ressourcenzuordnungsaktion eine beliebige Ressource reduzieren oder erweitern soll, und wobei des Weiteren die eine oder die mehreren reduzierten oder erweiterten Ressourcen über die gleichen oder unterschiedliche Attribute verfügen.
  3. Computersystem nach Anspruch 2, das des Weiteren den Director aufweist, um eine Datenverarbeitungszuordnung über Iterationen von einer oder mehreren ML-Anwendungen hinweg zu ändern, umfassend, die Ressourcenzuordnungsaktion auf der Grundlage eines Anwendungsausführungsmusters und eines Ressourcennutzungsmusters aufzurufen.
  4. Computersystem nach Anspruch 1, wobei die Erzeugung des gemeinsamen Profils des Weiteren den Profilmanager aufweist, um Ressourcennutzungsdaten über eine oder mehrere ML-Routinen zu überwachen und zu erfassen und die überwachten Daten zur Vorhersage einer Zuordnung für eine zukünftige ML-Anwendung zu verwenden.
  5. Computersystem nach Anspruch 1, wobei der Profilmanager eine oder mehrere Rückruffunktionen verwendet, um eine Anwendungsausführung mit einem oder mehreren anwendungsrelevanten Parametern zu profilieren und um Ressourcennutzungsinformationen zu profilieren.
  6. Computersystem nach Anspruch 5, wobei das erzeugte gemeinsame Profil für eine verteilte ML-Anwendung in einem verteilten Datenverarbeitungssystem erfasst wird.
  7. Computersystem nach Anspruch 1, wobei eine Ermittlung von einem oder mehreren Merkmalen und einer oder mehreren Signaturen für eine Erzeugung eines gemeinsamen Profils und ein Erstellen eines Ausführungsmodells mit einer Benutzereingabe abgeleitet wird.
  8. Computerprogrammprodukt, um eine elastische Ausführung einer Machine-Learning-Arbeitslast unter Verwendung einer anwendungsbasierten Profilierung zu unterstützen, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit damit verkörpertem Programmcode aufweist, wobei der Programmcode durch einen Prozessor ausführbar ist, um: ein gemeinsames Profil zu erzeugen, das aus einer Machine-Learning-(ML-)Anwendungsausführung und Ressourcennutzung besteht; ein oder mehrere Merkmale und eine oder mehrere Signaturen aus dem erzeugten gemeinsamen Profil zu ermitteln und ein ML-Ausführungsmodell für eine ML-Anwendungsausführungsperformance und Ressourcennutzung zu erstellen, wobei das ML-Ausführungsmodell das/die ermittelte(n) eine oder mehreren Merkmal(e) und die ermittelte(n) eine oder mehreren Signatur(en) nutzen soll; und das ML-Ausführungsmodell anzuwenden und eine oder mehrere Anweisungen für eine nachfolgende Anwendungsausführung, darunter ein elastisches Zuordnen und Anfordern von einer oder mehreren Ressourcen von einer Ressourcenverwaltungskomponente, bereitzustellen, um eine Anwendungsausführung zu unterstützen.
  9. Computerprogrammprodukt nach Anspruch 8, wobei eine elastische Zuordnung den Programmcode umfasst, um eine Ressourcenzuordnungsaktion in Bezug auf Ressourcenverfügbarkeit und Unterstützung für eine Anwendungsverarbeitung auszuführen, wobei die Ressourcenzuordnungsaktion eine beliebige Ressource reduzieren oder erweitern soll, und wobei des Weiteren die reduzierte oder erweiterte Ressource über die gleichen oder unterschiedliche Attribute verfügt.
  10. Computer-Programmprodukt nach Anspruch 9, das des Weiteren den Prozessor aufweist, um eine Zuordnung von Datenverarbeitungsressourcen über Iterationen von einer oder mehreren ML-Anwendungen hinweg zu ändern, umfassend, die Ressourcenzuordnungsaktion auf der Grundlage eines Anwendungsausführungsmusters und eines Ressourcennutzungsmusters aufzurufen.
  11. Computerprogrammprodukt nach Anspruch 8, wobei die Erzeugung des gemeinsamen Profils des Weiteren den Programmcode aufweist, um Ressourcennutzungsdaten über eine oder mehrere ML-Routinen zu überwachen und zu erfassen und die überwachten Daten zur Vorhersage einer Zuordnung für eine zukünftige ML-Anwendung zu verwenden.
  12. Computerprogrammprodukt nach Anspruch 8, wobei der Programmcode zum Erzeugen des gemeinsamen Profils eine oder mehrere Rückruffunktionen verwendet, um eine Anwendungsausführung mit einem oder mehreren anwendungsrelevanten Parametern zu profilieren und um Ressourcennutzungsinformationen zu profilieren.
  13. Computerprogrammprodukt nach Anspruch 12, wobei das erzeugte gemeinsame Profil für eine verteilte ML-Anwendung in einem verteilten Datenverarbeitungssystem erfasst wird.
  14. Computerprogrammprodukt nach Anspruch 8, wobei eine Ermittlung von einem oder mehreren Merkmalen und einer oder mehreren Signaturen für eine Erzeugung eines gemeinsamen Profils und ein Erstellen eines Ausführungsmodells mit einer Benutzereingabe ableitbar ist.
  15. Verfahren, das umfasst: Erzeugen eines gemeinsamen Profils, das aus einer Machine-Learning-(ML-)Anwendungsausführung und Ressourcennutzung besteht; Ermitteln von einem oder mehreren Merkmalen und einer oder mehreren Signaturen aus dem erzeugten gemeinsamen Profil und Erstellen eines ML-Ausführungsmodells für eine ML-Anwendungsausführungsperformance und Ressourcennutzung, wobei das ML-Ausführungsmodell das/die ermittelte(n) eine oder mehreren Merkmal(e) und die ermittelte(n) eine oder mehreren Signatur(en) nutzt; Anwenden des ML-Ausführungsmodells und Bereitstellen einer Anweisung für eine nachfolgende Anwendungsausführung, darunter ein elastisches Zuordnen und Anfordern von einer oder mehreren Ressourcen von einer Ressourcenverwaltungskomponente, um eine Anwendungsausführung zu unterstützen.
  16. Verfahren nach Anspruch 15, wobei eine elastische Zuordnung eine Ausführung einer Ressourcenzuordnungsaktion in Bezug auf Ressourcenverfügbarkeit und Unterstützung für eine Anwendungsverarbeitung umfasst, wobei die Ressourcenzuordnungsaktion beliebige Ressourcen reduzieren oder erweitern soll, und wobei des Weiteren die reduzierte oder erweiterte Ressource über die gleichen oder unterschiedliche Attribute verfügt.
  17. Verfahren nach Anspruch 16, das des Weiteren ein Ändern einer Zuordnung von Datenverarbeitungsressourcen über eine oder mehrere Iterationen von einer oder mehreren ML-Anwendungen hinweg, darunter ein Aufrufen der Ressourcenzuordnungsaktion auf der Grundlage eines Anwendungsausführungsmusters und eines Ressourcennutzungsmusters, umfasst.
  18. Verfahren nach Anspruch 15, wobei ein Erzeugen des gemeinsamen Profils des Weiteren ein Überwachen und Erfassen von Ressourcennutzungsdaten über eine oder mehrere ML-Routinen und ein Verwenden der überwachten Daten zur Vorhersage einer Zuordnung für eine zukünftige ML-Anwendung aufweist.
  19. Verfahren nach Anspruch 15, wobei ein Erzeugen des gemeinsamen Profils eine oder mehrere Rückruffunktionen verwendet, um eine Anwendungsausführung mit einem oder mehreren anwendungsrelevanten Parametern zu profilieren und um Ressourcennutzungsinformationen zu profilieren.
  20. Verfahren nach Anspruch 19, wobei das erzeugte gemeinsame Profil für eine verteilte ML-Anwendung in einem verteilten Datenverarbeitungssystem erfasst wird.
  21. Verfahren nach Anspruch 15, wobei eine Ermittlung von einem oder mehreren Merkmalen und einer oder mehreren Signaturen für eine Erzeugung eines gemeinsamen Profils und ein Erstellen eines Ausführungsmodells mit einer Benutzereingabe abgeleitet wird.
  22. Computerprogramm, das Programmcode-Mittel aufweist, die so ausgelegt sind, dass sie das Verfahren nach einem der Ansprüche 15 bis 21 durchführen, wenn das Programm auf einem Computer ausgeführt wird.
DE112020005323.7T 2019-12-23 2020-12-14 Elastische ausführung von machine-learning-arbeitslasten unter verwendung einer anwendungsbasierten profilierung Pending DE112020005323T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/724,613 2019-12-23
US16/724,613 US11429434B2 (en) 2019-12-23 2019-12-23 Elastic execution of machine learning workloads using application based profiling
PCT/IB2020/061886 WO2021130596A1 (en) 2019-12-23 2020-12-14 Elastic execution of machine learning workloads using application based profiling

Publications (1)

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

Family

ID=76437475

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020005323.7T Pending DE112020005323T5 (de) 2019-12-23 2020-12-14 Elastische ausführung von machine-learning-arbeitslasten unter verwendung einer anwendungsbasierten profilierung

Country Status (6)

Country Link
US (1) US11429434B2 (de)
JP (1) JP2023508076A (de)
CN (1) CN114667507A (de)
DE (1) DE112020005323T5 (de)
GB (1) GB2605922B (de)
WO (1) WO2021130596A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11947989B2 (en) * 2020-02-14 2024-04-02 SparkCognition, Inc. Process flow for model-based applications
US11605147B2 (en) * 2020-03-27 2023-03-14 Tata Consultancy Services Limited Method and system for tuning graphics processing unit (GPU) parameters of a GPU kernel
US11516311B2 (en) * 2021-01-22 2022-11-29 Avago Technologies International Sales Pte. Limited Distributed machine-learning resource sharing and request routing
US11789774B2 (en) * 2021-02-22 2023-10-17 International Business Machines Corporation Optimization of workload scheduling in a distributed shared resource environment
US20220374327A1 (en) * 2021-04-29 2022-11-24 International Business Machines Corporation Fair simultaneous comparison of parallel machine learning models
US11928518B2 (en) * 2021-08-10 2024-03-12 Kyndryl, Inc. Noisy-neighbor detection and remediation
CN115904740B (zh) * 2023-02-23 2023-05-30 青岛创新奇智科技集团股份有限公司 一种gpu资源调用方法及系统

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560465B2 (en) 2009-07-02 2013-10-15 Samsung Electronics Co., Ltd Execution allocation cost assessment for computing systems and environments including elastic computing systems and environments
US8631458B1 (en) 2011-09-29 2014-01-14 Symantec Corporation Method and apparatus for elastic (re)allocation of enterprise workloads on clouds while minimizing compliance costs
WO2014019980A2 (en) 2012-08-03 2014-02-06 Syddansk Universitet Elastic execution of continuous mapreduce jobs over data streams
US9323577B2 (en) * 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US9760351B2 (en) * 2013-04-02 2017-09-12 Google Inc. Framework for user-directed profile-driven optimizations
US9645848B2 (en) 2013-05-20 2017-05-09 International Business Machines Corporation Scheduling homogeneous and heterogeneous workloads with runtime elasticity in a parallel processing environment
GB2519517A (en) 2013-10-22 2015-04-29 Ibm Managing virtual appliances supporting multiple profiles
CN105095230A (zh) * 2014-04-29 2015-11-25 国际商业机器公司 确定目标数据分析应用的性能预测模型的方法及装置
US9715663B2 (en) * 2014-05-01 2017-07-25 International Business Machines Corporation Predicting application performance on hardware accelerators
US10171313B2 (en) 2015-01-23 2019-01-01 International Business Machines Corporation Managing workload to meet execution criterion in a hybrid cloud environment
US20170017576A1 (en) 2015-07-16 2017-01-19 Qualcomm Incorporated Self-adaptive Cache Architecture Based on Run-time Hardware Counters and Offline Profiling of Applications
US9972063B2 (en) 2015-07-30 2018-05-15 International Business Machines Corporation Pipelined approach to fused kernels for optimization of machine learning workloads on graphical processing units
CA2946775A1 (en) * 2015-10-29 2017-04-29 Subodh Kumar Automated server workload management using machine learning
US11449365B2 (en) 2016-01-04 2022-09-20 Trilio Data Inc. Ubiquitous and elastic workload orchestration architecture of hybrid applications/services on hybrid cloud
US10586173B2 (en) 2016-01-27 2020-03-10 Bonsai AI, Inc. Searchable database of trained artificial intelligence objects that can be reused, reconfigured, and recomposed, into one or more subsequent artificial intelligence models
US10063493B2 (en) 2016-05-16 2018-08-28 International Business Machines Corporation Application-based elastic resource provisioning in disaggregated computing systems
US10140164B2 (en) * 2016-07-25 2018-11-27 Accenture Global Solutions Limited Computer resource allocation to workloads in an information technology environment
US10176550B1 (en) 2017-03-20 2019-01-08 Nutanix, Inc. GPU resource usage display and dynamic GPU resource allocation in a networked virtualization system
US11397887B2 (en) * 2017-09-26 2022-07-26 Amazon Technologies, Inc. Dynamic tuning of training parameters for machine learning algorithms
JP6947981B2 (ja) * 2017-12-21 2021-10-13 富士通株式会社 推定方法、推定装置および推定プログラム
US11200512B2 (en) * 2018-02-21 2021-12-14 International Business Machines Corporation Runtime estimation for machine learning tasks
US11567807B2 (en) 2018-03-30 2023-01-31 EMC IP Holding Company LLC Allocation of shared computing resources using source code feature extraction and machine learning
CN110390387B (zh) * 2018-04-20 2023-07-18 伊姆西Ip控股有限责任公司 对深度学习应用所用资源进行评估
US10452441B1 (en) * 2018-10-15 2019-10-22 Accenture Global Solutions Limited Determining an allocation of computing resources for a job
US20200183936A1 (en) * 2018-12-10 2020-06-11 Teradata Us, Inc. Predictive query parsing time and optimization
US11429895B2 (en) * 2019-04-15 2022-08-30 Oracle International Corporation Predicting machine learning or deep learning model training time

Also Published As

Publication number Publication date
CN114667507A (zh) 2022-06-24
GB2605922A (en) 2022-10-19
GB202209994D0 (en) 2022-08-24
JP2023508076A (ja) 2023-02-28
GB2605922B (en) 2023-04-26
US11429434B2 (en) 2022-08-30
US20210191759A1 (en) 2021-06-24
WO2021130596A1 (en) 2021-07-01

Similar Documents

Publication Publication Date Title
DE112020005323T5 (de) Elastische ausführung von machine-learning-arbeitslasten unter verwendung einer anwendungsbasierten profilierung
DE112020000526T5 (de) System und verfahren zum inkrementellen lernen für eine objekterkennung
DE112018002984T5 (de) Konformitätsbewusste Laufzeiterzeugung auf Grundlage von Anwendungsmustern und Risikobeurteilung
DE112021002820T5 (de) Dynamische automatisierung einer auswahl von pipeline-artefakten
DE112021002572T5 (de) Multikriterielles optimieren von anwendungen
DE112020005095T5 (de) Automatische trennung und extraktion von tabellendaten unter verwendung von maschinellem lernen
DE112021003262T5 (de) Erkennen von quelldatensätzen, die zu einem transferlernverfahren für eine zieldomäne passen
DE112021003908T5 (de) Föderales maschinenlernen durch verwenden von ortsabhängigem hashing
DE112020001774T5 (de) Datensatzabhängiges niedrigrang-zerlegen von neuronalen netzwerken
DE112021003401T5 (de) Schattenexperimente für serverlose multi-tenant-cloud-dienste
DE112021001163T5 (de) Dynamisches erstellen von facetten unter verwendung von graphpartitionierung
DE102021123135A1 (de) Leistungs- und upgrade-verwaltung für anlagegüter mit hilfe von digitalen zwillingen
DE112021004290T5 (de) Gemeinsames nutzen von zwischengespeicherten klassendaten in einer containerisierten umgebung
DE112020000545T5 (de) Deep-forest-modell-entwicklung und -training
DE112021000338T5 (de) Auslagern der statistikerfassung
DE112020005306T5 (de) Implementierung von arbeitslasten in einer multi-cloud-umgebung
DE112021005636T5 (de) Migrieren von komplexen legacy-anwendungen
DE112021005927T5 (de) Patchen von arbeitsabläufen
DE112021003274T5 (de) Ressourcenzuordnung zum optimieren von hyperparametern bei umfangreichen deep-learning-arbeitslasten
DE112021004577T5 (de) Verwalten eines aufgabenablaufs in einer edge-datenverarbeitungsumgebung
DE102021122508A1 (de) Ausgleichen von grossrechner- und verteilten arbeitslasten auf der grundlage von leistung und kosten
DE112018005891T5 (de) Bibliotheks-Screening auf Krebswahrscheinlichkeit
DE112021004234T5 (de) Einsetzen von metalernen zum optimieren der automatischen auswahl von pipelinesdes maschinellen lernens
DE112020004801T5 (de) Intelligenter datenpool
DE112021001974T5 (de) Proaktives durchführen von aufgaben auf der grundlage eines schätzens vonhardwarerekonfigurationszeiten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence