IBM / federated-learning-lib

A library for federated learning (a distributed machine learning process) in an enterprise environment.
Other
500 stars 136 forks source link

Federated Learning XGBoost Issue #83

Closed ticlazau closed 3 years ago

ticlazau commented 3 years ago

Hello,

following the tutorial from: https://www.ibm.com/docs/en/cloud-paks/cp-data/4.0?topic=preview-federated-learning-xgboost-tutorial-tech I am getting this error:

2021-10-18 12:13:33.580 INFO ibm_watson_machine_learning.client :: Client successfully initialized 2021-10-18 12:13:33.581 WARNING ibmfl.util.config :: Yaml configuration file not found: log_config.yaml 2021-10-18T10:13:33.582Z | 1.0.6 | INFO | ibmfl.util.config | Getting Aggregator details from arguments. 2021-10-18T10:13:33.588Z | 1.0.6 | INFO | ibmfl.util.config | No metrics recorder config provided for this setup. 2021-10-18T10:13:33.588Z | 1.0.6 | INFO | ibmfl.util.config | No model config provided for this setup. Traceback (most recent call last): File "rts_Florin_13b2cd1b-8bef-4cf5-922c-dc6e811c6b84.py", line 38, in <module> p = Party( config_dict = party_config, token = "Bearer " + wml_client.wml_token ) File "/Users/coredump/anaconda3/lib/python3.8/site-packages/ibmfl/party/party.py", line 52, in __init__ cls_config = get_party_config(**kwargs) File "/Users/coredump/anaconda3/lib/python3.8/site-packages/ibmfl/util/config.py", line 104, in get_party_config return get_config_from_args(**kwargs) File "/Users/coredump/anaconda3/lib/python3.8/site-packages/ibmfl/util/config.py", line 158, in get_config_from_args cls_config = get_cls_by_config(config_dict) File "/Users/coredump/anaconda3/lib/python3.8/site-packages/ibmfl/util/config.py", line 183, in get_cls_by_config cls_config['connection'] = get_connection_from_config( File "/Users/coredump/anaconda3/lib/python3.8/site-packages/ibmfl/util/config.py", line 212, in get_connection_from_config config['path'], config['name']) **KeyError: 'path'**

Any ideea how I can overcome this issue?

Rgds, FM

ticlazau commented 3 years ago

This is my client file content:

from ibm_watson_machine_learning import APIClient
import ibmfl.party_env_validator
from ibmfl.party.party import Party

wml_credentials = {
        "url": "https://us-south.ml.cloud.ibm.com",
        "apikey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

wml_client = APIClient(wml_credentials)

party_config = {
        "aggregator": {
                "ip": "us-south.ml.cloud.ibm.com/ml/v4/trainings/xxxxxxxxxxxxxxxxxxxxx"
        },
        "connection": {
                "info": {
                        "id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
                }
        },
        "data": {
                "name": "AdultSklearnDataHandler",
                "path": "./adult_sklearn_data_handler.py",
                "info": { "txt_file":
                        "./adult.csv"
                },
        },
        "local_training": {
                "name": "XGBClassifierLocalTrainingHandler",
                "path": "ibmfl.party.training.xgboost_local_training_handler"
        },
        "protocol_handler": {
                "name": "PartyProtocolHandler",
                "path": "ibmfl.party.party_protocol_handler"
        }
}

p = Party( config_dict = party_config, token = "Bearer " + wml_client.wml_token  )
p.start()

while not p.connection.stopped:
        pass`
Yi-Zoey commented 3 years ago

Hi @ticlazau, since you are using the product version of IBM FL, you’ll get better and more timely answers through the official support channels. Please go to the Watson Studio community page here. In addition, you may create a support ticket for cloud or for Cloud Pak for Data. If you need more advice with your enterprise project the IBM Data Science Elite Team is here to help.

ticlazau commented 3 years ago

@Yi-Zoey thank for your reply but I am using the python library provided in this git repository.

Yi-Zoey commented 3 years ago

@ticlazau XGBoost model is not supported by this version of IBM FL. It is supported by the product version of IBM FL.

ticlazau commented 3 years ago

Thx