Chaque partie suit ces étapes pour se connecter à un agrégateur démarré.
Ouvrez le projet et cliquez sur l'expérimentation d'apprentissage fédéré.
Cliquez sur Afficher les informations de configuration et cliquez sur l'icône de téléchargement pour télécharger le script de connecteur de partie.
Chaque partie doit configurer le script de connecteur de partie et fournir des données d'identification valides pour exécuter le script. Voici à quoi ressemble un exemple de script de connecteur de partie terminé:
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)
Paramètres :
api_key
:
Votre clé d'API IAM. Pour créer une nouvelle clé API, rendez-vous sur le site Web d'IBM Cloud et cliquez sur Créer une clé API IBM Cloud Pak for Data sous Gérer > Accès (IAM) > Clés API.
Facultatif: si vous réutilisez un script à partir d'un autre projet, vous pouvez copier les
project_id
,aggregator_id
etexperiment_id
mis à jour à partir de la fenêtre des informations de configuration et les copier dans le script.Installez le Runtime watsonx.ai avec le dernier package Federated Learning si vous ne l'avez pas encore fait :
- Si vous utilisez M-series sur un Mac, installez le dernier package avec le script suivant:
# ----------------------------------------------------------------------------------------- # (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
- Sinon, effectuez l'installation à l'aide de la commande suivante:
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ 'ibm_watsonx_ai[fl-rt23.1-py3.10]'
Lorsque votre configuration est terminée et que vous sauvegardez le script de connecteur de partie, entrez la commande suivante sur une ligne de commande pour exécuter le script:
python3 rts_<RTS Name>_<RTS ID>.py
Autres ressources
Fonctions de la bibliothèque de l'apprentissage fédéré
Rubrique parent: Création d'une expérimentation d'apprentissage fédéré