Federated Learning 指導教學和展示(技術預覽)
技術預覽注意事項
這是技術預覽,不支援用於正式作業工作量。
開始之前
在嘗試此指導教學之前,請先參閱開始設定 Federated Learning。
確保您有權存取 IBM Watson Machine Learning。
Federated Learning 指導教學
- 您可以使用現有專案或在 IBM Cloud Pak for Data 中建立新專案。
- 在專案的資產 標籤上,按一下新增至專案。
- 按一下 Federated Learning 實驗。
- 輸入實驗的名稱。 按下一步。
- 在機器學習架構下拉清單下,選擇 Tensorflow 2,然後按一下模型規格下的選取。
- 在這裡下載未經訓練的模型。
- 將您在上一步下載的檔案
tf_mnist_model.zip
移至上傳檔案方框。 - 為模型提供名稱,然後按一下匯入。
- 針對融合方法選擇加權平均,然後按下一步。
- 在定義超參數標籤中,您可以使用預設超參數或根據需要進行調整。 完成後,請按下一步。
- 在選取遠端訓練系統標籤中,按一下新增系統。
- 為遠端訓練系統提供名稱。 然後,在容許的使用者之下,選擇將用來從遠端方連接的使用者,然後按一下新增。 您可以新增任意數目的使用者,但是在此指導教學中您只能新增一個。
附註:此使用者必須作為具有編輯者權限的合作人員新增至專案。 透過為您打算使用的每個遠端方重複此步驟來新增額外的系統。
完成後,請按一下新增系統。
- 當您回到選取遠端訓練系統標籤時,請驗證已選取您的系統,然後按下一步。
- 檢查您的設定,然後按一下建立。
- 當 Federated Learning 實驗開始之後,其狀態為擱置。 當您的實驗已備妥可供當事方連接之後,狀態將變更為設定 – 正在等待遠端系統。 這可能需要幾分鐘的時間。
- 若要下載當事方配置以及可在遠端方執行的 Python Script,請按一下檢視設定資訊。
- 按一下您建立的每個遠端訓練系統旁邊的「下移鍵」,然後按一下 Python Script。 將 Script 儲存至您機器上的目錄。
- 在這裡下載展示區中的 MNIST 手寫資料集。 將其解壓縮至與上一步相同的目錄。
- 在這裡下載資料處理程式
mnist_keras_data_handler.py
,並將其儲存至 Python Script 所在的目錄。 - 現在,同一目錄中存在
mnist_keras_data_handler.py
、mnist-keras-test.pkl
和mnist-keras-train.pkl
這三個遠端訓練 Python Script。 - 透過為遠端訓練系統中定義的使用者填入資料檔案位置、資料處理程式和 API 金鑰來編輯 Python Script。
from ibm_watson_machine_learning import APIClient from ibmfl.party.party import Party wml_credentials = { "url": "https://us-south.ml.cloud.ibm.com", "apikey": "<API KEY>" } wml_client = APIClient(wml_credentials) party_config = { "aggregator": { "ip": "us-south.ml.cloud.ibm.com/ml/v4/trainings/dc7ff18e-04fb-4e33-a005-1fedc156fab6" }, "connection": { "info": { "id": "f0546938-4852-4180-af7b-10b083b43ef7" } }, # 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, # "data": { # "info": { # "npz_file":"./example_data/example_data.npz" # }, # "name": "MnistSklearnDataHandler", # "path": "example.mnist_sklearn_data_handler" # }, "data": { "name": "MnistTFDataHandler", "path": "./mnist_keras_data_handler.py", "info": { "train_file": "./mnist-keras-train.pkl", "test_file": "./mnist-keras-test.pkl" }, }, "local_training": { "name": "FedAvgLocalTrainingHandler", "path": "ibmfl.party.training.fedavg_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
- 執行 Python Script。
- 您可以從使用者介面監視 Federated Learning 實驗的狀態。
Federated Learning Notebook 展示
為協助使用者學習 Federated Learning 的過程,我們還提供了 2 個以 Python 編寫的 Notebook 範例,使用者透過執行它們,在 Federated Learning 中僅使用程式碼便可設定、呼叫及訓練其模型,而不會涉及 Federated Learning 使用者介面。 範例中也會提供 MNIST 資料集和 Tensorflow 2 Keras 模型範本,以示範 Federated Learning 多項功能中的一項。
下載 Federated Learning 專案展示
針對 Cloud Pak for Data,Federated Learning 是一個包含 2 組 MNIST 資料集、1 個模型範本和 2 個 Notebook(1 個將由 Federated Learning 管理者執行,1 個將由當事方執行)的專案。 此專案需要使用者上傳未經訓練的範例模型。 它還要求使用者具有 Federated Learning 存取權。
- 在 這裡下載專案。
- 移至 CPD 起始目錄,然後按一下新建專案 > 從檔案建立專案。
- 上傳下載的 zip 檔。 這時已建立專案以供使用。
附註:此展示僅適用於 IBM Cloud Pak for Data。 IBM Watson Studio Cloud 的展示可在這裡找到。