I-Generative Data Intelligence

Ukufunda ngomshini ngedatha yokuqeqeshwa ehlukaniselwe kusetshenziswa ukufunda okuhlangene ku-Amazon SageMaker | Izinsizakalo Zewebhu ze-Amazon

Usuku:

Ukufunda ngomshini (ML) kuguqula izixazululo kuzo zonke izimboni futhi kuqhuba izinhlobo ezintsha zemininingwane nobuhlakani obusuka kudatha. Ama-algorithms amaningi e-ML aqeqesha phezu kwamasethi edatha amakhulu, enza amaphethini ajwayelekile ewatholayo kudatha kanye nemiphumela eqondile esuka kulawo maphethini njengoba kucutshungulwa amarekhodi amasha angabonakali. Ngokuvamile, uma isethi yedatha noma imodeli inkulu kakhulu ukuthi ingaqeqeshwa ngesikhathi esisodwa, ukuqeqeshwa okusabalalisiwe ivumela izimo eziningi ngaphakathi kweqoqo ukuthi zisetshenziswe futhi kusatshalaliswe idatha noma ukuhlukaniswa kwemodeli kuzo zonke lezi zimo phakathi nenqubo yokuqeqesha. Ukwesekwa kwabomdabu kokuqeqeshwa okusabalalisiwe kunikezwa nge I-Amazon SageMaker SDK, kanye izincwadi zokubhalela isibonelo ezinhlelweni ezidumile.

Nokho, ngezinye izikhathi ngenxa yemithetho yezokuphepha nemfihlo ngaphakathi noma kuzo zonke izinhlangano, idatha idluliselwa kuma-akhawunti amaningi noma Ezifundeni ezihlukene futhi ayikwazi ukufakwa ku-akhawunti eyodwa noma ezifundeni zonkana. Kulokhu, ukufunda okuhlanganisiwe (FL) kufanele kucatshangelwe ukuze kutholwe imodeli ejwayelekile kuyo yonke idatha.

Kulokhu okuthunyelwe, sidingida ukuthi singakusebenzisa kanjani ukufunda okuhlanganisiwe ku-Amazon SageMaker ukusebenzisa i-ML ngedatha yokuqeqeshwa ehlukaniselwe.

Kuyini ukufunda okuhlanganisiwe?

Ukufunda okuhlanganyelwe kuyindlela ye-ML evumela izikhathi zokuqeqesha eziningi ezihlukene ezigijima ngokuhambisana ukuze zidlule imingcele emikhulu, isibonelo ngokwendawo, futhi kuhlanganiswe imiphumela ukuze kwakhiwe imodeli evamile (imodeli yomhlaba wonke) ohlelweni. Ngokucacile, iseshini ngayinye yokuqeqesha isebenzisa idathasethi yayo futhi ithola imodeli yayo yendawo. Amamodeli endawo kumaseshini ahlukene wokuqeqesha azohlanganiswa (isibonelo, imodeli yesisindo aggregation) ibe imodeli yomhlaba wonke phakathi nenqubo yokuqeqeshwa. Le ndlela ihlukile kumasu e-ML amaphakathi lapho amasethi edatha ahlanganiswa ngeseshini eyodwa yokuqeqeshwa.

Ukufunda okuhlanganisiwe kuqhathaniswa nokuqeqeshwa okusabalalisiwe emafini

Lapho lezi zindlela ezimbili zisebenza emafini, ukuqeqeshwa okusabalalisiwe kwenzeka esifundeni esisodwa ku-akhawunti eyodwa, futhi idatha yokuqeqeshwa iqala ngeseshini yokuqeqeshwa emaphakathi noma umsebenzi. Phakathi nenqubo yokuqeqeshwa esabalalisiwe, isethi yedatha ihlukaniswa ibe amasethi amancane futhi, kuye ngesu (ukufaniswa kwedatha noma ukufana kwemodeli), ama-subset athunyelwa ezindaweni ezihlukene zokuqeqesha noma adlule kuma-node kuqoqo lokuqeqesha, okusho ukuthi idatha ngayinye ayidingeki. hlala endaweni eyodwa yeqoqo.

Ngokuphambene, ngokufunda okuhlanganisiwe, ukuqeqeshwa ngokuvamile kwenzeka kuma-akhawunti amaningi ahlukene noma ezifundeni zonkana. I-akhawunti ngayinye noma Isifunda sinezimo zaso zokuqeqesha. Idatha yokuqeqeshwa ihlukaniswa kuwo wonke ama-akhawunti noma Izifunda kusukela ekuqaleni kuze kube sekupheleni, futhi idatha ngayinye ifundwa kuphela iseshini yayo yokuqeqeshwa noma umsebenzi phakathi kwama-akhawunti ahlukene noma Izifunda phakathi nenqubo yokufunda ehlanganisiwe.

Uhlaka lokufunda oludidiyelwe yizimbali

Kunezinhlaka ezimbalwa zemithombo evulekile ezitholakalayo zokufunda ezihlangene, njenge FATE, flower, I-PySyft, I-OpenFL, FedML, I-NVFlare, Futhi I-Tensorflow Federated. Uma sikhetha uhlaka lwe-FL, sivamise ukucabangela ukusekela kwayo isigaba semodeli, uhlaka lwe-ML, kanye nedivayisi noma isistimu yokusebenza. Kudingeka futhi sicabangele ukunwebeka kohlaka lwe-FL kanye nosayizi wephakheji ukuze silusebenzise emafini kahle. Kulokhu okuthunyelwe, sikhetha uhlaka olunwebeka kalula, olwenziwe ngokwezifiso, futhi olungasindi, Imbali, ukwenza ukuqaliswa kwe-FL kusetshenziswa i-SageMaker.

I-Flower iwuhlaka olubanzi lwe-FL oluzihlukanisa nezinhlaka ezikhona ngokunikeza izinsiza ezintsha zokuqhuba ukuhlolwa kwe-FL kwesilinganiso esikhulu, futhi inika amandla izimo zedivayisi ye-FL exubile. I-FL ixazulula izinselele ezihlobene nobumfihlo bedatha kanye nobukhulu ezimeni lapho ukwabelana ngedatha kungenzeki khona.

Izimiso zokuklama nokusebenzisa i-Flower FL

I-Flower FL iwulimi-agnostic kanye ne-ML framework-agnostic by design, inwebeka ngokugcwele, futhi ingahlanganisa ama-algorithms avelayo, amasu okuqeqesha, nezimiso zokuxhumana. I-Flower inomthombo ovulekile ngaphansi kwelayisensi ye-Apache 2.0.

Isakhiwo somqondo sokuqaliswa kwe-FL sichazwe ephepheni Imbali: I-Federated Learning Framework enobungane futhi kugqanyiswe esithombeni esilandelayo.

Kulesi sakhiwo, amaklayenti asemaphethelweni ahlala kumadivayisi onqenqema lwangempela futhi axhumana neseva nge-RPC. Amaklayenti abonakalayo, ngakolunye uhlangothi, asebenzisa izinsiza ezisondele kuqanda uma engasebenzi futhi alayisha kuphela imodeli nedatha enkumbulweni lapho iklayenti likhethelwa ukuqeqeshwa noma ukuhlolwa.

Iseva Yembali yakha isu nezilungiselelo ezizothunyelwa kumakhasimende Embali. Ihlela lezi zichazamazwi zokucushwa (noma config dict ngamafuphi) ekumeleleni kwabo kwe-ProtoBuf, iwahambisa kuklayenti esebenzisa i-gRPC, bese iwacisha iwabuyisele kuzichazamazwi zePython.

Amasu e-Flower FL

Flower ivumela ngokwezifiso inqubo yokufunda ngokusebenzisa isu abstraction. Isu lichaza yonke inqubo yenhlangano ecacisa ukuqaliswa kwepharamitha (kungakhathaliseki ukuthi iseva noma iklayenti eliqalisiwe), inani elincane lamaklayenti elitholakalayo elidingekayo ukuze kuqaliswe ukusebenza, isisindo seminikelo yeklayenti, kanye nemininingwane yokuqeqeshwa nokuhlola.

I-Flower inokusetshenziswa okunabile kwama-algorithms esilinganiso se-FL kanye nesitaki sokuxhumana esiqinile. Ukuze uthole uhlu lwama-algorithms esilinganiso asetshenziswayo kanye namaphepha ocwaningo ahlobene, bheka ithebula elilandelayo, kusukela Imbali: I-Federated Learning Framework enobungane.

Ukufunda okuhlanganyelwe nge-SageMaker: Isixazululo sezakhiwo

Isakhiwo sokufunda esihlanganisiwe sisebenzisa i-SageMaker enohlaka Lwembali sisetshenziswa phezu kokusakaza kwe-gRPC (foundation) e-bi-directional. I-gRPC ichaza izinhlobo zemilayezo eshintshiwe futhi isebenzisa izihlanganisi ukuze ikhiqize ukuqaliswa okusebenzayo kwePython, kodwa futhi ingakhiqiza ukusetshenziswa kwezinye izilimi, njenge-Java noma i-C++.

Amaklayenti e-Flower athola imiyalelo (imilayezo) njengama-byte afanayo eluhlaza ngenethiwekhi. Khona-ke amaklayenti ayalahla futhi aqhube iziyalezo (ukuqeqeshwa ngedatha yendawo). Imiphumela (amapharamitha wemodeli nezisindo) ibe isisetshenziswa futhi idluliselwe emuva kuseva.

Iseva/isakhiwo seklayenti se-Flower FL sichazwa ku-SageMaker kusetshenziswa izenzakalo ze-notebook kuma-akhawunti ahlukene kuSifunda esifanayo njengeseva ye-Flower kanye neklayenti le-Flower. Amasu okuqeqesha nokuhlola achazwa kuseva kanye nemingcele yomhlaba wonke, bese ukucushwa kuhlelwa futhi kuthunyelwe kuklayenti ngokubuka kwe-VPC.

Iklayenti lesibonelo lencwajana yamanothi liqala umsebenzi wokuqeqesha we-SageMaker osebenzisa iskripthi sangokwezifiso ukuze sicuphe ukumiswa kweklayenti Lembali, elenza lingasasebenzi futhi lifunde ukucushwa kweseva, licuphe umsebenzi wokuqeqeshwa, futhi lithumele impendulo yemingcele.

Isinyathelo sokugcina senzeka kuseva lapho ukuhlolwa kwemingcele esanda kuqoqwa kuqalwa lapho kuqedwa inani lokugijima namaklayenti abalulwe kuqhinga leseva. Ukuhlola kwenzeka kudathasethi yokuhlola ekhona kuseva kuphela, futhi kukhiqizwa amamethrikhi okunemba amasha athuthukisiwe.

Umdwebo olandelayo ubonisa ukwakheka kokusetha kwe-FL ku-SageMaker ngephakheji le-Flower.

I-Arch-on-sagemaker

Sebenzisa ukufunda okuhlanganisiwe usebenzisa i-SageMaker

I-SageMaker iyisevisi ye-ML ephethwe ngokugcwele. Nge-SageMaker, ososayensi bedatha nabathuthukisi bangakha futhi baqeqeshe ngokushesha amamodeli e-ML, bese bewathumela endaweni esingethwe esilungele ukukhiqiza.

Kulokhu okuthunyelwe, sibonisa indlela yokusebenzisa inkundla ye-ML ephethwe ukuze kuhlinzekwe ngendawo yokuhlangenwe nakho kwezincwadi zamanothi nokwenza ukufunda okuhlangene kuwo wonke ama-akhawunti e-AWS, kusetshenziswa imisebenzi yokuqeqesha ye-SageMaker. Idatha yokuqeqeshwa eluhlaza ayilokothi ishiye i-akhawunti engumnikazi wedatha futhi izisindo ezitholiwe kuphela ezithunyelwa ekuxhumekeni kontanga.

Sigqamisa izingxenye ezibalulekile ezilandelayo kulokhu okuthunyelwe:

  • Izingosi - I-SageMaker ivumela ukusethwa okusheshayo kokuhlelwa kwenethiwekhi okuzenzakalelayo kuyilapho ikuvumela ukuthi wenze ngokwezifiso inethiwekhi yakho kuye ngezidingo zenhlangano yakho. Sisebenzisa a Ukucushwa kokubuka kwe-VPC ngaphakathi kweSifunda kulesi sibonelo.
  • Izilungiselelo zokufinyelela kwe-Cross-akhawunti - Ukuze uvumele umsebenzisi ku-akhawunti yeseva ukuthi aqale umsebenzi wokuqeqesha oyimodeli ku-akhawunti yeklayenti, thina dlulisa ukufinyelela kuwo wonke ama-akhawunti usebenzisa Ubunikazi be-AWS Nokuphathwa Kokufinyelela (IAM) izindima. Ngale ndlela, umsebenzisi ku-akhawunti yeseva akudingeki ukuthi aphume ku-akhawunti futhi angene ngemvume ku-akhawunti yeklayenti ukuze enze izenzo ku-SageMaker. Lesi silungiselelo singokwezinjongo zokuqalisa kuphela imisebenzi yokuqeqesha i-SageMaker, futhi ayinayo imvume yokufinyelela idatha ye-cross-akhawunti noma ukwabelana.
  • Ukusebenzisa ikhodi yeklayenti lokufunda elihlanganisiwe ku-akhawunti yeklayenti kanye nekhodi yeseva ku-akhawunti yeseva - Sisebenzisa ikhodi yeklayenti lokufunda elihlanganisiwe ku-akhawunti yeklayenti ngokusebenzisa iphakheji le-Flower kanye nokuqeqeshwa okuphethwe yi-SageMaker. Ngaleso sikhathi, sisebenzisa ikhodi yeseva ku-akhawunti yeseva ngokusebenzisa iphasela le-Flower.

Setha ukubuka kwe-VPC

Uxhumano lokubuka lwe-VPC ukuxhumana kwenethiwekhi phakathi kwama-VPC amabili akuvumela ukuthi uhambise ithrafikhi phakathi kwawo usebenzisa amakheli e-IPv4 ayimfihlo noma amakheli e-IPv6. Izimo kunoma iyiphi i-VPC zingaxhumana njengokungathi zingaphakathi kwenethiwekhi efanayo.

Ukuze usethe ukuxhumana kokubuka kwe-VPC, qala udale isicelo sokuhlangana nenye i-VPC. Ungacela ukuxhumana kokubuka kwe-VPC nenye i-VPC ku-akhawunti efanayo, noma esimweni sethu sokusebenzisa, xhuma ne-VPC ku-akhawunti ehlukile ye-AWS. Ukuze wenze isicelo sisebenze, umnikazi we-VPC kufanele amukele isicelo. Ukuze uthole imininingwane eyengeziwe mayelana nokubuka kwe-VPC, bheka ku Dala uxhumano lokubuka lwe-VPC.

Yethula izenzakalo ze-notebook ye-SageMaker kuma-VPC

Isibonelo se-notebook ye-SageMaker sihlinzeka ngohlelo lokusebenza lwe-notebook ye-Jupyter nge-ML ephethwe ngokugcwele I-Amazon Elastic Compute Cloud (Amazon EC2) isibonelo. Izincwadi zokubhalela ze-SageMaker Jupyter zisetshenziselwa ukuhlola idatha ethuthukisiwe, ukudala imisebenzi yokuqeqesha, ukuthumela amamodeli ekusingatheni kwe-SageMaker, nokuhlola noma ukuqinisekisa amamodeli akho.

Isenzakalo se-notebook sinokuningi kokuhlelwa kwenethiwekhi okutholakala kuso. Kulokhu kusetha, sinesibonelo se-notebook esisebenza ngaphakathi kwe-subnet eyimfihlo ye-VPC futhi asinakho ukufinyelela okuqondile kwe-inthanethi.

Lungiselela izilungiselelo zokufinyelela kuma-akhawunti amaningi

Izilungiselelo zokufinyelela kwe-Cross-akhawunti zihlanganisa izinyathelo ezimbili zokudlulisela ukufinyelela kusuka ku-akhawunti yeseva kuya ku-akhawunti yeklayenti ngokusebenzisa izindima ze-IAM:

  1. Dala indima ye-IAM ku-akhawunti yeklayenti.
  2. Nikeza ukufinyelela endimeni ku-akhawunti yeseva.

Ukuze uthole izinyathelo ezinemininingwane zokusetha isimo esifanayo, bheka ku Thumela ukufinyelela kuwo wonke ama-akhawunti e-AWS usebenzisa izindima ze-IAM.

Ku-akhawunti yeklayenti, sakha indima ye-IAM ebizwa ngokuthi FL-kickoff-client-job ngenqubomgomo FL-sagemaker-actions ehambisana nendima. I FL-sagemaker-actions Inqubomgomo inokuqukethwe kwe-JSON kanje:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob", "sagemaker:UpdateTrainingJob" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeNetworkInterfaces" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole" ], "Resource": "arn:aws:iam::<client-account-number>:role/service-role/AmazonSageMaker-ExecutionRole-<xxxxxxxxxxxxxxx>" } ]
}

Sibe sesishintsha inqubomgomo yokuthembana ebudlelwaneni bokwethenjwa be- FL-kickoff-client-job indima:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<server-account-number>:root" }, "Action": "sts:AssumeRole", "Condition": {} } ]
}

Ku-akhawunti yeseva, izimvume zengezwa kumsebenzisi okhona (isibonelo, developer) ukuvumela ukushintshela ku- FL-kickoff-client-job indima ku-akhawunti yeklayenti. Ukwenza lokhu, sakha inqubomgomo esemgqeni ebizwa ngokuthi FL-allow-kickoff-client-job futhi uyinamathisele kumsebenzisi. Okulandelayo okuqukethwe kwenqubomgomo ye-JSON:

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::<client-account-number>:role/FL-kickoff-client-job" }
}

Idathasethi yesampula nokulungiselelwa kwedatha

Kulokhu okuthunyelwe, sisebenzisa a isethi yedatha ekhethiwe ngokutholwa kokukhwabanisa kudatha yabahlinzeki be-Medicare ekhishwe yi- Izikhungo zeMedicare & Medicaid Services (CMS). Idatha ihlukaniswa yaba yidathasethi yokuqeqeshwa kanye nedathasethi yokuhlola. Ngenxa yokuthi iningi ledatha alikona ukukhwabanisa, siyasebenza SMOTE ukulinganisa idathasethi yokuqeqeshwa, futhi uqhubeke nokuhlukanisa idathasethi yokuqeqeshwa ibe izingxenye zokuqeqesha nokuqinisekisa. Kokubili idatha yokuqeqeshwa nokuqinisekisa ilayishwa ku- Isevisi ye-Amazon Simple Storage (I-Amazon S3) ibhakede lokuqeqeshwa okuyimodeli ku-akhawunti yeklayenti, kanye nedathasethi yokuhlola isetshenziswa ku-akhawunti yeseva ngezinjongo zokuhlola kuphela. Imininingwane yekhodi yokulungisa idatha ikulokhu okulandelayo ibhuku lokubhala.

NgeSageMaker izithombe ze-Docker ezakhiwe ngaphambilini zohlaka lokufunda nge-scikit kanye nenqubo yokuqeqesha ephethwe yi-SageMaker, siqeqesha imodeli yokuhlehla yokuhleleka kule dathasethi sisebenzisa ukufunda okuyinhlangano.

Sebenzisa iklayenti lokufunda elihlanganisiwe ku-akhawunti yeklayenti

Esibonelweni se-notebook ye-akhawunti yeklayenti ye-SageMaker, silungiselela a client.py iskripthi kanye a utils.py umbhalo. I client.py ifayela liqukethe ikhodi yeklayenti, kanye ne- utils.py ifayela liqukethe ikhodi yezinye zezinsiza ezizodingeka ekuqeqeshweni kwethu. Sisebenzisa iphakheji le-scikit-learn ukwakha imodeli yokuhlehla kokuhamba.

In client.py, sichaza iklayenti le-Flower. Iklayenti lisuselwa ekilasini fl.client.NumPyClient. Kudingeka ichaze izindlela ezintathu ezilandelayo:

  • get_parameters - Ibuyisela imingcele yemodeli yendawo yamanje. Uhlelo lokusebenza get_model_parameters uzokwenza lokhu.
  • bamba - Ichaza izinyathelo zokuqeqesha imodeli kudatha yokuqeqeshwa ku-akhawunti yeklayenti. Iphinde ithole amapharamitha wamamodeli womhlaba kanye nolunye ulwazi lokucushwa kusuka kuseva. Sibuyekeza amapharamitha emodeli yendawo sisebenzisa amapharamitha atholakele emhlabeni wonke futhi siqhubeke nokuyiqeqesha kudathasethi ku-akhawunti yeklayenti. Le ndlela iphinda ithumele amapharamitha emodeli yasendaweni ngemva kokuqeqeshwa, usayizi wesethi yokuqeqeshwa, nesichazamazwi esikhuluma amanani angafanele emuva kuseva.
  • nokulinganisa - Ihlola imingcele enikeziwe isebenzisa idatha yokuqinisekisa ku-akhawunti yeklayenti. Ibuyisela ukulahlekelwa kanye neminye imininingwane efana nosayizi wesethi yokuqinisekisa nokunemba emuva kuseva.

Okulandelayo amazwibela ekhodi encazelo yeklayenti Lembali:

"""Client interface"""
class FlowerClient(fl.client.NumPyClient): def get_parameters(self, config): return utils.get_model_parameters(model) def fit(self, parameters, config): utils.set_model_params(model, parameters) with warnings.catch_warnings(): warnings.simplefilter("ignore") model.fit(X_train, y_train) return utils.get_model_parameters(model), len(X_train), {} def evaluate(self, parameters, config): utils.set_model_params(model, parameters) loss = log_loss(y_test, model.predict_proba(X_test)) accuracy = model.score(X_test, y_test) return loss, len(X_test), {"accuracy": accuracy}

Bese sisebenzisa iSageMaker imodi yombhalo ukulungisa okusele client.py ifayela. Lokhu kuhlanganisa ukuchaza amapharamitha azodluliselwa ekuqeqeshweni kwe-SageMaker, ukulayisha idatha yokuqeqeshwa nokuqinisekisa, ukuqalisa nokuqeqesha imodeli kuklayenti, ukusetha iklayenti le-Flower ukuze lixhumane neseva, futhi ekugcineni ilondoloze imodeli eqeqeshiwe.

utils.py ihlanganisa imisebenzi embalwa yensiza ebizwa ngokuthi client.py:

  • get_model_parameters – Ibuyisela i-scikit-learn LogisticRegression imodeli nemingcele.
  • setha_imodeli_imingcele – Isetha amapharamitha wemodeli.
  • setha_izimiso_zokuqala - Iqala amapharamitha wemodeli njengoziro. Lokhu kuyadingeka ngoba iseva icela amapharamitha emodeli yokuqala kuklayenti lapho yethulwa. Kodwa-ke, kuhlaka lwe-scikit-lern, LogisticRegression amapharamitha wemodeli awaqaliswa kuze kube model.fit() ibizwa.
  • layisha_idatha - Ilayisha idatha yokuqeqeshwa nokuhlola.
  • londoloza_imodeli - Igcina imodeli njenge .joblib Ifayela.

Ngoba i-Flower ayiyona iphakheji efakwe ku- I-SageMaker isitsha se-Docker esakhelwe ngaphambili nge-scikit, sibala flwr==1.3.0 kwi requirements.txt Ifayela.

Sibeka wonke amafayela amathathu (client.py, utils.py, Futhi requirements.txt) ngaphansi kwefolda bese uyifake ku-zip. Ifayela le-.tar.gz (eliqanjwe igama source.tar.gz kulokhu okuthunyelwe) bese ilayishwa ebhakedeni le-S3 ku-akhawunti yeklayenti.

Sebenzisa iseva yokufunda ehlanganisiwe ku-akhawunti yeseva

Ku-akhawunti yeseva, silungiselela ikhodi kubhukwana leJupyter. Lokhu kuhlanganisa izingxenye ezimbili: iseva kuqala ithatha indima yokuqala umsebenzi wokuqeqesha ku-akhawunti yeklayenti, bese iseva ihlanganyela imodeli isebenzisa i-Flower.

Thatha indima ukuze uqhube umsebenzi wokuqeqesha ku-akhawunti yeklayenti

Sisebenzisa i I-Boto3 Python SDK ukusetha i Isevisi ye-AWS Security Token (AWS STS) iklayenti lokuthatha FL-kickoff-client-job indima futhi usethe iklayenti le-SageMaker ukuze liqhube umsebenzi wokuqeqesha ku-akhawunti yeklayenti ngokusebenzisa inqubo yokuqeqesha ephethwe yi-SageMaker:

sts_client = boto3.client('sts')
assumed_role_object = sts_client.assume_role( RoleArn = "arn:aws:iam::<client-account-number>:role/FL-kickoff-client-job", RoleSessionName = "AssumeRoleSession1"
) credentials = assumed_role_object['Credentials'] sagemaker_client = boto3.client( 'sagemaker', aws_access_key_id = credentials['AccessKeyId'], aws_secret_access_key = credentials['SecretAccessKey'], aws_session_token = credentials['SessionToken'],
)

Sisebenzisa indima ecatshangwayo, sakha umsebenzi wokuqeqesha we-SageMaker ku-akhawunti yeklayenti. Umsebenzi wokuqeqesha usebenzisa uhlaka lwe-scikit-learn ye-SageMaker eyakhelwe ngaphakathi. Qaphela ukuthi wonke amabhakede e-S3 kanye nendima ye-SageMaker IAM kumazwibela ekhodi alandelayo ahlobene ne-akhawunti yeklayenti:

sagemaker_client.create_training_job( TrainingJobName = training_job_name, HyperParameters = { "penalty": "l2", "max-iter": "10", "server-address":"<server-ip-address>:8080", "sagemaker_program": "client.py", "sagemaker_submit_directory": "s3://<client-account-s3-code-bucket>/client_code/source.tar.gz", }, AlgorithmSpecification = { "TrainingImage": training_image, "TrainingInputMode": "File", }, RoleArn = "arn:aws:iam::<client-account-number>:role/service-role/AmazonSageMaker-ExecutionRole-<xxxxxxxxxxxxxxx>", InputDataConfig=[ { "ChannelName": "train", "DataSource": { "S3DataSource": { "S3DataType": "S3Prefix", "S3Uri": "s3://<client-account-s3-data-bucket>/data_prep/", "S3DataDistributionType": "FullyReplicated", } }, }, ], OutputDataConfig = { "S3OutputPath": "s3://<client-account-s3-bucket-for-model-artifact>/client_artifact/" }, ResourceConfig = { "InstanceType": "ml.m5.xlarge", "InstanceCount": 1, "VolumeSizeInGB": 10, }, VpcConfig={ 'SecurityGroupIds': [ "<client-account-notebook-instance-security-group>", ], 'Subnets': [ "<client-account-notebook-instance-sunbet>", ] }, StoppingCondition = { "MaxRuntimeInSeconds": 86400 },
)

Hlanganisa amamodeli endawo ube yimodeli yomhlaba wonke usebenzisa i-Flower

Silungisa ikhodi ukuze sihlanganise imodeli kuseva. Lokhu kubandakanya ukuchaza isu lenhlangano kanye nemingcele yayo yokuqalisa. Sisebenzisa izinhlelo zokusebenza ku- utils.py iskripthi esichazwe ekuqaleni ukuze siqalise futhi sisethe amapharamitha emodeli. I-Flower ikuvumela ukuthi uchaze eyakho imisebenzi yokuphinda ushayele ukuze wenze ngendlela oyifisayo isu elikhona. Sisebenzisa i- I-FedAvg isu elinama-callbacks wangokwezifiso ukuze lihlolwe futhi lilingane nokucushwa. Bona ikhodi elandelayo:

 """Initialize the model and federation strategy, then start the server""" model = LogisticRegression() utils.set_initial_params(model) strategy = fl.server.strategy.FedAvg( min_available_clients = 1, # Minimum number of clients that need to be connected to the server before a training round can start min_fit_clients = 1, # Minimum number of clients to be sampled for the next round min_evaluate_clients = 1, evaluate_fn = get_evaluate_fn(model, X_test, y_test), on_fit_config_fn = fit_round, ) fl.server.start_server( server_address = args.server_address, strategy = strategy, config = fl.server.ServerConfig(num_rounds=3) # run for 3 rounds ) utils.save_model(args.model_dir, model)

Imisebenzi emibili elandelayo ibalulwe kumazwibela ekhodi eyanduleleyo:

  • lingana_nxazonke - Isetshenziselwa ukuthumela inombolo ejikelezayo kuklayenti. Sidlulisa le callback njenge on_fit_config_fn ipharamitha yesu. Senza lokhu nje ukukhombisa ukusetshenziswa kwe on_fit_config_fn ipharamitha.
  • get_evaluate_fn - Isetshenziselwa ukuhlola imodeli kuseva.

Ngezinjongo zedemo, sisebenzisa idathasethi yokuhlola esiyibekela eceleni ekulungiseni idatha ukuze sihlole imodeli ehlanganiswe ku-akhawunti yeklayenti futhi sidlulisele umphumela eklayentini. Nokho, kubalulekile ukuqaphela ukuthi cishe kuzo zonke izimo zokusetshenziswa kwangempela, idatha esetshenziswe ku-akhawunti yeseva ayihlukaniswa kudathasethi esetshenziswa ku-akhawunti yeklayenti.

Ngemva kokuba inqubo yokufunda edidiyelwe isiqediwe, a model.tar.gz ifayela lilondolozwa yi-SageMaker njengemodeli ye-artifact kubhakede le-S3 ku-akhawunti yeklayenti. Okwamanje, a model.joblib ifayela ligcinwa ku-SageMaker notebook ku-akhawunti yeseva. Okokugcina, sisebenzisa idathasethi yokuhlola ukuhlola imodeli yokugcina (model.joblib) kuseva. Ukuhlola okukhiphayo kwemodeli yokugcina imi kanje:

umphumela we-fl

Hlanza

Ngemva kokuthi usuqedile, hlanza izinsiza kukho kokubili i-akhawunti yeseva ne-akhawunti yeklayenti ukuze ugweme izindleko ezengeziwe:

  1. Misa izimo ze-notebook ye-SageMaker.
  2. Susa ukuxhumana kokubuka kwe-VPC nama-VPC ahambisanayo.
  3. Thulula futhi ususe ibhakede le-S3 olidalele ukugcinwa kwedatha.

Isiphetho

Kulokhu okuthunyelwe, sihambe ngendlela yokusebenzisa ukufunda okuhlangene ku-SageMaker ngokusebenzisa iphakheji le-Flower. Sibonise indlela yokumisa ukubuka kwe-VPC, ukusetha ukufinyelela kwe-akhawunti ehlukile, nokusebenzisa iklayenti le-FL neseva. Lokhu okuthunyelwe kuwusizo kulabo abadinga ukuqeqesha amamodeli e-ML ku-SageMaker kusetshenziswa idatha ehlukanisiwe kuwo wonke ama-akhawunti anokwabelana ngedatha okunomkhawulo. Ngenxa yokuthi i-FL kulokhu okuthunyelwe isetshenziswa kusetshenziswa i-SageMaker, kubalulekile ukuqaphela ukuthi izici eziningi ku-SageMaker zingalethwa enqubeni.

Ukusebenzisa ukufunda okuhlanganyelwe ku-SageMaker kungathatha ithuba lazo zonke izici ezithuthukile ezihlinzekwa yi-SageMaker ngomjikelezo wempilo we-ML. Kukhona ezinye izindlela zokuzuza noma zokusebenzisa ukufunda okuhlanganisiwe ku-AWS Cloud, njengokusebenzisa izimo ze-EC2 noma onqenqemeni. Ukuze uthole imininingwane ngalezi ezinye izindlela, bheka ku Ukufunda Okuhlanganisiwe ku-AWS nge-FedML futhi Ukusebenzisa i-Federated Learning ye-ML e-Edge.


Mayelana nababhali

Sherry Ding ungumqambi omkhulu wezixazululo ze-AI/ML e-Amazon Web Services (AWS). Unolwazi olunzulu lokufunda ngomshini oneziqu ze-PhD kwisayensi yekhompyutha. Ikakhulukazi usebenza namakhasimende omkhakha womphakathi ezinseleleni ezihlukahlukene zebhizinisi ezihlobene ne-AI/ML, ebasiza ukuba basheshise uhambo lwabo lokufunda ngomshini ku-AWS Cloud. Lapho engabasizi amakhasimende, ujabulela imisebenzi yangaphandle.

Lorea Arrizabalaga uyi-Solutions Architect eqondaniswe ne-UK Public Sector, lapho esiza amakhasimende akhe izixazululo ze-ML nge-Amazon SageMaker. Uphinde abe yingxenye yeTechnical Field Community ezinikele ekusheshiseni ihadiwe futhi usiza ekuhloleni nasekulinganiseni imithwalo yemisebenzi ye-AWS Inferentia kanye ne-AWS Trainium.

Ben Snively uyi-AWS Public Sector Senior Specialist Solutions Architect. Usebenzisana nohulumeni, amakhasimende angenzi nzuzo, kanye namakhasimende ezemfundo kudatha enkulu, amaphrojekthi wokuhlaziya, kanye ne-AI/ML, awasize akhe izixazululo esebenzisa i-AWS.

indawo_img

Latest Intelligence

indawo_img

Xoxa nathi

Sawubona lapho! Ngingakusiza kanjani?