Translation not up to date
Ten kurs demonstruje wykorzystanie programu Federated Learning w celu szkolenia modelu uczenia maszynowego z danymi pochodząckami od różnych użytkowników bez konieczności udostępniania danych przez użytkowników. Kroki są wykonywane w środowisku o niskim kodzie za pomocą interfejsu użytkownika i za pomocą środowiska Tensorflow .
Jest to kurs krok po kroku dotyczący uruchamiania eksperymentu stowarzyszonego w zakresie uczenia się przez interfejs użytkownika. Przykład kodu dla podejścia sterowanego przez interfejs API można znaleźć w sekcji Przykłady uczenia stowarzyszonego Tensorflow.
W tym kursie admin odnosi się do użytkownika, który uruchamia eksperyment edukacyjny stowarzyszony, a podmiot odnosi się do jednego lub kilku użytkowników, którzy wysyłają swoje wyniki modelu po rozpoczęciu eksperymentu przez administratora. Chociaż kurs może być wykonany przez administratora i wiele podmiotów, pojedynczy użytkownik może również ukończenie pełnego uruchomienia jako zarówno administrator, jak i strona. W przypadku prostszego celu demonstracyjnego, w następującym kursie tylko jeden zestaw danych jest wprowadzany przez jedną ze stron. Więcej informacji na temat administratora i podmiotu zawiera sekcja Terminologia.
Obejrzyj ten krótki kurs wideo dotyczący tworzenia eksperymentu programu Federated Learning z produktem Watson Studio.
Ten film wideo udostępnia metodę wizualną, która umożliwia poznanie pojęć i zadań w tej dokumentacji.
W tym kursie nauczysz się:
- Krok 1: Uruchamianie programu Federated Learning jako administrator
- Krok 2: Model pociągu jako strona
- Krok 3: Zapisz i wdróż model w trybie z połączeniem
Krok 1: Uruchom stowarzyszoną naukę jako administrator
W tym kursie można trenować stowarzyszony eksperyment edukacyjny z ramami Tensorflow i zestawem danych MNIST.
Zanim rozpoczniesz
Zaloguj się do programu IBM Cloud. Jeśli nie masz konta, utwórz go za pomocą dowolnego adresu e-mail.
Utwórz instancję usługi Watson Machine Learning , jeśli nie została ona utworzona w środowisku użytkownika.
Zaloguj się do katalogu watsonx.
Użyj istniejącego projektu lub utwórz nowy. Użytkownik musi mieć co najmniej uprawnienie administratora.
Powiązanie usługi Watson Machine Learning z projektem użytkownika.
- W projekcie kliknij opcję Manage > Service & integrations(Zarządzaj > usługami i integracjami).
- Kliknij opcję Powiąż usługę.
- Wybierz z listy instancję Watson Machine Learning , a następnie kliknij opcję Powiążlub opcję Nowa usługa , jeśli nie ma potrzeby konfigurowania instancji.
Uruchom agregator
Utwórz zasób aplikacyjny eksperymentu uczenia stowarzyszonego:
Kliknij kartę Zasoby w projekcie.
Kliknij opcję Nowe zadanie > Modele pociągu w danych rozproszonych.
Wpisz wartość w polu Nazwa dla eksperymentu i opcjonalnie opis.
Sprawdź powiązaną instancję Watson Machine Learning w sekcji Select a machine learning instance(Wybierz instancję uczenia maszynowego). Jeśli nie jest widoczna powiązana instancja Watson Machine Learning , wykonaj następujące kroki:
Kliknij opcję Powiąż instancję usługi Machine Learning.
Wybierz istniejącą instancję i kliknij opcję Powiążlub utwórz nową usługę.
Kliknij przycisk Przeładuj , aby wyświetlić powiązaną usługę.
Kliknij przycisk Dalej.
Skonfiguruj eksperyment.
Na stronie Konfiguracja wybierz opcję Specyfikacja sprzętu.
W menu rozwijanym Środowisko uczenia maszynowego wybierz opcję Tensorflow 2.
Wybierz opcję Typ modelu.
Pobierz model nieprzeszkolony.
Z powrotem w eksperymencie uczenia stowarzyszonego kliknij opcję Wybierz w sekcji Specyfikacja modelu.
Przeciągnij pobrany plik o nazwie
tf_mnist_model.zip
do pliku Prześlij box.1. Wybierz opcjęruntime-22.2-py3.10
dla listy rozwijanej Specyfikacja oprogramowania .Nadaj modelowi nazwę, a następnie kliknij przycisk Dodaj.
Kliknij opcję Średnia ważona dla opcji Metoda Fusion, a następnie kliknij przycisk Dalej.
Zdefiniuj parametry hiperparametrów.
Zaakceptuj domyślne hiperparametry lub dopasuj w razie potrzeby.
Po zakończeniu kliknij przycisk Dalej.
Wybierz zdalne systemy treningowe.
- Kliknij opcję Dodaj nowe systemy.
Podaj nazwę systemu zdalnego szkolenia.
W obszarze Dozwolone tożsamościwybierz użytkownika, który jest stroną, a następnie kliknij przycisk Dodaj. W ramach tego kursu użytkownik może dodać fikcyjnego użytkownika lub siebie w celach demonstracyjnych.
Ten użytkownik musi zostać dodany do projektu jako współpracownik z uprawnieniami edytującego lub wyższego. Dodaj dodatkowe systemy, powtarzając ten krok dla każdej zdalnej strony, która ma być używana.Po zakończeniu kliknij opcję Add systems(Dodaj systemy).
Wróć do strony Select remote training systems (Wybierz zdalne systemy szkoleniowe), sprawdź, czy wybrany system jest wybrany, a następnie kliknij przycisk Next(Dalej).
Przejrzyj ustawienia, a następnie kliknij przycisk Utwórz.
Obserwuj status. Status eksperymentu stowarzyszonego uczenia się to Oczekujące podczas uruchamiania. Gdy eksperyment jest gotowy do połączenia podmiotów, status zostanie zmieniony na Konfiguracja-Oczekiwanie na systemy zdalne. Może to zająć kilka minut.
Kliknij opcję View setup information (Wyświetl informacje o konfiguracji), aby pobrać konfigurację podmiotu i skrypt konektora podmiotu, który może być uruchamiany na stronie zdalnej.
Kliknij ikonę pobierania obok każdego utworzonego zdalnego systemu szkoleniowego, a następnie kliknij opcję Skrypt konektora podmiotu. Powoduje to wykonanie skryptu konektora podmiotu. Zapisz skrypt w katalogu na komputerze.
Krok 2: Model pociągu jako strona
Aby trenować model jako podmiot, wykonaj następujące kroki:
Upewnij się, że używana jest ta sama wersja Python , co administrator. Użycie innej wersji Python może spowodować problemy z kompatybilnością. Aby zapoznać się z wersjami Python kompatybilnymi z różnymi środowiskami, należy zapoznać się z Frameworkami i kompatybilnością wersji Python.
Utwórz nowy katalog lokalny i umieść w nim skrypt konektora podmiotu.
Pobierz procedurę obsługi danych mnist_keras_data_handler.py , klikając ją prawym przyciskiem myszy, a następnie kliknij opcję Zapisz odsyłacz jako. Zapisz go w tym samym katalogu, w którym znajduje się skrypt konektora podmiotu.
Pobierz zestaw danych MNIST handwriting data set z naszych przykładów. W tym samym katalogu, w którym znajduje się skrypt konektora podmiotu, procedura obsługi danych oraz pozostałe pliki, rozpakuj je, uruchamiając komendę unzip
unzip MNIST-pkl.zip
.Zainstaluj produkt Watson Machine Learning.
- Jeśli używany jest system Linux, uruchom komendę
pip install 'ibm-watson-machine-learning[fl-rt22.2-py3.10]'
. - Jeśli używasz systemu Mac OS z procesorem M-series CPU i Conda, pobierz skrypt instalacyjny , a następnie uruchom program
./install_fl_rt22.2_macos.sh <name for new conda environment>
.
Teraz masz skrypt konektora partyjnego,mnist_keras_data_handler.py
,mnist-keras-test.pkl
imnist-keras-train.pkl
, procedurę obsługi danych w tym samym katalogu.
- Jeśli używany jest system Linux, uruchom komendę
Skrypt konektora podmiotu wygląda podobnie do poniższego. Edytuj go, wypełniając położenia plików danych, procedurę obsługi danych i klucz API dla użytkownika zdefiniowanego w zdalnym systemie treningowym. Aby uzyskać klucz interfejsu API, należy przejść do opcji Zarządzaj > kluczami interfejsu API > Access (IAM) > w koncieIBM Cloud. Jeśli nie masz jednego, kliknij opcję Create API key(Utwórz klucz API), wypełnij pola i kliknij przycisk Create(Utwórz).
from ibm_watson_machine_learning import APIClient wml_credentials = { "url": "https://us-south.ml.cloud.ibm.com", "apikey": "<API KEY>" } wml_client = APIClient(wml_credentials) wml_client.set.default_project("XXX-XXX-XXX-XXX-XXX") party_metadata = { wml_client.remote_training_systems.ConfigurationMetaNames.DATA_HANDLER: { # Supply the name of the data handler class and path to it. # The info section may be used to pass information to the # data handler. # For example, # "name": "MnistSklearnDataHandler", # "path": "example.mnist_sklearn_data_handler", # "info": { # "train_file": pwd + "/mnist-keras-train.pkl", # "test_file": pwd + "/mnist-keras-test.pkl" # } "name": "<data handler>", "path": "<path to data handler>", "info": { "<information to pass to data handler>" } } } party = wml_client.remote_training_systems.create_party("XXX-XXX-XXX-XXX-XXX", party_metadata) party.monitor_logs() party.run(aggregator_id="XXX-XXX-XXX-XXX-XXX", asynchronous=False)
Uruchom skrypt konektora podmiotu:
python3 rts_<RTS Name>_<RTS ID>.py
.
Z poziomu interfejsu użytkownika można monitorować status eksperymentu programu Federated Learning.
Krok 3: Zapisz i wdróż model w trybie z połączeniem
W tej sekcji dowiesz się, aby zapisać i wdrożyć model, który został przeszkolony.
Zapisz model.
- W ramach zakończonego eksperymentu programu Federated Learning kliknij opcję Zapisz model w projekcie.
- Nadaj modelowi nazwę i kliknij przycisk Zapisz.
- Przejdź do domu projektu.
Utwórz obszar wdrażania, jeśli nie ma go.
- W menu nawigacyjnym kliknij opcję Deployments(Wdrożenia).
- Kliknij opcję Nowa przestrzeń wdrażania.
- Wypełnij pola, a następnie kliknij przycisk Utwórz.
Awanuj model do obszaru.
- Wróć do projektu i kliknij kartę Zasoby .
- W sekcji Modele kliknij model, aby wyświetlić jego stronę szczegółów.
- Kliknij opcję Awansuj na spację.
- Wybierz miejsce wdrożenia dla wyszkolonego modelu.
- Wybierz opcję Idź do modelu w obszarze po jego awansowaniu .
- Kliknij opcję Awansuj.
Po wyświetleniu modelu w obszarze wdrażania kliknij opcję Nowe wdrożenie.
- Wybierz opcję Tryb z połączeniem jako Typ wdrożenia.
- Podaj nazwę wdrożenia.
- Kliknij makro Create.
Kliknij kartę Deployments (Wdrożenia), aby monitorować status wdrażania modelu.
Następne kroki
Czy można utworzyć własny dostosowany eksperyment stowarzyszony? Zapoznaj się z krokami na wysokim poziomie w sekcji Tworzenie eksperymentu edukacyjnego stowarzyszonego.
Temat nadrzędny: Kurs nauki stowarzyszonej i przykłady