-
HINTERGRUND
-
Die beispielhaften Ausführungsformen betreffen allgemein Pipelines des maschinellen Lernens und insbesondere ein verteiltes, ressourcenbewusstes Training von Pipelines des automatisierten maschinellen Lernens.
-
Automatisiertes maschinelles Lernen umfasst oft ein Trainieren mehrerer Pipelines. Diese Pipelines werden durch Pipeline-Optimierungsstrukturen erzeugt, die verschiedene Transformatoren und Schätzer erforschen und anordnen, um optimale Pipelines zu finden. Das Trainieren dieser Pipelines in einer verteilten Umgebung ist ein anspruchsvolles Problem, weil es unmöglich ist, im Voraus zu wissen, wie viel Zeit und wie viele Ressourcen zum Trainieren einer Pipeline nötig sind. Deshalb können Pipelines aktuell nicht intelligent Arbeitsknoten zugewiesen werden.
-
KURZDARSTELLUNG
-
Die beispielhaften Ausführungsformen offenbaren ein Verfahren, eine Struktur und ein Computersystem für ein Pipeline-Training. Die beispielhaften Ausführungsformen können Empfangen eines oder mehrerer Arbeitsknotenmerkmale von einem oder mehreren Arbeitsknoten, Extrahieren eines oder mehrerer Pipeline-Merkmale von einer oder mehreren zu trainierenden Pipelines und Extrahieren eines oder mehrerer Datensatzmerkmale von einem oder mehreren Datensätzen, die zum Trainieren der einen oder mehrerer Pipelines dienen, umfassen. Die beispielhaften Ausführungsformen können ferner Vorhersagen einer Menge von einer oder mehreren Ressourcen umfassen, die für jeden des einen oder mehrerer Arbeitsknoten erforderlich sind, um die eine oder mehreren Pipelines anhand des einen oder mehrerer Datensätze auf Grundlage eines oder mehrerer Modelle, die das eine oder mehrere Arbeitsknotenmerkmale, das eine oder mehrere Pipeline-Merkmale und das eine oder mehrere Datensatzmerkmale korrelieren, mit der einen oder mehreren Ressourcen zu trainieren. Schließlich können die beispielhaften Ausführungsformen Erkennen eines Arbeitsknotens umfassen, der eine geringste Menge der einen oder mehrerer Ressourcen des einen oder mehrerer Arbeitsknoten zum Trainieren der einen oder mehrerer Pipelines erfordert.
-
Figurenliste
-
Die folgende detaillierte Beschreibung, die beispielhaft gegeben wird und die beispielhaften Ausführungsformen nicht nur darauf beschränken sollen, wird am besten in Verbindung mit den begleitenden Zeichnungen verstanden. Dabei gilt:
- 1 stellt ein beispielhaftes schematisches Schaubild eines Pipeline-Trainingssystems 100 gemäß den beispielhaften Ausführungsformen dar.
- 2 stellt einen beispielhaften Ablaufplan 200, der die Operationen eines gemeinsamen Optimierers 132 des Pipeline-Trainingssystem 100 veranschaulicht, gemäß den beispielhaften Ausführungsformen dar.
- 3 stellt ein Beispiel, das die Operationen des gemeinsamen Optimierers 132 des Pipeline-Trainingssystem 100 veranschaulicht, gemäß den beispielhaften Ausführungsformen dar.
- 4 stellt ein beispielhaftes Blockschaubild, das die Hardware-Komponenten des Pipeline-Trainingssystems 100 von 1 darstellt, gemäß den beispielhaften Ausführungsformen dar.
- 5 stellt eine Cloud-Computing-Umgebung gemäß den beispielhaften Ausführungsformen dar.
- 6 stellt Schichten eines Abstraktionsmodells gemäß den beispielhaften Ausführungsformen dar.
-
Die Zeichnungen sind nicht unbedingt maßstabsgerecht. Die Zeichnungen sind nur schematische Darstellungen, die nicht bestimmte Parameter der beispielhaften Ausführungsformen darstellen sollen. Die Zeichnungen sollen nur typische beispielhafte Ausführungsformen darstellen. In den Zeichnungen stellt eine gleiche Nummerierung gleiche Elemente dar.
-
DETAILLIERTE BESCHREIBUNG DER MEHREREN ANSICHTEN DER ZEICHNUNGEN
-
Hierin sind detaillierte Ausführungsformen der beanspruchten Strukturen und Verfahren offenbart; jedoch versteht es sich, dass die offenbarten Ausführungsformen nur veranschaulichend für die beanspruchten Strukturen und Verfahren stehen, die in verschiedenen Formen verkörpert sein können. Die beispielhaften Ausführungsformen sind nur veranschaulichend und können jedoch in verschiedenen Formen verkörpert sein und sind nicht als auf die hier dargelegten beispielhaften Ausführungsformen beschränkt auszulegen. Vielmehr werden diese beispielhaften Ausführungsformen bereitgestellt, so dass diese Offenbarung gründlich und vollständig ist und dem Fachmann den abzudeckenden Umfang durch die beispielhaften Ausführungsformen vollständig vermittelt. In der Beschreibung können Einzelheiten bekannter Merkmale und Techniken weggelassen werden, um ein unnötiges Verunklaren der vorgestellten Ausführungsformen zu vermeiden.
-
Bezugnahmen in der Beschreibung auf „eine einzige Ausführungsform“, „eine Ausführungsform“, „eine beispielhafte Ausführungsform“ usw. geben an, dass die beschriebene Ausführungsform ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft umfassen kann, aber möglicherweise nicht jede Ausführungsform das bestimmte Merkmal, die bestimmte Struktur oder Eigenschaft umfasst. Darüber hinaus beziehen sich solche Formulierungen nicht unbedingt auf dieselbe Ausführungsform. Wenn ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft in Verbindung mit einer Ausführungsform beschrieben ist, wird ferner geltend gemacht, dass es im Wissen eines Fachmanns liegt, ein solches Merkmal, eine solche Struktur oder Eigenschaft in Verbindung mit anderen Ausführungsformen zu realisieren, ob sie nun explizit beschrieben sind oder nicht.
-
In dem Interesse, die Präsentation der beispielhaften Ausführungsformen in der folgenden detaillierten Beschreibung nicht zu verunklaren, können einige Verarbeitungsschritte oder Vorgänge, die in der Technik bekannt sind, für die Präsentation und für Veranschaulichungszwecke miteinander kombiniert und in manchen Fällen nicht im Detail beschrieben sein. In anderen Fällen können einige Verarbeitungsschritte oder Vorgänge, die in der Technik bekannt sind, überhaupt nicht beschrieben sein. Es versteht sich, dass die folgende Beschreibung den Schwerpunkt auf die unterscheidbaren Merkmale oder Elemente gemäß den verschiedenen beispielhaften Ausführungsformen legt.
-
Automatisiertes maschinelles Lernen umfasst oft das Trainieren mehrerer Pipelines. Diese Pipelines werden durch Pipeline-Optimierungsstrukturen erzeugt, die verschiedene Transformatoren und Schätzer erforschen und anordnen, um optimale Pipelines zu finden. Das Trainieren dieser Pipelines in einer verteilten Umgebung ist ein anspruchsvolles Problem, weil es unmöglich ist, im Voraus zu wissen, wie viel Zeit und wie viele Ressourcen zum Trainieren einer Pipeline nötig sind. Deshalb können Pipelines aktuell nicht intelligent Arbeitsknoten zugewiesen werden.
-
Bei einer Pipeline des maschinellen Lernens handelt es sich um eine Reihe von Operationen (wie etwa Datenvorverarbeitung, Ausreißererkennung, Feature Engineering usw.), gefolgt von einem Schätzer. Solche Pipelines können durch einen als gemeinsamer Optimierer bekannten Algorithmus verwaltet werden, der verantwortlich ist für: 1) Zusammenstellen verschiedener Pipelines; 2) Trainieren jeder einzelnen der zusammengestellten Pipelines mithilfe einer Kreuzvalidierung; 3) Analysieren der Ergebnisse; und 4) Entscheiden, welche Pipelines als nächste auszuführen sind. Der gemeinsame Optimierer kann den Prozess fortsetzen, bis er die beste Pipeline findet. Von den Aufgaben, die durch einen gemeinsamen Optimierer ausgeführt werden, ist das Trainieren jeder der zusammengestellten Pipelines mithilfe der Kreuzvalidierung der rechentechnisch anspruchsvollste Schritt sowie der Schwerpunkt der hierin beanspruchten Erfindung, die ein neuartiges Verfahren eines ressourcenbewussten Trainings von Pipelines des maschinellen Lernens offenbart.
-
Zum Trainieren von Pipelines gibt es Verfahren, jedoch hat jede Technik jeweilige Nachteile. Beispielsweise werden beim aktuellen System AutoAl® (AutoAl ist eine eingetragene Marke der IBM Corp.) alle zusammengestellten Pipelines auf einem einzigen Arbeitsknoten ausgeführt. In einem anderen Beispiel nutzen Rucksack-/ Behälterpacktechniken die Länge der Pipeline zur Quantifizierung der Pipeline. Alternativ packen gierige, Behälter packende Näherungsalgorithmen, z.B. First-Fit-Behälterpacken, Elemente verschiedener Volumina in eine endliche Anzahl von Behältern oder Containern mit einem jeweils bestimmten festgelegten Volumen auf eine Weise, die die Anzahl der verwendeten Behälter reduziert. Es gibt zusätzlich die Rundlauftechnik (round robin), bei der Pipelines in einer bestimmten, sich wiederholenden Reihenfolge verteilt werden.
-
Es gibt jedoch mehrere Probleme mit den vorstehenden Ansätzen. Erstens wird dabei nicht geschätzt, wieviel Zeit ein bestimmtes Pipeline-Training benötigt, da verschiedene Algorithmen des maschinellen Lernens unterschiedliche Komplexitäten aufweisen. Zweitens berücksichtigt eine Technik wie der Rundlauf nicht, wie ausgelastet die Maschinen sind und ob sie in der Lage sind, das Training der bestimmten Pipeline zu bewältigen.
-
Die hierin beanspruchte Erfindung behebt die Mängel der vorherigen Ansätze, indem sie einen datengesteuerten Ansatz verwendet, der die frühere Leistungsfähigkeit betrachtet und ein Vorhersagemodell des Pipeline-Trainings aufbaut. Insbesondere kann die beanspruchte Erfindung die Ressourcenanforderungen für das Trainieren einer Pipeline vorhersagen und lernt kontinuierlich, die Vorhersagen anhand von Daten vorheriger Ausführungen der Pipeline zu verbessern.
-
1 stellt das Pipeline-Trainingssystem 100 gemäß beispielhaften Ausführungsformen dar. Gemäß den beispielhaften Ausführungsformen kann das Pipeline-Trainingssystem 100 einen oder mehrere Arbeitsknoten 120A bis K und einen Pipeline-Trainingsserver 130 umfassen, die alle über ein Netzwerk 108 miteinander verbunden sein können. Während die Programmierung und Daten der beispielhaften Ausführungsformen gespeichert sein können und über mehrere Server hinweg über das Netzwerk 108 entfernt darauf zugegriffen werden kann, können die Programmierung und Daten der beispielhaften Ausführungsformen alternativ oder zusätzlich lokal auf nur einer physischen Datenverarbeitungseinheit oder auf anderen Datenverarbeitungseinheiten als den dargestellten gespeichert sein.
-
Bei den beispielhaften Ausführungsformen kann es sich bei dem Netzwerk 108 um einen Datenübertragungskanal handeln, der dazu fähig ist, Daten zwischen angeschlossenen Einheiten zu übertragen. Bei den beispielhaften Ausführungsformen kann es sich bei dem Netzwerk 108 um das Internet handeln, das einen weltweiten Bestand von Netzwerken und Gateways zur Unterstützung von Datenübertragungen zwischen mit dem Internet verbundenen Einheiten darstellt. Darüber hinaus kann das Netzwerk 108 verschiedenen Arten von Verbindungen nutzen, wie etwa drahtgebundene, drahtlose, Lichtwellenleiter usw., die als ein Intranet-Netzwerk, ein lokales Netzwerk (LAN), ein Weitverkehrsnetz (WAN) oder eine Kombination daraus realisiert sein können. Bei weiteren Ausführungsformen kann es sich bei dem Netzwerk 108 um ein Bluetooth-Netzwerk, ein WLAN-Netzwerk oder eine Kombination daraus handeln. Das Netzwerk 108 kann in Frequenzen betrieben werden, zu denen 2,4-GHz- und 5-GHz-Internet, Nahfeldkommunikation, Z-Wave, Zigbee usw. gehören. Bei noch weiteren Ausführungsformen kann es sich bei dem Netzwerk 108 um ein Telekommunikationsnetz handeln, das zum Ermöglichen von Telefonanrufen zwischen zwei oder mehr Parteien dient und ein Festnetz, ein Drahtlosnetz, ein geschlossenes Netzwerk, ein Satellitennetz oder eine Kombination daraus aufweist. Im Allgemeinen kann das Netzwerk 108 eine beliebige Kombination aus Verbindungen und Protokollen darstellen, die Datenübertragungen zwischen angeschlossenen Einheiten unterstützen.
-
Bei beispielhaften Ausführungsformen kann es sich bei dem einen oder mehreren Arbeitsknoten 120A bis K jeweils um einen Unternehmensserver, einen Laptop-Computer, ein Notebook, einen Tablet-Computer, einen Netbook-Computer, einen Personal Computer (PC), einen Desktop-Computer, einen Server, einen persönlichen digitalen Assistenten (PDA), ein Wählscheibentelefon, ein Wähltastentelefon, ein Smartphone, ein Mobiltelefon, eine virtuelle Einheit, einen Thin-Client, eine IoT-Einheit oder eine beliebige andere elektronische Einheit oder ein beliebiges anderes Datenverarbeitungssystem handeln, das, der oder die dazu fähig ist, Daten von anderen Datenverarbeitungssystemen zu empfangen bzw. zu diesen zu senden. Jeder des einen oder mehrerer Arbeitsknoten 120A bis K kann so konfiguriert sein, dass er eine oder mehrere Pipelines des maschinellen Lernens trainiert. Bei der beispielhaften Ausführungsform wird davon ausgegangen, dass jeder des einen oder mehrerer Arbeitsknoten 120A bis K Zugriff auf ein und denselben Datensatz hat und jede Pipeline auf einem einzigen Arbeitsknoten 120 des einen oder mehrerer Arbeitsknoten 120A bis K trainiert wird. Der eine oder mehrere Arbeitsknoten 120A bis K werden unter Bezugnahme auf 4 als Hardware-Realisierung, unter Bezugnahme auf 5 als Teil einer Cloud-Realisierung und/oder unter Bezugnahme auf 6 als für die Verarbeitung funktionale Abstraktionsschichten nutzend ausführlicher beschrieben.
-
Bei beispielhaften Ausführungsformen umfasst der Pipeline-Trainingsserver 130 einen gemeinsamen Optimierer 132, eine Leistungsfähigkeitsvorhersageeinheit 134 und eine Lastenausgleichseinheit 136. Bei dem Pipeline-Trainingsserver 130 kann es sich um einen Unternehmensserver, einen Laptop-Computer, ein Notebook, einen Tablet-Computer, einen Netbook-Computer, einen Personal Computer (PC), einen Desktop-Computer, einen Server, einen persönlichen digitalen Assistenten (PDA), ein Wählscheibentelefon, ein Wähltastentelefon, ein Smartphone, ein Mobiltelefon, eine virtuelle Einheit, einen Thin-Client, eine loT-Einheit oder eine beliebige andere elektronische Einheit oder ein beliebiges anderes Datenverarbeitungssystem handeln, das, der oder die dazu fähig ist, Daten von anderen Datenverarbeitungssystemen zu empfangen bzw. zu diesen zu senden. Zwar ist der Pipeline-Trainingsserver 130 als eine einzelne Einheit gezeigt, aber bei anderen Ausführungsformen kann der Pipeline-Trainingsserver 130 modular aus einem Cluster oder einer Vielzahl von Datenverarbeitungseinheiten usw. bestehen, die zusammen oder unabhängig arbeiten. Der Pipeline-Trainingsserver 130 wird unter Bezugnahme auf 4 als Hardware-Realisierung, unter Bezugnahme auf 5 als Teil einer Cloud-Realisierung und/oder unter Bezugnahme auf 6 als für die Verarbeitung funktionale Abstraktionsschichten nutzend detaillierter beschrieben.
-
Bei Ausführungsformen kann es sich bei dem gemeinsamen Optimierer 132 um ein Software- und/oder Hardware-Programm handeln, das dazu fähig ist, verschiedene Pipelines zusammenzustellen, jede der zusammengestellten Pipelines durch Kreuzvalidierung zu trainieren, die Ergebnisse zu analysieren und zu entscheiden, welche der Pipelines als nächste auszuführen ist. Insbesondere und im Hinblick auf das Trainieren jeder der zusammengestellten Pipelines durch Kreuzvalidierung kann der gemeinsame Optimierer 132 ferner dazu fähig sein, Aktivitätsmerkmale (heartbeat features) des einen oder mehrerer Arbeitsknoten zu empfangen und ein oder mehrere Pipeline-Merkmale und ein oder mehrere Datensatzmerkmale zu extrahieren. Der gemeinsame Optimierer 132 kann ferner dazu fähig sein, erforderliche Pipeline-Trainingsressourcen vorherzusagen, indem er ein oder mehrere Modelle erzeugt und einen oder mehrere darauf beruhende Arbeitsknoten auswählt. Schließlich kann der gemeinsame Optimierer 132 dazu fähig sein, die Modelle auf Grundlage einer Rückkopplungsschleife anzupassen. Der gemeinsame Optimierer 132 wird unter Bezugnahme auf 2 bis 6 detaillierter beschrieben.
-
Bei der Leistungsfähigkeitsvorhersageeinheit 134 kann es sich um ein Software- und/oder Hardware-Programm handeln, das dazu fähig ist, eine Menge von Ressourcen vorherzusagen, die zum Trainieren einer Pipeline erforderlich sind, z.B. die erforderliche Zeit. Die Leistungsfähigkeitsvorhersageeinheit 134 wird unter Bezugnahme auf 2 bis 6 detaillierter beschrieben.
-
Bei der Lastenausgleichseinheit 136 kann es sich um ein Software- und/oder Hardware-Programm handeln, das dazu fähig ist, einen Satz von Aufgaben mit dem Ziel, ihre Gesamtverarbeitung effizienter zu gestalten, auf einen Satz von Ressourcen zu verteilen. Die Leistungsfähigkeitsvorhersageeinheit 134 wird unter Bezugnahme auf 2 bis 6 detaillierter beschrieben.
-
2 stellt einen beispielhaften Ablaufplan 200, der die Operationen eines gemeinsamen Optimierers 132 des Pipeline-Trainingssystem 100 veranschaulicht, gemäß den beispielhaften Ausführungsformen dar. In der folgenden detaillierten Beschreibung wird davon ausgegangen, dass jeder des einen oder mehrerer Arbeitsknoten 120A bis K Zugriff auf den Datensatz hat und eine beliebige Pipeline trainieren kann. Zwar wird nur auf einen Datensatz Bezug genommen, doch ist für den Fachmann ersichtlich, dass die beanspruchte Erfindung auf eine beliebige Anzahl von Datensätzen anwendbar ist.
-
Die Leistungsfähigkeitsvorhersageeinheit 134 kann Aktivitätsmerkmale von dem einen oder mehreren Arbeitsknoten 120A bis K empfangen (Schritt 202). Bei Ausführungsformen quantifizieren die Aktivitätsmerkmale eine Auslastung und Leistung jedes der Arbeitsknoten 120A bis K und können aus Arbeitsknoten extrahierte Merkmale aufweisen wie etwa eine Anzahl darin befindlicher CPUs und Kerne, eine Anzahl darin befindlicher GPUs und Kerne, eine CPU- und GPU-Auslastung, eine Nutzung des Speichers und Swap-Speichers der CPU und GPU und Ausgaben der Befehle vmstat und iostat. Bei der beispielhaften Ausführungsform können die Aktivitätsmerkmale von der Lastenausgleichseinheit 136 des gemeinsamen Optimierers 132 in vordefinierten Intervallen über das Netzwerk 108 empfangen werden. Wenn der gemeinsame Optimierer 132 jedoch keine Aktivitätsmerkmale von einem des einen oder mehrerer Arbeitsknoten 120A bis K empfängt, markiert der gemeinsame Optimierer 132 den einen oder mehrere nicht ansprechbare Arbeitsknoten 120A bis K als nicht ansprechbar und setzt die Trainingsvorhersagen dafür aus, bis die Aktivitätsmerkmale wieder empfangen werden. Bei Ausführungsformen kann es sein, dass der gemeinsame Optimierer 132 ein Modell trainiert, um auf Grundlage der hierin erfassten Aktivitätsmerkmale zusammen mit Pipeline-Merkmalen und Datensatz-Merkmalen, die nachstehend beschrieben werden, zu bestimmen, welcher der Arbeitsknoten 120A bis K die Pipeline mit einer geringsten Menge von Ressourcen trainiert.
-
Um die Operationen des gemeinsamen Optimierers 132 besser zu veranschaulichen, wird nun auf ein in 3 dargestelltes veranschaulichendes Beispiel Bezug genommen, wobei der gemeinsame Optimierer 132 so konfiguriert ist, dass er zwei Pipelines : 1) Hauptkomponentenanalyse (principal component analysis, PCA) zu Random Forest (RF); und 2) Ausreißererkennung (outlier detection OD) zu Support Vector Machine (SVM) auf einem beliebigen der vier Arbeitsknoten 120A, 120B, 120C und 120D trainiert. Der gemeinsame Optimierer 132 empfängt die jeweiligen Aktivitätsmerkmale H1, H2, H3 und H4, die eine Anzahl darin befindlicher CPUs und Kerne, eine Anzahl darin befindlicher GPUs und Kerne, die CPU- und GPU-Auslastung, die Nutzung von CPU- und GPU-Speicher und Swap-Speicher und die Ausgaben der Befehle vmstat und iostat umfassen.
-
Der gemeinsame Optimierer 132 kann Pipeline-Merkmale extrahieren (Schritt 204). Bei Ausführungsformen können die Pipeline-Merkmale den Schätzertyp, den Vorprozessortyp, den Feature-Engineering-Typ und deren Parametereinstellungen umfassen, und der gemeinsame Optimierer 132 kann Pipeline-Merkmale über die Leistungsfähigkeitsvorhersageeinheit 134 extrahieren, indem er eine spärliche Codierung der einen oder mehreren Pipelines vornimmt, die trainiert werden sollen. Insbesondere kann der gemeinsame Optimierer 132 die Eingabe genutzter Transformatoren und Schätzer auf 1 setzen, während ungenutzte Transformatoren und Schätzer auf 0 gesetzt werden. Der gemeinsame Optimierer 132 kann ferner Parameter jeder der einzelnen Pipeline-Komponenten codieren, um eine codierte Version der Pipeline zu erstellen. Wie oben beschrieben, kann der gemeinsame Optimierer 132 die Pipeline-Merkmale zusammen mit den Aktivitätsmerkmalen und den Datensatzmerkmalen nutzen, um ein oder mehrere Modelle aufzubauen, die dazu fähig sind, vorherzusagen, welcher der Arbeitsknoten 120A bis K eine Pipeline mit der geringsten Menge von Ressourcen trainieren kann.
-
Zum oben vorgestellten veranschaulichenden Beispiel, das durch 3 dargestellt ist, zurückkehrend, extrahiert der gemeinsame Optimierer 132 die Merkmale des Schätzertyps, des Vorprozessortyps, des Feature-Engineering-Typs und deren Parametereinstellungen aus der oben beschriebenen ersten und zweiten Pipeline.
-
Der gemeinsame Optimierer 132 kann ein oder mehrere Datensatzmerkmale extrahieren (Schritt 206). Bei Ausführungsformen erfassen die Datensatzmerkmale verschiedene übergeordnete Dimensionen des Datensatzes, und die extrahierten Datensatzmerkmale können eine Anzahl von Datenpunkten, eine Anzahl von Merkmalen, eine Anzahl von Kreuzvalidierungsfalten, eine Anzahl von Merkmalen mit kategorialen Werten, eine Anzahl von Merkmalen mit reellen Werten, eine Anzahl fehlender Werte und eine Anzahl spärlicher Werte umfassen. Wie oben beschrieben, kann der gemeinsame Optimierer 132 die Datensatzmerkmale zusammen mit den Aktivitätsmerkmalen und den Pipeline-Merkmalen nutzen, um ein oder mehrere Modelle aufzubauen, die dazu fähig sind, vorherzusagen, welcher der Arbeitsknoten 120A bis K eine Pipelines mit der geringsten Menge von Ressourcen trainieren kann.
-
In Fortsetzung des zuvor vorgestellten Beispiels, das durch 3 veranschaulicht wird, kann der gemeinsame Optimierer 132 aus dem Datensatz Datensatzmerkmale extrahieren, die eine Anzahl von Datenpunkten, eine Anzahl von Merkmalen, eine Anzahl von Kreuzvalidierungsfalten, eine Anzahl von Merkmalen mit kategorialen Werten, eine Anzahl von Merkmalen mit reellen Werten, eine Anzahl fehlender Werte und eine Anzahl spärlicher Merkmale aus dem Datensatz umfassen.
-
Der gemeinsame Optimierer 132 kann erforderliche Pipeline-Trainingsressourcen vorhersagen (Schritt 208). Bei Ausführungsformen kann der gemeinsame Optimierer 132 über die Leistungsfähigkeitsvorhersageeinheit 134 erforderliche Leistungsfähigkeitsmaße für jeden des einen oder mehrerer Arbeitsknoten 120A bis K zum Trainieren einer jeweiligen Pipeline vorhersagen. Zu solchen erforderlichen Leistungsfähigkeitsmaßen können die Zeit, der Energieverbrauch, die Spitzennutzung des Speichers, die Spitzenauslastung der CPU usw. gehören. Bei Ausführungsformen kann der gemeinsame Optimierer 132 die erforderlichen Pipeline-Trainingsressourcen mithilfe eines maschinellen Lernmodells oder Tiefenlernmodells vorhersagen. Bei solchen Ausführungsformen kann der gemeinsame Optimierer 132 als Eingaben die Pipeline-Merkmale, die Datensatzmerkmale und die Aktivitätsmerkmale empfangen, auf deren Grundlage mit einem Algorithmus wie etwa Random Forest, GBM, logistischer Regression, tiefen neuronalen Netzen und Autocodierern ein Modell trainiert wird. Das Modell erfasst, wie jedes der oben genannten Merkmale eine Menge von Ressourcen beeinflusst, die für jeden der Arbeitsknoten 120A bis K zum Trainieren einer Pipeline erforderlich ist. Sobald das Modell trainiert ist, ist der gemeinsame Optimierer 132 dazu fähig, das trainierte Modell auf einen neuen Satz von Aktivitätsmerkmalen, Pipeline-Merkmalen und Datensatzmerkmalen anzuwenden, um die vorhergesagten Leistungsfähigkeitsmaße für jeden Arbeitsknoten für das Trainieren einer Pipeline auszugeben. Der gemeinsame Optimierer 132 kann dann die Modelle auf Grundlage des Vergleichens der vorhergesagten Leistungsfähigkeitsmaße mit den tatsächlichen Leistungsfähigkeitsmaßen verfeinern, wie es im Folgenden detaillierter beschrieben wird.
-
In Weiterführung des vorhin vorgestellten Beispiels, das durch 3 veranschaulicht ist, sagt der gemeinsame Optimierer 132 vorher, dass die Arbeitsknoten 120A bis D die erste Pipeline in A, B, C bzw. D Minuten und die zweite Pipeline in W, X, Y bzw. Z Minuten trainieren kann. Der gemeinsame Optimierer 1332 kann ferner die Spitzennutzung der CPU usw. vorhersagen.
-
Der gemeinsame Optimierer 132 kann Arbeitsknoten auswählen (Schritt 210). Bei Ausführungsformen kann der gemeinsame Optimierer 132 mindestens einen des einen oder mehrerer Arbeitsknoten 120A bis K auswählen, um die Pipeline auf Grundlage der vorhergesagten erforderlichen Pipeline-Trainingsressourcen auszuführen. Bei Ausführungsformen kann der gemeinsame Optimierer 132 den einen oder mehrere Arbeitsknoten 120A bis K auf Grundlage eines ε-Greedy-Problemansatzes bzw. Problemansatzes des mehrarmigen Banditen auswählen. Bei einem ε-Greedy- oder Epsilon-Greedy-Ansatz wählt der gemeinsame Optimierer 132 den vorhergesagten besten Arbeitsknoten 120A bis K mit der Wahrscheinlichkeit (1- ε) und einen zufälligen Arbeitsknoten 120A bis K mit der Wahrscheinlichkeit ε aus. Beispielsweise kann der gemeinsame Optimierer 132 dann die vorhergesagten besten drei Arbeitsknoten (1 - ε), auswählen, wobei ε zwischen 0,05 und 0,1 gesetzt ist, und drei zufällige Arbeitsknoten mit der Wahrscheinlichkeit ε auswählen. In den meisten Fällen wählt der gemeinsame Optimierer 132 den vorhergesagten besten Arbeitsknoten 120A bis K aus, jedoch besteht eine kleine Chance, dass der gemeinsame Optimierer den zufälligen Arbeitsknoten 120A bis K auswählt. Bei einem Ansatz entsprechend dem mehrarmigen Banditen kann der gemeinsame Optimierer 132 das Modell trainieren, indem er zuerst drei zufällige Arbeitsknoten auswählt und eine Pipeline über n Iterationen ausführt, z.B. n=1000. Sobald der gemeinsame Optimierer 132 genügend Bewertungen vorgenommen hat, um einen leistungsfähigsten Arbeitsknoten 120A bis K zu erkennen, kann der gemeinsame Optimierer 132 dann alle Pipelines an den leistungsfähigsten Arbeitsknoten 120A bis K senden. Wenn der gemeinsame Optimierer feststellt, dass sich die Leistungsfähigkeit des leistungsfähigsten Arbeitsknotens 120A bis K infolgedessen verschlechtert, kann der gemeinsame Optimierer 132 dann wieder zurückkehren und einen leistungsfähigsten Arbeitsknoten 120A bis K erkennen und den Prozess wiederholen.
-
Mit Bezug auf das zuvor vorgestellte Beispiel wählt der gemeinsame Optimierer 132 den Arbeitsknoten 120A zum Trainieren der ersten Pipeline und den Arbeitsknoten 120B zum Trainieren der zweiten Pipeline aus.
-
Der gemeinsame Optimierer 132 kann Modelle auf Grundlage einer Rückkopplungsschleife anpassen (Schritt 212). Bei Ausführungsformen kann der gemeinsame Optimierer 132 Modelle anpassen, indem er einen Verlust nach dem Training einer oder mehrerer Pipelines durch den einen oder mehrere Arbeitsknoten 120A bis K feststellt. Insbesondere kann der gemeinsame Optimierer 132 die vorhergesagten erforderlichen Pipeline-Trainingsressourcen und die tatsächlich verbrauchten Pipeline-Trainingsressourcen empfangen, dann den Verlust auf Grundlage von Gl. 1 ausgeben:
-
Der gemeinsame Optimierer 132 kann dann den Verlust mittels Gradientenabstieg zurückpropagieren.
-
Zum Abschluss des oben genannten Beispiels, das durch 3 dargestellt wird, passt der gemeinsame Optimierer 132 Modelle auf Grundlage des Erkennens eines Verlusts an, wenn der Arbeitsknoten 120A die erste Pipeline und der Arbeitsknoten 120B die zweite Pipeline trainiert hat.
-
Wesentliche Merkmale der beanspruchten Erfindung sind u.a. eine verbesserte Leistungsfähigkeit im Zeitverlauf durch Rückpropagation des Verlusts, Erzeugen einer Vielfalt von Trainingsdaten durch einen Ansatz entsprechend dem mehrarmigen Banditen und Nutzung eines Random-Forest-Systems, das kontinuierlich vorhersagt, Trainingsdaten sammelt, lernt und besser vorhersagt.
-
Für den Fachmann ist ersichtlich, dass die oben genannte Erfindung auf den Gebieten beispielsweise des automatisierten maschinellen Lernens und der künstlichen Intelligenz, des verteilten Pipeline-Trainings, der schnellen und kontinuierlichen gemeinsamen Optimierung einer datenwissenschaftlichen Pipeline und des Lastenausgleichs von Trainings-Pipelines des maschinellen Lernens realisiert werden können. Das beanspruchte System kann beispielsweise in einer Kubernetes- und Docker-Plattform realisiert werden, wobei der eine oder mehrere Arbeitsknoten 120A bis K Docker-Container sind, und Aktivitätsmerkmale können mithilfe von kubectl gewonnen werden. Außerdem können das maschinelle Lernmodell/Tiefenlernmodell und ε-Greedy-Modelle auf einem primären Computer oder als Mikrodienst im Cluster ausgeführt werden. Darüber hinaus kann das System mit dem AutoScaler oder durch manuelles Erstellen von Pods skaliert werden, wobei die Ausgabe des ML/DL-Modells verwendet wird, und die Container können die Ausgabe jedes Pipeline-Trainings in einen gemeinsam genutzten Cloud- oder Netzwerkspeicher schreiben, so dass die Modelle Daten aus dem Speicher holen und ihre Verluste mittels Gradientenabstieg verarbeiten.
-
3 stellt ein Beispiel, das die Operationen des gemeinsamen Optimierers 132 des Pipeline-Trainingssystem 100 veranschaulicht, gemäß den beispielhaften Ausführungsformen dar.
-
4 stellt ein Blockschaubild von Einheiten innerhalb des Pipeline-Trainingssystems 100 von 1 gemäß den beispielhaften Ausführungsformen dar. Es sollte ersichtlich sein, dass 4 nur eine Veranschaulichung einer Realisierung bereitstellt und keine Einschränkungen hinsichtlich der Umgebungen andeutet, in denen verschiedene Ausführungsformen realisiert sein können. An der dargestellten Umgebung können viele Modifikationen vorgenommen werden.
-
Bei den hierin verwendeten Einheiten kann es sich unter anderem um einen oder mehrere Prozessoren 02, einen oder mehrere durch einen Computer lesbare RAMs 04, einen oder mehrere durch einen Computer lesbare ROMs 06, ein oder mehrere durch einen Computer lesbare Speichermedien 08, Einheitentreiber 12, ein Lese-/Schreib-Laufwerk bzw. eine -schnittstelle 14, einen Netzwerkadapter bzw. eine -schnittstelle 16 handeln, die alle über eine Datenübertragungsstruktur 18 verbunden sind. Die Datenübertragungsstruktur 18 kann mit einer beliebigen Architektur realisiert sein, die für eine Weitergabe von Daten und/oder Steuerungsinformationen zwischen Prozessoren (wie etwa Mikroprozessoren, Datenübertragungs- und Netzwerkprozessoren usw.), dem Systemspeicher, peripheren Einheiten und beliebigen anderen Hardwarekomponenten innerhalb eines Systems ausgelegt ist.
-
Ein oder mehrere Betriebssysteme 10 und eine oder mehrere Anwendungsprogramme 11 sind auf einem oder mehreren der durch einen Computer lesbaren Speichermedien 08 zur Ausführung durch einen oder mehrere der Prozessoren 02 über einen oder mehrere der jeweiligen RAMs 04 gespeichert (die typischerweise einen Cache-Speicher enthalten). Bei der veranschaulichten Ausführungsform kann es sich bei jedem der durch einen Computer lesbaren Speichermedien 08 um eine magnetische Plattenspeichereinheit eines internen Festplattenlaufwerks, eine CD-ROM, eine DVD, einen Speicherstick, ein Magnetband, eine magnetische Platte, eine optische Platte, eine Halbleiter-Speichereinheit wie etwa RAM, ROM, EPROM, Flash-Speicher oder eine beliebige andere durch einen Computer lesbare materielle Speichereinheit handeln, die ein Computerprogramm und digitale Informationen speichern kann.
-
Hierin verwendete Einheiten können unter anderem ein Schreib-/Lese-Laufwerk bzw. eine -schnittstelle 14 umfassen, um eines oder mehrere tragbare durch einen Computer lesbare Speichermedien 26 zu lesen oder zu beschreiben. Auf einem oder mehreren der tragbaren durch einen Computer lesbaren Speichermedien 26 können Anwendungsprogramme 11 gespeichert sein, über das jeweilige Schreib-/Leselaufwerk bzw. die -schnittstelle 14 gelesen werden und in das jeweilige durch einen Computer lesbare Speichermedium 08 geladen werden.
-
Hierin verwendete Einheiten können unter anderem einen Netzwerkadapter bzw. eine -schnittstelle 16 umfassen, wie etwa eine TCP/IP-Adapterkarte oder einen drahtlosen Datenübertragungsadapter (wie etwa einen drahtlosen 4G-Datenübertragungsadapter unter Verwendung der Technologie OFDMA). Die Anwendungsprogramme 11 auf den Datenverarbeitungseinheiten können von einem externen Computer oder einer externen Speichereinheit über ein Netzwerk (beispielsweise das Internet, ein lokales Netzwerk oder ein anderes Weitverkehrsnetz oder Drahtlosnetz) und den Netzwerkadapter bzw. die -schnittstelle 16 auf die Datenverarbeitungseinheit heruntergeladen werden. Von dem Netzwerkadapter bzw. der-schnittstelle 16 können die Programme auf ein durch einen Computer lesbares Speichermedium 08 geladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen.
-
Hierin verwendete Einheiten können auch einen Anzeigebildschirm 20, eine Tastatur oder ein Tastenfeld 22 und eine Computermaus oder ein Touchpad 24 umfassen. Die Einheitentreiber 12 bilden eine Schnittstelle zum Anzeigebildschirm 20 für die Bildgebung, zu der Tastatur oder dem Tastenfeld 22, zu der Computermaus oder dem Touchpad 24 und/oder zum Anzeigebildschirm 20 für eine Druckerfassung der Eingabe alphanumerischer Zeichen und Benutzerauswahlen. Die Einheitentreiber 12, das Schreib-/ Leselaufwerk bzw. die -schnittstelle 14 und der Netzwerkadapter bzw. die -schnittstelle 16 können Hardware und Software aufweisen (gespeichert in von einem Computer lesbaren Speichermedien 08 und/oder dem ROM 06).
-
Die hierin beschriebenen Programme werden auf Grundlage der Anwendung bezeichnet, für die sie in einer bestimmten der beispielhaften Ausführungsformen umgesetzt sind. Es sollte jedoch ersichtlich sein, dass jegliche bestimmte Programmnomenklatur hierin nur der Zweckmäßigkeit halber verwendet wird und somit die beispielhaften Ausführungsformen nicht einzig auf eine bestimmte Anwendung, die durch eine solche Nomenklatur bezeichnet und/oder impliziert ist, beschränkt sein sollen.
-
Auf Grundlage der obigen Ausführung wurden ein Computersystem, ein Verfahren und ein Computerprogramm offenbart. Jedoch können zahlreiche Modifikationen und Substitutionen vorgenommen werden, ohne vom Schutzumfang der beispielhaften Ausführungsformen abzuweichen. Daher wurden die beispielhaften Ausführungsformen beispielhaft und nicht einschränkend offenbart.
-
Es versteht sich, dass das Umsetzen der hierin angeführten Lehren dieser Offenbarung zwar eine ausführliche Beschreibung von Cloud-Computing enthält, jedoch nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Stattdessen können die beispielhaften Ausführungsformen gemeinsam mit jeder beliebigen Art von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung umgesetzt werden.
-
Cloud-Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), 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, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle umfassen.
-
Bei den Eigenschaften handelt es sich um die folgenden:
- 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 Abstraktionsebene 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 Abstraktionsebene 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 eMail) 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 in den eigenen Räumen oder fremden Räumen stehen.
-
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 Einheiten 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 umfasst.
-
Nun unter Bezugnahme auf 5 ist die veranschaulichende Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt ist, umfasst die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 40, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie der elektronische Assistent (PDA, personal digital assistant) oder das Mobiltelefon 54A, der Desktop-Computer 54B, der Laptop-Computer 54C und/oder das Automobil-Computer-System 54N Daten austauschen können. Die Knoten 40 können 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 50, Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es versteht sich, dass die Arten von in 5 gezeigten Datenverarbeitungseinheiten 54A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 40 und die Cloud-Computing-Umgebung 50 ü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 können.
-
Nun unter Bezugnahme auf 6 wird ein Satz funktionaler Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 50 (5) bereitgestellt werden. Es versteht sich von vornherein, dass die in 6 gezeigten Komponenten, Schichten und Funktionen nur veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
-
Eine Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe-Computer 61; auf der RISC- (Reduced Instruction Set Computer) Architektur beruhende Server 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke sowie Netzwerkkomponenten 66. Bei einigen Ausführungsformen gehören eine Netzwerk-Anwendungsserver-Software 67 und eine Datenbank-Software 68 zu den Software-Komponenten.
-
Die Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 71, virtueller Speicher 72, virtuelle Netzwerke 73, darunter virtuelle private Netzwerke, virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
-
In einem Beispiel kann die Verwaltungsschicht 80 die nachfolgend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 81 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 eine Preisfindung 82 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen umfassen. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 84 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 Level Agreement) 85 stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
-
Eine Arbeitslastschicht 90 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: Abbildung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 93; Datenanalytikverarbeitung 94; Transaktionsverarbeitung 95; und Verarbeitung des Pipeline-Trainings 96.
-
Bei den beispielhaften Ausführungsformen kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jeder möglichen technischen Einzelebene der Integration handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen darauf umfassen, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zum Ausführen von Anweisungen 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 tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen 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. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
-
Hierin beschriebene, durch einen Computer lesbare Programmanweisungen 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 Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
-
Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction Set Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltkreisanordnungen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server 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 Netzwerk (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). Bei 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 Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaubildern mittels durch einen Computer lesbarer Programmanweisungen ausgeführt werden können.
-
Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Computers 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 Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen 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 Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktion/Schritts umsetzen.
-
Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um ein Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu bewirken, 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 Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder festgelegten Funktionen/Schritte umsetzen.
-
Der Ablaufplan und die Blockschaubilder 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 Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Ausführen der bestimmten logischen Funktion(en) aufweisen. Bei einigen alternativen Ausführungen können die in den Blöcken angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können beispielsweise in Wirklichkeit als ein Schritt vollzogen werden, gleichzeitig, im Wesentlichen gleichzeitig, teilweise oder insgesamt überlappend 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 Blockschaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaubildern 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 Computeranweisungen ausführen.