DE102021109950A1 - Systeme und verfahren zur berechnung von validierungsverlusten für modelle im dezentralen maschinenlernen - Google Patents

Systeme und verfahren zur berechnung von validierungsverlusten für modelle im dezentralen maschinenlernen Download PDF

Info

Publication number
DE102021109950A1
DE102021109950A1 DE102021109950.1A DE102021109950A DE102021109950A1 DE 102021109950 A1 DE102021109950 A1 DE 102021109950A1 DE 102021109950 A DE102021109950 A DE 102021109950A DE 102021109950 A1 DE102021109950 A1 DE 102021109950A1
Authority
DE
Germany
Prior art keywords
local
training
node
nodes
model
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
DE102021109950.1A
Other languages
English (en)
Inventor
Vishesh Garg
Sathyanarayanan Manamohan
Saikat Mukherjee
Krishnaprasad Lingadahalli Shastry
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of DE102021109950A1 publication Critical patent/DE102021109950A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/2163Partitioning the feature space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • G06F18/251Fusion techniques of input or preprocessed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Medical Informatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Es werden Systeme und Verfahren zur Berechnung von Validierungsverlusten in einem verteilten maschinellen Lernnetzwerk bereitgestellt, in dem Knoten lokale Instanzen eines maschinellen Lernmodells unter Verwendung lokaler Daten trainieren, die an diesen Knoten verwaltet werden. Nach jeder Trainingsiteration der lokalen Instanzen des maschinellen Lernmodells kann jeder Knoten einen lokalen Validierungsverlustwert berechnen, der der Leistung der lokalen Instanz des maschinellen Lernmodells entspricht, die an jedem der Knoten trainiert wurde. Diese lokalen Validierungsverlustwerte können an einen gewählten Anführer weitergegeben werden, der alle lokalen Validierungsverlustwerte mitteln und einen globalen Validierungsverlustwert an die Knoten zurückgeben kann. Die Knoten können dann entscheiden, ob die Ausbildung ihrer lokalen Instanz des maschinellen Lernmodells gestoppt oder fortgesetzt werden soll oder nicht.

Description

  • Querverweis auf verwandte Anwendungen
  • Diese Anmeldung steht im Zusammenhang mit der gemeinsam angemeldeten und im gemeinsamen Besitz befindlichen US-Patentanmeldung Serial No. 16/163,484 mit dem Titel „SYSTEM AND METHOD OF DECENTRALIZED MANAGEMENT OF MULTI-OWNER NODES USING BLOCKCHAIN“ (System und Verfahren zur dezentralisierten Verwaltung mehrerer Knoten unter Verwendung von Blockchain).
    der US-Anmeldung Nr. 16/773,555 mit dem Titel „SECURE PARAMETER MERGING USING HOMORPHIC ENCRYPTION FOR SWARM LEARNING“ und der ebenfalls anhängigen und gemeinsamen
    die US-Anmeldung Nr. 16/773,397 mit dem Titel „SYSTEMS AND METHODS FOR MONETARISIERUNG VON DATEN IN DER DEZENTRALEN MODELLBILDUNG FÜR MASCHINELLES LERNEN UNTER VERWENDUNG EINES
    BLOCKCHAIN“, die hier in ihrer Gesamtheit durch Verweis einbezogen sind.
  • Beschreibung der verwandten Kunst
  • Geodistributierte, dezentrale Unternehmensinfrastrukturen oder - systeme wie Fabrikhallen, Cluster geografisch verteilter Server, Flotten autonomer Fahrzeuge, Internet-of-Things (loT)-Netzwerke und dergleichen können schwer zu verwalten sein. Abgesehen davon, dass diese Systeme dezentralisiert sind, können sie auch sehr groß und heterogen sein. Es ist klar, dass die Verwaltung solcher Systeme logistische Herausforderungen mit sich bringen kann, die sich noch verschärfen, wenn diese Infrastrukturen über Geräte (auch als „Knoten“ bezeichnet) verfügen oder mit ihnen interagieren, die außerhalb eines Unternehmensnetzwerks betrieben werden, z. B. im Besitz von einem oder mehreren anderen Benutzern oder Unternehmen.
  • Maschinelles Lernen (ML) kann sich auf eine Methode der Datenanalyse beziehen, bei der der Aufbau eines Analysemodells automatisiert wird. ML wird gemeinhin als ein Zweig der künstlichen Intelligenz (KI) betrachtet, bei dem Systeme so konfiguriert werden, dass sie aus gesammelten Daten lernen. Solche Systeme können Muster erkennen und/oder Entscheidungen mit wenig oder gar keinem menschlichen Eingriff treffen.
  • Blockchain kann sich auf ein fälschungssicheres, dezentralisiertes Hauptbuch beziehen, das ein Maß an Vertrauen für den Austausch von Werten ohne den Einsatz von Vermittlern schafft. Eine Blockchain kann zur Aufzeichnung und zum Nachweis jeder Transaktion auf der Blockchain verwendet werden und wird jedes Mal aktualisiert, wenn eine Transaktion stattfindet.
  • Figurenliste
  • Die hier offengelegte Technologie wird in Übereinstimmung mit einer oder mehreren Ausführungsformen unter Bezugnahme auf die folgenden Abbildungen im Detail beschrieben. Die Zeichnungen dienen nur der Veranschaulichung und stellen lediglich typische oder beispielhafte Ausführungsformen der offengelegten Technologie dar. Diese Zeichnungen dienen dazu, dem Leser das Verständnis der offengelegten Technologie zu erleichtern, und sind nicht als Einschränkung der Breite, des Umfangs oder der Anwendbarkeit derselben anzusehen.
    • 1A zeigt ein Beispiel für ein System zur dezentralen Verwaltung von Gerätebeständen außerhalb eines Computernetzes gemäß einer Ausführungsform der offengelegten Technologie.
    • 1B zeigt ein Beispiel eines Verwaltungsknotens in einem verteilten Blockchain-Netzwerk für die dezentrale Verwaltung von Gerätevermögenswerten außerhalb eines Computernetzwerks in Übereinstimmung mit einer Ausführungsform der offengelegten Technologie.
    • 1C zeigt ein Beispiel für einen Edge-Knoten in einem verteilten Blockchain-Netzwerk für die dezentrale Verwaltung von Geräte-Assets außerhalb eines Computernetzwerks in Übereinstimmung mit einer Ausführungsform der offengelegten Technologie.
    • 1D zeigt ein Beispiel einer Blockchain-Schnittstellenschicht für die dezentrale Verwaltung von Gerätevermögenswerten außerhalb eines Computernetzwerks in Übereinstimmung mit einer Ausführungsform der offengelegten Technologie.
    • 2A zeigt ein Beispiel für eine Schwarmlernarchitektur gemäß einer Ausführungsform der offengelegten Technologie.
    • 2B zeigt ein Beispiel für die Phasen und den Arbeitsablauf des Schwarmlernens gemäß einer Ausführungsform der offengelegten Technologie.
    • 3 zeigt ein Beispiel für homomorphe Verschlüsselung.
    • 4A zeigt Beispielvorgänge, die in einem verteilten Blockchain-Netzwerk zur Wahl eines Fusionsleiters in Übereinstimmung mit einer Ausführungsform der offengelegten Technologie durchgeführt werden.
    • 4B zeigt Beispielvorgänge, die in einem verteilten Blockchain-Netzwerk zur Anforderung und Veröffentlichung eines öffentlichen Schlüssels in Übereinstimmung mit einer Ausführungsform der offengelegten Technologie durchgeführt werden.
    • 4C zeigt Beispielvorgänge, die in einem verteilten Blockchain-Netzwerk zur dezentralen Parameterverschlüsselung und homomorphen Zusammenführung der dezentralen Parameter gemäß einer Ausführungsform der offengelegten Technologie durchgeführt werden.
    • 4D zeigt Beispielvorgänge, die in einem verteilten Blockchain-Netzwerk durchgeführt werden, um einen Entschlüsseler zu wählen, der nicht der Merge-Leader ist, in Übereinstimmung mit einer Ausführungsform der offengelegten Technologie.
    • 4E veranschaulicht Beispielvorgänge, die in einem verteilten Blockchain-Netzwerk zur Verteilung der zusammengeführten dezentralen Parameter gemäß einer Ausführungsform der offengelegten Technologie durchgeführt werden.
    • 4F zeigt den Abschluss der dezentralen Parameterzusammenführung gemäß einer Ausführungsform der offengelegten Technologie.
    • Die 5A-5B zeigen Beispielvorgänge, die in einem verteilten Netzwerk für die Validierung von Modellen des maschinellen Lernens gemäß einer Ausführungsform durchgeführt werden.
    • 6 ist ein Beispiel für eine Computerkomponente, die verwendet werden kann, um verschiedene Funktionen eines Trainingsknotens in Übereinstimmung mit einer Ausführungsform der offengelegten Technologie zu implementieren.
    • 7 ist ein Beispiel für eine Rechnerkomponente, die zur Implementierung verschiedener Funktionen eines Leitknotens gemäß einer Ausführungsform der offengelegten Technologie verwendet werden kann.
    • 8 ist ein Beispiel für eine Rechnerkomponente, die zur Implementierung verschiedener Merkmale von Ausführungsformen der vorliegenden Offenbarung verwendet werden kann.
  • Die Figuren erheben keinen Anspruch auf Vollständigkeit und beschränken die Ausführungsformen nicht auf die genaue offengelegte Form. Es sollte verstanden werden, dass die Erfindung mit Modifikationen und Änderungen praktiziert werden kann, und dass die offengelegte Technologie nur durch die Ansprüche und die Äquivalente davon begrenzt werden.
  • Detaillierte
  • Beschreibung
  • Verteiltes oder dezentrales ML kann sich auf die ML-Modellbildung über
    mehrere Knoten unter Verwendungvon Daten, die lokal für jeden der Knoten verfügbar sind. Die von jedem lokalen Modell gelernten lokalen Modellparameter können zusammengeführt werden, um ein globales Modell abzuleiten, wobei das resultierende globale Modell für eine weitere Iteration an alle Knoten verteilt werden kann, d. h. lokalisierte Daten bilden das globale Modell aus. Dies kann so lange wiederholt werden, bis die gewünschte Genauigkeit des globalen Modells erreicht ist.
  • Bei der Modellschulung werden die verfügbaren Daten im Allgemeinen in Schulungsdatensätze und Validierungsdatensätze unterteilt, wobei ein Modell nach der Durchführung einer Schulungsiteration mit dem Schulungsdatensatz anhand von Daten, die es noch nie gesehen hat, d. h. dem Validierungsdatensatz, auf seine Leistung/Genauigkeit hin bewertet werden kann. Das Ausmaß des Fehlers oder Verlustes, der sich aus dieser Bewertung ergibt, wird als Validierungsverlust bezeichnet. Der Validierungsverlust kann ein wichtiger Aspekt von ML für die Implementierung von Trainingsfunktionen sein. Der Validierungsverlust kann zum Beispiel verwendet werden, um eine Überanpassung eines Modells an die Trainingsdaten zu vermeiden, indem ein frühes Abbruchkriterium geschaffen wird, bei dem das Training gestoppt wird, sobald der Validierungsverlust einen Mindestwert erreicht. Ein weiteres Beispiel ist die Verwendung von Validierungsverlusten in einer adaptiven Synchronisationsumgebung, in der die Länge eines Synchronisationsintervalls auf der Grundlage des Verlaufs der Validierungsverlustwerte über mehrere Iterationen hinweg moduliert wird (d. h. Modulation der Synchronisationsfrequenz).
  • In einer verteilten ML-Umgebung, in der die Daten nicht an einem zentralen/einem einzigen Ort aufbewahrt werden, ist die Validierung während des Trainings jedoch nicht an jedem einzelnen teilnehmenden Knoten möglich. Daher werden gemäß einigen Ausführungsformen vor jeder Trainingsiteration an jedem lokalen/teilnehmenden Knoten die jeweiligen lokalen Datensätze in Trainingsvalidierungsdatensätze aufgeteilt, und eine lokale Trainingsiteration beginnt in Stapeln unter Verwendung lokaler Trainingsdatensätze. Am Ende eines jeden Trainingsstapels wird ein Knoten, der als Merge-Leader für diesen Stapel bestimmt wurde führt die Parameter aller teilnehmenden Knoten (einschließlich seiner selbst) zusammen, um ein globales Modell zu erstellen, wobei die zusammengeführten Parameter mit den übrigen teilnehmenden Knoten geteilt werden können. Die zusammengeführten Parameter werden dann auf jedes lokale Modell in jedem der teilnehmenden Knoten angewandt, und die aktualisierten lokalen Modelle werden dann anhand des zuvor ermittelten Validierungsdatensatzes bewertet, und jeder teilnehmende Knoten teilt seinen jeweiligen/lokalen Validierungsverlustwert mit dem Leader. Der Merge-Leaderfasst die lokalen Validierungsverlustwerte zusammen, um einen globalen Validierungsverlustwert zu erhalten, der dann an die übrigen Knoten weitergegeben werden kann. Auf diese Weise kann ein globaler Validierungsverlustwert auf der Grundlage der Gesamtheit der teilnehmenden Knoten abgeleitet werden, und dieser globale Validierungsverlustwert kann von jedem der teilnehmenden Knoten verwendet werden, um zu bestimmen, ob das Training beendet werden kann oder ob ein weiteres Training erforderlich ist.
  • Insbesondere wird nach der Feststellung, dass ein Quorum von Knoten in einem Schwarmlernetzwerk bereit ist, ihre jeweiligen Modellparameter zusammenzuführen, (1) ein Zusammenführungsleiter gewählt. Es sollte verstanden werden, dass beim Schwarmlernen jeder Knoten, der über lokale Trainingsdaten verfügt, ein gemeinsames ML-Modell trainiert, ohne die lokalen Trainingsdaten an einen anderen Knoten oder eine andere Einheit im Schwarm-Blockchain-Netzwerk weiterzugeben. Dies wird durch die gemeinsame Nutzung von Parametern (Gewichten) erreicht, die aus dem Training des gemeinsamen ML-Modells unter Verwendung der lokalen Trainingsdaten abgeleitet wurden. Auf diese Weise können die gelernten Erkenntnisse in Bezug auf die Rohdaten (anstelle der Rohdaten selbst) unter den Teilnehmern oder kollaborierenden Peers/Knoten geteilt werden, was zum Schutz der Daten vor Datenschutzverletzungen beiträgt. Darüber hinaus nutzt das hier beschriebene Schwarmlernen die Blockchain-Technologie, um eine dezentrale Kontrolle und Monetarisierung zu ermöglichen und Vertrauen und Sicherheit zwischen den einzelnen Knoten zu gewährleisten.
  • Der Leiter des Zusammenschlusses kann (2) einen separaten Schlüsselmanager bitten, einen öffentlichen Schlüssel zu generieren, der zur Verschlüsselung der lokalen Modellparameter der Knoten verwendet werden kann. Nach Erhalt des öffentlichen Schlüssels veröffentlicht der Leiter des Zusammenschlusses (3) diesen in einem verteilten Ledger des Schwarm-Blockchain-Netzwerks, das die Knoten umfasst. Jeder Knoten kann den öffentlichen Schlüssel lesen (aber nicht in das verteilte Hauptbuch schreiben) und kann somit (4) den öffentlichen Schlüssel erhalten und mit der Verschlüsselung der lokalen Modellparameter fortfahren. Es ist zu beachten, dass der öffentliche Schlüssel ein rechenintensiver Verschlüsselungsprozess sein kann, der an den Rand (die Knoten) verlagert wird, um Skalierungsengpässe zu vermeiden.
  • Die Knoten können (5) dem Merge-Leader signalisieren/mitteilen, dass sie jeweils bereit sind, ihre lokalen Modellparameter zu fusionieren. Der Merge-Leader (6) lädt die lokalen Modellparameter herunter und führt eine Merge-Operation durch (homomorphe Summierung und skalare Multiplikation). Da die Zusammenführung der lokalen Modellparameter von einem gewählten Merge-Leader und nicht von einem statischen, zentralisierten Server durchgeführt wird, kann eine verteilte/dezentrale Implementierung erreicht werden. Dies wiederum kann eine größere Fehlertoleranz bieten als herkömmliche Implementierungen. Die Knoten verfügen über die kollektive Intelligenz des gesamten Netzes, ohne dass die Rohdaten jemals ihren jeweiligen Knoten verlassen müssen. Der Merge-Leader kann den Knoten mitteilen (7), dass die zusammengeführten Parameter/das aktualisierte globale Modell zur Entschlüsselung bereit sind. Alle Knoten mit Ausnahme desjenigen, der als Merge-Leader gewählt wurde (8), wählen einen Entschlüsseler, der die zusammengeführten Parameter entschlüsselt, aus denen das aktualisierte globale Modell besteht.
  • Während die verbleibenden Knoten warten, fordert der Entschlüsseler (9) einen privaten Schlüssel vom Schlüsselmanager an, lädt die zusammengeführten Parameter vom Zusammenführungsführer herunter, entschlüsselt die zusammengeführten Parameter, lädt die zusammengeführten Parameter zum Zusammenführungsführer hoch und weist ihn an den Schlüsselverwalter, das Paar aus öffentlichem und privatem Schlüssel zu verwerfen. Der Entschlüsseler (10) signalisiert, dass die zusammengeführten Parameter vom Merge-Leader verfügbar sind. Die Knoten (11) laden die nun entschlüsselten zusammengeführten Parameter herunter und wenden sie auf ihr lokales Modell für eine ML-Modellbildungsiteration an. Es können weitere lokalisierte Parameter berechnet/erzeugt werden, und es können weitere ML-Modellbildungsiterationen (Training) stattfinden.
  • An diesem Punkt, nach einer Trainingsiteration, kann die oben erwähnte Methode zur Berechnung des Validierungsverlustes durchgeführt werden, um einen globalen Validierungsverlustwert abzuleiten, der zur Bewertung jedes lokalen Modells an jedem beteiligten Knoten verwendet werden kann. Auf diese Weise kann auch in einem verteilten ML-System ein Zyklus aus Training und Validierung durchgeführt werden. Es ist anzumerken, dass in einigen Ausführungsformen der bereits gewählte Merge-Leader als Leader für die Validierung fungieren kann, d. h. er mittelt/mergt die lokalen Validierungsverlustwerte, um zu einem globalen Validierungsverlustwert zu gelangen. In anderen Ausführungsformen kann jedoch ein anderer Vorreiter für die Mittelwertbildung/Zusammenführung der Validierung ausgewählt werden, obwohl die Verwendung desselben Vorreiters für die Zusammenführung von Parametern/Gewichten und die Mittelwertbildung der Validierungsverluste schneller sein kann (da kein anderer Vorreiterknoten ausgewählt werden muss).
  • In einigen Ausführungsformen können die Werte der Validierungsverluste mit homomorphen Verschlüsselungstechniken maskiert werden, um die Privatsphäre in ähnlicher Weise zu wahren, wie dies bereits für die Ver-/Entschlüsselung der lokalen Modellparameter der Knoten beschrieben wurde. Auch hier kann der Zusammenschlussführer einen separaten Schlüsselmanager beauftragen, einen öffentlichen Schlüssel zu erzeugen, der zur Verschlüsselung der lokalen Modellparameter der Knoten verwendet werden kann. Es sei darauf hingewiesen, dass derselbe Schlüsselmanager, der zuvor (zur Erzeugung des asymmetrischen Schlüsselpaars für die homomorphe Verschlüsselung der Parameter (Gewichte)) verwendet wurde, auch zur Erzeugung eines neuen asymmetrischen Schlüsselpaars für die Verschlüsselung der lokalen Validierungsverlustwerte verwendet werden kann. In anderen Ausführungsformen kann jedoch auch ein anderer Schlüssel-Manager kann auch verwendet werden, um das neue asymmetrische Schlüsselpaar zu erzeugen. Nachdem er den öffentlichen Schlüssel erhalten hat, veröffentlicht der Zusammenschlussleiter ihn im Edge-Netzwerk in einem verteilten Ledger des Schwarm-Blockchain-Netzwerks, das die Knoten umfasst. Jeder Knoten kann den öffentlichen Schlüssel erhalten und mit der Verschlüsselung seines lokalen Validierungsverlustwerts fortfahren. Es ist zu beachten, dass der öffentliche Schlüssel ein rechenintensiver Verschlüsselungsprozess sein kann, der an den Rand (die Knoten) verlagert wird, um Skalierungsengpässe zu vermeiden.
  • Die Knoten können dem Merge-Leader signalisieren/mitteilen, dass sie jeweils bereit sind, ihre lokalen Validierungsverlustwerte zu fusionieren. Der Merge-Leader lädt die lokalen Validierungsverlustwerte herunter und führt eine Merge-Operation durch (homomorphe Summierung und skalare Multiplikation). Da die Zusammenführung der lokalen Validierungsverlustwerte von einem gewählten Zusammenführungsleiter und nicht von einem statischen, zentralisierten Server durchgeführt wird, kann eine verteilte/dezentrale Implementierung erreicht werden. Dies wiederum kann eine größere Fehlertoleranz bieten als herkömmliche Implementierungen. Der Merge-Leader kann den Knoten mitteilen, dass der zusammengefasste lokale Validierungsverlustwert für die Entschlüsselung bereit ist. Alle Knoten mit Ausnahme desjenigen, der als Merge-Leader gewählt wurde, wählen einen Entschlüsseler, der den zusammengefassten lokalen Validierungsverlustwert entschlüsselt.
  • Während die verbleibenden Knoten warten, fordert der Entschlüsseler einen privaten Schlüssel vom Schlüsselmanager an, lädt den zusammengefassten lokalen Validierungsverlustwert vom Merge-Leader herunter, entschlüsselt den zusammengefassten lokalen Validierungsverlustwert, lädt den zusammengefassten lokalen Validierungsverlustwert zum Merge-Leader hoch und weist den Schlüsselmanager an, das öffentlich-private Schlüsselpaar zu verwerfen. Der Entschlüsseler signalisiert, dass der zusammengefasste lokale Validierungsverlustwert vom Merge-Leader verfügbar ist. Die Knoten laden den nun entschlüsselten zusammengefassten lokalen Validierungsverlustwert herunter und können die Leistung ihres lokalen ML-Modells bewerten.
  • Ausführungsformen der hier offengelegten Technologie bauen auf verteiltem ML und Blockchain auf. Verteiltes ML kann, wie oben angedeutet, für seine Fähigkeit genutzt werden, ein gemeinsames Modell über mehrere Knoten (globales Modell) unter Verwendung von Daten (oder einer Teilmenge von Daten) an jedem Knoten des Netzwerks zu trainieren sowie lokale Modelle über mehrere Knoten zu validieren. Der Blockchain-Aspekt ermöglicht eine dezentrale Steuerung und Skalierbarkeit und bietet gleichzeitig die erforderliche Fehlertoleranz, damit die Ausführungsformen über den Kontext eines einzelnen Unternehmens/einer einzelnen Einrichtung hinaus funktionieren können. Darüber hinaus führt der Blockchain-Aspekt eine manipulationssichere/resistente Kryptowährung ein, mit der die teilnehmenden Knoten oder Datenquellen ihre Datenbeiträge zum Training des globalen Modells monetarisieren können.
  • Zunächst wird das Blockchain-Framework beschrieben. Es kann ein Controller-Framework bereitgestellt werden, das es den Teilnehmerknoten in einem Netzwerk ermöglicht, mithilfe der Blockchain-Technologie miteinander zu interagieren. Die Verwendung der Blockchain-Technologie für diese Interaktionen kann implementiert werden, um sicherzustellen, dass die Interaktionen gesichert, nicht zurückgewiesen, sequenziert und genehmigt sind. Es können auch Ausführungsformen implementiert werden, bei denen eine Blockchain verwendet wird, um den Teilnehmern die Möglichkeit zu geben, ein Konsensprotokoll für einen oder mehrere Aspekte des verteilten ML-Teils des Schwarmlernsystems zu entwickeln. Beispielsweise können Konsensprotokolle von allen Teilnehmern (Knoten) vereinbart und als intelligente Verträge in das System mit Blockchain-Technologie implementiert werden.
  • In einer anderen Ausführungsform können Operationen implementiert werden, um eine Herkunftsverfolgung über eine heterogene verteilte Speicherplattform hinweg zu ermöglichen, um zu verfolgen, welche Knoten welche Operationen auf welchen Systemen durchgeführt haben. In einigen Anwendungen können Metadatenoperationen über eine Blockchain und Speichergeräte oder andere Netzwerkeinheiten geleitet werden
    können so konfiguriert werden, dass sie nur Operationen über die Blockchain-Schnittstelle zulassen. So können beispielsweise Speichergeräte im Netz angewiesen werden, Metadatenoperationen nur über die Blockchain-Schnittstelle zuzulassen. Auf diese Weise können Faktoren wie Identität, Autorisierung, Provenienz, Nichtabstreitbarkeit und Sicherheit für Operationen auf den so verwalteten Knoten gewährleistet werden.
  • Dementsprechend können Ausführungsformen implementiert werden, bei denen der Verwaltungsvorgang dezentralisiert wird und das System keine zentrale Instanz zur Durchsetzung von Richtlinien mehr benötigt. Insbesondere kann das System in einigen Anwendungen ohne einen zentralen Verwaltungsserver implementiert werden und stattdessen nur einen oder mehrere Verwaltungsknoten verwenden, um Verwaltungsanweisungen in die Blockchain einzugeben, wobei Blockchain-Transaktionen verwendet werden (wie z. B. der oben erwähnte Merge-Leader, Decryptor usw.). Sobald eine Änderung genehmigt ist, kann ein Gerät die Änderung umsetzen, und die Blockchain kann verwendet werden, um eine klare Aufzeichnung des Systemzustands zu liefern, während es sich im Laufe der Zeit weiterentwickelt. Da die Ausführungsformen in einer Peer-to-Peer-Umgebung ohne eine zentrale Verwaltungsinstanz implementiert werden können, ist das Unternehmen skalierbar, ohne dass es Einschränkungen hinsichtlich der Anzahl der Knoten gibt, die eine zentrale Verwaltungsinstanz ansprechen könnte. Darüber hinaus kann das Fehlen einer zentralen Verwaltungsinstanz auch dazu führen, dass diese Instanz keine einzige Fehlerquelle darstellt. Dies kann den zusätzlichen Vorteil haben, dass die Angriffsfläche verringert wird, da es keine einzige Fehlerquelle mehr gibt, die andernfalls genutzt werden könnte, um das System zum Absturz zu bringen.
  • Eine dezentrale Verwaltung von Anlagen, die außerhalb eines Computernetzes betrieben werden (auch als Randknoten bezeichnet), kann von innerhalb des Computernetzes aus erreicht werden. Zu den Randknoten können Geräte des Unternehmens gehören, und das Computernetz kann das Netz des Unternehmens umfassen. Der Netzwerkverkehr zum und vom Computernetzwerk kann über eine Firewall um das Computernetz. Ein Verwaltungsserver (auch als Verwaltungsknoten bezeichnet) kann innerhalb der Firewall betrieben werden, um die Konfiguration von Edge-Knoten, die außerhalb der Firewall betrieben werden, mithilfe der Blockchain-Technologie zu verwalten. Der Management-Knoten und die Edge-Knoten können Teil eines Blockchain-Netzwerks sein.
  • Der Verwaltungsknoten kann als vollständiger Knoten fungieren, der eine vollständige oder zumindest aktualisierte Kopie eines verteilten Hauptbuchs speichert. Der Verwaltungsknoten kann auch als Miner fungieren, der die Erlaubnis hat, Blöcke in das verteilte Hauptbuch zu schreiben. Der Verwaltungsknoten kann Verwaltungsoperationen in Form von Änderungsanforderungen in das verteilte Hauptbuch einspeisen. Die Verwaltungsoperationen können unter anderem das Entfernen eines Edge-Knotens aus dem Netz umfassen (z. B. weil der Edge-Knoten nicht den vom Netz befolgten Protokollen entspricht). Zu den Verwaltungsvorgängen kann auch das Hinzufügen eines neuen Vermögenswerts (Edge Node) zum Netz und die Konfiguration dieses neuen Vermögenswerts gehören sowie das Vorschlagen eines neuen Software-Updates, das auf allen Edge Nodes installiert wird. Darüber hinaus können die Verwaltungsvorgänge die Durchführung einer Statusprüfung an einigen oder allen Edge Nodes und/oder andere Vorgänge umfassen, die aus der Ferne angeordnet und lokal an einem Edge Node durchgeführt werden können.
  • Aktualisierungen des verteilten Hauptbuchs werden gemäß einer Blockchain-Spezifikation an alle Knoten (z. B. die Randknoten und den Verwaltungsknoten) weitergegeben, auch über Peer-to-Peer-Sharing. Auf diese Weise kann der Verwaltungsknoten Änderungsanforderungen an die Randknoten über das verteilte Hauptbuch auf sichere und unveränderliche Weise übermitteln. Dies ermöglicht auch die Erstellung einer historischen und aktuellen Aufzeichnung der Verwaltungsvorgänge. So kann ein historischer und aktueller Zustand des Systems gespeichert und aus dem verteilten Hauptbuch abgerufen werden.
  • Jeder der Randknoten kann als vollständiger Knoten fungieren, der eine vollständige oder zumindest aktualisierte Kopie des verteilten Hauptbuchs speichert. In einigen Fällen hat keiner der Randknoten die Erlaubnis, in das verteilte Hauptbuch zu schreiben, und kann daher keine Änderungsanforderungen an andere Randknoten stellen. Ein Randknoten kann seine lokale Kopie des verteilten Hauptbuchs lesen, um die Änderungsanforderungen zu erhalten. Nach Erhalt einer Änderungsanforderung kann der Randknoten die Änderungsanforderung umsetzen und seinen Zustand aktualisieren, um anzuzeigen, dass die Änderungsanforderung umgesetzt wurde. Dieser Zustandsübergang kann an andere Knoten weitergegeben werden, z. B. in Form einer Blockchain-Transaktion. Der Verwaltungsknoten kann Transaktionen sammeln, die noch nicht in das verteilte Hauptbuch geschrieben wurden, und sie in das verteilte Hauptbuch schreiben, wodurch eine unveränderliche und verteilte Aufzeichnung von Änderungsanforderungen und Zustandsübergängen gewährleistet wird. So kann das verteilte Hauptbuch die aktuelle und historische Konfiguration der Edge-Knoten aufzeichnen.
  • Die Verwendung der vorstehenden Architektur gewährleistet, dass die Verwaltungsvorgänge sicher, unabweisbar, sequentiell und mit Genehmigungen versehen sind. Die Verwaltungsvorgänge werden teilweise „dezentralisiert“, da ein Datenzentrum innerhalb eines Computernetzwerks als Verwaltungsknoten dient, der Richtlinien durchsetzt und Änderungen elektronisch vorschlägt. Sobald eine Änderung in das verteilte Hauptbuch eingetragen ist, setzt jedes der Systeme die Änderung um, und es gibt eine klare und unbestreitbare Aufzeichnung des Zustands des Systems, wie es sich im Laufe der Zeit entwickelt hat. So kann beispielsweise ein Randknoten seine Kopie des verteilten Hauptbuchs mit anderen Randknoten (oder mit dem Verwaltungsknoten) synchronisieren, um die aktuelle, gültige und unveränderliche Konfiguration des Systems zu erhalten. Dies ermöglicht eine Skalierung des Systems, da jeder Teilnehmer des Systems auf aktuelle (und historische) Zustandsinformationen aus dem verteilten Hauptbuch zugreifen kann. Neue Randknoten können hinzugefügt werden, indem der neue Knoten mit einer Kopie des verteilten Hauptbuchs. Ein neuer Randknoten kann sich dann entsprechend den aktuellen Statusinformationen aus seiner Kopie des verteilten Hauptbuchs konfigurieren oder auf andere Weise Software- oder andere Aktualisierungen erhalten, die mit den aktuellen Statusinformationen übereinstimmen.
  • 1A zeigt ein Beispiel für ein System 100 zur dezentralen Verwaltung von Gerätevermögenswerten außerhalb eines Computernetzwerks 102, gemäß einer Implementierung der Erfindung. Das System 100 kann ein Blockchain-Netzwerk 110 umfassen. Das Blockchain-Netzwerk 110 kann eine Vielzahl von Knoten umfassen, die über ein oder mehrere Verbindungsprotokolle, einschließlich eines Peer-to-Peer-Verbindungsprotokolls, miteinander verbunden sind. Die Knoten des Blockchain-Netzwerks 110 können einen Verwaltungsknoten 12 und Randknoten umfassen 10. Die jeweilige Anzahl, Konfiguration und Verbindungen zwischen den Randknoten 10 können variieren. Daher dient die in 1A gezeigte Anordnung der Randknoten 10 nur der Veranschaulichung.
  • Der Verwaltungsknoten 12 ist Teil einer Firewall 106 des Computernetzwerks 102 und arbeitet innerhalb dieser, während die Randknoten 10 außerhalb der Firewall arbeiten. Wie oben angedeutet und unten ausführlicher beschrieben, können solche Randknoten 10 Daten beitragen, die zum Trainieren einer lokalen Instanz eines globalen ML-Modells in einem Schwarmlernkontext verwendet werden können. Das Computernetzwerk 102 kann auch ein oder mehrere Sicherungssysteme 104 enthalten, die den Managementknoten 12 und/oder andere Komponenten 108, die innerhalb des Computernetzwerks arbeiten, vor Ausfällen schützen. Die Komponenten des Computernetzwerks 102 können über ein lokales Netzwerk („LAN“) miteinander kommunizieren. Die Komponenten des Computernetzes 102 können über die Firewall 106 mit Geräten außerhalb des Computernetzes 102 kommunizieren. Die Firewall 106 kann als Software-Firewall konfiguriert sein und/oder eine Hardware-Firewall-Vorrichtung. Die Firewall 106 kann eine Netzwerk-Switch-Vorrichtung umfassen oder mit ihr verbunden sein, die den Netzwerkverkehr über die Firewall in das und aus dem Computernetzwerk leitet. Das Netzwerk 101 kann ein Weitverkehrsnetz („WAN“) umfassen, das Geräte außerhalb der Firewall 106 miteinander verbindet.
  • Beispiele für weitere Details eines Verwaltungsknotens 12 werden nun unter Bezugnahme auf 1B beschrieben. Der Verwaltungsknoten 12 kann einen oder mehrere Prozessoren 20 (der Einfachheit halber hier auch als Prozessoren 20, Prozessor(en) 20 oder Prozessor 20 bezeichnet), ein oder mehrere Speichergeräte 40 und/oder andere Komponenten umfassen. Der Prozessor 20 kann durch eine oder mehrere Computerprogrammanweisungen programmiert werden. Beispielsweise kann der Prozessor 20 so programmiert sein, dass er eine Verwaltungsbenutzerschnittstelle 22 (dargestellt als „Verwaltungsbenutzerschnittstelle 22“), einen Controller 24, eine Blockchain-Schnittstellenschicht 30 und/oder andere Anweisungen ausführt, um verschiedene Vorgänge auszuführen, die hier jeweils ausführlicher beschrieben werden. Im Folgenden werden die verschiedenen Anweisungen der Einfachheit halber als Ausführung einer Operation beschrieben, wenn die verschiedenen Anweisungen tatsächlich die Prozessoren 20 (und damit den Verwaltungsknoten 12) zur Ausführung der Operation programmieren.
  • Die Verwaltungsbenutzerschnittstelle 22 kann eine Schnittstelle bereitstellen, wie z. B. eine grafische Benutzerschnittstelle, eine Befehlszeilenschnittstelle und/oder eine andere Art von Schnittstelle, die so konfiguriert ist, dass sie Eingaben für Verwaltungsoptionen empfängt. Zum Beispiel kann ein Benutzer wie ein Systemadministrator die Verwaltungsbenutzerschnittstelle 22 verwenden, um Verwaltungsvorgänge einzugeben, die an einem oder mehreren der Randknoten 10 des Blockchain-Netzwerks 110 durchgeführt werden sollen, oder um einen hinzuzufügenden Randknoten einzugeben. Auf diese Weise kann der Benutzer die Randknoten 10 auf der Grundlage von Änderungsanforderungen verwalten, die aus dem Computernetzwerk 102 stammen.
  • Die Steuereinheit 24 kann die auszuführenden Verwaltungsvorgänge erhalten und sie an die betreffenden Randknoten 10 weiterleiten. Die Verwaltungsvorgänge können von der Verwaltungsbenutzerschnittstelle 22 und/oder einer globalen Richtlinie 48 bezogen werden. Die Steuereinheit 24 kann die Verwaltungsoperationen über die Blockchain-Schnittstellenschicht 30 übermitteln. Beispielsweise kann die Steuereinheit 24 die Verwaltungsoperationen in eine Blockchain-Transaktion schreiben, die an die Edge Nodes 10 übertragen wird. Die Blockchain-Transaktion kann über ein Multicast-Protokoll an mehrere oder alle Edge Nodes 10 gesendet werden. In einigen Fällen kann die Blockchain-Transaktion über ein Peer-to-Peer-Netzwerk übertragen werden, bei dem der Verwaltungsknoten 12 als Peer fungiert, um die Transaktion an mindestens einen anderen Peer (in diesem Fall einen Edge-Knoten 10) zu übertragen, der die Transaktion an andere Peers überträgt und so weiter. In einigen Implementierungen kann der Controller 24 warten, bis eine Blockchain-Transaktion wie hier beschrieben von einem Edge-Node 10 signiert wird, bevor er die Transaktion in einen Block (hier auch als „Ledger-Block“ bezeichnet) des verteilten Ledgers 42 schreibt. In diesen Implementierungen können die Randknoten 10 Verwaltungsoperationen direkt von der übertragenen Transaktion erhalten. In anderen Implementierungen kann das Steuergerät 24 die Transaktion in einen Block des verteilten Hauptbuchs 42 schreiben. Bei diesen Implementierungen können die Randknoten 10 Verwaltungsoperationen erhalten, indem sie den aktuellen (d. h. letzten) Block abrufen, der auf Transaktionen mit Verwaltungsoperationen verweist.
  • Unabhängig davon, auf welche Weise die Steuereinheit 24 die Verwaltungsoperationen an die Randknoten 10 unter Verwendung der Blockchain-Schnittstellenschicht 30 sendet, kann die Steuereinheit dies auf eine Weise tun, die an alle Randknoten 10 gerichtet ist. Zum Beispiel kann eine Verwaltungsoperation „Status prüfen“ an alle Knoten des Blockchain-Netzwerks 110 gerichtet werden, so dass jeder
    Randknoten wird angewiesen, eine Statusprüfung durchzuführen. Jeder Randknoten 10 führt dann die Statusprüfung durch und sendet seinen Status mit den Ergebnissen der Statusprüfung (oder andere Verwaltungsvorgänge wie unten beschrieben).
  • In einigen Fällen kann die Steuereinheit 24 einen oder mehrere Randknoten 10 anvisieren, um eine Verwaltungsoperation zu erhalten. Bei diesen Implementierungen kann die Steuereinheit 24 eine Blockchain-Transaktion und/oder einen Block im verteilten Hauptbuch 42 erzeugen, der an den/die anvisierten Randknoten 10 gerichtet ist. Beispielsweise kann die Steuereinheit 24 eine Kennung des anvisierten Randknotens 10 kodieren. Alternativ oder zusätzlich kann die Steuereinheit 24 einen Gerätetyp kodieren, der auf bestimmte Arten von Edge Nodes 10 abzielt, die Verwaltungsvorgänge durchführen sollen. Weitere Beispiele sind Standorte, die anvisiert werden sollen, so dass Edge Nodes in bestimmten geografischen Gebieten anvisiert werden. Die intelligenten Verträge 44 können Regeln enthalten, die jeder Edge-Knoten 10 befolgt und die die Knoten anweisen, Transaktionen und/oder Blöcke zu prüfen, um festzustellen, ob sie eine in der Transaktion und/oder dem Block enthaltene Verwaltungsoperation anwenden sollen. In einigen Implementierungen kann die Steuereinheit 24 die auszuführende Verwaltungsoperation mit dem öffentlichen Schlüssel eines Zielkantenknotens 10 verschlüsseln, so dass nur derZielkantenknoten die Verwaltungsoperation mit seinem privaten Schlüssel entschlüsseln kann.
  • In einigen Fällen können bestimmte Verwaltungsvorgänge periodisch ohne Benutzereingriff ausgeführt werden. Beispielsweise kann die Steuereinheit 24 einen Dämon oder einen anderen Prozess ausführen, der in regelmäßigen Abständen eine Statusprüfung von allen Edge-Knoten 10 veranlasst. Dieser Dämon kann in regelmäßigen Abständen relevante Änderungsanforderungen erzeugen, die an die Randknoten 10 ausgegeben - und über das verteilte Hauptbuch 42 verfolgt - werden.
  • In einer Implementierung kann der Controller 24 die globale Richtlinie 48 durchsetzen, indem er Sicherstellung, dass der Zustand des Netzes mit der globalen Strategie übereinstimmt. So kann die Steuereinheit 24 beispielsweise regelmäßig den aktuellen Systemzustand aus dem verteilten Hauptbuch abrufen
    42. Wie bereits erwähnt, können die Zustandsübergänge der Randknoten 10 im verteilten Hauptbuch 42 aufgezeichnet werden. Alternativ oder zusätzlich kann das Ergebnis von Statusprüfungen in das verteilte Hauptbuch 42 geschrieben werden, um den aktuellen Zustand des Systems anzuzeigen. Der Controller 24 kann den aktuellen Systemzustand (z. B. den Zustand des Blockchain-Netzwerks 110) mit der globalen Richtlinie 48 vergleichen, die einen gewünschten Zustand des Systems angeben kann. Der gewünschte Zustand kann einen Makro-Zustand des Systems als Ganzes und/oder einen Mikro-Zustand eines einzelnen oder einer Gruppe von Randknoten umfassen. Etwaige Abweichungen können vermerkt werden, und ein Randknoten 10, der die Anforderungen nicht erfüllt, kann zur Ausführung eines Verwaltungsvorgangs aufgefordert werden, der die Nichteinhaltung behebt. In einigen Fällen können die intelligenten Verträge 44 und/oder die globale Richtlinie 48 Regeln kodieren, die angeben, wann ein nicht konformer Edge-Knoten 10 offline genommen werden sollte. So können die Regeln beispielsweise festlegen, dass ein Edge-Knoten 10, der nach einer Anzahl von N Blöcken, die in das verteilte Hauptbuch 42 geschrieben wurden, weiterhin nicht konform ist, offline genommen werden sollte. Auch andere Parameter können eine solche Entfernung vorschreiben. Auf diese Weise kann die wiederholte Durchsetzung und Einhaltung von Richtlinien mit Hilfe der Blockchain-Schnittstellenschicht 30 sichergestellt werden.
  • In einer Ausführungsform kann der Controller 24 in Verbindung mit bestimmten Arten von Verwaltungsvorgängen Dateien zum Herunterladen zur Verfügung stellen. So können beispielsweise Betriebssystem-Images, Software-Updates, neue Software und/oder andere herunterladbare Dateien oder Daten für Edge Nodes 10 zum Herunterladen in Verbindung mit einem Verwaltungsvorgang zur Verfügung gestellt werden. Wie weiter unten beschrieben wird, können die herunterladbaren Dateien in einigen Ausführungsformen Dateien mit bestimmten Verschlüsselungsschlüsseln, zusammengeführten Parametern usw. enthalten. Dies kann
    sicherstellen, dass das verteilte Hauptbuch 42 selbst solche Dateien oder Daten nicht speichern muss, sondern eine unveränderliche Aufzeichnung der aktuellen Dateien oder Daten speichert, die verwendet werden sollten (sowie eine historische Auflistung solcher Dateien oder Daten).
  • Die Blockchain-Schnittstellenschicht 30 kann verwendet werden, um mit dem verteilten Ledger 42 in Übereinstimmung mit den intelligenten Verträgen 44 zu kommunizieren. Die Blockchain-Schnittstellenschicht 30 wird im Folgenden unter Bezugnahme auf 1D beschrieben.
  • Die Speichergeräte 40 können ein verteiltes Hauptbuch 42, intelligente Verträge 44, Knotenschlüssel 46 und/oder andere Daten speichern. Das verteilte Hauptbuch 42 kann eine Reihe von Datenblöcken enthalten, die sich auf mindestens einen anderen Block, z. B. einen vorherigen Block, beziehen. Auf diese Weise können die Datenblöcke aneinandergereiht werden. Ein Beispiel für ein verteiltes Hauptbuch ist in dem bekannten Whitepaper „Bitcoin: A Peer-to-Peer Electronic Cash System“ von Satoshi Nakamoto (bitcoin.org) beschrieben, dessen Inhalt hier vollständig wiedergegeben wird. Das verteilte Hauptbuch 42 kann Blöcke speichern, die den Zustand eines Randknotens 10 in Bezug auf seine Konfiguration oder andere Verwaltungsinformationen anzeigen.
  • Die intelligenten Verträge 44 können Regeln enthalten, die die Knoten so konfigurieren, dass sie sich im Zusammenhang mit der dezentralen Verwaltung von Edge-Knoten auf bestimmte Weise verhalten. Beispielsweise können die Regeln deterministische Zustandsübergänge festlegen, welche Knoten sich für die Teilnahme an der dezentralen Verwaltung anmelden können, Regeln für die Umsetzung einer vom Verwaltungsknoten 12 ausgegebenen Änderungsanforderung und/oder andere Aktionen, die ein Edge-Knoten 10 oder Verwaltungsknoten 12 für die dezentrale Verwaltung durchführen kann. In einigen Ausführungsformen können solche Regeln angeben, wann ein Merge-Leader gewählt werden soll, welcher Randknoten 10 von der Entschlüsselungswahl ausgeschlossen werden soll usw.
  • Die Knotenschlüssel 46 können die öffentlichen Verschlüsselungsschlüssel der Randknoten 10 in (z. B. Internetprotokoll oder andere Adressen und/oder Identifizierungsinformationen). Auf diese Weise können in einigen Implementierungen Änderungsanforderungen an bestimmte Edge-Knoten 10 gerichtet und mit dem öffentlichen Schlüssel des Ziel-Edge-Knotens verschlüsselt werden.
  • Die globale Richtlinie 48 kann eine Sicherheits- oder andere Richtlinie für das System speichern. Die globale Richtlinie 48 kann beispielsweise Netzwerkkonfigurationseinstellungen, Sicherheitskonfigurationseinstellungen, Betriebssystemeinstellungen, Anwendungseinstellungen, Richtlinienregeln und/oder andere Richtlinieninformationen für Geräte enthalten, die von dem Managementknoten 12 verwaltet werden.
  • Beispiele für weitere Details eines Randknotens 10 werden nun unter Bezugnahme auf 1C beschrieben. Ein Edge Node 10 kann ein festes oder mobiles Gerät sein. Während in den Figuren nur einer der Randknoten 10 im Detail dargestellt ist, kann jeder der Randknoten 10 in der dargestellten Weise konfiguriert sein. Die Edge Nodes 10 können miteinander auf Peer-to-Peer-Basis kommunizieren. Die Edge Nodes 10 können jeweils einen oder mehrere Prozessoren 50 (der Einfachheit halber hier auch als Prozessoren 50, Prozessor(en) 50 oder Prozessor 50 bezeichnet), eine oder mehrere Speichervorrichtungen 70 und/oder andere Komponenten umfassen.
  • Der Prozessor 50 kann durch eine oder mehrere Computerprogrammanweisungen programmiert werden. Beispielsweise kann der Prozessor 50 so programmiert werden, dass er einen Blockchain-Agenten 52, einen Konfigurationsmanager 54, eine Blockchain-Schnittstellenschicht 30 und/oder andere Anweisungen ausführt, um verschiedene Operationen durchzuführen, die hierin jeweils ausführlicher beschrieben werden. Im Folgenden werden die verschiedenen Anweisungen der Einfachheit halber als Ausführung einer Operation beschrieben, wenn die verschiedenen Anweisungen die Prozessoren 50 (und damit den Edge-Node 10) tatsächlich zur Ausführung der Operation programmieren.
  • Der Blockchain-Agent 52 kann die Blockchain-Schnittstellenschicht 30 verwenden, um
    mit anderen Randknoten 10 und/oder Verwaltungsknoten 12 kommunizieren. Die Blockchain-Schnittstellenschicht 30, die unter Bezugnahme auf 4 beschrieben wird, kann auf die gleiche Weise am Verwaltungsknoten 12 und am Randknoten 10 arbeiten, um mit dem Blockchain-Netzwerk zu kommunizieren (mit Ausnahme der Möglichkeit, in das verteilte Hauptbuch 42 zu schreiben). Zum Beispiel kann der Blockchain-Agent 52 eine aktualisierte Kopie des verteilten Hauptbuchs 42 von einem oder mehreren anderen Randknoten 10 und/oder dem Verwaltungsknoten 12 erhalten. Der Blockchain-Agent 52 kann auch Verwaltungsoperationen aus dem verteilten Hauptbuch 42 erhalten, die vom Verwaltungsknoten 12. Auf diese Weise kann der Verwaltungsknoten 12 Verwaltungsvorgänge, die an einem Randknoten 10 durchgeführt werden sollen, über das verteilte Hauptbuch 42 übermitteln.
  • Der Konfigurationsmanager 54 kann eine oder mehrere Verwaltungsoperationen von dem Blockchain-Agenten 52 erhalten. Der Konfigurationsmanager 54 kann die eine oder mehrere Verwaltungsoperationen auf den Randknoten 10 anwenden. In einigen Fällen kann der Konfigurationsmanager 54 die Verwaltungsoperationen anwenden, ohne zu bestimmen, ob dies geschehen soll. In anderen Fällen kann der Konfigurationsmanager 54 eine oder mehrere lokale Richtlinien konsultieren, um sicherzustellen, dass der Edge-Knoten 10 die eine oder mehreren Verwaltungsoperationen einhalten kann. Die lokalen Richtlinien können durch die intelligenten Verträge 44 kodiert werden. Alternativ oder zusätzlich können einige lokale Richtlinien in einer lokalen Richtlinie 78 gespeichert werden, die nicht unbedingt mit anderen Edge Nodes 10 geteilt wird. Mit anderen Worten kann die lokale Richtlinie 78 speziell an einem Randknoten definiert werden, an dem sie gespeichert ist.
  • Sobald der Konfigurationsmanager 54 auf die eine oder mehrere Verwaltungsoperationen reagiert hat (ob durch deren Anwendung oder nicht), kann der Blockchain-Agent 52 seinen Zustand an andere Knoten des Blockchain-Netzwerks 110 senden. Zum Beispiel kann der Blockchain-Agent 52 kann eine Blockchain-Transaktion erzeugen und übermitteln, die den Zustand des Edge-Knotens 10 angibt (z. B. ob, wie und/oder wann die eine oder mehrere Verwaltungsoperationen durchgeführt wurden). Die Blockchain-Transaktion kann Informationen enthalten, die angeben, welcher Verwaltungsvorgang durchgeführt wurde (oder nicht). Beispielsweise kann die Information, die die Verwaltungsoperation identifiziert, ein Blockidentifikator (wie ein Blockhash) sein, der den Block identifiziert, aus dem die Verwaltungsoperationen erhalten wurden. Auf diese Weise kann die Blockchain-Transaktion, die den Zustand eines Knotens angibt, den Verwaltungsvorgang aufzeichnen, der durchgeführt (oder nicht durchgeführt) wurde.
  • Bei Implementierungen, bei denen Verwaltungsvorgänge auf einen Randknoten 10 ausgerichtet sind und mit dem öffentlichen Schlüssel 72 des Randknotens 10 verschlüsselt werden, kann der Blockchain-Agent 52 die Verwaltungsvorgänge mit dem privaten Schlüssel 74 des Randknotens 10 entschlüsseln. In einigen Implementierungen kann der Blockchain-Agent 52 eine Blockchain-Transaktion vom Verwaltungsknoten 12, die die Verwaltungsoperation enthält, digital signieren. Zum Beispiel kann der Verwaltungsknoten 12 eine an den Randknoten 10 gerichtete Transaktion erzeugen und die Transaktion mit dem öffentlichen Schlüssel des Verwaltungsknotens 12 signieren.
  • Der Verwaltungsknoten 12 kann dann die signierte Transaktion in das verteilte Hauptbuch 42 schreiben, um eine unveränderliche Aufzeichnung des Verwaltungsvorgangs und der Zustandsänderung des anvisierten Randknotens zu erstellen. Auf diese Weise kann sicher nachgewiesen werden, dass die Transaktion von dem Edge-Node 10 ausgeführt wurde. Es ist anzumerken, dass der Edge Node 10 nicht speziell anvisiert werden muss, um die Transaktion zu signieren, damit eine Aufzeichnung des Zustands des Edge Nodes 10 in einer Transaktion und damit eine Sperre erstellt wird.
  • Nach Erhalt einer Transaktion wendet der Randknoten 10 das Management Operation und zeigt an, dass er dies erfolgreich getan hat, indem er die Transaktion mit dem privaten Schlüssel des Randknotens signiert. Der Verwaltungsknoten 12 kann diese Transaktion in das verteilte Hauptbuch (Distributed Ledger) 42 schreiben und damit einen sicheren, unveränderlichen Datensatz erstellen, der beweist, dass der Edge-Knoten die Verwaltungsoperation empfangen und angewendet hat. In einigen Implementierungen kann ein Randknoten 10 mit einer Reihe von Transaktionen verbunden sein, so dass jede Transaktion auf einen vorherigen Transaktionshash verweisen kann. Die Transaktionen können vom Verwaltungsknoten 12 in das verteilte Hauptbuch 42 geschrieben werden, wodurch eine unveränderliche und historische Aufzeichnung der Transaktionen für einen bestimmten Edge-Knoten 10 entsteht.
  • In einer Implementierung kann der Konfigurationsmanager 54 in regelmäßigen Abständen die Übereinstimmung mit dem aktuellen Zustand des Systems sicherstellen. Zum Beispiel können die intelligenten Verträge 44 Regeln kodieren, die festlegen, welche Ereignisse eine solche Überprüfung auslösen. Zu den Ereignissen können ein Neustart, eine Neuinitialisierung, das Verstreichen einer Zeitspanne, eine Anzahl von Blöcken, die in das verteilte Hauptbuch 42 geschrieben wurden, ein Sicherheitsereignis wie die Erkennung von Schadsoftware, eine Eingabe eines Benutzers, die angibt, dass die Überprüfung stattfinden soll, und/oder ein anderes Ereignis gehören, das eine Konformitätsbewertung auslösen kann. Um die Konformität zu bewerten, kann der Konfigurationsmanager 54 feststellen, ob aktuelle Verwaltungsoperationen (wie durch den letzten Block definiert, der solche Operationen kodiert), einschließlich globaler und speziell auf den Randknoten 10 gerichteter Operationen, durchgeführt werden. Wenn dies der Fall ist, kann der Konfigurationsmanager 54 feststellen, ob sie hätten implementiert werden müssen, aber nicht implementiert wurden. Ist dies nicht der Fall, kann der Konfigurationsmanager 54 die Verwaltungsoperationen implementieren. Auf diese Weise können die Randknoten 10 die aktuellen Verwaltungsvorgänge (wie durch den aktuellen Systemzustand definiert) selbständig durchsetzen.
  • Die Speichergeräte 70 können die Kopie eines Randknotens der verteilten Ledger 42, die Kopie der intelligenten Verträge 44 des Randknotens, den öffentlichen Schlüssel 72 des Randknotens, den privaten Schlüssel 74 des Randknotens und/oder andere Daten.
  • Es wird nun auf 1D verwiesen, in der ein Beispiel für die Blockchain-Schnittstellenschicht 30 dargestellt ist. Jeder der Randknoten 10 und der Verwaltungsknoten 12 können die Blockchain-Schnittstellenschicht 30 implementieren, mit der Ausnahme, dass die Randknoten 10 keine Berechtigung zum Schreiben in das verteilte Hauptbuch 42 haben. Die Blockchain-Schnittstellenschicht 30 kann eine Nachrichtenschnittstelle enthalten, die zur Kommunikation mit dem Blockchain-Netzwerk 110 verwendet wird. Die Nachrichtenübermittlungsschnittstelle kann als Secure Hypertext Transmission Protocol („HTTPS“) Microserver 31 konfiguriert sein. Es können auch andere Arten von Nachrichtenübermittlungsschnittstellen verwendet werden. Die Blockchain-Schnittstellenschicht 30 kann eine Blockchain-API 32 verwenden, um Blockchain-Funktionen auf der Grundlage einer Blockchain-Spezifikation aufzurufen. Beispiele für Blockchain-Funktionen sind unter anderem das Lesen und Schreiben von Blockchain-Transaktionen 34 und das Lesen und Schreiben von Blockchain-Blöcken in das verteilte Hauptbuch 42. Ein Beispiel für eine Blockchain-Spezifikation ist die Ethereum-Spezifikation. Es können auch andere Blockchain-Spezifikationen verwendet werden. Die Konsens-Engine 36 kann Funktionen enthalten, die Konsensentscheidungen treffen, z. B. ob ein Knoten zur Teilnahme an der dezentralen Verwaltung der Randknoten angemeldet werden soll. Der Zustand eines Knotens 10 kann durch Status 38 wiedergegeben werden.
  • Obwohl in 1B und 1C als eine einzige Komponente dargestellt, kann ein Managementknoten 12 bzw. ein Randknoten 10 eine Vielzahl von Einzelkomponenten (wie z. B. Computergeräte) umfassen, die jeweils mit mindestens einigen der hier beschriebenen Funktionen programmiert sind. Der eine oder die mehreren Prozessoren 20 oder 50 können jeweils einen oder mehrere physische Prozessoren umfassen, die durch Computerprogrammanweisungen programmiert sind.
  • Die verschiedenen hier beschriebenen Anweisungen dienen der Veranschaulichung. Andere Konfigurationen und eine andere Anzahl von Befehlen können verwendet werden, solange der/die Prozessor(en) 20 oder 50 so programmiert sind, dass sie die hier beschriebenen Funktionen ausführen.
  • Darüber hinaus sollte beachtet werden, dass, obwohl die verschiedenen Funktionen in den und so dargestellt sind, als wären sie gemeinsam in einer einzigen Verarbeitungseinheit untergebracht, in Implementierungen, in denen der/die Prozessor(en) 20 oder 50 mehrere Verarbeitungseinheiten umfasst/umfassen, eine oder mehrere Anweisungen entfernt von den anderen Anweisungen ausgeführt werden können.
  • Die verschiedenen Anweisungen zur Ausführung der hierin beschriebenen Funktionen können in einer Speichereinrichtung 40 oder 70 gespeichert werden, die einen Speicher mit wahlfreiem Zugriff (RAM), einen Festwertspeicher (ROM) und/oder einen anderen Speicher umfassen kann. Die Speichervorrichtung 40 oder 70 kann die vom Prozessor 20 bzw. 50 auszuführenden Computerprogrammanweisungen (wie die vorgenannten Anweisungen) sowie Daten speichern, die vom Prozessor 20 oder 50 bearbeitet werden können. Die Speichervorrichtung 40 oder 70 kann ein oder mehrere nicht transitorische maschinenlesbare Speichermedien wie Disketten, Festplatten, optische Platten, Bänder oder andere physische Speichermedien zur Speicherung von computerausführbaren Anweisungen und/oder Daten umfassen.
  • Das verteilte Hauptbuch 42, die Transaktionswarteschlange, die intelligenten Verträge 44, die auszuführenden Verwaltungsvorgänge und/oder andere hierin beschriebene Informationen können in verschiedenen Speichergeräten wie dem Speichergerät 40 oder 70 gespeichert werden. Je nach den besonderen Speicher- und Abrufanforderungen können auch andere Speichergeräte verwendet werden. Beispielsweise können die verschiedenen hier beschriebenen Informationen in einer oder mehreren Datenbanken gespeichert werden. Bei den Datenbanken kann es sich beispielsweise um eine relationale Oracle™-Datenbank handeln, die von der Oracle Corporation kommerziell vertrieben wird, oder um eine Schnittstelle zu einer solchen Datenbank. Andere Datenbanken, wie z.B. Informix™, DB2 (Database 2) oder andere Datenspeicher, einschließlich dateibasierter, oder Abfrageformate, Plattformen oder Ressourcen wie OLAP (On Line Analytical Processing), SQL (Structured Query Language), ein SAN (Storage Area Network), Microsoft Access™ oder andere können ebenfalls verwendet, eingebunden oder genutzt werden. Die Datenbank kann aus einer oder mehreren solcher Datenbanken bestehen, die sich in einem oder mehreren physischen Geräten und an einem oder mehreren physischen Orten befinden. Die Datenbank kann eine Vielzahl von Datentypen und/oder Dateien und zugehörige Daten oder Dateibeschreibungen, Verwaltungsinformationen oder andere Daten speichern.
  • Die in 1C bzw. 1B dargestellten Randknoten 10 und Verwaltungsknoten 12 können mit anderen Knoten über ein Netzwerk verbunden sein, das beispielsweise das Internet, ein Intranet, ein PAN (Personal Area Network), ein LAN (Local Area Network), ein WAN (Wide Area Network), ein SAN (Storage Area Network), ein MAN (Metropolitan Area Network), ein drahtloses Netzwerk, ein zellulares Kommunikationsnetzwerk, ein öffentliches Telefonnetz und/oder ein anderes Netzwerk umfassen kann. In 1A sowie in anderen Abbildungen kann eine andere Anzahl von Einheiten als die dargestellten verwendet werden. Darüber hinaus können die hier beschriebenen Komponenten gemäß verschiedenen Implementierungen in Hardware und/oder Software implementiert sein, die Hardware konfiguriert.
  • Das Lernen im Schwarm kann verschiedene Stufen oder Phasen des Betriebs umfassen, einschließlich, aber nicht beschränkt auf: Initialisierung und Einarbeitung, Installation und Konfiguration sowie Integration und Schulung. Initialisierung und Onboarding können sich auf einen Prozess beziehen (der ein Offline-Prozess sein kann), bei dem mehrere an schwarmbasiertem ML interessierte Stellen zusammenkommen und die betrieblichen und rechtlichen Anforderungen des dezentralen Systems formulieren. Dazu gehören Aspekte wie Vereinbarungen über die gemeinsame Nutzung von Daten (Parametern), Vereinbarungen zur Gewährleistung die Sichtbarkeit der Knoten über die organisatorischen Grenzen der Entitäten hinweg und ein Konsens über die erwarteten Ergebnisse des Modelllernprozesses. In dieser Phase werden auch die Werte der konfigurierbaren Parameter festgelegt, die von einem Schwarmlernnetz bereitgestellt werden, z. B. die Anzahl der Peer-Discovery-Knoten, die beim Hochfahren zur Verfügung gestellt werden, und die Synchronisierungsfrequenz zwischen den Knoten. Schließlich können das gemeinsame (globale) Modell, das trainiert werden soll, und das Belohnungssystem (falls zutreffend) vereinbart werden.
  • Sobald die Initialisierungs- und Onboarding-Phase abgeschlossen ist, können alle Teilnehmer (z. B. Edge Nodes 10) eine Schwarmlernplattform/- anwendung herunterladen und auf ihren jeweiligen Rechnern, d. h. Knoten, installieren. Die Schwarmlernplattform kann dann hochfahren, und die Verbindung jedes Knotens mit dem Schwarmlern-/Schwarm-basierten Blockchain-Netzwerk kann initiiert werden. Wie hier verwendet, kann sich der Begriff Schwarmlernplattform auf ein Blockchain-Overlay auf einem zugrunde liegenden Netzwerk von Verbindungen zwischen Knoten beziehen. Der Startvorgang kann ein geordneter Prozess sein, bei dem die als Peer-Discovery-Knoten (während der Initialisierungsphase) bezeichneten Knoten zuerst hochgefahren werden, gefolgt von den übrigen Knoten im Schwarmlernnetzwerk.
  • Im Hinblick auf die Integrations- und Trainingsphase kann die Schwarmlernplattform eine Reihe von APIs bereitstellen, die eine schnelle Integration mit mehreren Frameworks ermöglichen. Diese APIs können in eine bestehende Codebasis für die Schwarmlernplattform integriert werden, um einen eigenständigen ML-Knoten schnell in einen Schwarmlernteilnehmer zu verwandeln. Die Begriffe „Teilnehmer“ und „Knoten“ können bei der Beschreibung der verschiedenen Ausführungsformen austauschbar verwendet werden.
  • Auf hohem Niveau, Modelltraining in Übereinstimmung mit verschiedenen Ausführungsformen können in Form von Registrierung, lokalem Modelltraining, gemeinsamer Nutzung von Parametern, Zusammenführung von Parametern und Überprüfung von Abbruchkriterien beschrieben werden. 2A zeigt die Vorgänge, die von der Schwarmlernplattform gemäß einer Ausführungsform durchgeführt werden können. Bei 200 erfolgt die Registrierung. Das heißt, jeder Knoten im Schwarmlernnetzwerk kann sich in einen Schwarmlernvertrag einschreiben oder registrieren. In einer Ausführungsform kann dies ein einmaliger Vorgang sein. In anderen Ausführungsformen kann die Registrierung oder Anmeldung nach einiger Zeit als eine Art Verifizierungsprozess durchgeführt werden. Jeder Knoten kann anschließend seine relevanten Attribute in den Schwarmlernvertrag aufnehmen, z. B. den Uniform Resource Locator (URL), von dem sein eigener Satz trainierter Parameter von anderen Knoten heruntergeladen werden kann.
  • Bei 202 erfolgt die Ausbildung des lokalen Modells, wobei jeder Knoten eine lokale Kopie des globalen oder gemeinsamen Modells in einer iterativen Weise über mehrere Runden ausbildet, die als Epochen bezeichnet werden können. Während jeder Epoche trainiert jeder Knoten sein lokales Modell unter Verwendung eines oder mehrerer Datenpakete für eine bestimmte Anzahl von Iterationen. Eine Prüfung, ob Parameter zusammengeführt werden können, kann bei 204 durchgeführt werden. Bei der Prüfung kann festgestellt werden, ob die Schwellenzahl der Iterationen erreicht wurde und/oder ob eine Schwellenzahl von Knoten bereit ist, ihre jeweiligen Parameter gemeinsam zu nutzen. Diese Schwellenwerte können während der Initialisierungsphase festgelegt werden. Nachdem die Schwellenzahl der Iterationen erreicht ist, werden die Parameterwerte jedes Knotens in eine Datei exportiert, die dann in ein gemeinsames Dateisystem hochgeladen werden kann, damit andere Knoten darauf zugreifen können. Jeder Knoten kann den anderen Knoten signalisieren, dass er bereit ist, seine Parameter freizugeben.
  • Sobald die gemeinsame Nutzung von Parametern beginnt, können die aktuellen Modellparameter bei 206 exportiert werden, und die exportierten Parameter können an eine Schwarmlernanwendung gesendet werden Programmierschnittstelle (API) (die weiter unten ausführlicher beschrieben wird) bei 208. Die Phase der gemeinsamen Nutzung von Parametern kann mit der Wahl eines Zusammenführungs- oder Epochenführers beginnen, dessen Aufgabe es ist, die nach dem lokalen Training auf dem gemeinsamen Modell an jedem der Knoten abgeleiteten Parameter zusammenzuführen. Diese Wahl eines Zusammenführungs- oder Epochenführers kann nach jeder Epoche erfolgen. Es ist zwar möglich, einen Knoten zu wählen, der über mehrere Epochen hinweg als Merge-Leader fungiert, aber die Wahl eines Merge-Leaders nach jeder Epoche trägt zur Wahrung der Privatsphäre bei, da sich der Knoten, der den öffentlichen Schlüssel besitzt, ändert. Nach der Auswahl eines der Knoten des Schwarmlernnetzwerks als Merge-Leader können die URL-Informationen jedes Teilnehmers oder Knotens verwendet werden, um die Parameterdateien von jedem Knoten herunterzuladen. In einer Ausführungsform kann eine Sterntopologie verwendet werden, bei der ein einzelner Zusammenführungsleiter die Zusammenführung durchführt. Andere Topologien, wie z. B. eine k-Wege-Zusammenführung, bei der die Zusammenführung von einer Gruppe von Knoten durchgeführt wird, können ebenfalls verwendet werden.
  • Der Merge-Leader kann dann die heruntergeladenen Parameterdateien (von jedem Knoten des lernenden Schwarmnetzes) zusammenführen. Geeignete Zusammenführungsmechanismen oder -algorithmen können verwendet werden, z. B. eine oder mehrere Mittelwert-Zusammenführungen, gewichtete Mittelwert-Zusammenführungen, Median-Zusammenführungen usw. Der Leiter der Zusammenführung kann die Parameterwerte aller Knoten kombinieren, um eine neue Datei mit den zusammengeführten Parametern zu erstellen, und signalisiert den anderen Knoten, dass eine neue Datei verfügbar ist. Bei 210 kann jeder Knoten die zusammengeführten Parameter (die in der neuen Datei enthalten sind) über die Schwarm-API vom Leader abrufen. Bei 212 kann jeder Knoten seine lokale Version des gemeinsamen Modells mit den zusammengeführten Parametern aktualisieren.
  • Bei 214 kann geprüft werden, ob ein Abbruchkriterium erreicht wurde. Das heißt, jeder der Knoten bewertet das Modell mit den aktualisierten Parameterwerten unter Verwendung ihrer lokalen Daten, um verschiedene Validierungsmetriken zu berechnen. Die erhaltenen Werte aus diesem Vorgang werden über eine Smart-Contract-Zustandsvariable geteilt. Sobald jeder Knoten diesen Schritt abgeschlossen hat, signalisiert er dem Schwarmlernnetz, dass der Aktualisierungs- und Validierungsschritt abgeschlossen ist. In der Zwischenzeit kann der Anführer des Zusammenschlusses weiterhin prüfen, ob die einzelnen Knoten ein Signal für den Abschluss der Aktualisierung senden. Wenn er feststellt, dass alle Merge-Teilnehmer die Fertigstellung signalisiert haben, führt er die lokalen Validierungsmetriken zusammen, um die globalen Metriken zu berechnen. Diese Aktualisierung des Modells kann als ein Synchronisationsschritt betrachtet werden. Wenn die bei der Initialisierung festgelegte Strategie die Monetarisierung während des Modellaufbaus unterstützt, werden die den Beiträgen der einzelnen Teilnehmer entsprechenden Belohnungen zu diesem Zeitpunkt berechnet und ausgezahlt. Anschließend wird der aktuelle Zustand des Schwarmlernnetzes mit einem Stoppkriterium verglichen, und wenn dieses erfüllt ist, wird der Schwarmlernprozess beendet. Andernfalls werden die Schritte des lokalen Modelltrainings, der Parameteraufteilung, der Parameterzusammenführung und der Überprüfung des Haltekriteriums so lange wiederholt, bis das Kriterium erfüllt ist.
  • 2B zeigt ein Beispiel für eine Schwarmlernarchitektur 220. Diese Schwarmlernarchitektur 220 kann lokale ML-Modelle 222A-222N an jedem Knoten (ML-Modelle 1, 2, ... N) umfassen. Diese lokalen ML-Modelle 222A-222N können an Knoten gepflegt und trainiert werden, die das Schwarmlernetzwerk bilden, z. B. an den oben beschriebenen Randknoten 10, die das Blockchain-Netzwerk 110 bilden. Die Schwarmlernarchitektur 220 kann auch eine Schwarmlernkomponente 224 umfassen, die eine API-Schicht 226, eine Steuerungsschicht 228, eine Datenschicht 230 und eine Monetarisierungsschicht 232 umfassen kann. Die Schwarmlernkomponente 224 kann (wie oben erwähnt) in einem Blockchain-Kontext arbeiten, um den Datenschutz zu gewährleisten, wobei eine Blockchain-Plattform 234 auf einer ML-Plattform 236 arbeitet (die auf die Knoten eines Schwarms verteilt ist).
    Lernnetzwerk). Die gemeinsame Nutzung von Parametern und Validierungsverlusten kann über ein Blockchain-Ledger 238 erfolgen, bei dem es sich um eine Ausführungsform des verteilten Ledger 42 handeln kann. Es sei darauf hingewiesen, dass die Komponenten oder Elemente der Architektur des Schwarmlernens 220 modular sein können, so dass die bei ihrer Umsetzung verwendeten Technologien je nach Bedarf ersetzt, angepasst, umgestellt usw. werden können. Der gesamte Rahmen ist so konzipiert, dass er sowohl auf Standard- als auch auf High-End-Maschinen läuft und eine heterogene Infrastruktur im Schwarmlernetzwerk unterstützt. Es kann sowohl innerhalb von Rechenzentren als auch bereichsübergreifend eingesetzt werden und verfügt über integrierte Unterstützung für ein fehlertolerantes Netzwerk, in dem Knoten das Schwarmlernnetzwerk dynamisch verlassen und wieder betreten können, ohne dass der Modellbildungsprozess entgleist oder zum Stillstand kommt. Mit anderen Worten:
    • Die Blockchain-Plattform 234 wird als Infrastrukturkomponente für die Implementierung eines Schwarmlern-Ledgers (oder Blackboards) verwendet, der die dezentrale Steuerungslogik für die ML-Modellbildung, die gemeinsame Nutzung von HE-Schlüsseln und die Logik für die gemeinsame Nutzung von Parametern umfasst. Die Randknoten 10 (an denen die ML-Modelle 222A, 222B..., 222N trainiert werden) können selbst über alle Infrastrukturkomponenten und die Steuerlogik verfügen, die für die Steuerung/Verwaltung des Schwarmlernens verwendet werden.
  • Schwarmlernen kann in einer Ausführungsform als API-Bibliothek 226 implementiert werden, die für mehrere gängige Frameworks wie TensorFlow, Keras und dergleichen verfügbar ist. Diese APIs bieten eine Schnittstelle, die den Trainings-APIs in den nativen Frameworks, die Datenwissenschaftlern vertraut sind, ähnlich ist. Der Aufruf dieser APIs fügt automatisch die erforderlichen „Haken“ für das Schwarmlernen ein, sodass die Knoten am Ende jeder Modellepoche nahtlos Parameter austauschen und anschließend das Training fortsetzen, nachdem sie die lokalen Modelle auf die global zusammengeführten Parameter zurückgesetzt haben.
  • Die Verantwortung für die Aufrechterhaltung des Schwarmlernnetzes in einem globalen
    Der konsistente Zustand liegt bei der Kontrollschicht 228, die mit der Blockchain-Technologie implementiert ist. Die Kontrollschicht 228 stellt sicher, dass alle Operationen und die entsprechenden Zustandsübergänge atomar ausgeführt werden. Sowohl der Zustand als auch die unterstützten Operationen sind in einem Blockchain-Smart-Contract gekapselt. Der Zustand (38 in 1D) umfasst Informationen wie die aktuelle Epoche, die aktuellen Mitglieder oder Teilnehmer des Schwarmlernnetzes mit ihren IP-Adressen und Ports sowie die URls für Parameterdateien. Zu den unterstützten Operationen gehören eine Logik zur Wahl eines Zusammenführungsleiters des Schwarmlernnetzes am Ende jeder Epoche, Fehlertoleranz- und Selbstheilungsmechanismen sowie die Signalisierung zwischen den Knoten für den Beginn und den Abschluss verschiedener Phasen.
  • Die Datenschicht 230 steuert den zuverlässigen und sicheren Austausch von Modellparametern und Validierungsverlusten über das Schwarmlernnetzwerk. Wie die Steuerschicht 228 kann die Datenschicht 230 verschiedene Mechanismen für die gemeinsame Nutzung von Dateien unterstützen, z. B. Hypertext Transfer Protocol Secure (HTTPS) über Transport Layer Security (TLS), Interplanetary File System (IPFS) und so weiter. Die Datenschicht 230 kann über die unterstützten Operationen gesteuert werden, die von der Steuerschicht 228 aufgerufen werden, wobei auch Informationen über diese Schicht gepflegt werden können.
  • 3 zeigt ein Beispiel für homomorphe Verschlüsselung. Homomorphe Verschlüsselung (HE) kann sich auf eine Untergruppe von Techniken zur Implementierung einer vertrauenswürdigen Computerumgebung beziehen, indem bestimmte Berechnungen an Chiffretexten ausgeführt werden können, um ein verschlüsseltes Ergebnis zu erhalten, das der Chiffretext des Ergebnisses der am Klartext durchgeführten Operationen ist. Hier umfasst die vertrauenswürdige Seite 300 das Verschlüsseln von Klartext-Eingabewerten mit einem Verschlüsseler 302 unter Verwendung einer Verschlüsselungsfunktion sowie das Entschlüsseln des von der nicht vertrauenswürdigen Seite 310 empfangenen Chiffretextes mit einem Entschlüsseler 304 unter Verwendung eines privaten Schlüssels, was zu einem Klartext Antwort. Hier kann die asymmetrische Schlüsselverschlüsselung, d.h. die Verwendung privater und öffentlicher Schlüssel, genutzt werden, um zu vermeiden, dass ein gemeinsames Geheimnis mit einem der Teilnehmer geteilt wird. Zusätzlich kann sich HE auf einen Auswerter 312 (auf der nicht vertrauenswürdigen Seite 310) stützen, der Auswertungsoperationen ausführt, z.B. eine vordefinierte und bewährte Reihe von Operationen wie Addition, Multiplikation usw. an homomorph verschlüsselten Daten. Das heißt, der Auswerter 312 kann verschlüsselte Versionen der Klartext-Eingabewerte erhalten und die Operation in verschlüsseltem Text durchführen, in diesem Fall die Addition. Da der Auswerter 312 nur mit verschlüsselten Daten (Chiffretext) arbeitet, kann der Auswerter 312 auf einem nicht vertrauenswürdigen System, d. h. auf der nicht vertrauenswürdigen Seite 310, ausgeführt werden.
  • Wie bereits angedeutet, sind verschiedene Ausführungsformen darauf ausgerichtet, zu verhindern, dass ein Teilnehmer/Knoten im Schwarmlernnetzwerk Zugang zu allen Parameterdaten oder Validierungsverlustinformationen im Klartext oder zu allen gemeinsam genutzten Geheimnissen zu einem beliebigen Zeitpunkt im Prozess der Zusammenführung von Parametern und Validierungsverlustwerten erhält, um sicherzustellen, dass selbst ein Zusammenführungsleiter eingehende Parameterdaten oder lokale Validierungsverlustwerte nicht entschlüsseln kann. Außerdem werden die asymmetrischen Schlüssel von einem Schlüsselmanager (außerhalb des Schwarmlernnetzes) erzeugt. Der Schlüsselmanager ist nicht Teil der „Kernarchitektur“ des Schwarmlernens (sondern eher ein Dienst, auf den man sich bei der Implementierung des Schwarmlernens verlässt). Bei dem Schlüsselmanager kann es sich um einen Schlüsselmanager der Unternehmensklasse handeln, der öffentliche/private Schlüssel in einer fehlertoleranten und physisch sicheren Umgebung erzeugt und bereitstellt. Bei einem Schlüsselmanager kann es sich beispielsweise um spezialisierte und gehärtete Hardware/Software-Anwendungen handeln, die gemeinsam entwickelt wurden. Wie bereits erwähnt, gibt der Schlüsselmanager nur den öffentlichen Schlüssel für den Zusammenführungsführer frei, der an die Teilnehmer zur Verschlüsselung ihrer lokalen Parameterdaten und lokalen Validierungsverlustwerte weitergegeben wird, und die Zusammenführung der Parameter/Validierungsverlustwerte erfolgt homomorph.
    Die Entschlüsselung der zusammengefassten Parameter/der zusammengefassten Validierungsverlustwerte kann von einem gewählten Entschlüsselungsknoten durchgeführt werden, der nicht der Zusammenführungsführer ist. Dieser Entschlüsselungsknoten kann vom Schlüsselverwalter einen privaten Schlüssel anfordern, um die zusammengeführten Parameter/lokalen Validierungsverlustwerte zu entschlüsseln, und ihn dem Merge-Leader zur Verteilung übergeben.
  • Die zeigen Beispielvorgänge, die durchgeführt werden können, um Schwarmlernen unter Verwendung homomorpher Verschlüsselung zum Schutz von Parameterdaten gemäß einer Ausführungsform der offengelegten Technologie zu bewirken.
  • Unter Bezugnahme auf 4A kann der Schwarmlernprozess in einer Ausführungsform mit der Wahl eines Zusammenführungsleiters beginnen, wenn ein Quorum von Knoten (Knoten 400-1 bis 400-n im Schwarmnetzwerk, das eine Ausführungsform des Blockchain-Netzwerks 110 sein kann) bereit ist, ihre Parameter zusammenzuführen. Wie in 4A dargestellt, führt jeder der Knoten 400-1, 400-2..., 400-n einen Registrierungsvorgang durch, der dazu führt, dass jeder der Knoten 400-1, 400-2..., 400-n im Hauptbuch 420 registriert wird, das eine Ausführungsform des Hauptbuchs 42 oder des oben besprochenen Hauptbuchs 238 sein kann. Es sollte verstanden werden, dass die oben beschriebenen intelligenten Verträge 44 Regeln für die Registrierung eines Knotens zur Teilnahme an einem Schwarmlernetzwerk, z. B. einer Ausführungsform des Blockchain-Netzwerks 110, kodieren können. Die Regeln können erforderliche Berechtigungsnachweise und/oder andere Anmeldevoraussetzungen festlegen. Die erforderlichen Anmeldedaten können die Berechtigung für die Teilnahme von Knoten festlegen. Beispielsweise kann das Blockchain-Netzwerk 110 als private Blockchain konfiguriert sein, an der nur autorisierte Knoten an einer Iteration teilnehmen dürfen. Darüber hinaus können alle Autorisierungsinformationen und erwarteten Anmeldeinformationen in den Smart Contracts 44 oder anderen gespeicherten Informationen kodiert sein, die den Knoten im Blockchain-Netzwerk 110 zur Verfügung stehen. Sobald ein Knoten registriert ist, wird das Blockchain-Netzwerk 110 kann eine Identität des Knotens und seinen Zustand aufzeichnen, so dass eine Identifizierung aller Knoten möglich ist. Eine solche Aufzeichnung kann über einen Eintrag im verteilten Hauptbuch 420 erfolgen. Als solches kann das verteilte Hauptbuch 420 eine Topologie der Knoten und einen Zustand der Knoten aufzeichnen, und dies kann durch den Prozess der Parameterzusammenführung fortgesetzt werden, wie weiter unten beschrieben wird.
  • Wie in 4A weiter veranschaulicht, kann jeder der Knoten 400-1, 400-2..., 400-n Instanzen eines gemeinsamen, globalen Modells unter Verwendung lokaler Daten trainieren, die von jedem der Knoten vorhanden/mitgeteilt werden. Wie oben erwähnt, können Parameter, z. B. Gewichte, gemäß dem Training des Modells unter Verwendung lokaler Daten abgeleitet werden, und diese Parameter können dann in ihrem verschlüsselten Zustand oder Format aufbewahrt werden. Nach Abschluss des Modelltrainings und der Speicherung der daraus abgeleiteten Parameter ist jeder der Knoten 400-1, 400-2 ..., 400-n bereit, seine speziellen Parameter mit denen der anderen Knoten zusammenzuführen. Dementsprechend kann dieser Zustand der Bereitschaft zum Zusammenführen im Hauptbuch 420 widergespiegelt werden, indem in das Hauptbuch 420 ein eingecheckter Eintrag geschrieben wird, der mit jedem der Knoten 400-1, 400-2..., 400-n verbunden ist.
  • Gemäß 4B durchläuft jeder der Knoten 400-1, 400-2..., 400-n einen Wahlprozess, um einen der Knoten auszuwählen, der als Merge-Leader fungiert. Die Wahlstimmen werden im Hauptbuch 420 aufgezeichnet. Wie bereits erwähnt, kann das Hauptbuch 420 eine Aufzeichnung des Zustands eines Knotens sowie seiner Identität widerspiegeln, so dass die Stimmen mit den Knoten, die diese Stimmen abgeben, in Verbindung gebracht werden können, und ein Knoten, der in diesem Beispiel als Merge-Leader (und später als Entschlüsseler) ausgewählt wurde, kann über seinen Zustand/deine gewählte Rolle informiert werden. In einigen Ausführungsformen verwendet jeder Knoten eine vereinbarte Abstimmungs-/Wahllogik, aus der der Gewinner als Merge-Leader gewählt wird. Beispielsweise kann jeder Knoten eine Zufallszahl auswählen, die er im Hauptbuch 420 registriert, und der Knoten, der die niedrigste Zahl (oder die höchste Zahl oder die Zahl, die einer bestimmten Zahl am nächsten kommt usw.) kann als Grundlage für die Wahl verwendet werden. Dem Fachmann sind verschiedene Wahlmechanismen bekannt, die in diesem Zusammenhang eingesetzt werden können. Sobald die Stimmen im Ledger 420 aufgezeichnet sind, fragt jeder der Knoten 400-1, 400-2..., 400-n das Ledger 420 ab, um festzustellen, ob er als Merge-Leader ausgewählt wurde. In diesem Beispiel wurde der Knoten 400-1 zufällig ausgewählt, woraufhin er den Parameterzusammenführungsprozess starten kann, indem er zunächst den Schlüsselmanager 402 auffordert, ein öffentliches/privates Schlüsselpaar zu erzeugen. Nach der Generierung des angeforderten Paares aus öffentlichem und privatem Schlüssel überträgt der Schlüsselmanager den öffentlichen Schlüssel an den Knoten 400-1. In der Zwischenzeit tritt jeder der anderen Knoten, die Knoten 400-2 bis 400-n, in einen Wartezustand ein, bis der vom Schlüsselmanager 402 erzeugte öffentliche Schlüssel vom Knoten 400-1, der zum Merge-Leader gewählt wurde, im Ledger 420 veröffentlicht wird. In einigen Ausführungsformen kann der Zusammenführungsführer den anderen Knoten signalisieren, dass der öffentliche Schlüssel veröffentlicht wurde. In der vorliegenden Offenlegung kann die Signalisierung durch den Aufruf von Methoden in intelligenten Verträgen erfolgen, die einen gemeinsam genutzten Zustand im Ledger 420 ändern.
  • Bezugnehmend auf 4C verschlüsselt jeder der Knoten 400-1, 400-2..., 400-n seine gespeicherten Parameter unter Verwendung des öffentlichen Schlüssels, der vom Schlüsselmanager 402 generiert und vom gewählten Zusammenführungsführer, in diesem Beispiel Knoten 400-1, veröffentlicht wurde. Das Lesen des öffentlichen Schlüssels durch jeden der Knoten 400-2..., 400-n kann in das Hauptbuch 420 geschrieben werden. Es sollte klar sein, dass der Knoten 400-1 bereits im Besitz des öffentlichen Schlüssels ist, weil er zum Merge-Leader gewählt wurde und weil der Schlüsselmanager 402 auf eine Anforderung des öffentlichen/privaten Schlüssels von Knoten 400-1 reagiert hat, indem er den generierten öffentlichen Schlüssel an Knoten 400-1 übermittelt hat.
  • Wie oben in Bezug auf 3 beschrieben, kann ein Verschlüsselungsgerät, wie z. B. ein Verschlüsselungsgerät
    302, kann eine komplexe Funktion sein, und der öffentliche Schlüssel wird zu einem Parameter dieser komplexen Funktion, so dass ein Parameter auf der Grundlage des Trainings des gemeinsamen, globalen Modells an jedem Knoten abgeleitet werden kann. Es ist zu verstehen, dass X1 und X2 mit Klartextparametern gleichgesetzt werden können, die von einem einzelnen Knoten gesendet werden. Y1 und Y2 sind verschlüsselte Parameter, und Z bezieht sich auf einen zusammengeführten Parameter, der durch eine homomorphe Additionsoperation (Addition von Y1 und Y2) abgeleitet wird. Z ist ebenfalls verschlüsselt und wird schließlich entschlüsselt, um den endgültigen zusammengeführten Parameter X zu erhalten. Nachdem jeder der Knoten 400-1, 400-2..., 400-n seine jeweiligen Parameterverschlüsselungsprozesse abgeschlossen hat, schreibt jeder der Knoten 400-1, 400-2..., 400-n seinen Status, d. h. den Zustand „bereit zum Zusammenführen“, in das Hauptbuch 420. Ledger 420 zeichnet dies als Check-in auf, ähnlich wie wenn jeder der Knoten 400-1, 400-2..., 400-n die Bereitschaft anzeigt, ihre jeweiligen persistierten Parameter vor der Verschlüsselung zusammenzuführen. Da in diesem Beispiel der Knoten 400-1 die Zusammenführung anführt, treten die Knoten 400-2..., 400-n in den Zustand „Warten auf Zusammenführung“ ein, bis der Knoten 400-1 bereit ist, die (verschlüsselte) Zusammenführung der Parameter durchzuführen. In einigen Ausführungsformen signalisieren die Knoten 400-2..., 400-n dem Knoten 400-1 ihre jeweilige Bereitschaft zur Zusammenführung. Wenn alle verbleibenden Knoten, in diesem Beispiel die Knoten 400-2..., 400-n, zur Zusammenführung bereit sind, lädt der Knoten 400-1 die verschlüsselten, persistierten Parameter von jedem der Knoten 400-2..., 400-n herunter und führt die Zusammenführung durch, um einen endgültigen zusammengeführten Parameter zu erhalten, und wenn die Zusammenführung abgeschlossen ist, schreibt der Knoten 400-1 in das Hauptbuch 420, dass der zusammengeführte Parameter fertig ist. Wie hierin verwendet, kann sich eine Zusammenführung, wie z. B. eine Parameterzusammenführung, auf eine mathematische gewichtete Mittelwertbildung beziehen, die einen einzelnen Parameter ausgibt, der durch diese mathematische gewichtete Mittelwertbildung auf der Grundlage der Eingangsparameter abgeleitet wird.
  • In Bezug auf die Knoten, die ihren jeweiligen Status bereitstellen, kann jeder Knoten seinen eigenen Zustand im Ledger 420 aufzeichnen. Wenn ein Knoten, wie z. B. Knoten 400-2, die Tatsache aufzeichnet, dass er den öffentlichen Schlüssel gelesen hat, der vom Merge-Leader, d. h. Knoten 400-1, veröffentlicht wurde, gibt er den anderen Knoten einen Hinweis darauf, dass eine bestimmte Operation (in diesem Fall das Lesen des öffentlichen Schlüssels) durchgeführt wurde, und wenn ja, ob sie erfolgreich durchgeführt wurde. Knoten 400-2 kann seinen Zustand in eine Transaktion schreiben, die anderen Knoten im Blockchain-Netzwerk 110 unter Verwendung der Blockchain-API 32 mitgeteilt wird. Der Verwaltungsknoten 12 kann
    die Transaktionen abrufen und sie mithilfe der Blockchain-API 32 in das verteilte Hauptbuch 420 übertragen. Auf diese Weise wird ein unbestreitbarer, fälschungssicherer Nachweis des globalen Zustands des Blockchain-Netzwerks 110 erstellt, der, wie hier verwendet, den globalen Zustand des Parameter-/Zusammenführungs-/Schwarmlernstatus zwischen den Knoten 400-1, 400-2..., 400n widerspiegelt. Darüber hinaus kennt jeder Knoten den vollständigen Zustand des Schwarmlernnetzwerks anhand seiner lokalen Kopie des verteilten Hauptbuchs 420. Dies ermöglicht es jedem Knoten, global gültige Entscheidungen auf der Grundlage lokaler Daten zu treffen sowie neue Knoten hinzuzufügen oder neu startende Knoten zu berücksichtigen, die sich mit dem aktuellen Zustand des Schwarmlernnetzes synchronisieren müssen.
  • Es sollte klar sein, dass die oben beschriebene Phase einen vollständigen Schutz der lokalen, knotenspezifischen Parameter gewährleistet, bevor sie zusammengeführt werden. Außerdem werden durch die Verteilung des rechenintensiven Verschlüsselungsprozesses auf jeden der beteiligten Knoten Skalierungsengpässe vermieden. Darüber hinaus gewährleistet der Algorithmus einen vollständigen Datenschutz, da keiner der Knoten, einschließlich des federführenden Knoten, jemals über Parameter eines anderen Peers im Klartext verfügen wird. Es sei auch darauf hingewiesen, dass der oben erwähnte, endgültige fusionierte Parameter aus einer homomorphen Summierung der einzelnen, verschlüsselten und persistierten Parameter besteht, auf die dann eine skalare Multiplikation mit einer gleitenden 1/QuorumSize Punkt konstant. Da der Merge-Prozess grundlegende homomorphe Operatoren verwendet, kann dieser Algorithmus mit fast jedem vorhandenen HE-Paket implementiert werden. Es sollte klar sein, dass HE-Schemata in der Regel nur bestimmte Arten von mathematischen Operationen für Daten zulassen. So sind beispielsweise in vielen gängigen HE-Verfahren Addition und Skalarmultiplikation definiert. Aus Gründen der Einfachheit/Effizienz kann die hier beschriebene Zusammenführung von Parametern daher auf diese Grundoperationen gestützt werden. Mit anderen Worten, bekannte HE-Verfahren können genutzt werden, ohne ihre Logik zu ändern. Da der Verschmelzungsprozess grundlegende homomorphe Operatoren verwendet, kann dieser Algorithmus mit fast jedem bestehenden/verfügbaren HE-Schema oder -Paket implementiert werden, z. B. RSA, EIGamal, Goldwasse-Micali usw. Sobald der Zusammenführungsvorgang abgeschlossen ist, signalisiert der Leiter der Zusammenführung den anderen Knoten, dass der zusammengeführte Parameter zur Entschlüsselung bereit ist.
  • Bezugnehmend auf 4D nimmt jeder Knoten (außer dem Merge-Leader, Knoten 400-1) nach dem Lesen des im Ledger 420 aufgezeichneten Merge-Ready-Signals an einem Decryptor-Wahlprozess teil. Wie in 4D dargestellt, kann das Lesen des Zusammenführungsbereitschaftssignals auch von Ledger 420 aufgezeichnet werden, und ähnlich wie bei dem oben beschriebenen Wahlprozess zur Wahl des Zusammenführungsleiters wird ein Entschlüsseler gewählt. Die Stimmen für einen bestimmten Knoten, der als Entschlüsseler fungieren soll, werden in das Hauptbuch 420 geschrieben. Der Anführer der Zusammenführung, in diesem Beispiel der Knoten 400-1, wird absichtlich von der Wahl des Entschlüsslers ausgeschlossen, um sicherzustellen, dass er nicht ausgewählt werden kann, damit er nicht in den privaten Schlüssel eingeweiht wird, der zur Entschlüsselung des endgültigen zusammengeführten Parameters verwendet wird. Es sei daran erinnert, dass ein Teil der Sicherheit, die durch verschiedene Ausführungsformen der offengelegten Technologie geboten wird, auf der Tatsache beruht, dass kein Teilnehmer oder Knoten sowohl den öffentlichen als auch den privaten Schlüssel kennt. In diesem Beispiel wurde der Knoten 400-2 als Entschlüsseler gewählt, und sobald diese Wahl auftritt, gehen die übrigen Knoten in den Zustand „Warten auf zusammengeführte Parameter“ über. Der Entschlüsseler, in diesem Fall der Knoten 400-2, fordert den privaten Schlüssel an, der von der Schlüsselverwaltung 402 als Antwort auf die vorherige Anforderung des federführenden Knotens 400-1 erzeugt wurde. Die Schlüsselverwaltung 402 antwortet dem Knoten 400-2, indem sie den entsprechenden privaten Schlüssel an den Knoten 400-2 sendet. Auch hier ist der Knoten 400-1, der den öffentlichen Schlüssel für die Verschlüsselung verwendet hat, nicht in den entsprechenden privaten Schlüssel eingeweiht, so dass der Knoten 400-1 keine Parameterdaten entschlüsseln kann. Darüber hinaus hat Knoten 400-2, der Entschlüsseler, keinen Zugang zu anderen lokalen Parametern oder Parameterdaten von anderen Knoten, da Knoten 400-1 der gewählte Merge-Leader war. Knoten 400-2 erzeugt den zusammengeführten Parameter durch Entschlüsselung von Z (der verschlüsselten Version der zusammengeführten Parameter), die in X (die entschlüsselte Version des zusammengeführten Parameters) umgewandelt wird.
  • Unter Bezugnahme auf 4E lädt der Entschlüsseler, d. h. Knoten 400-2, den zusammengeführten Parameter vom Zusammenführungsführer, d. h. Knoten 400-1, herunter, entschlüsselt den zusammengeführten Parameter und lädt den nun entschlüsselten zusammengeführten Parameter zurück zum Zusammenführungsführer hoch und fordert den Schlüsselmanager 402 auf, das Paar öffentlicher/privater Schlüssel dauerhaft zu verwerfen. Die Schlüsselverwaltung 402 verwirft daraufhin das Schlüsselpaar aus öffentlichem und privatem Schlüssel. Damit wird sichergestellt, dass kein anderer Knoten, auch nicht der führende, den privaten Schlüssel zur Entschlüsselung der Parameter von einem anderen Knoten anfordern kann. Der Entschlüsseler signalisiert, dass der Merge-Parameter fertig ist und dem Merge-Leader zur Verfügung steht, was dadurch belegt wird, dass das Hauptbuch 420 aktualisiert wird, um die Transaktion des Hochladens/Veröffentlichens des entschlüsselten, zusammengeführten Parameters durch den Knoten 400-1 aufzuzeichnen. Mit anderen Worten: Mit dem Hochladen des entschlüsselten, zusammengeführten Parameters zum führenden Knoten (Knoten 400-1) macht der führende Knoten den entschlüsselten, zusammengeführten Parameter für die anderen Knoten verfügbar. Die übrigen Knoten, mit Ausnahme des Knotens 400-2 (da dieser den zusammengeführten Parameter bereits kennt) lesen den zusammengeführten Parameter, indem sie ihn von Knoten 400-1 herunterladen. Alle Knoten 400-1, 400-2..., 400-n können nun den zusammengeführten Parameter lokal auf ihre jeweiligen lokalen Instanzen des gemeinsamen, globalen Modells anwenden. Die Anwendung eines zusammengeführten Parameters kann sich auf das Überschreiben von Parametern beziehen, die von außen zugeführt wurden. In diesem Fall überschreibt der endgültige zusammengeführte Parameter die lokalen Parameter an jedem der Knoten 400-1, 400-2 ..., 400-n.
  • Wie in 4F dargestellt, wartet der Knoten 400-1 darauf, dass die anderen Knoten die Anwendung des zusammengeführten Parameters auf ihre jeweiligen lokalen Instanzen des gemeinsamen, globalen Modells abschließen, was im Hauptbuch 420 wiedergegeben werden kann. Wenn alle Knoten mit der Anwendung des zusammengeführten Parameters fertig sind, können die Knoten auch die Fertigstellung im Hauptbuch 420 signalisieren, woraufhin der Knoten 400-1, der die Zusammenführung anführt, eine Erhöhung der Epochennummer/des Epochenwertes aufzeichnet und seine Rolle als Anführer der Zusammenführung aufgibt. Wie oben erwähnt, kann dieser Prozess der Zusammenführung von Parametern so lange wiederholt werden, bis das Schwarmlernetzwerk in der Lage ist, das globale Modell auf ein gewünschtes Genauigkeitsniveau zu konvergieren.
  • 5A und 5B illustrieren verschiedene Vorgänge, die zur Berechnung eines Validierungsverlustes für Modelle in einem verteilten oder dezentralen ML-System durchgeführt werden können. Wie oben erwähnt, kann jeder teilnehmende Knoten eine lokale Version/Instanz eines Modells unter Verwendung von Daten trainieren, die für jeden teilnehmenden Knoten lokal sind. In regelmäßigen Abständen können die von den lokal trainierten Modellen abgeleiteten Gewichte zusammengeführt werden, um die Gewichte für ein globales Modell abzuleiten. Die zusammengeführten Gewichte können dann von jedem Knoten wieder auf die jeweiligen lokalen Modelle angewendet werden, um als „Basismodell“ für das Training während der nachfolgenden Trainingsiterationen oder Epochen verwendet zu werden.
  • 5A zeigt zum Beispiel drei Knoten, Knoten 500-1, Knoten 500-2 und Knoten 500-n. Die Knoten 500-1, 500-2..., 500-n können Ausführungsformen eines Randknotens 10 (1A) oder der Knoten 400-1, 400-2 usw. sein. Wie in 5A dargestellt, kann das Batch-Training 502 an jedem der Knoten 500-1, 500-2 ..., 500-n beginnen. Es sei darauf hingewiesen, dass sich der Begriff „Batch“ auf eine Teilmenge von Trainingsdaten beziehen kann, die zur Durchführung einer Trainingsiteration des ML-Modells verwendet werden. Üblicherweise wird die Stapelgröße mit etwa 16 oder 32 Trainingsbeispielen auf einmal angegeben, aber dies ist nur ein Beispiel. Wie jeder Fachmann weiß, kann ein ML-Modell iterativ über mehrere Stapel trainiert werden, bis es zufriedenstellend trainiert ist oder sich seine Leistung nicht mehr verbessert. Das Training der lokalen Versionen des gemeinsamen, globalen Modells an jedem der Knoten 500-1, 500-2..., 500-n erfolgt wie zuvor beschrieben. Es ist jedoch zu beachten, dass vor dem Beginn des Batch-Trainings 502 die jeweiligen lokalen Datensätze an jedem der Knoten 500-1, 500-2..., 500-n aufgeteilt oder anderweitig in einen Trainingsdatensatz und einen Validierungsdatensatz unterteilt werden können. Das heißt, eine erste Teilmenge der lokalen Daten kann für das Training der lokalen Version des Modells verwendet werden, während eine zweite Teilmenge der lokalen Daten für Validierungszwecke verwendet werden kann, um festzustellen, wie gut (oder wie schlecht) ein Modell funktioniert.
  • Dementsprechend führt, wie in 5A dargestellt, jeder der Knoten 500-1, 500-2..., 500-n einen Trainingsstapel auf dem jeweiligen lokalen Trainingsdatensatz jedes Knotens aus. Es sollte verstanden werden, dass sich dieses Stapeltraining auf das Training eines Modells auf lokalen Daten bezieht, wie oben erwähnt und in 4A beschrieben. Das heißt, jeder der Knoten 500-1, 500-2..., 500-n kann Instanzen eines gemeinsamen, globalen Modells unter Verwendung lokaler Daten trainieren, die von jedem der Knoten vorhanden sind/mitgeteilt werden. Wie oben erwähnt, können Parameter, z. B. Gewichte, gemäß dem Training des Modells unter Verwendung lokaler Daten abgeleitet werden, und diese Parameter können dann in ihrem verschlüsselten Zustand oder Format beibehalten werden.
  • Für die Zusammenführung wird (wie oben beschrieben) ein Zusammenführungsführer gewählt.
    lokale Parameter aus dem Training lokaler Versionen des globalen Modells an jedem Knoten und anschließend die jeweiligen Validierungsverlustwerte von jedem Knoten zu verarbeiten. Dementsprechend wählt jeder der Knoten 500-1, 500-2..., 500-n einen Anführer. Wie oben beschrieben, kann die Wahl des Anführers dazu führen, dass jeder der Knoten 500-1, 500-2..., 500-n einen Wahlprozess durchläuft, um einen der Knoten auszuwählen, der als Merge-Leader fungiert. Die Wahlstimmen zur Wahl eines der teilnehmenden Knoten als Anführer können in einem Blockchain-Ledger aufgezeichnet werden, der sowohl den Zustand eines Knotens als auch seine Identität wiedergibt, so dass die Stimmen mit den Knoten, die diese Stimmen abgeben, in Verbindung gebracht werden können, und ein Knoten, der in diesem Beispiel als Anführer eines Zusammenschlusses ausgewählt wurde (und später ein Entschlüsseler), kann über seinen Zustand/ seine gewählte Rolle informiert werden. Auch hier kann jeder Knoten eine vereinbarte Abstimmungs-/Wahllogik verwenden, aus der der Gewinner als Anführer gewählt wird. In diesem Beispiel kann der Knoten 500-1 um 508 zum Anführer gewählt werden.
  • Sobald ein Anführer ausgewählt ist, kann die gemeinsame Nutzung lokaler Parameter/Gewichte wie oben in Bezug auf die und beschrieben fortgesetzt werden. Das heißt, wenn der Knoten 500-1 zum Anführer gewählt wurde, kann der Knoten 500-1 den Prozess der Parameterzusammenführung beginnen, indem er zunächst einen Schlüsselmanager bittet, ein öffentliches/privates Schlüsselpaar zu erzeugen. Der Schlüsselverwalter kann den öffentlichen Schlüssel an den Knoten 500-1 übermitteln. In der Zwischenzeit gehen die anderen Knoten 500-2 bis 500-n in einen Wartezustand über, bis der vom Schlüsselmanager erzeugte öffentliche Schlüssel vom Knoten 500-1 veröffentlicht wird.
  • Jeder der Knoten 500-1, 500-2..., 500-n kann dann seine jeweiligen persistierten Parameter unter Verwendung des öffentlichen Schlüssels verschlüsseln, der vom Schlüsselverwalter erzeugt und vom gewählten Anführer veröffentlicht wurde, der in diesem Beispiel der Knoten 500-1 ist. Wie oben beschrieben, ist der Knoten 500-1 bereits im Besitz des öffentlichen Schlüssels und kann seine lokalen Parameter verschlüsseln. Wenn jeder der Knoten 500-1, 500-2..., 500-n seine jeweiligen Parameterverschlüsselungsprozesse abgeschlossen hat,
    Jeder der Knoten 500-1, 500-2..., 500-n zeigt seine Bereitschaft an, seine jeweiligen Parameter zu teilen. Die Freigabe der jeweiligen Parameter kann dadurch erfolgen, dass Knoten 500-1, der gewählte Anführer, die verschlüsselten, gespeicherten Parameter von jedem der Knoten 500-2..., 500-n herunterlädt. Knoten 500-1 kann dann die Parameter (Gewichte) zusammenführen, um zu einem endgültigen zusammengeführten Parameter (Gewicht) zu gelangen. Auch hier kann sich eine Parameterzusammenführung auf eine mathematische gewichtete Mittelwertbildung beziehen, die einen einzelnen Parameter ausgibt, der durch diese mathematische gewichtete Mittelwertbildung auf der Grundlage der Eingangsparameter abgeleitet wird.
  • Wie in 5A weiter dargestellt, kann der gewählte Anführer, in diesem Fall der Knoten 500-1, den zusammengeführten Parameter (Gewicht) an die teilnehmenden Knoten 500-2..., 500-n verteilen. Da der zusammengefasste Parameter mit verschlüsselten lokalen Parametern (Gewichten) erreicht wird, müssen diese entschlüsselt werden. Dementsprechend führen die verbleibenden Knoten (nicht der Knoten 500-1, der bereits zum Zweck der Zusammenführung der Parameter (Gewichte) zum Anführer gewählt wurde) einen Entschlüsselungswahlprozess durch. So kann beispielsweise der Knoten 500-2 als Entschlüsseler gewählt werden, der den vom Schlüsselverwalter erzeugten privaten Schlüssel anfordern und dann den zusammengeführten Parameter erzeugen kann, indem er die von Knoten 500-1 erzeugte verschlüsselte Version des zusammengeführten Parameters (Gewichts) in die entschlüsselte Version des zusammengeführten Parameters (Gewichts) entschlüsselt. Insbesondere kann der Knoten 500-2 den zusammengeführten Parameter von dem gewählten Anführer, d. h. dem Knoten 500-1, herunterladen und den zusammengeführten Parameter entschlüsseln. Der Knoten 500-2 kann den nun entschlüsselten zusammengeführten Parameter zurück zum Knoten 500-1 hochladen und den Schlüsselverwalter auffordern, das von ihm erzeugte Paar aus öffentlichem und privatem Schlüssel dauerhaft zu verwerfen (was der Schlüsselverwalter auch tut). Dadurch wird sichergestellt, dass kein anderer Knoten, auch nicht der führende, den privaten Schlüssel zur Entschlüsselung der Parameter von einem anderen Knoten anfordern kann. Der Entschlüsseler, Knoten 500-2, signalisiert den zusammengeführten
    Parameter (Gewicht) ist fertig und steht beim führenden Knoten 500-1 zur Verfügung. Die übrigen Knoten, mit Ausnahme des Knotens 500-2 (der den zusammengeführten Parameter/die zusammengeführte Gewichtung bereits kennt), können den zusammengeführten Parameter (die zusammengeführte Gewichtung) erhalten, indem sie ihn vom Knoten 500-1 herunterladen. Alle Knoten 500-1, 500-2..., 500-n können nun den zusammengeführten Parameter lokal auf ihre jeweiligen lokalen Instanzen des gemeinsamen, globalen Modells anwenden. Wie bereits erwähnt, kann sich die Anwendung eines zusammengeführten Parameters auf das Überschreiben von Parametern (Gewichten) beziehen, die von außen zugeführt wurden. In diesem Fall überschreibt der endgültige zusammengeführte Parameter (Gewicht) die lokalen Parameter an jedem der Knoten 500-1, 500-2..., 500-n.
  • Wie bereits erwähnt, kann dieser Prozess der Parameterzusammenführung so lange wiederholt werden, bis das Schwarmlernnetzwerk in der Lage ist, das globale Modell auf ein gewünschtes Genauigkeitsniveau zu konvergieren. Als Teil der Bestimmung, ob das globale Modell in der Lage ist, ein gewünschtes Genauigkeitsniveau zu erreichen, kann der Validierungsverlust berechnet werden. Wie bereits angedeutet, kann die Validierung lokal durchgeführt werden, der lokale Validierungsverlust jedes Knotens kann gemeinsam genutzt werden, und ein Durchschnitt der lokalen Validierungsverluste kann berechnet werden, um einen globalen Validierungsverlust abzuleiten. Dieser globale Validierungsverlust kann mit jedem Knoten geteilt werden, so dass jeder Knoten feststellen kann, wie gut sein lokales Modell aus einer netz- oder systemweiten (globalen) Perspektive funktioniert bzw. trainiert wurde.
  • 5B fährt mit verschiedenen Operationen fort, die durchgeführt werden können, um einen Validierungsverlust für Modelle in einem verteilten oder dezentralen ML-System zu berechnen. Wie in 5B dargestellt, kann jeder der Knoten 500-1, 500-2..., 500-n einen lokalen Validierungsverlust berechnen. Der lokale Validierungsverlust kann unter Verwendung des lokalen Validierungsdatensatzes jedes Knotens berechnet werden. Es sei daran erinnert, dass jeder Knoten vor dem Beginn einer Trainingsiteration seinen lokalen Datensatz in einen Trainingsdatenteilsatz und einen Validierungsdatenteilsatz partitionieren kann. Berechnung der lokalen Validierung Verlustfunktion kann mit Hilfe derzeit bekannter oder in Zukunft zu erwartender Methoden durchgeführt werden. Zum Beispiel kann das Modell über die Validierungsdaten laufen, wonach die Ausgabe mit den Werten der Grundwahrheit unter Verwendung einer Verlustfunktion verglichen werden kann. Jeder Knoten 500-1, 500-2..., 500-n wird zu einem lokalen Validierungsverlustwert gelangen, der dann dem gewählten Anführer mitgeteilt werden kann.
  • Wie oben beschrieben, wurde der gewählte Anführer, d.h. Knoten 500-1, zuvor ausgewählt, um als Zusammenführungsanführer für die Zusammenführung lokaler Parameter (Gewichte) zu fungieren, die aus dem Training jeder lokalen Instanz des gemeinsamen, globalen Modells an jedem Knoten abgeleitet wurden (unter Verwendung der Trainingsdatenuntermenge). Derselbe gewählte Leader kann einen durchschnittlichen Validierungsverlust für alle Knoten berechnen, um einen globalen Validierungsverlust zu erhalten. Wie in 5B dargestellt, meldet also jeder der Knoten 500-2..., 500-n seinen lokalen Validierungsverlustwert an den Knoten 500-1 (der seinen eigenen berechneten lokalen Validierungsverlustwert kennt).
  • Es sollte verstanden werden, dass die lokalen Validierungsverlustwerte jedes der Knoten 500-1, 500-2..., 500-n auf die gleiche Weise homomorph verschlüsselt werden können, wie die lokalen Parameter (Gewichte) verschlüsselt werden, obwohl dies nicht unbedingt erforderlich ist. Das heißt, Knoten 500-1, der gewählte Anführer, kann verlangen, dass der Schlüsselverwalter ein anderes öffentliches/privates Schlüsselpaar erzeugt, das zur Verschlüsselung und Entschlüsselung der lokalen Validierungsverlustwerte bzw. des globalen Validierungsverlustwerts verwendet wird.
  • Wenn beispielsweise der Knoten 500-1 den Schlüsselverwalter auffordert, ein öffentliches/privates Schlüsselpaar zu erzeugen, kann der Schlüsselverwalter den öffentlichen Schlüssel an den Knoten 500-1 übertragen. In der Zwischenzeit tritt jeder der anderen Knoten, die Knoten 500-2 bis 500-n, in einen Wartezustand ein, bis der vom Schlüsselmanager erzeugte öffentliche Schlüssel vom Knoten 500-1 veröffentlicht wird. Jeder der Knoten 500-1, 500-2..., 500-n können dann ihre jeweiligen lokalen Validierungsverlustwerte unter Verwendung des öffentlichen Schlüssels verschlüsseln, der vom Schlüsselverwalter erzeugt und vom Knoten 500-1 veröffentlicht wurde. Wie oben beschrieben, ist der Knoten 500-1 bereits im Besitz des öffentlichen Schlüssels und kann seinen lokalen Validierungsverlustwert verschlüsseln. Nachdem jeder der Knoten 500-1, 500-2 ..., 500-n seine jeweiligen Verschlüsselungsprozesse für den Validierungsverlustwert abgeschlossen hat, zeigt jeder der Knoten 500-1, 500-2 ..., 500-n seine Bereitschaft an, seine jeweiligen Validierungsverlustwerte gemeinsam zu nutzen. Die Freigabe ihrer jeweiligen Validierungsverlustwerte kann von Knoten 500-1, dem gewählten Anführer, durch Herunterladen der verschlüsselten Validierungsverlustwerte von jedem der Knoten 500-2..., 500-n erreicht werden. Knoten 500-1 kann dann die verschlüsselten Validierungsverlustwerte von jedem der Knoten 500-2..., 500-n zusammen mit seinem eigenen Validierungsverlustwert mitteln, um einen globalen Validierungsverlustwert zu erhalten. Ähnlich wie bei der oben beschriebenen Zusammenführung von Parametern kann die Mittelwertbildung der lokalen Validierungsverlustwerte unter Verwendung einer mathematisch gewichteten Mittelwertbildung berechnet werden, die einen einzelnen Parameter ausgibt, der durch diese mathematisch gewichtete Mittelwertbildung auf der Grundlage der Eingangsparameter abgeleitet wird.
  • Wie in 5B weiter dargestellt, kann der gewählte Anführer, in diesem Fall der Knoten 500-1, den globalen Validierungsverlustwert an die Knoten 500-2..., 500-n verteilen. Da der globale Validierungsverlustwert unter Verwendung verschlüsselter lokaler Validierungsverlustwerte erreicht wird, muss der globale Validierungsverlustwert entschlüsselt werden. Dementsprechend können die verbleibenden Knoten (mit Ausnahme des Knotens 500-1, der bereits zum Anführer gewählt wurde) erneut an einem Entschlüsselungswahlprozess teilnehmen. So kann beispielsweise der Knoten 500-2 als Entschlüsseler gewählt werden, der den vom Schlüsselverwalter erzeugten privaten Schlüssel anfordern und dann den globalen Validierungsverlustwert erzeugen kann, indem er die verschlüsselte Version des von Knoten 500-1 erzeugten globalen Validierungsverlustwerts in die entschlüsselte Version des globalen Validierungsverlustwerts entschlüsselt. Insbesondere kann der Knoten 500-2 den globalen Validierungsverlustwert von Knoten 500-1 herunterladen und den globalen Validierungsverlustwert entschlüsseln. Der Knoten 500-2 kann den nun entschlüsselten globalen Validierungsverlustwert zurück zum Knoten 500-1 hochladen und fordert den Schlüsselverwalter auf, das von ihm erzeugte Paar aus öffentlichem und privatem Schlüssel dauerhaft zu verwerfen (was der Schlüsselverwalter auch tut). Damit wird sichergestellt, dass kein anderer Knoten, auch nicht der führende, den privaten Schlüssel zur Entschlüsselung der lokalen Validierungsverlustwerte eines anderen Knotens anfordern kann. Der Entschlüsseler, Knoten 500-2, meldet, dass der globale Validierungsverlustwert fertig ist und dem führenden Knoten 500-1 zur Verfügung steht. Die verbleibenden Knoten, mit Ausnahme des Knotens 500-2 (da dieser den globalen Validierungsverlustwert bereits kennt), können den globalen Validierungsverlustwert erhalten, indem sie ihn vom Knoten 500-1 herunterladen, woraufhin derTrainingslauf bei 524 endet. Es sollte klar sein, dass der globale Validierungsverlustwert von jedem der Knoten 500-1, 500-2..., 500-n verwendet werden kann, um zu bestimmen, ob weitere Trainingsiterationen erforderlich sind oder ob das Training beendet werden kann.
  • Es sollte beachtet werden, dass in einigen Ausführungsformen die Validierungsverlustwerte, die an jedem Knoten 500-1, 500-2..., 500-3 bestimmt werden, nicht unbedingt vor der gemeinsamen Nutzung verschlüsselt werden müssen. Das heißt, dass der Wunsch, die lokalen Daten privat zu halten, nicht notwendigerweise auf die Geheimhaltung von ML-Modellleistungsinformationen (Validierungsverlustwert) übertragbar ist. Dementsprechend kann, wie in 5B dargestellt, die Verwendung des Schlüsselmanagers und die Beschaffung eines öffentlichen/privaten Schlüssels usw. in einigen Ausführungsformen übersprungen werden, und die lokalen Validierungsverlustwerte können einfach so wie sie sind, direkt mit dem führenden Knoten 500-1 geteilt werden. Ebenso kann das Entschlüsseln des globalen Validierungsverlustwertes übersprungen werden.
  • 6 ist ein Beispiel für eine Computerkomponente 600, die verwendet werden kann, um verschiedene Merkmale eines gewählten Fusionsleiters gemäß einer Ausführungsform zu implementieren der offengelegten Technologie. Bei der Rechnerkomponente 600 kann es sich beispielsweise um einen Server-Computer, einen Controller oder eine andere ähnliche Rechnerkomponente handeln, die in der Lage ist, Daten zu verarbeiten. In der Beispielimplementierung von 6 umfasst die Rechnerkomponente 600 einen Hardwareprozessor 602 und ein maschinenlesbares Speichermedium 604. In einigen Ausführungsformen kann die Rechnerkomponente 600 eine Ausführungsform des Prozessors 50 des Randknotens 10 (1C) sein.
  • Bei dem Hardware-Prozessor 602 kann es sich um eine oder mehrere Zentraleinheiten (CPUs), halbleiterbasierte Mikroprozessoren und/oder andere Hardware-Geräte handeln, die zum Abrufen und Ausführen von Anweisungen geeignet sind, die auf dem maschinenlesbaren Speichermedium 604 gespeichert sind. Der Hardware-Prozessor 602 kann Befehle, wie die Befehle 606-618, abrufen, dekodieren und ausführen, um Prozesse oder Operationen zum Zusammenführen lokaler Parameter zu steuern, um Schwarmlernen in einem Blockchain-Kontext unter Verwendung homomorpher Verschlüsselung zu bewirken. Alternativ oder zusätzlich zum Abrufen und Ausführen von Befehlen kann der Hardware-Prozessor 602 einen oder mehrere elektronische Schaltkreise enthalten, die elektronische Komponenten zum Ausführen der Funktionalität eines oder mehrerer Befehle enthalten, z. B. ein Field Programmable Gate Array (FPGA), einen anwendungsspezifischen integrierten Schaltkreis (ASIC) oder andere elektronische Schaltkreise.
  • Ein maschinenlesbares Speichermedium, wie das maschinenlesbare Speichermedium 604, kann ein beliebiges elektronisches, magnetisches, optisches oder anderes physikalisches Speichergerät sein, das ausführbare Anweisungen enthält oder speichert. So kann das maschinenlesbare Speichermedium 604 beispielsweise ein Random Access Memory (RAM), ein nichtflüchtiges RAM (NVRAM), ein elektrisch löschbarer, programmierbarer Festspeicher (EEPROM), ein Speichergerät, eine optische Platte und dergleichen sein. In einigen Ausführungsformen ist das maschinenlesbare Speichermedium 604 kann ein nichttransitorisches Speichermedium sein, wobei der Begriff „nicht-transitorisch“ nicht die transitorischen Übertragungssignale umfasst. Wie nachstehend im Detail beschrieben, kann das maschinenlesbare Speichermedium 604 mit ausführbaren Befehlen kodiert sein, z. B. mit den Befehlen 606-618.
  • Der Hardware-Prozessor 602 kann die Anweisung 606 ausführen, um eine lokale Version eines ML-Modells am Trainingsknoten zu trainieren. Wie oben beschrieben, kann in verteilten oder dezentralen ML-Netzwerken das Trainieren eines ML-Modells, z. B. an einem Randknoten, das Trainieren einer Instanz oder Version eines gemeinsamen, globalen Modells unter Verwendung von Trainingsdaten am Randknoten beinhalten. Bei den Trainingsdaten kann es sich um eine Trainingsdaten-Teilmenge lokaler Daten am Randknoten handeln. Die lokalen Daten können in die Trainingsdaten-Teilmenge und eine Validierungsdaten-Teilmenge (die während der Validierung des Modells verwendet wird) unterteilt werden.
  • Der Hardware-Prozessor 602 kann den Befehl 608 ausführen, um lokale Parameter, die aus dem Training der lokalen Version des ML-Modells abgeleitet wurden, an einen führenden Knoten zu übertragen. Wie oben beschrieben, kann der Datenschutz in Übereinstimmung mit einigen Ausführungsformen durch Verwendung homomorpher Verschlüsselung dargestellt werden, wobei einer der Knoten als führender Knoten gewählt werden kann. Als Führungsknoten kann der Knoten die lokalen Parameter von jedem der Knoten zusammenführen, die aus dem Training der lokalen Version des ML-Modells an jedem der Knoten stammen. Der führende Knoten kann einen separaten Schlüsselmanager beauftragen, ein asymmetrisches Schlüsselpaar für die homomorphe Verschlüsselung zu erzeugen.
  • Dementsprechend kann der Hardware-Prozessor 602 die Anweisung 610 ausführen, um von dem führenden Knoten zusammengefasste Parameter zu empfangen, die von einer globalen Version des ML-Modells abgeleitet sind. Aufgrund der zur Verschlüsselung der lokalisierten Parameter verwendeten homomorphen Verschlüsselung aus den lokalen Versionen der globalen Version des ML-Modells abgeleitet werden, kann ein Entschlüsselungsknoten ausgewählt werden (der nicht der führende Knoten ist), um die verschlüsselte Version der zusammengeführten Parameter (vom führenden Knoten) zu entschlüsseln. Die entschlüsselte Version der zusammengefassten Parameter kann von den Randknoten abgerufen werden.
  • Der Hardware-Prozessor 602 kann die Anweisung 612 ausführen, um die zusammengeführten Parameter auf die lokale Version des ML-Modells am Trainingsknoten anzuwenden, um die lokale Version des ML-Modells zu aktualisieren. Dies geschieht an jedem Randknoten des Netzes.
  • Nach Abschluss einer lokalen Trainingsiteration/Epoche kann jeder Knoten dann sein ML-Modell validieren. Dementsprechend kann der Hardware-Prozessor 602 die Anweisung 614 ausführen, um die aktualisierte lokale Version des ML-Modells zu bewerten und einen lokalen Validierungsverlustwert zu bestimmen. Dieser lokale Validierungsverlustwert (wie auch die aus dem Training der lokalen ML-Modelle an jedem der Knoten abgeleiteten Parameter) kann an den gewählten Führungsknoten gesendet werden. Nach Erhalt der lokalen Validierungsverlustwerte von den anderen Knoten im Netz kann der gewählte Führungsknoten die lokalen Validierungsverlustwerte mitteln, um zu einem globalen Validierungsverlustwert zu gelangen, der an jeden der Knoten zurückgesendet werden kann.
  • Der Hardware-Prozessor 602 kann den Befehl 616 ausführen, um den lokalen Validierungsverlustwert an den führenden Knoten zu übertragen. Wie oben beschrieben, kann der Leitknoten die Erzeugung eines weiteren asymmetrischen Schlüsselpaares anfordern, so dass die lokalen Validierungsverlustwerte von jedem der Knoten vor der Übertragung an den Leitknoten verschlüsselt werden können. Der Führungsknoten kann nach Erhalt der lokalen Validierungsverlustwerte von den Knoten des verteilten Netzes diese lokalen Validierungsverlustwerte mitteln, um einen globalen Validierungsverlustwert zu erhalten.
  • Dementsprechend kann der Hardware-Prozessor 602 den Befehl 618 ausführen, um
    vom Führungsknoten einen globalen Validierungsverlustwert empfangen, der auf der Grundlage des vom Trainingsknoten übertragenen lokalen Validierungsverlustwerts bestimmt wird. Wie bereits erwähnt, können Validierungsverlustwerte verwendet werden, um zu bestimmen, ob das Training eines Modells beendet werden kann oder ob weiteres Training erforderlich ist, um ein gewünschtes Leistungsniveau zu erreichen. Hier kann der globale Validierungsverlustwert von jedem Knoten verwendet werden, um zu bestimmen, ob er das Training seiner lokalen Version des gemeinsamen globalen Modells fortsetzen sollte oder ob das Training eingestellt werden kann.
  • 7 ist ein Beispiel für eine Rechnerkomponente 700, die verwendet werden kann, um verschiedene Merkmale eines gewählten Leader-Knotens gemäß einer Ausführungsform der offengelegten Technologie zu implementieren. Bei der Rechnerkomponente 700 kann es sich beispielsweise um einen Server-Computer, einen Controller oder eine andere ähnliche Rechnerkomponente handeln, die in der Lage ist, Daten zu verarbeiten. In der Beispielimplementierung von 7 umfasst die Rechnerkomponente 700 einen Hardwareprozessor 702 und ein maschinenlesbares Speichermedium 704. In einigen Ausführungsformen kann die Rechnerkomponente 600 eine Ausführungsform des Prozessors 50 des Randknotens 10 (1C) sein.
  • Der Hardwareprozessor 702 kann eine oder mehrere Zentraleinheiten (CPUs), halbleiterbasierte Mikroprozessoren und/oder andere Hardwaregeräte sein, die zum Abrufen und Ausführen von Befehlen geeignet sind, die im maschinenlesbaren Speichermedium 704 gespeichert sind. Der Hardware-Prozessor 702 kann Befehle, wie die Befehle 706-718, abrufen, dekodieren und ausführen, um Prozesse oder Operationen zum Zusammenführen lokaler Parameter zu steuern, um Schwarmlernen in einem Blockchain-Kontext unter Verwendung homomorpher Verschlüsselung zu bewirken. Alternativ oder zusätzlich zum Abrufen und Ausführen von Befehlen kann der Hardware-Prozessor 702 eine oder mehrere elektronische Schaltungen enthalten, die elektronische Komponenten zur Durchführung der folgenden Aufgaben umfassen Funktionalität eines oder mehrerer Befehle, wie z. B. ein Field Programmable Gate Array (FPGA), eine anwendungsspezifische integrierte Schaltung (ASIC) oder andere elektronische Schaltungen.
  • Ein maschinenlesbares Speichermedium, wie das maschinenlesbare Speichermedium 704, kann ein beliebiges elektronisches, magnetisches, optisches oder anderes physikalisches Speichergerät sein, das ausführbare Anweisungen enthält oder speichert. So kann das maschinenlesbare Speichermedium 704 beispielsweise ein RAM (Random Access Memory), ein NVRAM (Non-Volatile RAM), ein EEPROM (Electrically Erasable Programmable Read-Only Memory), ein Speichergerät, eine optische Platte oder ähnliches sein. In einigen Ausführungsformen kann das maschinenlesbare Speichermedium 704 ein nichttransitorisches Speichermedium sein, wobei der Begriff „nicht-transitorisch“ nicht die transitorischen Übertragungssignale umfasst. Wie nachstehend im Detail beschrieben, kann das maschinenlesbare Speichermedium 704 mit ausführbaren Befehlen kodiert sein, z. B. mit den Befehlen 706-718.
  • Der Hardware-Prozessor 702 kann die Anweisung 706 ausführen, um eine lokale Version eines ML-Modells zu trainieren. Wie oben beschrieben, beinhaltet verteiltes oder dezentrales maschinelles Lernen das Trainieren lokaler Versionen eines ML-Modells an mehreren Knoten unter Verwendung lokaler Daten an diesen Knoten. Diese lokalen Daten können vor dem Training in Trainings- und Validierungsdatensätze aufgeteilt werden. Der Trainingsdatensatz kann für das Training der lokalen Versionen des ML-Modells verwendet werden, während der Validierungsdatensatz verwendet werden kann, um festzustellen, wie gut/schlecht diese lokale Version des ML-Modells funktioniert.
  • Der Hardware-Prozessor 702 kann die Anweisung 708 ausführen, um nach der Wahl, als Führungsknoten für andere Trainingsknoten zu fungieren, lokale Parameter zu empfangen, die vom Training der jeweiligen lokalen Versionen des ML-Modells an den anderen Trainingsknoten abgeleitet wurden. Wie oben beschrieben, Es können Vorkehrungen getroffen werden, um die Privatsphäre der lokalen Daten zu schützen. Als Teil dieser Vorkehrungen wird ein Leitknoten gewählt, der die Zusammenführung der lokalen ML-Modellparameter vornimmt. Dieser Leitknoten kann die Erzeugung eines öffentlichen Schlüssels (eines öffentlichen/privaten Schlüsselpaares, das für die asymmetrische Verschlüsselung verwendet wird) von einem Schlüsselverwalter anfordern, der von jedem der Schulungsknoten zur Verschlüsselung ihrer lokalen Parameter verwendet wird.
  • Der Hardware-Prozessor 702 kann die Anweisung 710 ausführen, um die empfangenen lokalen Parameter zusammenzuführen. Nach dem Empfang der lokalen Parameter von jedem der Trainingsknoten (einschließlich ihm selbst) kann der führende Knoten die lokalen Parameter zusammenführen. Auf diese Weise kann der Hardware-Prozessor 702 die Anweisung 712 ausführen, um eine globale Version des ML-Modells unter Verwendung der zusammengeführten lokalen Parameter zu erstellen.
  • Der Hardware-Prozessor 702 kann den Befehl 714 ausführen, um die zusammengeführten lokalen Parameter an jeden der anderen Trainingsknoten zu übertragen. Die zusammengefassten lokalen Parameter können vom führenden Knoten übertragen werden, nachdem er eine entschlüsselte Version von einem anderen Knoten erhalten hat, der als Entschlüsseler fungiert. Durch die Trennung von Zusammenführungs-/Verschlüsselungs- und Entschlüsselungsvorgängen zwischen verschiedenen Knoten kann der Datenschutz gewahrt werden, da das Paar aus öffentlichem und privatem Schlüssel (zusammen) keinem einzelnen Knoten bekannt ist.
  • Wie oben erwähnt, können die lokalen Daten an jedem Trainingsknoten in Trainings- und Validierungsdatensätze aufgeteilt werden. Nach Abschluss einer Trainingsiteration kann jeder Knoten ein Validierungsverfahren durchführen, um festzustellen, wie seine lokale ML-Modellversion abschneidet. Der führende Knoten kann, ähnlich wie bei der Zusammenführung der lokalen Parameter, die lokalen Validierungsverlustwerte von jedem der Trainingsknoten (einschließlich seiner selbst) mitteln. Dementsprechend kann der Hardware-Prozessor 702 den Befehl 716 ausführen, um von jedem der anderen Trainingsknoten, lokale Validierungsverlustwerte, die aus der lokalen Bewertung der jeweiligen lokalen Versionen des ML-Modells abgeleitet werden.
  • Der Hardware-Prozessor 702 kann die Anweisung 718 ausführen, um die lokalen Validierungsverlustwerte zu mitteln, um einen globalen Validierungsverlustwert zu erhalten, der von allen Trainingsknoten verwendet werden kann. Nach der Mittelwertbildung der lokalen Validierungsverlustwerte kann der Leiter diesen globalen Validierungsverlustwert an jeden der anderen Trainingsknoten verteilen.
  • Verschiedene Ausführungsformen der offengelegten Technologie sind in der Lage, die Berechnungen zur Durchführung kryptografischer Operationen nahezu gleichmäßig auf alle Teilnehmer zu verteilen. Das heißt, alle Knoten nehmen an der ML-Modellschulung teil, tragen Parameter zur Zusammenführung bei usw., obwohl einige Knoten, wie der Zusammenführungsleitknoten, der Zusammenführungsfunktionen durchführt, oder der Entschlüsseler, der Daten entschlüsselt, Operationen durchführen, die nicht von jedem Knoten durchgeführt werden. Darüber hinaus verwenden verschiedene Ausführungsformen einen Schwarmlern-/Parameterzusammenführungsprozess oder-algorithmus, der über alle Teilnehmer eines Blockchain-Netzwerks verteilt werden kann, so dass die Implementierung leicht skaliert werden kann. Darüber hinaus bietet die Implementierung der verschiedenen Ausführungsformen eine fehlertolerante Lösung für ML und Modelltraining, trotz des verteilten Schwarmlernaspekts, bei dem viele Operationen unabhängig von den Randknoten durchgeführt werden.
  • Es sollte verstanden werden, dass, obwohl verschiedene hier beschriebene Ausführungsformen im Kontext eines Blockchain-Rahmens zur Wahrung der Datenintegrität vorgestellt werden, vom Standpunkt der Validierung aus gesehen die Verwendung eines Blockchain-Ledgers nicht erforderlich ist. Das heißt, die lokalen ML-Modelle der teilnehmenden Knoten können in Übereinstimmung mit verschiedenen Ausführungsformen validiert werden, unabhängig davon, wie das verteilte Lernen bezüglich dieser lokalen ML-Modelle durchgeführt wird. Für
    So kann z. B. das lokale ML-Modelltraining an jedem teilnehmenden Knoten in einem Randnetz mit herkömmlichen ML-Verteilungstechniken durchgeführt werden. Wie oben beschrieben, kann jedoch nach Abschluss einer Trainingsiteration der Validierungsverlust lokal berechnet und mit einem führenden Knoten geteilt werden, der die lokalen Validierungsverlustwerte mitteln und einen globalen Validierungsverlustwert an die teilnehmenden Knoten zurückgeben kann, ohne dass ein Blockchain-Ledger oder andere Blockchain-bezogene Mechanismen erforderlich sind. Vielmehr können die Knoten z. B. lokale Validierungsverlustwerte direkt an einen gewählten Anführer übermitteln und umgekehrt.
  • 8 zeigt ein Blockdiagramm eines Beispiel-Computersystems 800, in dem verschiedene hier beschriebene Ausführungsformen implementiert werden können. Das Computersystem 800 umfasst einen Bus 802 oder einen anderen Kommunikationsmechanismus zur Übermittlung von Informationen, einen oder mehrere Hardware-Prozessoren 804, die mit dem Bus 802 gekoppelt sind, um Informationen zu verarbeiten. Bei dem/den Hardware-Prozessor(en) 804 kann es sich zum Beispiel um einen oder mehrere Allzweck-Mikroprozessoren handeln.
  • Das Computersystem 800 umfasst auch einen Hauptspeicher 806, wie z. B. einen Speicher mit wahlfreiem Zugriff (RAM), einen Cache und/oder andere dynamische Speichergeräte, die mit dem Bus 802 verbunden sind, um Informationen und Anweisungen zu speichern, die vom Prozessor 804 ausgeführt werden sollen. Der Hauptspeicher 806 kann auch zum Speichern temporärer Variablen oder anderer Zwischeninformationen während der Ausführung von Befehlen verwendet werden, die vom Prozessor 804 ausgeführt werden sollen. Solche Befehle, die in Speichermedien gespeichert sind, auf die der Prozessor 804 zugreifen kann, machen das Computersystem 800 zu einer Spezialmaschine, die so angepasst ist, dass sie die in den Befehlen angegebenen Operationen ausführen kann.
  • Das Computersystem 800 umfasst außerdem einen Festwertspeicher (ROM) 808 oder ein anderes statisches Speichergerät, das mit dem Bus 802 verbunden ist, um statische Informationen und Anweisungen für den Prozessor 804 zu speichern. Ein Speichergerät 810, z. B. eine Magnetplatte, eine optische Platte oder ein USB-Stick (Flash-Laufwerk) usw., ist vorgesehen und mit dem Bus 802 verbunden, um Informationen und Anweisungen zu speichern.
  • Das Computersystem 800 kann über den Bus 802 mit einem Display 812, z. B. einer Flüssigkristallanzeige (LCD) (oder einem Touchscreen), gekoppelt sein, um einem Computerbenutzer Informationen anzuzeigen. Ein Eingabegerät 814, einschließlich alphanumerischer und anderer Tasten, ist mit dem Bus 802 gekoppelt, um Informationen und Befehlsauswahlen an den Prozessor 804 zu übermitteln. Eine andere Art von Benutzereingabegerät ist die Cursorsteuerung 816, wie z. B. eine Maus, ein Trackball oder Cursorrichtungstasten zur Übermittlung von Richtungsinformationen und Befehlsauswahlen an den Prozessor 804 und zur Steuerung der Cursorbewegung auf der Anzeige 812. In einigen Ausführungsformen können die gleichen Richtungsinformationen und Befehlsauswahlen wie bei der Cursorsteuerung über den Empfang von Berührungen auf einem Touchscreen ohne Cursor implementiert werden.
  • Das Computersystem 800 kann ein Benutzerschnittstellenmodul zur Implementierung einer grafischen Benutzeroberfläche (GUI) enthalten, das in einem Massenspeichergerät als ausführbare Softwarecodes gespeichert werden kann, die von dem/den Computergerät(en) ausgeführt werden. Dieses und andere Module können beispielsweise Komponenten wie Softwarekomponenten, objektorientierte Softwarekomponenten, Klassenkomponenten und Aufgabenkomponenten, Prozesse, Funktionen, Attribute, Prozeduren, Unterprogramme, Segmente von Programmcode, Treiber, Firmware, Mikrocode, Schaltkreise, Daten, Datenbanken, Datenstrukturen, Tabellen, Arrays und Variablen umfassen.
  • Im Allgemeinen kann sich das hier verwendete Wort „Komponente“, „Engine“, „System“, „Datenbank“, „Datenspeicher“ und dergleichen auf in Hardware oder Firmware verkörperte Logik beziehen, oder eine Sammlung von Softwareanweisungen, möglicherweise mit Ein- und Ausstiegspunkten, geschrieben in einer Programmiersprache wie z. B. Java, C oder C++. Eine Softwarekomponente kann kompiliert und zu einem ausführbaren Programm verknüpft werden, in einer dynamischen Link-Bibliothek installiert werden oder in einer interpretierten Programmiersprache wie z. B. BASIC, Perl oder Python geschrieben sein. Es ist klar, dass Softwarekomponenten von anderen Komponenten oder von sich selbst aus aufgerufen werden können und/oder als Reaktion auf erkannte Ereignisse oder Unterbrechungen aufgerufen werden können. Softwarekomponenten, die für die Ausführung auf Computergeräten konfiguriert sind, können auf einem computerlesbaren Medium, wie z. B. einer Compact Disc, einer digitalen Videodisc, einem Flash-Laufwerk, einer Magnetplatte oder einem anderen greifbaren Medium, oder als digitaler Download bereitgestellt werden (und können ursprünglich in einem komprimierten oder installierbaren Format gespeichert sein, das vor der Ausführung eine Installation, Dekomprimierung oder Entschlüsselung erfordert). Ein solcher Softwarecode kann teilweise oder vollständig in einem Speicher des ausführenden Computergeräts zur Ausführung durch das Computergerät gespeichert werden. Softwareanweisungen können in Firmware, wie z. B. einem EPROM, eingebettet sein. Darüber hinaus können die Hardwarekomponenten aus verbundenen Logikeinheiten wie Gattern und Flipflops und/oder aus programmierbaren Einheiten wie programmierbaren Gatteranordnungen oder Prozessoren bestehen.
  • Das Computersystem 800 kann die hierin beschriebenen Techniken unter Verwendung von kundenspezifischer festverdrahteter Logik, einem oder mehreren ASICs oder FPGAs, Firmware und/oder Programmlogik implementieren, die in Kombination mit dem Computersystem bewirkt oder programmiert, dass das Computersystem 800 eine Spezialmaschine ist. Gemäß einer Ausführungsform werden die hierin beschriebenen Techniken vom Computersystem 800 als Reaktion auf den/die Prozessor(en) 804 ausgeführt, der/die eine oder mehrere Sequenzen von einem oder mehreren im Hauptspeicher 806 enthaltenen Befehlen ausführt/ausführen. Solche Anweisungen können in den Hauptspeicher 806 von einem anderen Speichermedium, wie z. B. dem Speichergerät 810, eingelesen werden. Die Ausführung der im Hauptspeicher 806 enthaltenen Befehlssequenzen veranlasst den/die Prozessor(en) 804, die hier beschriebenen Prozessschritte auszuführen. In alternativen Ausführungsformen können fest verdrahtete Schaltungen anstelle von oder in Kombination mit Softwareanweisungen verwendet werden.
  • Der Begriff „nicht-transitorische Medien“ und ähnliche Begriffe, wie sie hier verwendet werden, beziehen sich auf alle Medien, die Daten und/oder Befehle speichern, die eine Maschine dazu veranlassen, auf eine bestimmte Weise zu arbeiten. Solche nichtflüchtigen Medien können nichtflüchtige Medien und/oder flüchtige Medien umfassen. Zu den nichtflüchtigen Medien gehören beispielsweise optische oder magnetische Festplatten, wie die Speichervorrichtung 810. Zu den flüchtigen Medien gehören dynamische Speicher, wie der Hauptspeicher 806. Zu den gängigen Formen nichtflüchtiger Medien gehören beispielsweise Disketten, flexible Platten, Festplatten, Solid-State-Laufwerke, Magnetbänder oder andere magnetische Datenspeichermedien, CD-ROMs, andere optische Datenspeichermedien, physische Medien mit Lochmustern, RAM, PROM und EPROM, FLASH-EPROM, NVRAM, andere Speicherchips oder -kassetten sowie deren vernetzte Versionen.
  • Nicht-transitorische Medien unterscheiden sich von Übertragungsmedien, können aber in Verbindung mit ihnen verwendet werden. Übertragungsmedien sind an der Übertragung von Informationen zwischen nichttransitorischen Medien beteiligt. Zu den Übertragungsmedien gehören z. B. Koaxialkabel, Kupfer- und Glasfaserkabel, einschließlich der Drähte, aus denen der Bus 802 besteht. Übertragungsmedien können auch in Form von Schall- oder Lichtwellen auftreten, wie sie z. B. bei der Funkwellen- und Infrarot-Datenkommunikation erzeugt werden.
  • Das Computersystem 800 umfasst auch eine Kommunikationsschnittstelle 818 Die Netzwerkschnittstelle 818 stellt eine bidirektionale Datenkommunikationsverbindung zu einer oder mehreren Netzwerkverbindungen her, die mit einem oder mehreren lokalen Netzwerken verbunden sind. Bei der Kommunikationsschnittstelle 818 kann es sich beispielsweise um eine ISDN-Karte (Integrated Services Digital Network), ein Kabelmodem, ein Satellitenmodem oder ein Modem handeln, um eine Datenkommunikationsverbindung zu einer entsprechenden Art von Telefonleitung herzustellen. Als weiteres Beispiel kann die Netzwerkschnittstelle 818 eine LAN-Karte sein, um eine Datenkommunikationsverbindung zu einem kompatiblen LAN (oder eine WAN-Komponente zur Kommunikation mit einem WAN) herzustellen. Es können auch drahtlose Verbindungen implementiert werden. In jeder dieser Implementierungen sendet und empfängt die Netzwerkschnittstelle 818 elektrische, elektromagnetische oder optische Signale, die digitale Datenströme mit verschiedenen Informationstypen übertragen.
  • Eine Netzverbindung ermöglicht typischerweise die Datenkommunikation über ein oder mehrere Netze zu anderen Datengeräten. So kann eine Netzverbindung beispielsweise eine Verbindung über ein lokales Netz zu einem Host-Computer oder zu Datengeräten herstellen, die von einem Internetdienstanbieter (ISP) betrieben werden. Der ISP wiederum bietet Datenkommunikationsdienste über das weltweite Paketdatenkommunikationsnetz an, das heute gemeinhin als „Internet“ bezeichnet wird. Sowohl das lokale Netz als auch das Internet verwenden elektrische, elektromagnetische oder optische Signale, die digitale Datenströme übertragen. Die Signale über die verschiedenen Netze und die Signale auf der Netzverbindung und über die Kommunikationsschnittstelle 818, die die digitalen Daten zum und vom Computersystem 800 übertragen, sind Beispiele für Übertragungsmedien.
  • Das Computersystem 800 kann über das/die Netzwerk(e), die Netzwerkverbindung und die Kommunikationsschnittstelle 818 Nachrichten senden und Daten, einschließlich Programmcode, empfangen. Im Internet-Beispiel könnte ein Server einen angeforderten Code für ein Anwendungsprogramm übertragen über das Internet, den ISP, das lokale Netz und die Kommunikationsschnittstelle 818.
  • Der empfangene Code kann vom Prozessor 804 ausgeführt werden, wenn er empfangen wird, und/oder in der Speichervorrichtung 810 oder einem anderen nichtflüchtigen Speicher zur späteren Ausführung gespeichert werden.
  • Jeder der in den vorangegangenen Abschnitten beschriebenen Prozesse, Methoden und Algorithmen kann in Codekomponenten verkörpert und vollständig oder teilweise automatisiert werden, die von einem oder mehreren Computersystemen oder Computerprozessoren mit Computerhardware ausgeführt werden. Das eine oder die mehreren Computersysteme oder Computerprozessoren können auch so betrieben werden, dass sie die Ausführung der entsprechenden Vorgänge in einer „Cloud Computing“-Umgebung oder als „Software as a Service“ (SaaS) unterstützen. Die Prozesse und Algorithmen können teilweise oder vollständig in anwendungsspezifischen Schaltkreisen implementiert sein. Die verschiedenen oben beschriebenen Merkmale und Verfahren können unabhängig voneinander verwendet oder auf verschiedene Weise kombiniert werden. Verschiedene Kombinationen und Unterkombinationen sollen in den Anwendungsbereich dieser Offenlegung fallen, und bestimmte Verfahrens- oder Prozessblöcke können in einigen Implementierungen weggelassen werden. Die hier beschriebenen Methoden und Prozesse sind auch nicht auf eine bestimmte Reihenfolge beschränkt, und die damit verbundenen Blöcke oder Zustände können in anderen geeigneten Reihenfolgen, parallel oder auf andere Weise ausgeführt werden. Blöcke oder Zustände können zu den offengelegten Beispielen hinzugefügt oder aus ihnen entfernt werden. Die Ausführung bestimmter Operationen oder Prozesse kann auf Computersysteme oder Computerprozessoren verteilt werden, die sich nicht nur in einer einzigen Maschine befinden, sondern über eine Reihe von Maschinen verteilt sind.
  • Wie hierin verwendet, kann eine Schaltung oder eine Komponente in jeder Form von Hardware, Software oder einer Kombination davon implementiert werden. Zum Beispiel, ein oder mehrere Prozessoren, Steuerungen, ASICs, PLAs, PALs, CPLDs, FPGAs, logische Komponenten, Softwareroutinen oder andere Mechanismen können implementiert werden, um eine Schaltung zu bilden. Bei der Implementierung können die verschiedenen hier beschriebenen Schaltungen oder Komponenten als diskrete Schaltungen/Komponenten implementiert werden, oder die beschriebenen Funktionen und Merkmale können teilweise oder insgesamt auf eine oder mehrere Schaltungen/Komponenten verteilt werden. Auch wenn verschiedene Merkmale oder Funktionselemente einzeln als getrennte Schaltungen/Komponenten beschrieben oder beansprucht werden, können diese Merkmale und Funktionen von einer oder mehreren gemeinsamen Schaltungen/Komponenten gemeinsam genutzt werden, und eine solche Beschreibung soll nicht voraussetzen oder implizieren, dass getrennte Schaltungen/Komponenten erforderlich sind, um diese Merkmale oder Funktionen zu implementieren. Wenn eine Schaltung/Komponente ganz oder teilweise mit Software implementiert ist, kann diese Software so implementiert werden, dass sie mit einem Computer- oder Verarbeitungssystem arbeitet, das in der Lage ist, die in Bezug auf sie beschriebene Funktionalität auszuführen, wie z. B. das Computersystem 800.
  • Wie hierin verwendet, kann der Begriff „oder“ sowohl in einem einschließenden als auch in einem ausschließenden Sinn verstanden werden. Darüber hinaus ist die Beschreibung von Ressourcen, Vorgängen oder Strukturen im Singular nicht so zu verstehen, dass der Plural ausgeschlossen wird. Bedingte Ausdrücke, wie z. B. „kann“, „könnte“, „könnte“ oder „darf“, sollen im Allgemeinen vermitteln, dass bestimmte Ausführungsformen bestimmte Merkmale, Elemente und/oder Schritte einschließen, während andere Ausführungsformen diese nicht einschließen, es sei denn, es ist ausdrücklich etwas anderes angegeben oder im Zusammenhang mit der Verwendung anders zu verstehen.
  • Begriffe und Ausdrücke, die in diesem Dokument verwendet werden, und Variationen davon sollten, sofern nicht ausdrücklich anders angegeben, als offen und nicht als einschränkend verstanden werden. Adjektive wie „konventionell“, „traditionell“, „normal“, „Standard“, „bekannt“ und Begriffe mit ähnlicher Bedeutung sind nicht so zu verstehen, dass sie den beschriebenen Gegenstand auf einen bestimmten Zeitraum oder auf einen zu einem bestimmten Zeitpunkt verfügbaren Gegenstand beschränken, sondern so zu verstehen, dass sie konventionelle, traditionelle, normale oder Standardtechnologien umfassen, die jetzt oder zu einem beliebigen Zeitpunkt in der Zukunft verfügbar oder bekannt sind. Das Vorhandensein erweiternder Wörter und Ausdrücke wie „eine oder mehrere“, „mindestens“, „aber nicht beschränkt auf“ oder ähnliche Ausdrücke in einigen Fällen ist nicht so zu verstehen, dass der engere Fall beabsichtigt oder erforderlich ist, wenn solche erweiternden Ausdrücke nicht vorhanden sind.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 16/163484 [0001]
    • US 16/773555 [0001]
    • US 16/773397 [0001]

Claims (20)

  1. Ein Trainingsknoten, bestehend aus: einem Prozessor; und eine Speichereinheit, die operativ mit dem Prozessor verbunden ist, wobei die Speichereinheit Befehle enthält, die, wenn sie ausgeführt werden, den Prozessor veranlassen,: Trainieren einer lokalen Version eines Modells für maschinelles Lernen (ML) am Trainingsknoten; Übertragen lokaler Parameter, die aus dem Training der lokalen Version des ML-Modells abgeleitet wurden ML-Modell zu einem führenden Knoten; vom führenden Knotenpunkt zusammengefasste Parameter empfangen, die von einer globalen Version des ML-Modells abgeleitet sind; die zusammengeführten Parameter auf die lokale Version des M L-Modells am Trainingsknoten anwenden, um die lokale Version des ML-Modells zu aktualisieren; die aktualisierte lokale Version des ML-Modells bewerten, um einen lokalen Validierungsverlustwert zu bestimmen; den lokalen Validierungsverlustwert an den führenden Knoten zu übermitteln; Empfangen eines globalen Validierungsverlustwerts, der auf der Grundlage des vom Trainingsknoten übertragenen lokalen Validierungsverlustwerts bestimmt wird, vom Führungsknoten.
  2. Trainingsknoten nach Anspruch 1, wobei die Anweisungen, die, wenn sie ausgeführt werden, den Prozessor veranlassen, die lokale Version des ML-Modells zu trainieren, ferner den Prozessor veranlassen, die lokale Version des ML-Modells unter Verwendung einer Trainingsdaten-Teilmenge eines lokalen Datensatzes am Trainingsknoten.
  3. Trainingsknoten nach Anspruch 2, wobei die Anweisungen, die, wenn sie ausgeführt werden, den Prozessor veranlassen, die lokale Version des ML-Modells zu evaluieren, ferner den Prozessor veranlassen, die lokale Version des ML-Modells unter Verwendung eines Validierungsdaten-Teilsatzes des lokalen Datensatzes an dem Trainingsknoten zu evaluieren.
  4. Der Trainingsknoten nach Anspruch 3, wobei der lokale Datensatz vor einer lokalen Trainingsiteration in die Trainingsdaten- und die Validierungsdaten-Teilmenge unterteilt wird.
  5. Trainingsknoten nach Anspruch 1, wobei die Anweisungen, die, wenn sie ausgeführt werden, den Prozessor veranlassen, die lokale Version des ML-Modells zu trainieren, ferner den Prozessor veranlassen, die lokale Version des ML-Modells in Stapeln zu trainieren.
  6. Trainingsknoten nach Anspruch 1, wobei die Speichereinheit Anweisungen enthält, die, wenn sie ausgeführt werden, den Prozessor außerdem veranlassen, den lokalen Validierungsverlustwert an den Führungsknoten zu übertragen.
  7. Trainingsknoten nach Anspruch 1, wobei die Speichereinheit Anweisungen enthält, die, wenn sie ausgeführt werden, den Prozessor außerdem veranlassen, einen gemittelten Validierungsverlustwert vom Führungsknoten zu empfangen.
  8. Trainingsknoten nach Anspruch 1, wobei die Speichereinheit Anweisungen enthält, die, wenn sie ausgeführt werden, den Prozessor außerdem veranlassen, den lokalen Validierungsverlustwert unter Verwendung eines öffentlichen Schlüssels eines Paares aus öffentlichem und privatem Schlüssel homomorph zu verschlüsseln.
  9. Trainingsknoten nach Anspruch 1, wobei die Speichereinheit Anweisungen enthält, die, wenn sie ausgeführt werden, den Prozessor dazu veranlassen, entweder das Training der lokalen Version des ML-Modells fortzusetzen oder das Training der lokalen Version des ML-Modells auf der Grundlage des globalen Validierungsverlustwertes zu beenden.
  10. Der Trainingsknoten nach Anspruch 1, wobei der Trainingsknoten, der Führungsknoten und zusätzliche Knoten in einem verteilten Schwarm-Lern-Blockchain-Netzwerk arbeiten.
  11. Ein Trainingsknoten, bestehend aus: einem Prozessor; und eine Speichereinheit, die operativ mit dem Prozessor verbunden ist, wobei die Speichereinheit Befehle enthält, die, wenn sie ausgeführt werden, den Prozessor veranlassen,: eine lokale Version eines Modells für maschinelles Lernen (ML) trainieren; nach der Wahl, als Führungsknoten für andere Trainingsknoten zu fungieren, lokale Parameter erhalten, die vom Training der jeweiligen lokalen Versionen des ML-Modells an den anderen Trainingsknoten abgeleitet sind; die empfangenen lokalen Parameter zusammenführen; Erstellung einer globalen Version des ML-Modells unter Verwendung der zusammengeführten lokalen Parameter; Übermittlung der zusammengeführten lokalen Parameter an jeden der anderen Trainingsknoten; und von jedem der anderen Trainingsknoten lokale Validierungsverlustwerte empfangen, die aus der lokalen Bewertung der jeweiligen lokalen Versionen des ML-Modells abgeleitet sind; und den Durchschnitt der lokalen Validierungsverlustwerte.
  12. Trainingsknoten nach Anspruch 11, wobei die Anweisungen, die, wenn sie ausgeführt werden, den Prozessor veranlassen, die globale Version des ML-Modells zu erstellen, den Prozessor ferner veranlassen, die globale Version des ML-Modells auf der Grundlage eines lokalen Parameters zu erstellen, der aus dem Training der lokalen Version des ML-Modells an dem Trainingsknoten zusätzlich zu den lokalen Parametern abgeleitet wird, die aus dem Training der jeweiligen lokalen Versionen des ML-Modells an den anderen Trainingsknoten abgeleitet werden.
  13. Trainingsknoten nach Anspruch 11, wobei die Anweisungen, die, wenn sie ausgeführt werden, den Prozessor veranlassen, die lokale Version des ML-Modells zu trainieren, Anweisungen umfassen, die, wenn sie ausgeführt werden, den Prozessor ferner veranlassen, die lokale Version des ML-Modells unter Verwendung einer Trainingsdatenuntergruppe von Daten zu trainieren, die für den Trainingsknoten lokal sind.
  14. Trainingsknoten nach Anspruch 13, wobei die Speichereinheit Befehle enthält, die, wenn sie ausgeführt werden, den Prozessor außerdem veranlassen, einen lokalen Validierungsverlustwert unter Verwendung einer Validierungsdatenuntergruppe der Daten zu berechnen, die für den Trainingsknoten lokal sind.
  15. Trainingsknoten nach Anspruch 14, wobei die Befehle, die, wenn sie ausgeführt werden, den Prozessor veranlassen, die lokalen Validierungsverlustwerte zu mitteln, Befehle umfassen, die, wenn sie ausgeführt werden, den Prozessor veranlassen, die lokalen Validierungsverlustwerte von jedem der anderen Trainingsknoten zusätzlich zu dem von dem Trainingsknoten berechneten lokalen Validierungsverlustwert zu mitteln.
  16. Trainingsknoten nach Anspruch 11, wobei der Trainingsknoten und die anderen Trainingsknoten ein verteiltes ML-Netzwerk bilden.
  17. Der Trainingsknoten nach Anspruch 16, wobei die Anweisungen, die bei ihrer Ausführung den Prozessor veranlassen, lokale Parameter zu empfangen, die globale Version des ML-Modells aufzubauen, die zusammengeführten lokalen Parameter zu übertragen und die lokalen Validierungsverlustwerte zu empfangen, den Prozessor ferner veranlassen, lokale Parameter zu empfangen, die globale Version des ML-Modells aufzubauen, die zusammengeführten lokalen Parameter zu übertragen und die lokalen Validierungsverlustwerte unter Verwendung eines verteilten Blockchain-Ledgers zu empfangen.
  18. Trainingsknoten nach Anspruch 11, wobei die Speichereinheit Anweisungen enthält, die, wenn sie ausgeführt werden, den Prozessor weiter veranlassen, einen Schlüsselmanager aufzufordern, ein asymmetrisches Schlüsselpaar zu erzeugen, mit dem die lokalen Parameter verschlüsselt und mit dem die zusammengeführten lokalen Parameter entschlüsselt werden.
  19. Trainingsknoten nach Anspruch 18, wobei die Speichereinheit Anweisungen enthält, die, wenn sie ausgeführt werden, den Prozessor weiter veranlassen, einen Schlüsselmanager aufzufordern, ein weiteres asymmetrisches Schlüsselpaar zu erzeugen, mit dem die lokalen Validierungsverlustwerte verschlüsselt und mit dem die gemittelten lokalen Validierungsverlustwerte entschlüsselt werden.
  20. Trainingsknoten nach Anspruch 11, wobei die Speichereinheit Befehle enthält, die, wenn sie ausgeführt werden, den Prozessor weiter veranlassen, die gemittelten lokalen Validierungsverlustwerte an die anderen Trainingsknoten als einen Trainingsleistungsindikator der jeweiligen lokalen Versionen des ML-Modells an den anderen Trainingsknoten zu übertragen.
DE102021109950.1A 2020-06-23 2021-04-20 Systeme und verfahren zur berechnung von validierungsverlusten für modelle im dezentralen maschinenlernen Pending DE102021109950A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN202041026528 2020-06-23
IN202041026528 2020-06-23

Publications (1)

Publication Number Publication Date
DE102021109950A1 true DE102021109950A1 (de) 2021-12-23

Family

ID=78823300

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021109950.1A Pending DE102021109950A1 (de) 2020-06-23 2021-04-20 Systeme und verfahren zur berechnung von validierungsverlusten für modelle im dezentralen maschinenlernen

Country Status (3)

Country Link
US (1) US20210398017A1 (de)
CN (1) CN113837392A (de)
DE (1) DE102021109950A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022202990A1 (de) 2022-03-25 2023-09-28 Volkswagen Aktiengesellschaft Verfahren, zentraler Server und Vorrichtung zum verteilten maschinellen Lernen für ein fahrzeugbezogenes Maschinenlernproblem

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220138504A1 (en) * 2020-10-29 2022-05-05 Oracle International Corporation Separation maximization technique for anomaly scores to compare anomaly detection models
US20220210140A1 (en) * 2020-12-30 2022-06-30 Atb Financial Systems and methods for federated learning on blockchain
CN113537516B (zh) * 2021-09-15 2021-12-14 北京百度网讯科技有限公司 分布式机器学习模型的训练方法、装置、设备和介质
WO2023197100A1 (en) * 2022-04-11 2023-10-19 Qualcomm Incorporated Loss reporting for distributed training of a machine learning model
US20240104438A1 (en) 2022-09-28 2024-03-28 Hewlett Packard Enterprise Development Lp Swarm learning, privacy preserving, de-centralized iid drift control
US20240160939A1 (en) 2022-11-15 2024-05-16 Hewlett Packard Enterprise Development Lp Anomalies and drift detection in decentralized learning environments
CN116246112B (zh) * 2023-02-17 2024-03-22 中国人民解放军总医院第二医学中心 基于神经影像数据库训练分类模型的数据处理方法和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022202990A1 (de) 2022-03-25 2023-09-28 Volkswagen Aktiengesellschaft Verfahren, zentraler Server und Vorrichtung zum verteilten maschinellen Lernen für ein fahrzeugbezogenes Maschinenlernproblem
DE102022202990B4 (de) 2022-03-25 2024-02-29 Volkswagen Aktiengesellschaft Verfahren und Vorrichtung zum verteilten maschinellen Lernen für ein fahrzeugbezogenes Maschinenlernproblem

Also Published As

Publication number Publication date
CN113837392A (zh) 2021-12-24
US20210398017A1 (en) 2021-12-23

Similar Documents

Publication Publication Date Title
DE102021109950A1 (de) Systeme und verfahren zur berechnung von validierungsverlusten für modelle im dezentralen maschinenlernen
CN109729168B (zh) 一种基于区块链的数据共享交换系统及方法
DE112021004344T5 (de) Konsensdienst für Blockchain-Netzwerke
DE112020005289T5 (de) Teilweise sortierte blockchain
DE602004012485T2 (de) Vorrichtung, Verfahren und Rechnerprogramm zur Verwaltung von digitalen Zertifikaten
CN113767385A (zh) 使用区块链在针对机器学习的分散模型构建中商业化数据的系统和方法
US11876891B2 (en) Secure parameter merging using homomorphic encryption for swarm learning
DE102021123128A1 (de) Mittels blockchains realisiertes datenmigrationsprüfprotokoll
DE112020005429T5 (de) Zufallsknotenauswahl für zulassungsbeschränkte Blockchain
DE112016006867T5 (de) Peer-to-Peer-Netzwerk und Knoten eines Peer-to-Peer-Netzwerks
EP2409255B1 (de) Verfahren zur erzeugung von asymmetrischen kryptografischen schlüsselpaaren
DE112020005075T5 (de) Effiziente schwellenwertspeicherung von datenobjekten
DE112021000608T5 (de) Schnellere ansichtsänderung für eine blockchain
DE102009017221A1 (de) Information-Rights-Management
DE112019000136T5 (de) Objektspeichersystem mit sicherer objektreplikation
DE112021001671T5 (de) Netzübergreifendes bereitstellen von identitäten
DE112021000688T5 (de) Indexstruktur für blockchain-ledger
CN115765965A (zh) 基于联邦学习和双联盟区块链的医疗数据安全共享方法
DE112018002502T5 (de) Cloud-Basiertes Management von Zugriff auf ein Datenspeichersystem auf einem lokalen Netzwerk
DE102020205993B3 (de) Konzept zum Austausch von kryptographischen Schlüsselinformationen
DE112022000906T5 (de) Trennen von blockchain-daten
DE112022000280T5 (de) Identitätsautorität
DE112021005837T5 (de) Dezentrale sendeverschlüsselung und schlüsselerzeugungseinrichtung
DE112021006165T5 (de) Schlüsselwiederherstellung in einem blockchain-netzwerk mit oprf
WO2022022992A1 (de) Digital-twin basierte prozesssteuerung in einem iot-netzwerk

Legal Events

Date Code Title Description
R081 Change of applicant/patentee

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, SPR, US

Free format text: FORMER OWNER: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, HOUSTON, TX, US