Remote Data Science, nowa koncepcja wprowadzona przez OpenMined

Jan 17 2023
Dowiedz się, czego nauczyłem się podczas Programu Padawan w OpenMined! Cieszę się, że zostałem wybrany do programu Padawan w OpenMined w zakresie technologii zwiększania prywatności (PET). Ten program składa się z indywidualnych zajęć z mentorem, który szkoli Cię w zakresie frameworka, szczegółowo wyjaśniając, jak to działa.

Dowiedz się, czego nauczyłem się podczas Programu Padawan w OpenMined!

Cieszę się, że zostałem wybrany do programu Padawan w OpenMined w zakresie technologii zwiększania prywatności (PET). Ten program składa się z indywidualnych zajęć z mentorem, który szkoli Cię w zakresie frameworka, szczegółowo wyjaśniając, jak to działa. W tym poście na blogu staram się podsumować to, czego się nauczyłem.

Co to jest OpenMined?

Z jednej strony czasami dobre rzeczy, takie jak współpraca między naukowcami, firmami i instytucjami publicznymi, nie mają miejsca, ponieważ nie można udostępniać informacji, az drugiej strony złe rzeczy mają miejsce, gdy udostępnia się zbyt wiele informacji. Dlatego OpenMined stara się tworzyć narzędzia, które pozwolą ludziom i organizacjom dzielić się informacjami i modelami uczenia maszynowego bez narażania prywatności.

OpenMined to społeczność Open Source skupiona na badaniu, rozwijaniu i ulepszaniu narzędzi do zabezpieczania i ochrony prywatności.

Ta społeczność wprowadza koncepcję Remote Data Science, która pozwoli ludziom i organizacjom dzielić się informacjami bez narażania prywatności. Fakt ten może mieć ogromny wpływ na organizacje rządowe, instytucje medyczne, w których prywatność jest dość ważna.

Dlaczego jest to przydatne?

Anonimizacja danych i deidentyfikacja to techniki stosowane do danych w celu ochrony prywatności danych osobowych. Tak więc, jeśli Twój identyfikator, imię i nazwisko lub płeć zostaną usunięte z danych, haker nie będzie mógł rozszyfrować, kim jesteś. Ale to nieprawda! Możliwa jest ponowna identyfikacja danych.

Technologia zwiększająca prywatność (PET)

W tym stosie technologii występuje wiele technologii:

  • Szyfrowanie homomorficzne: forma szyfrowania, która umożliwia obliczenia na zaszyfrowanych danych bez uprzedniego ich odszyfrowania.
  • Dowód z wiedzą zerową: w tej metodzie dowodzący może udowodnić innej stronie, że stwierdzenie jest prawdziwe, bez przekazywania jakichkolwiek informacji.
  • Bezpieczne obliczenia wielostronne: zachowując prywatność danych wejściowych, oblicz funkcję na tych danych wejściowych.
  • Prywatność różnicowa: publiczne udostępnianie informacji bez ujawniania, czy dane danej osoby są częścią zbioru danych.
  • Uczenie federacyjne: uczenie modeli uczenia maszynowego w rozproszonych węzłach, w których każdy węzeł ma prywatny zestaw danych.

Syft to platforma open source opracowana przez OpenMined, która ma na celu zapewnienie bezpiecznej i prywatnej nauki o danych w Pythonie. Celem jest zastosowanie technik takich jak Federated Learning, Differential Privacy i Encrypted Computation na danych w integracji z platformami Deep Learning.

Syft kontra Grid

  • Syft ma na celu naśladowanie popularnych narzędzi do nauki danych do zdalnego dostępu do kodu, używając wskaźników wskazujących na dane, których nie można skopiować bez specjalnych uprawnień.
  • Grid to komponent serwera, który uruchamia kontenery wokół danych, które chcesz chronić i bezpiecznie wykorzystywać.

Jak działa prywatność różnicowa w Syft?

W Syft rozważane są różne przedmioty:

  1. Osoba, której dane dotyczą: osoby reprezentowane w danych, których dane chcemy chronić
  2. Właściciel danych: kto przesyła dane
  3. Data Scientist: kto ma dostęp do danych

Syft zapewnia DP na 3 poziomach:

  1. Prywatność kontradyktoryjna: zaangażowane są 3 różne role: w tym przypadku osoby, których dane dotyczą, właściciel danych i badacz danych. Gdzie Data Scientist może zapytać tylko, czy ma wystarczający budżet na prywatność.
  2. Indywidualna prywatność różnicowa: Dane wyjściowe algorytmu nie zależą od wartości dla osoby. Budżet prywatności jest śledzony na poziomie indywidualnej osoby, której dane dotyczą.
  3. Automatyczna prywatność różnicowa: mając wystarczający budżet na prywatność, możesz uzyskać wyniki bez blokowania lub czekania na akceptację właściciela danych.

Jak zbudowana jest architektura Syft?

Kilka komponentów integruje tę architekturę, aby zagwarantować główne cele struktury.

Gdzie to działa? Można go uruchomić na dowolnym obsługiwanym hoście kontenera, takim jak Docker lub Kubernetes .

Domena

Domena to zbiór kontenerów i kodu, który hermetyzuje dane prywatne i udostępnia interfejsy API, które umożliwiają wykonywanie operacji Remote Data Science jako klient.

Serwer Grid działa w domenie serwera węzłowego.

Sieć

Sieć ma umożliwiać komunikację różnych domen. Jest na poziomie VPN.

Klient

Klient uzyskuje dostęp do domeny z określonymi uprawnieniami. Kod działający wewnątrz klienta znajduje się na komputerze użytkownika, w interpreterze Pythona. Podczas gdy kod działający w domenie (po stronie serwera) znajduje się w kontenerze.

Wiadomości

Kontener o nazwie proxy uruchamia system o nazwie traefik , w którym definiujemy trasy HTTP. Protokół wiadomości jest oparty na RPC.

Synchronizacja i blokowanie wiadomości: w zależności od tego, co chcemy zrobić, możemy użyć synchronizacji lub asynchronicznej wiadomości. Na przykład większość akcji jest asynchroniczna i jest wysyłana do punktu końcowego strumienia ( kolejka RabbitMQ ) i jest zużywana przez proces roboczy Celery .

Składowanie

Obiekty tymczasowe są przechowywane w Redis , a obiekty trwałego przechowywania są przechowywane w Postgres .

Ponieważ wszystkie obiekty w `syft` mają UUID, większość danych jest przechowywana w magazynie `key` / `value`, będącym kluczem UUID. Ta baza danych jest migrowana do MongoDB, bazy danych opartej na dokumentach.

Kiedy dane są przesyłane między systemami, muszą być serializowane w blob (Binary Large Object).

Zaplecze

Backend i backend_stream są odpowiedzialne za odbieranie odpowiednio komunikatów synchronicznych i asynchronicznych.

Interfejs użytkownika

Jest to interfejs użytkownika do interakcji z domeną oraz do zarządzania użytkownikami i zestawami danych.

[Zdjęcie z kursu Padaway ]

Jak mogę go uruchomić?

  1. Zainstaluj syft z pythonem, (ostatnia wersja w tej chwili):
  2. pip install syft==0.7.0b57
    

    pip install hagrid
    

    hagrid launch xyz - tag=latest
    

Wniosek

Nadal jest zbyt wiele do zrobienia w ekosystemie syft, aby zastosować go w prawdziwych studiach przypadków. Narzędzie obiecuje ogromne postępy w dziedzinie nauki o danych, umożliwiając udostępnianie danych między różnymi organizacjami z uwzględnieniem gwarancji prywatności. Nie mogę się doczekać, aby zobaczyć, jak to narzędzie ewoluuje w przyszłości i pomoże odpowiednim branżom, takim jak opieka zdrowotna, w tworzeniu dokładniejszych modeli przyspieszających przewidywanie chorób.

Chcesz wziąć udział w kursie? Aplikacje są otwarte!https://blog.openmined.org/work-on-ais-most-exciting-frontier-no-phd-required/