Birleşik Öğrenim Tensorflow öğretici programı
Bu eğitmen, kullanıcıların verilerini paylaşmasına gerek kalmadan, farklı kullanıcılardan gelen verilerle bir makine öğrenimi modeli eğitimi amacıyla Birleşik Öğrenim (Federated Learning) kullanımını gösterir. Adımlar, kullanıcı arabirimi ve Tensorflow çerçevesi ile düşük kodlu bir ortamda gerçekleştirilir.
Bu, kullanıcı arabirimi odaklı bir Birleşik Öğrenme deneyini çalıştırmak için adım adım öğretici bir programdır. API odaklı bir yaklaşıma ilişkin kod örneğini görmek için Federated Learning Tensorflow samplesbaşlıklı konuya bakın.
Bu öğretici programda admin , Birleşik Öğrenme deneyini başlatan kullanıcıyı ve taraf , deneme yönetici tarafından başlatıldıktan sonra model sonuçlarını gönderen bir ya da daha fazla kullanıcıyı ifade eder. Eğitmen yönetici ve birden çok taraf tarafından gerçekleştirilebilse de, tek bir kullanıcı hem yönetici hem de taraf olarak tam bir çalıştırma işlemini tamamlayabilir. Daha basit bir gösterim amacıyla, aşağıdaki öğretici programda tek bir kişi tarafından yalnızca bir veri kümesi gönderilir. Yönetici ve taraf hakkında daha fazla bilgi için bkz. Terminoloji.
Watson Studioile Birleşik Öğrenme deneyinin nasıl oluşturulacağına ilişkin bu kısa videoyu izleyin.
Bu video, bu belgedeki kavramları ve görevleri öğrenmek için görsel bir yöntem sağlar.
Bu öğretici programda aşağıdakileri öğreneceksiniz:
- Adım 1: Federated Learning 'i yönetici olarak başlatın
- Adım 2: Modeli taraf olarak eğitin
- Adım 3: Modeli çevrimiçi olarak kaydedin ve devreye alın
Adım 1: Yönetici olarak Birleştirilmiş Öğrenmeyi Başlat
Bu öğretici programda, Tensorflow çerçevesi ve MNIST veri kümesi ile bir Birleşik Öğrenme denemesi eğitiyorsunuz.
Başlamadan önce
IBM Cloud' da oturum açın. Hesabınız yoksa, herhangi bir e-postayla bir hesap oluşturun.
Ortamınızda ayarlı değilse bir Watson Machine Learning hizmet eşgörünümü oluşturun .
watsonxuygulamasında oturum açın.
Var olan bir projeyi kullanın ya da yeni bir proje yaratın. En azından yönetici izniniz olmalıdır.
Watson Machine Learning hizmetini projenizle ilişkilendirin.
- Projenizde Yönet > Hizmet ve Bütünleştirmeleröğelerini tıklatın.
- Hizmeti ilişkilendir' i tıklatın.
- Listeden Watson Machine Learning eşgörünümünüzü seçin ve İlişkilendir'i tıklatın ya da eşgörünüm oluşturacak bir hizmetiniz yoksa Yeni hizmet ' i tıklatın.

Toplayıcıyı başlat
Birleşik öğrenim deneyi varlığını yarat:
Projenizdeki Varlıklar sekmesini tıklatın.
Yeni görev > Dağıtılmış verilerde modelleri eğitmeseçeneklerini tıklatın.
Denemeniz için bir Ad ve isteğe bağlı olarak bir açıklama yazın.
Bir makine öğrenimi eşgörünümü seçinaltında ilişkili Watson Machine Learning eşgörünümünü doğrulayın. İlişkili bir Watson Machine Learning eşgörünümü görmüyorsanız, aşağıdaki adımları izleyin:
Bir Machine Learning Hizmet Eşgörünümünü İlişkilendirseçeneğini tıklatın.
Var olan bir eşgörünümü seçin ve İlişkilendir' i tıklatın ya da Yeni hizmetyaratın.
İlişkili hizmeti görmek için Yeniden Yükle düğmesini tıklatın.

İleri'yi tıklatın.
Deneyi yapılandırın.
Configure (Yapılandır) sayfasında bir Hardware specification(Donanım belirtimi) seçin.
Makine öğrenimi çerçevesi açılan listesi altında Tensorflow 2(Tensorflow) seçeneğini belirleyin.
Bir Model tipiseçin.
Eğitilmemiş modelikarşıdan yükleyin.
Birleşik Öğrenme deneyinde, Model belirtimialtında Seç ' i tıklatın.
tf_mnist_model.zipadlı karşıdan yüklenen dosyayı Karşıya Yükle dosyasına box.1sürükleyin. Yazılım Belirtimi açılan listesi içinruntime-22.2-py3.10seçeneğini belirleyin.Modelinize bir ad verin ve Ekledüğmesini tıklatın.

Fusion yöntemiiçin Weighted average (Ağırlıklı ortalama) seçeneğini tıklatın ve Next(İleri) düğmesini tıklatın.

Hiperparametreleri tanımlayın.
Varsayılan hiperparametreleri kabul edin ya da gerektiği gibi ayarlayın.
İşiniz bittiğinde Next(İleri) düğmesini tıklatın.
Uzak eğitim sistemlerini seçin.
- Add new systems(Yeni sistem ekle) seçeneğini tıklatın.

Uzaktan Eğitim Sisteminize bir ad verin.
İzin verilen kimlikler'in altında, tarafınız olan kullanıcıyı seçin ve Ekle' yi tıklatın. Bu öğretici programda, gösterici amaçlarla kukla bir kullanıcı ya da kendiniz ekleyebilirsiniz.
Bu kullanıcı, projenize Düzenleyici ya da daha yüksek izinlerle işbirliği yapan olarak eklenmelidir. Kullanmak istediğiniz her uzak taraf için bu adımı yineleyerek ek sistemler ekleyin.İşiniz bittiğinde Sistem ekledüğmesini tıklatın.

Select remote training systems (Uzak eğitim sistemlerini seç) sayfasına dönün, sisteminizin seçildiğini doğrulayın ve Next(İleri) düğmesini tıklatın.
Ayarlarınızı gözden geçirin ve Oluştur' u tıklatın.
Durumu izleyin. Birleşik Öğrenme denemeniz başladığında Bekliyor durumundadır. Denemeniz tarafların bağlanması için hazır olduğunda, durum Kurulum-Uzak sistemler bekleniyorolarak değişir. Bu işlem birkaç dakika sürebilir.
Taraf yapılandırmasını ve uzak taraf üzerinde çalıştırılabilir taraf bağlayıcısı komut dosyasını karşıdan yüklemek için Kuruluş bilgilerini görüntüle seçeneğini tıklatın.
Oluşturduğunuz uzak eğitim sistemlerinin her birinin yanındaki karşıdan yükleme simgesini ve ardından Taraf bağlayıcısı komut dosyası' nı tıklatın. Bu, taraf bağlayıcısı komut dosyasını verir. Komut dosyasını makinenizdeki bir dizine kaydedin.

Adım 2: Parti olarak model eğitimi
Modeli taraf olarak eğitmek için aşağıdaki adımları izleyin:
Yönetici ile aynı Python sürümünü kullandığınızdan emin olun. Farklı bir Python sürümünün kullanılması uyumluluk sorunlarına neden olabilir. Farklı çerçevelerle uyumlu Python sürümlerini görmek için bkz. Çerçeveler ve Python sürüm uyumluluğu.
Yeni bir yerel dizin oluşturun ve taraf bağlayıcısı komut dosyanızı bu dizine yerleştirin.
Veri işleyiciyi sağ tıklatarak mnist_keras_data_handler.py karşıdan yükleyin ve Bağlantıyı farklı kaydetseçeneğini tıklatın. Bunu taraf bağlayıcısı komut dosyasıyla aynı dizine kaydedin.
Örneklerimizden MNIST el yazısı veri kümesini karşıdan yükleyin. Taraf bağlayıcısı komut dosyası, veri işleyicisi ve diğer dosyalarınızla aynı dizinde,
unzip MNIST-pkl.zipunzip komutunu çalıştırarak sıkıştırılmış dosyayı açın.Watson Machine Learningürününü kurun.
- Linuxkullanıyorsanız,
pip install 'ibm-watson-machine-learning[fl-rt22.2-py3.10]'komutunu çalıştırın. - Mac OS ' u M-series CPU ve Conda ile kullanıyorsanız, kuruluş komut dosyasını karşıdan yükleyin ve ardından
./install_fl_rt22.2_macos.sh <name for new conda environment>komutunu çalıştırın.
Artık aynı dizinde taraf bağlayıcısı komut dosyasımnist_keras_data_handler.py,mnist-keras-test.pklvemnist-keras-train.pkl, veri işleyicisine sahipsiniz.
- Linuxkullanıyorsanız,
Taraf bağlayıcısı komut dosyanız aşağıdakilere benzer. Uzak eğitim sisteminde tanımlanan kullanıcı için veri dosyası konumlarını, veri işleyicisini ve API anahtarını doldurarak bunu düzenleyin. API anahtarınızı almak için IBM Cloud hesabınızdaki Manage > Access (IAM) > API keys (Yönet > Erişim (IAM) > API anahtarları) konusuna gidin. Anahtarınız yoksa, API anahtarı oluştur'u tıklatın, alanları doldurun ve Oluştur' u tıklatın.
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)Taraf bağlayıcısı komut dosyasını çalıştırın:
python3 rts_<RTS Name>_<RTS ID>.py.
Kullanıcı arabiriminden Birleşik Öğrenim denemenizin durumunu izleyebilirsiniz.
Adım 3: Modeli çevrimiçi olarak kaydedin ve devreye alın
Bu bölümde, eğitmiş olduğunuz modeli kaydetmeyi ve devreye almayı öğreneceksiniz.
Modelinizi kaydedin.
- Tamamlanan Federated Learning denemenizde Modeli projeye kaydet' i tıklatın.
- Modelinize bir ad verin ve Kaydet' i tıklatın.
- Proje evine git.
Bir konuşlandırma alanınız yoksa, bir konuşlandırma alanı yaratın.
- Gezinme menüsünden
Devreye Almalar' ı tıklatın.
- Yeni konuşlandırma alanı' nı tıklatın.
- Alanları doldurun ve Oluştur' u tıklatın.
- Gezinme menüsünden
Modeli bir alana yükselt.
- Projenize dönün ve Varlıklar sekmesini tıklatın.
- Modeller bölümünde, modelin ayrıntılar sayfasını görüntülemek için modeli tıklatın.
- Alana yükselt' i tıklatın.
- Eğitilmiş modeliniz için bir konuşlandırma alanı seçin.
- Alandaki modele yükseldikten sonra git seçeneğini belirleyin.
- Yükseltdüğmesini tıklatın.
Model konuşlandırma alanının içinde görüntülendiğinde Yeni konuşlandırmaöğesini tıklatın.
- Konuşlandırma tipiolarak Online (Çevrimiçi) seçeneğini belirleyin.
- Konuşlandırma için bir ad belirtin.
- Oluştur'u tıklatın.
Modelinizin devreye alma durumunu izlemek için Devreye Almalar sekmesini tıklatın.
Sonraki adımlar
Kendi uyarlanmış birleşik denemenizi yaratmaya hazır mısınız? Birleşik Öğrenim denemenizi oluşturmabaşlıklı konudaki üst düzey adımlara bakın.
Üst konu: Birleşik Öğrenim eğitmeni ve örnekleri