Zephyrnet Logosu

FedML, Amazon EKS ve Amazon SageMaker kullanarak AWS'de birleşik öğrenim | Amazon Web Hizmetleri

Tarih:

Bu yazı FedML'den Chaoyang He, Al Nevarez ve Salman Avestimehr ile birlikte yazılmıştır.

Birçok kuruluş, otomasyon ve büyük dağıtılmış veri kümelerinin kullanımı yoluyla iş karar alma süreçlerini geliştirmek için makine öğrenimini (ML) uyguluyor. Verilere erişimin artmasıyla birlikte ML, benzersiz iş öngörüleri ve fırsatları sağlama potansiyeline sahiptir. Ancak ham, sterilize edilmemiş hassas bilgilerin farklı konumlarda paylaşılması, özellikle sağlık gibi düzenlemeye tabi sektörlerde önemli güvenlik ve gizlilik riskleri oluşturur.

Bu sorunu çözmek için, birleşik öğrenme (FL), doğruluk ve aslına uygunluğu korurken veri gizliliği sunan, merkezi olmayan ve işbirliğine dayalı bir makine öğrenimi eğitim tekniğidir. Geleneksel makine öğrenimi eğitiminin aksine FL eğitimi, bağımsız bir güvenli oturum kullanılarak yalıtılmış bir istemci konumunda gerçekleşir. İstemci, modeli eğitmek için kullanılan gerçek verileri değil, yalnızca çıktı modeli parametrelerini eğitim koordinatörü veya toplama sunucusu olarak bilinen merkezi bir sunucuyla paylaşır. Bu yaklaşım, birçok veri gizliliği endişesini hafifletirken, model eğitiminde etkili işbirliğine olanak tanır.

FL, daha iyi veri gizliliği ve güvenliği sağlamaya yönelik bir adım olsa da garantili bir çözüm değildir. Erişim kontrolü ve şifrelemeden yoksun, güvenli olmayan ağlar yine de hassas bilgilerin saldırganların eline geçmesine neden olabilir. Ek olarak, yerel olarak eğitilmiş bilgiler, bir çıkarım saldırısı yoluyla yeniden yapılandırılırsa özel verileri açığa çıkarabilir. Bu riskleri azaltmak için FL modeli, bilgileri eğitim koordinatörüyle paylaşmadan önce kişiselleştirilmiş eğitim algoritmaları ve etkili maskeleme ve parametreleştirme kullanır. Yerel ve merkezi konumlardaki güçlü ağ kontrolleri, çıkarım ve sızma risklerini daha da azaltabilir.

Bu yazıda, kullanarak bir FL yaklaşımını paylaşıyoruz. FedML, Amazon Elastik Kubernetes Hizmeti (Amazon EKS) ve Amazon Adaçayı Yapıcı Veri gizliliği ve güvenlik endişelerini giderirken hasta sonuçlarını iyileştirmek.

Sağlık hizmetlerinde birleşik öğrenmeye duyulan ihtiyaç

Sağlık hizmetleri, hasta bakımıyla ilgili doğru tahminler ve değerlendirmeler yapmak için büyük ölçüde dağıtılmış veri kaynaklarına dayanır. Gizliliği korumak için mevcut veri kaynaklarının sınırlandırılması, sonuçların doğruluğunu ve sonuçta hasta bakımının kalitesini olumsuz yönde etkiler. Bu nedenle ML, hasta sonuçlarından ödün vermeden dağıtılmış varlıklar arasında gizlilik ve güvenlik sağlaması gereken AWS müşterileri için zorluklar yaratır.

Sağlık kuruluşları, FL çözümlerini uygularken Amerika Birleşik Devletleri'ndeki Sağlık Sigortası Taşınabilirlik ve Sorumluluk Yasası (HIPAA) gibi katı uyumluluk düzenlemelerine uymak zorundadır. Sağlam şifreleme, erişim kontrolleri, denetim mekanizmaları ve güvenli iletişim protokolleri gerektiren sağlık hizmetlerinde veri gizliliğinin, güvenliğinin ve uyumluluğunun sağlanması daha da kritik hale geliyor. Ek olarak, sağlık hizmetleri veri kümeleri sıklıkla karmaşık ve heterojen veri türleri içerir, bu da FL ortamlarında veri standardizasyonunu ve birlikte çalışabilirliği zorlaştırır.

Kullanım örneğine genel bakış

Bu yazıda özetlenen kullanım durumu, farklı kuruluşlardaki kalp hastalığı verileridir; bu veriler üzerinde bir ML modeli, hastadaki kalp hastalığını tahmin etmek için sınıflandırma algoritmalarını çalıştıracaktır. Bu veriler kuruluşlar genelinde olduğundan, bulguları derlemek için birleşik öğrenmeyi kullanırız.

The Kalp Hastalığı veri kümesi Kaliforniya Üniversitesi'nden Irvine'in Makine Öğrenimi Havuzu, kardiyovasküler araştırmalar ve tahmine dayalı modelleme için yaygın olarak kullanılan bir veri kümesidir. Her biri bir hastayı temsil eden 303 örnekten oluşur ve kalp hastalığının varlığı veya yokluğunun yanı sıra klinik ve demografik özelliklerin bir kombinasyonunu içerir.

Bu çok değişkenli veri kümesi, hasta bilgilerinde 76 özniteliğe sahiptir; bunlardan 14 öznitelik, verilen özniteliklere dayalı olarak kalp hastalığının varlığını tahmin etmek için ML algoritmalarının geliştirilmesi ve değerlendirilmesinde en yaygın olarak kullanılır.

FedML çerçevesi

Çok çeşitli FL çerçeveleri var, ancak biz FL çerçevelerini kullanmaya karar verdik. FedML çerçevesi bu kullanım durumu için uygundur çünkü açık kaynaktır ve çeşitli FL paradigmalarını destekler. FedML, FL için popüler bir açık kaynak kitaplığı, MLOps platformu ve uygulama ekosistemi sağlar. Bunlar FL çözümlerinin geliştirilmesini ve dağıtımını kolaylaştırır. Araştırmacıların ve uygulayıcıların dağıtılmış bir ortamda FL algoritmalarını uygulamalarına ve denemelerine olanak tanıyan kapsamlı bir araç, kitaplık ve algoritma paketi sağlar. FedML, kullanıcı dostu bir arayüz ve özelleştirilebilir bileşenler sunarak FL'de veri gizliliği, iletişim ve model toplamanın zorluklarını giderir. İşbirliği ve bilgi paylaşımına odaklanan FedML, FL'nin benimsenmesini hızlandırmayı ve gelişen bu alanda yeniliği teşvik etmeyi amaçlıyor. FedML çerçevesi, büyük dil modelleri (LLM'ler) için yakın zamanda eklenen destek de dahil olmak üzere modelden bağımsızdır. Daha fazla bilgi için bkz. FedLLM'nin Yayınlanması: FedML Platformunu Kullanarak Özel Veriler Üzerinde Kendi Büyük Dil Modellerinizi Oluşturun.

FedML Ahtapot

Sistem hiyerarşisi ve heterojenlik, farklı veri silolarının CPU ve GPU'larla farklı altyapıya sahip olabileceği gerçek hayattaki FL kullanım durumlarında önemli bir zorluktur. Bu tür senaryolarda kullanabilirsiniz FedML Ahtapot.

FedML Octopus, çapraz organizasyon ve hesaplar arası eğitim için silolar arası FL'nin endüstriyel düzeydeki platformudur. FedML MLOps ile birleştiğinde, geliştiricilerin veya kuruluşların herhangi bir yerden, herhangi bir ölçekte, güvenli bir şekilde açık işbirliği yürütmesine olanak tanır. FedML Octopus, her veri silosu içinde dağıtılmış bir eğitim paradigması çalıştırır ve eşzamanlı veya eşzamansız eğitimler kullanır.

FedML MLOps

FedML MLOps, daha sonra FedML çerçeveleri kullanılarak herhangi bir yere dağıtılabilecek yerel kod geliştirme olanağı sağlar. Eğitime başlamadan önce bir FedML hesabı oluşturmalı, ayrıca sunucu ve istemci paketlerini FedML Octopus'ta oluşturup yüklemelisiniz. Daha fazla ayrıntı için bkz. adımlar ve FedML Octopus ile tanışın: basitleştirilmiş MLOps ile birleşik öğrenmeyi üretime ölçeklendirme.

Çözüme genel bakış

Deney takibi için FedML'i SageMaker ile entegre birden fazla EKS kümesine dağıtıyoruz. Kullanırız Terraform için Amazon EKS Planları gerekli altyapıyı dağıtmak. EKS Blueprints, iş yüklerini dağıtmak ve çalıştırmak için gereken operasyonel yazılımla tamamen ön yüklemeli eksiksiz EKS kümeleri oluşturmaya yardımcı olur. EKS Blueprints ile kontrol düzlemi, çalışan düğümler ve Kubernetes eklentileri gibi EKS ortamının istenen durumuna yönelik yapılandırma, kod olarak altyapı (IaC) planı olarak tanımlanır. Bir plan yapılandırıldıktan sonra, sürekli dağıtım otomasyonu kullanılarak birden fazla AWS hesabında ve Bölgede tutarlı ortamlar oluşturmak için kullanılabilir.

Bu gönderide paylaşılan içerik gerçek hayattaki durumları ve deneyimleri yansıtmaktadır ancak bu durumların farklı konumlardaki kullanımının farklılık gösterebileceğini unutmamak önemlidir. Ayrı VPC'lerle tek bir AWS hesabı kullanıyor olsak da bireysel koşulların ve yapılandırmaların farklılık gösterebileceğini anlamak çok önemlidir. Bu nedenle sağlanan bilgiler genel bir kılavuz olarak kullanılmalı ve özel gereksinimlere ve yerel koşullara göre uyarlanması gerekebilir.

Aşağıdaki şema çözüm mimarimizi göstermektedir.

Her eğitim çalıştırması için FedML MLOps tarafından sağlanan izlemeye ek olarak şunları kullanırız: Amazon SageMaker Deneyleri Her müşteri modelinin ve merkezi (toplayıcı) modelin performansını izlemek için.

SageMaker Experiments, SageMaker'ın makine öğrenimi denemelerinizi oluşturmanıza, yönetmenize, analiz etmenize ve karşılaştırmanıza olanak tanıyan bir yeteneğidir. Araştırmacılar deney ayrıntılarını, parametrelerini ve sonuçlarını kaydederek çalışmalarını doğru bir şekilde yeniden üretebilir ve doğrulayabilir. Farklı yaklaşımların etkili bir şekilde karşılaştırılmasına ve analiz edilmesine olanak tanıyarak bilinçli karar almaya yol açar. Ek olarak, deneylerin izlenmesi, modellerin ilerleyişi hakkında bilgi sağlayarak ve araştırmacıların önceki yinelemelerden öğrenmesini sağlayarak, sonuçta daha etkili çözümlerin geliştirilmesini hızlandırarak yinelemeli iyileştirmeyi kolaylaştırır.

Her çalıştırma için aşağıdakileri SageMaker Experiments'a gönderiyoruz:

  • Model değerlendirme metrikleri – Eğitim kaybı ve Eğri Altındaki Alan (AUC)
  • Hiperparametreler – Dönem, öğrenme oranı, parti büyüklüğü, optimize edici ve ağırlık azalması

Önkoşullar

Bu gönderiyi takip etmek için aşağıdaki ön koşullara sahip olmalısınız:

Çözümü dağıtın

Başlamak için örnek kodu barındıran depoyu yerel olarak klonlayın:

git clone git@ssh.gitlab.aws.dev:west-ml-sa/fl_fedml.ai.git

Daha sonra aşağıdaki komutları kullanarak kullanım senaryosu altyapısını dağıtın:

terraform init
terraform apply

Terraform şablonunun tam olarak dağıtılması 20-30 dakika sürebilir. Dağıtıldıktan sonra FL uygulamasını çalıştırmak için sonraki bölümlerdeki adımları izleyin.

MLOps dağıtım paketi oluşturma

FedML belgelerinin bir parçası olarak, eğitime başlamak için MLOps platformunun sunucuya ve istemcilere dağıtacağı istemci ve sunucu paketlerini oluşturmamız gerekiyor.

Bu paketleri oluşturmak için kök dizinde bulunan aşağıdaki betiği çalıştırın:

. ./build_mlops_pkg.sh

Bu, ilgili paketleri projenin kök dizinindeki aşağıdaki dizinde oluşturacaktır:

mlops/dist-packages

Paketleri FedML MLOps platformuna yükleyin

Paketleri yüklemek için aşağıdaki adımları tamamlayın:

  1. FedML kullanıcı arayüzünde şunu seçin: Uygulamalarım Gezinti bölmesinde.
  2. Klinik Yeni uygulama.
  3. İstemci ve sunucu paketlerini iş istasyonunuzdan yükleyin.
  4. Ayrıca hiperparametreleri ayarlayabilir veya yenilerini oluşturabilirsiniz.

Birleşik eğitimi tetikleyin

Birleşik eğitimi çalıştırmak için aşağıdaki adımları tamamlayın:

  1. FedML kullanıcı arayüzünde şunu seçin: Proje Listesi Gezinti bölmesinde.
  2. Klinik Yeni bir proje oluşturun.
  3. Bir grup adı ve proje adı girin, ardından OK.
  4. Yeni oluşturulan projeyi seçin ve Yeni çalıştırma oluştur Bir eğitim çalışmasını tetiklemek için.
  5. Bu eğitim çalıştırması için uç istemci cihazlarını ve merkezi toplayıcı sunucusunu seçin.
  6. Önceki adımlarda oluşturduğunuz uygulamayı seçin.
  7. Hiperparametrelerden herhangi birini güncelleyin veya varsayılan ayarları kullanın.
  8. Klinik Başlama eğitime başlamak için.
  9. Seçin Eğitim Durumu sekmesine tıklayın ve eğitim çalıştırmasının tamamlanmasını bekleyin. Ayrıca mevcut sekmelere de gidebilirsiniz.
  10. Eğitim tamamlandığında, sistem Uç sunucularınızdaki eğitim süresi sürelerini ve toplama olaylarını görmek için sekmeyi tıklayın.

Sonuçları ve deneme ayrıntılarını görüntüleyin

Eğitim tamamlandığında sonuçları FedML ve SageMaker'ı kullanarak görüntüleyebilirsiniz.

FedML kullanıcı arayüzünde, Modeller sekmesinde toplayıcı ve istemci modelini görebilirsiniz. Bu modelleri internet sitesinden de indirebilirsiniz.

Ayrıca giriş yapabilirsiniz Amazon SageMaker Stüdyosu Ve seç Deneyler Gezinti bölmesinde.

Aşağıdaki ekran görüntüsü günlüğe kaydedilen deneyleri göstermektedir.

Deneme izleme kodu

Bu bölümde SageMaker deney takibini FL çerçeve eğitimiyle birleştiren kodu inceliyoruz.

Eğitimin bir parçası olarak SageMaker deneme izleme kodunu eklemek üzere kodda yapılan düzenlemeleri görmek için, seçtiğiniz bir düzenleyicide aşağıdaki klasörü açın:

cd fl_fedml.ai/

Eğitimi takip etmek için SageMaker denemesi oluşturma kullanılarak günlüğe kaydedilen parametreler ve ölçümler ile log_parameter ve log_metric Aşağıdaki kod örneğinde belirtildiği gibi komut.

Bir giriş config/fedml_config.yaml dosyası, benzersiz deneme adları oluşturmak için kodda başvurulan deneme önekini bildirir: sm_experiment_name: "fed-heart-disease". Bunu istediğiniz herhangi bir değere güncelleyebilirsiniz.

Örneğin aşağıdaki koda bakın heart_disease_trainer.py, her müşteri tarafından modeli kendi veri kümesinde eğitmek için kullanılır:

# Add this code before the for loop on epochs
# We are passing the experiment prefix & client-rank from the config
# to the function to create a unique name
experiment_name = unique_name_from_base(args.sm_experiment_name + "-client-" + str(args.rank))
print(f"Sagemaker Experiment Name: {experiment_name}")

Her istemci çalıştırması için deneme ayrıntıları, heart_disease_trainer.py dosyasında aşağıdaki kod kullanılarak izlenir:

# create an experiment and start a new run
with Run(experiment_name=experiment_name, run_name=run_name, sagemaker_session=Session()) as run:
run.log_parameters(
{ "Train Data Size": str(len(train_data.dataset)),
"device": "cpu",
"center": args.rank,
"learning-rate": args.lr,
"batch-size": args.batch_size,
"client-optimizer" : args.client_optimizer,
"weight-decay": args.weight_decay
}
)
run.log_metric(name="Validation:AUC", value=epoch_auc)
run.log_metric(name="Training:Loss", value=epoch_loss)

Benzer şekilde, kodu da kullanabilirsiniz. heart_disease_aggregator.py model ağırlıklarını güncelledikten sonra yerel veriler üzerinde bir test çalıştırmak için. Ayrıntılar, istemcilerle yapılan her iletişimden sonra günlüğe kaydedilir.

# create an experiment and start a new run
with Run(experiment_name=experiment_name, run_name=run_name, sagemaker_session=Session()) as run:
run.log_parameters(
{ "Train Data Size": str(len(test_data_local_dict[i])),
"device": "cpu",
"round": i,
"learning-rate": args.lr,
"batch-size": args.batch_size,
"client-optimizer" : args.client_optimizer,
"weight-decay": args.weight_decay
}
)
run.log_metric(name="Test:AUC", value=test_auc_metrics)
run.log_metric(name="Test:Loss", value=test_loss_metrics)

Temizlemek

Çözümü tamamladığınızda verimli kaynak kullanımı ve maliyet yönetimi sağlamak için kullanılan kaynakları mutlaka temizleyin, gereksiz harcamalardan ve kaynak israfından kaçının. Kullanılmayan örneklerin silinmesi, gereksiz hizmetlerin durdurulması ve geçici verilerin kaldırılması gibi ortamın aktif olarak düzenlenmesi, temiz ve düzenli bir altyapıya katkıda bulunur. Kaynaklarınızı temizlemek için aşağıdaki kodu kullanabilirsiniz:

terraform destroy -target=module.m_fedml_edge_server.module.eks_blueprints_kubernetes_addons -auto-approve
terraform destroy -target=module.m_fedml_edge_client_1.module.eks_blueprints_kubernetes_addons -auto-approve
terraform destroy -target=module.m_fedml_edge_client_2.module.eks_blueprints_kubernetes_addons -auto-approve

terraform destroy -target=module.m_fedml_edge_client_1.module.eks -auto-approve
terraform destroy -target=module.m_fedml_edge_client_2.module.eks -auto-approve
terraform destroy -target=module.m_fedml_edge_server.module.eks -auto-approve

terraform destroy

Özet

Amazon EKS'yi altyapı olarak ve FedML'i FL çerçevesi olarak kullanarak, veri gizliliğine saygı göstererek paylaşılan modellerin eğitimi ve dağıtımı için ölçeklenebilir ve yönetilen bir ortam sağlayabiliyoruz. FL'nin merkezi olmayan yapısı sayesinde kuruluşlar güvenli bir şekilde işbirliği yapabilir, dağıtılmış verilerin potansiyelini ortaya çıkarabilir ve veri gizliliğinden ödün vermeden makine öğrenimi modellerini geliştirebilir.

AWS her zaman olduğu gibi geri bildirimlerinizi memnuniyetle karşılıyor. Lütfen düşüncelerinizi ve sorularınızı yorum kısmına bırakın.


Yazarlar Hakkında

Randy DeFauwRandy DeFauw AWS'de Kıdemli Baş Çözüm Mimarıdır. Otonom araçlar için bilgisayarlı görme üzerinde çalıştığı Michigan Üniversitesi'nden MSEE derecesine sahiptir. Aynı zamanda Colorado Eyalet Üniversitesi'nden MBA derecesine sahiptir. Randy, teknoloji alanında yazılım mühendisliğinden ürün yönetimine kadar çeşitli pozisyonlarda bulunmuştur. 2013 yılında büyük veri alanına girdi ve bu alanı keşfetmeye devam ediyor. Aktif olarak ML alanındaki projeler üzerinde çalışıyor ve Strata ve GlueCon da dahil olmak üzere çok sayıda konferansta sunum yaptı.

Arnab Sinha AWS Kıdemli Çözüm Mimarıdır ve kuruluşların veri merkezi geçişleri, dijital dönüşüm ve uygulama modernizasyonu, büyük veriler ve makine öğrenimi genelinde iş sonuçlarını destekleyen ölçeklenebilir çözümler tasarlamasına ve oluşturmasına yardımcı olmak üzere Saha CTO'su olarak görev yapar. Enerji, perakende, üretim, sağlık ve yaşam bilimleri dahil olmak üzere çeşitli sektörlerdeki müşterilere destek verdi. Arnab, ML Uzmanlık Sertifikası da dahil olmak üzere tüm AWS Sertifikalarına sahiptir. Arnab, AWS'ye katılmadan önce teknoloji lideriydi ve daha önce mimar ve mühendislik liderliği rollerinde bulunuyordu.

Prachi Kulkarni AWS'de Kıdemli Çözüm Mimarıdır. Uzmanlığı makine öğrenimidir ve çeşitli AWS ML, büyük veri ve analiz tekliflerini kullanarak çözümler tasarlamak üzerinde aktif olarak çalışmaktadır. Prachi, sağlık hizmetleri, sosyal haklar, perakende ve eğitim dahil olmak üzere birçok alanda deneyime sahiptir ve ürün mühendisliği ve mimarisi, yönetim ve müşteri başarısı alanlarında çeşitli pozisyonlarda çalışmıştır.

Tamer Şerif AWS'de Baş Çözüm Mimarıdır, teknoloji ve kurumsal danışmanlık hizmetleri alanında geniş bir deneyime sahiptir ve Çözüm Mimarı olarak 17 yılı aşkın süredir çalışmaktadır. Altyapıya odaklanan Tamer'in uzmanlığı, ticari, sağlık, otomotiv, kamu sektörü, üretim, petrol ve gaz, medya hizmetleri ve daha fazlasını içeren geniş bir sektör yelpazesini kapsamaktadır. Uzmanlığı bulut mimarisi, uç bilişim, ağ oluşturma, depolama, sanallaştırma, iş üretkenliği ve teknik liderlik gibi çeşitli alanları kapsamaktadır.

Hans Nesbitt Güney Kaliforniya merkezli AWS'de Kıdemli Çözüm Mimarıdır. Yüksek düzeyde ölçeklenebilir, esnek ve dayanıklı bulut mimarileri oluşturmak için ABD'nin batısındaki müşterilerle birlikte çalışıyor. Boş zamanlarında ailesiyle vakit geçirmekten, yemek yapmaktan ve gitar çalmaktan hoşlanıyor.

Chaoyang O Herhangi bir ölçekte, herhangi bir yerden açık ve işbirliğine dayalı bir yapay zeka oluşturmak için çalışan bir girişim olan FedML, Inc.'in Kurucu Ortağı ve CTO'sudur. Araştırmaları dağıtılmış ve birleştirilmiş makine öğrenimi algoritmaları, sistemleri ve uygulamalarına odaklanmaktadır. Doktora derecesini Güney Kaliforniya Üniversitesi'nden Bilgisayar Bilimleri alanında aldı.

Al Nevarez FedML'de Ürün Yönetimi Direktörüdür. FedML'den önce Google'da grup ürün yöneticisi ve LinkedIn'de veri bilimi alanında kıdemli yönetici olarak görev yapıyordu. Veri ürünleriyle ilgili birçok patenti var ve Stanford Üniversitesi'nde mühendislik okudu.

Salman Avestimehr FedML'in kurucu ortağı ve CEO'sudur. USC'de Dekan Profesörü, USC-Amazon Güvenilir Yapay Zeka Merkezi Direktörü ve Alexa AI'da Amazon Akademisyeni olarak görev yaptı. Birleşik ve merkezi olmayan makine öğrenimi, bilgi teorisi, güvenlik ve gizlilik konularında uzmandır. IEEE Üyesidir ve doktorasını EECS alanında UC Berkeley'den almıştır.

Samir Delikanlı AWS'de müşterilerin C düzeyindeki yöneticileriyle yakın işbirliği içinde çalışan başarılı bir kurumsal teknoloji uzmanıdır. Birçok Fortune 100 şirketinde dönüşümleri yönlendiren eski bir üst düzey yönetici olan Samir, müşterilerinin kendi dönüşüm yolculuklarında başarılı olmalarına yardımcı olmak için paha biçilmez deneyimlerini paylaşıyor.

Stephen Kraemer AWS'de Yönetim Kurulu ve CxO danışmanı ve eski yöneticisidir. Stephen, başarının temelleri olarak kültür ve liderliği savunuyor. Oldukça rekabetçi, veri odaklı organizasyonlara olanak tanıyan bulut dönüşümünün itici güçleri olan güvenlik ve yenilikçiliği savunuyor.

spot_img

En Son İstihbarat

spot_img