Remote Data Science, ein neues Konzept von OpenMined
Erfahren Sie, was ich während des Padawan-Programms bei OpenMined gelernt habe!
Ich freue mich, dass ich für das Padawan-Programm von OpenMined zum Thema Privacy Enhancing Technology (PETs) ausgewählt wurde. Dieses Programm besteht aus Einzelunterricht mit einem Mentor, der Sie in das Framework einführt und Ihnen detailliert erklärt, wie es funktioniert. In diesem Blogbeitrag versuche ich zusammenzufassen, was ich gelernt habe.
Was ist OpenMined?
Einerseits passieren manchmal gute Dinge wie die Zusammenarbeit zwischen Forschern, Unternehmen und öffentlichen Institutionen nicht, weil Informationen nicht weitergegeben werden können, und andererseits passieren schlechte Dinge, wenn zu viele Informationen weitergegeben werden. Daher möchte OpenMined Tools entwickeln, die es Menschen und Organisationen ermöglichen, Informationen und Modelle für maschinelles Lernen auszutauschen, ohne die Privatsphäre zu gefährden.
OpenMined ist eine Open-Source-Community, die sich auf die Erforschung, Entwicklung und Weiterentwicklung von Tools zur Sicherheit und zum Schutz der Privatsphäre konzentriert.
Diese Community stellt das Konzept der Remote Data Science vor, das es Menschen und Organisationen ermöglicht, Informationen miteinander auszutauschen, ohne die Privatsphäre zu gefährden. Diese Tatsache könnte enorme Auswirkungen auf Regierungsorganisationen und medizinische Einrichtungen haben, in denen der Datenschutz einen hohen Stellenwert hat.
Warum ist das nützlich?
Datenanonymisierung und Anonymisierung sind Techniken, die auf Daten angewendet werden, um die Privatsphäre personenbezogener Daten zu schützen. Wenn also entweder Ihre ID, Ihr Name oder Ihr Geschlecht aus den Daten entfernt werden, kann ein Hacker nicht entschlüsseln, wer Sie sind. Aber das stimmt nicht! Eine erneute Identifizierung der Daten ist möglich.
Technologie zur Verbesserung der Privatsphäre (PETs)
In diesem Technologie-Stack sind viele Technologien vorhanden:
- Homomorphe Verschlüsselung: eine Form der Verschlüsselung, die eine Berechnung über die verschlüsselten Daten ermöglicht, ohne diese zuvor zu entschlüsseln.
- Wissensfreier Beweis: Bei dieser Methode kann der Prüfer einer anderen Partei beweisen, dass eine Aussage wahr ist, ohne irgendwelche Informationen zu übermitteln.
- Sichere Mehrparteienberechnung: Berechnen Sie eine Funktion über diese Eingaben, während Sie die Eingaben privat halten.
- Differenzierter Datenschutz: Informationen öffentlich weitergeben, ohne preiszugeben, ob die Daten einer Person Teil des Datensatzes sind.
- Föderiertes Lernen: Trainieren von Modellen für maschinelles Lernen über verteilte Knoten hinweg, wobei jeder Knoten über einen privaten Datensatz verfügt.
Syft ist ein von OpenMined entwickeltes Open-Source-Framework, das sichere und private Data Science in Python bereitstellen soll. Das Ziel besteht darin, Techniken wie Federated Learning, Differential Privacy und Encrypted Computation auf die Daten in Integration mit Deep-Learning-Frameworks anzuwenden.
Syft vs. Grid
- Syft zielt darauf ab, gängige Data-Science-Tools für den Fernzugriff auf Code nachzuahmen, indem es Zeiger verwendet, die auf Daten verweisen, die ohne besondere Berechtigungen nicht kopiert werden können.
- Grid ist die Serverkomponente, die Container rund um die Daten ausführt, die Sie schützen und sicher nutzen möchten.
Wie funktioniert Differential Privacy in Syft?
Die verschiedenen Themen werden in Syft berücksichtigt:
- Betroffene Person: In den Daten dargestellte Personen, deren Daten wir schützen möchten
- Dateneigentümer: Wer lädt die Daten hoch?
- Data Scientist: Wer auf die Daten zugreift
Syft bietet DP in 3 Stufen:
- Adversarial Differential Privacy: Es sind drei verschiedene Rollen beteiligt: in diesem Fall betroffene Personen, Dateneigentümer und Datenwissenschaftler. Dabei kann der Datenwissenschaftler nur abfragen, ob er über genügend Datenschutzbudget verfügt.
- Individuelle differenzielle Privatsphäre: Die Ausgabe des Algorithmus hängt nicht vom Wert für eine Person ab. Das Datenschutzbudget wird auf der Ebene der einzelnen betroffenen Person verfolgt.
- Automatischer differenzieller Datenschutz: Wenn Sie über ein ausreichendes Datenschutzbudget verfügen, können Sie die Ergebnisse erhalten, ohne zu blockieren oder auf die Zustimmung des Dateneigentümers zu warten.
Wie ist die Syft-Architektur aufgebaut?
Mehrere Komponenten integrieren diese Architektur, um die Hauptziele des Frameworks zu gewährleisten.
Wo läuft es? Es kann auf jedem unterstützten Container-Host ausgeführt werden, beispielsweise Docker oder Kubernetes .
Domain
Eine Domäne ist eine Sammlung von Containern und Code, die private Daten kapselt und APIs bereitstellt, die die Ausführung von Remote Data Science-Vorgängen als Client ermöglichen.
Ein Grid-Server wird in einer Knotenserverdomäne ausgeführt.
Netzwerk
Das Netzwerk soll die Kommunikation verschiedener Domänen ermöglichen. Es ist auf VPN-Ebene.
Klient
Der Client greift mit bestimmten Privilegien auf die Domäne zu. Der im Client ausgeführte Code befindet sich auf dem Computer des Benutzers in einem Python-Interpreter. Während der Code innerhalb der Domäne (serverseitig) ausgeführt wird, befindet er sich im Container.
Mitteilungen
Ein Container namens Proxy führt ein System namens Traefik aus , in dem wir HTTP-Routen definieren. Das Nachrichtenprotokoll basiert auf RPC.
Nachrichten synchronisieren und blockieren: Je nachdem, was wir tun möchten, können wir synchrone oder asynchrone Nachrichten verwenden. Beispielsweise sind die meisten Aktionen asynchron und werden an einen Stream-Endpunkt (eine RabbitMQ- Warteschlange) gesendet und von einem Celery- Worker verarbeitet .
Lagerung
Temporäre Objekte werden in Redis und persistente Speicherobjekte in Postgres gespeichert .
Da alle Objekte in „syft“ eine UUID haben, werden die meisten Daten im „Schlüssel“-/„Wert“-Speicher gespeichert, wobei der Schlüssel die UUID ist. Diese Datenbank wird auf MongoDB migriert, eine dokumentenbasierte Datenbank.
Wenn die Daten zwischen Systemen übertragen werden, müssen sie in Blobs (Binary Large Object) serialisiert werden.
Backend
Das Backend und der Backend_stream sind für den Empfang der synchronen bzw. asynchronen Nachrichten verantwortlich.
Frontend
Es handelt sich um eine Benutzeroberfläche zur Interaktion mit der Domäne und zur Verwaltung von Benutzern und Datensätzen.
[Bild vom Padaway-Kurs ]
Wie kann ich es starten?
- Installieren Sie syft mit Python, der (derzeit letzten Version):
pip install syft==0.7.0b57
pip install hagrid
hagrid launch xyz - tag=latest
Abschluss
Es gibt im Syft-Ökosystem noch zu viel zu tun, um es auf reale Fallstudien anzuwenden. Das Tool verspricht enorme Fortschritte im Bereich Data Science und ermöglicht den Datenaustausch zwischen verschiedenen Organisationen unter Berücksichtigung von Datenschutzgarantien. Ich bin sehr gespannt, wie sich dieses Tool in Zukunft weiterentwickelt und relevanten Branchen wie dem Gesundheitswesen dabei hilft, genauere Modelle zu erstellen, die Krankheitsvorhersagen beschleunigen.
Möchten Sie den Kurs belegen? Bewerbungen sind offen!https://blog.openmined.org/work-on-ais-most-exciting-frontier-no-phd-required/

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































