Jede Partei führt die folgenden Schritte aus, um eine Verbindung zu einem gestarteten Aggregator herzustellen.
Öffnen Sie das Projekt und klicken Sie auf das Experiment für föderiertes Lernen.
Klicken Sie auf Konfigurationsinformationen anzeigen und klicken Sie dann auf das Downloadsymbol, um das Parteiconnectorscript herunterzuladen.
Jede Partei muss das Parteiconnectorscript konfigurieren und gültige Berechtigungsnachweise für die Ausführung des Scripts angeben. Ein ausgefülltes Beispiel für ein Parteiconnectorscript sieht wie folgt aus:
from ibm_watsonx_ai 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: { "name": "MnistSklearnDataHandler", "path": "example.mnist_sklearn_data_handler", "info": { "npz_file":"./example_data/example_data.npz" } 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)
Parameter:
api_key
:
Ihr IAM-API-Schlüssel. Um einen neuen API-Schlüssel zu erstellen, gehen Sie auf die IBM Cloud und klicken Sie auf IBM Cloud Pak for Data API-Schlüssel erstellen unter Verwalten > Zugriff (IAM) > API-Schlüssel.
Optional: Wenn Sie ein Script aus einem anderen Projekt wiederverwenden, können Sie die aktualisierten
project_id
,aggregator_id
undexperiment_id
aus dem Fenster mit den Konfigurationsinformationen kopieren und in das Script kopieren.Installieren Sie watsonx.ai Runtime mit dem neuesten Federated Learning Paket, falls Sie dies noch nicht getan haben:
- Wenn Sie M-Series auf einem Mac verwenden, installieren Sie das neueste Paket mit dem folgenden Script:
# ----------------------------------------------------------------------------------------- # (C) Copyright IBM Corp. 2023. # https://opensource.org/licenses/BSD-3-Clause # ----------------------------------------------------------------------------------------- # # # Script to create a conda environment and install ibm_watsonx_ai with # the dependencies required for Federated Learning on MacOS. # The name of the conda environment to be created is passed as the first argument. # # Note: This script requires miniforge to be installed for conda. # usage=". install_fl_rt23.1_macos.sh conda_env_name" arch=$(uname -m) os=$(uname -s) if (($# < 1)) then echo $usage exit fi ENAME=$1 conda create -y -n ${ENAME} python=3.10 conda activate ${ENAME} pip install ibm_watsonx_ai if [ "$os" == "Darwin" -a "$arch" == "arm64" ] then conda install -y -c apple tensorflow-deps fi python - <<EOF import pkg_resources import platform import subprocess package = 'ibm_watsonx_ai' extra = 'fl-rt23.1-py3.10' extra_ = extra.replace('.','-') extra_s = '; extra == "{}"' remove = None add = [] if platform.system() == "Darwin" and platform.processor() == "arm": remove = 'tensorflow' add = ['tensorflow-macos==2.9.2'] pkgs = pkg_resources.working_set.by_key[package].requires(extras=[extra]) pkgs = [ p.__str__().removesuffix(extra_s.format(extra)).removesuffix(extra_s.format(extra_)) for p in pkgs if ( extra in p.__str__() or extra_ in p.__str__() ) and ( not remove or remove not in p.__str__() )] print( "Installing standard packages for {}[{}]:{}".format(package,extra,pkgs) ) print( "Installing additional packages:{}".format(add) ) cmd = [ 'pip', 'install'] + add + pkgs subprocess.run( cmd ) EOF
- Andernfalls führen Sie die Installation mit dem Befehl
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ 'ibm_watsonx_ai[fl-rt23.1-py3.10]'
durch.
Wenn Ihre Konfiguration abgeschlossen ist und Sie das Parteiconnectorscript gespeichert haben, geben Sie den folgenden Befehl in einer Befehlszeile ein, um das Script auszuführen:
python3 rts_<RTS Name>_<RTS ID>.py
Weitere Informationsquellen
Funktionen der Bibliothek für föderiertes Lernen
Übergeordnetes Thema: Experiment für föderiertes Lernen erstellen