Birleşik Compute (FC) Sunucusu, Cihaz Üzerinde Kişiselleştirme (ODP) tarafından sunulan Birleşik Öğrenim'in bir parçasıdır. Bu belgenin amacı Birleşik Compute Server'ı (FC Server), bileşenlerini ve kullanılan teknolojiyi tanıtmaktır. Bu belgede, mimariye üst düzey bir genel bakış sunulmakta ve her bir bileşen ayrıntılı olarak ele alınmaktadır. Ayrıca, birleşik bir öğrenim ortamı sağlamak için bileşenlerin birlikte nasıl çalıştığı açıklanır ve iş yüklerini ölçeklendirmeye ve parçalamaya yönelik stratejiler sunulur.
Eğitim akışı
Eğitim, FC istemcisi ile FC sunucusu arasındaki veri akışlarından oluşur. FC istemcisi, cihaz üzerinde ML modellerini eğiten ve FC sunucusuyla etkileşime geçen temel bir Android modülüdür. FC Sunucusu, FC İstemcisi'nden gelen sonuçları Güvenilir Yürütme Ortamı'nda (TEE) güvenli bir şekilde işler ve toplar.
Eğitim aşağıdaki adımlardan oluşur:
- Cihazdaki FC istemcisi, Anahtar Hizmetleri'nden ortak bir şifreleme anahtarı indirir.
- FC istemcisi, FC sunucusuyla iletişime geçer ve bir eğitim görevi alır.
- FC İstemcisi bir eğitim planını ve modelin en son sürümünü, sürüm N'yi indirir.
- FC istemcisi, yerel verileri ve planı kullanarak eğitilir.
- FC istemcisi, bu cihazın katkılarını 0. adımda elde edilen ortak anahtarla şifreler ve FC sunucusuna yükler.
- FC İstemcisi, FC Sunucusuna eğitiminin tamamlandığını bildirir.
- FC Sunucusu, yeterli sayıda müşteri katkılarını gönderene kadar bekler.
- Toplama turu tetiklenir.
- Şifrelenmiş katkılar, Toplayıcı tarafından Güvenilir Yürütme Ortamı'na (TEE) yüklenir.
- Toplayıcı, NIST'nin RFC 9334 Remote ATtestation procedureS (RATS) Architecture (Uzak Onaylama Prosedürleri (RATS) Mimarisi) doğrultusunda koordinatörlere kimliğini doğrular. Başarılı onayın ardından Anahtar Hizmetleri, şifre çözme anahtarlarını hizmete verir. Bu anahtarlar, Shamir gizli paylaşım planında birden fazla anahtar sağlayıcıya bölünebilir.
- Toplayıcı, cihazlar arası toplama işlemi yapar, uygun diferansiyel gizlilik (DP) mekanizmalarına göre kırpmalar ve gürültüler uygular ve gürültü uygulanmış sonuçları döndürür.
- Toplayıcı, Model Güncelleyici'yi tetikler.
- Model Güncelleme Aracı, birleştirilmiş katkıyı yükler ve N + 1 model sürümünü oluşturmak için N model sürümüne uygular. Yeni model, model depolama alanına aktarılır.
FC sunucusu, TEE'leri ve ilgili güvenlik özelliklerini destekleyen tüm bulut hizmetlerinde dağıtılabilir. Herkese açık bulut sağlayıcılarını ve temel teknolojileri değerlendiriyoruz ancak aşağıdaki bölümde şu an için Gizli Alan'ın kullanıldığı bir Google Cloud örneği uygulaması sunulmuştur.
Üst düzey mimari
FC sunucusunda Google Cloud'da dağıtılan aşağıdaki bileşenler bulunur:
Bileşen | Açıklama |
Görev Yönetim Hizmeti | Eğitim görevini yönetmek için bir web hizmeti. İş ortakları; eğitim görevi oluşturmak, mevcut tüm eğitim görevlerini listelemek, bir görevi iptal etmek ve tüm eğitim durumlarını almak için Task Management API'yi kullanmalıdır. |
Görev Atama Hizmeti | İstemci cihazların eğitim görevleri almak ve eğitim durumunu bildirmek için düzenli olarak kontrol ettiği HTTPS tabanlı bir web hizmeti. |
Toplayıcı | Gizli Alan'da çalışan bir arka plan hizmeti. ODP tarafından yazılan iş yüklerini çalıştırır. Şifre çözme anahtarlarına erişimi koruyan koordinatörlere onay vermelidir. Yalnızca başarılı bir şekilde onaylanmış toplayıcılar, istemci cihazlar tarafından gönderilen katkıların şifresini çözebilir ve cihazlar arası toplama işlemi gerçekleştirebilir. |
Model Güncelleyici | Toplanan renk geçişlerini modele uygulayan, Gizli Alan'da çalışan bir arka plan hizmeti. |
Bileşen ayrıntıları
Aşağıdaki bölümlerde üst düzey mimari, daha fazla ayrıntıya genişletilir:
Görev Yönetim Hizmeti
Görev Yönetimi Hizmeti iki alt bileşen içerir: Görev Yönetimi Web Hizmeti ve Görev Planlayıcı Hizmeti. Her ikisi de GKE'de dağıtılır.
Görev Yönetimi
Bu, HTTPS isteklerini alan ve Görev Veritabanı'ndan görev oluşturan veya görev alan bir ön uç web hizmetleri grubudur.
Görev Zamanlayıcı
Görev Veritabanı'nı sürekli olarak tarayan bir arka plan hizmeti. Örneğin, yeni eğitim turları ve iterasyonlar oluşturarak eğitim akışını yönetir.
Görev Veritabanı
Görev, İterasyon ve Atama bilgilerini depolayan ANSI SQL uyumlu bir veritabanı. Bu uygulamada, temel veritabanı hizmeti olarak Google Cloud Spanner kullanılır.
Görev Atama Hizmeti
Görev Atama Hizmeti, GKE'de barındırılan bir kullanıcı arabirimi web hizmetidir. FC istemcilerinden gelen istekleri alır ve uygun olduğunda eğitim görevlerini dağıtır.
Buradaki Görev Veritabanı, Görev Yönetim Hizmeti'ndeki Görev Veritabanı ile aynı veritabanı örneğidir.
Toplayıcı Hizmeti
Toplayıcı ve Model Güncelleyici
Toplayıcı ve Model Güncelleyici benzerdir. Bunlar, verileri Gizli Alan'da güvenli bir şekilde işleyen arka plan hizmetleridir. Çevrimdışı işler arasındaki iletişim Pub/Sub üzerinden gerçekleşir.
Gradyanlar, birleştirilmiş renk geçişleri, model ve plan
- İstemci cihazı tarafından yüklenen (şifrelenmiş) renk geçişleri için gradyan depolama alanı.
- Toplu, kırpılmış ve gürültülü gradyanlar için birleştirilmiş bir gradyan depolama alanı.
- Eğitim planları, modeller ve ağırlıklar için model ve plan depolama alanı.
Toplayıcı
Toplayıcı, bir eğitim turu sırasında istemci cihaz gönderimlerini düzenli aralıklarla sayan bir arka plan hizmetidir. Toplayıcı, yeterli sayıda gönderim olduğunda toplama işlemini başlatması konusunda bilgilendirilir.
Hizmet ana makineleri
Hassas bilgilere erişimi olmayan tüm hizmetler GKE'de barındırılır.
Hassas bilgilere dokunabilecek tüm hizmetler Gizli Alan'da barındırılır.
Tüm hassas veriler, birden fazla tarafa ait anahtar hizmetleri tarafından yönetilen şifreleme anahtarlarıyla şifrelenir. Şifre çözme anahtarlarına yalnızca, Gizli Alan'ın meşru, gizli bilgi işlem özellikli sürümlerinde çalışan, ODP tarafından yazılmış ve başarılı bir şekilde doğrulanmış açık kaynak kodları erişebilir.
Bir hizmet biriminde işlem kaynağı şu şekilde görünür:
Ölçeklenebilirlik
Daha önce açıklanan altyapı, tek bir hizmet birimine odaklanır.
Bir hizmet birimi, bir Cloud Spanner kullanır. Önemli sınırlamalar için Spanner kotaları ve sınırları başlıklı makaleyi inceleyin.
Bu mimarinin her bir bileşeni bağımsız olarak ölçeklenebilir. Bu işlem, standart ölçeklendirme mekanizmaları kullanarak Gizli Alan veya GKE kümesi içindeki kapasitenin ölçeklendirilmesiyle yapılır. Aşağıdakilerin daha fazla örneği ekleyerek işlem kapasitesi etkili bir şekilde artırılabilir:
- Görev Atama Web Hizmeti
- Görev Yönetimi Web Hizmeti
- Toplayıcı Örnekleri
- Model Güncelleyici Örnekleri
Dayanıklılık
FC Server'ın direnci, çoğaltılmış depolama alanı kullanan olağanüstü durum kurtarma tarafından yönetilir. Olağanüstü durum kurtarmayla ilgileniyorsanız bölgeler arası veri çoğaltmayı etkinleştirmeniz gerekir. Bu sayede, bir felaket (ör. bir veri merkezini kesintiye uğratan hava durumu olayı) meydana gelirse hizmet, son eğitim turundan itibaren devam eder.
Spanner
FC Server'ın varsayılan uygulaması, eğitim akışını kontrol etmek üzere kullanılan görev durumunu depolamak için veritabanı olarak Google Cloud Spanner'ı kullanır. Çok bölgeli yapılandırma seçmeden önce tutarlılık ve stok durumu arasındaki ödünleri işletme ihtiyaçlarınıza göre değerlendirmeniz gerekir.
Hiçbir Spanner örneğinde ham veya şifrelenmiş kullanıcı verisi ya da türevleri depolanmaz. Spanner'ın sunduğu olağanüstü durum kurtarma özelliklerinden herhangi birini kullanabilirsiniz.
Spanner, değişiklik geçmişini kaydeder. Toplayıcı ve Model Güncelleyici, verileri eğitim turu başına depolar ve her turun sonucu, diğerinin üzerine yazılmadan ayrı olarak depolanır. Bu sayede hizmet, afet durumunda eğitimin son turundan itibaren devam ettirilebilir.
Google Cloud Storage
FC Server'ın varsayılan uygulaması; modeller, eğitim planları ve şifrelenmiş cihaz katkıları gibi blob verilerini depolamak için Google Cloud Storage'ı kullanır.
Tasarımda üç GCS örneği vardır:
- Cihaz katkıları: Cihazlardan yüklenen şifrelenmiş cihaz katkıları.
- Modeller: eğitim planları, modeller ve ağırlıkları.
- Toplu Gradyanlar: Toplayıcı tarafından oluşturulan toplu renk geçişleri.
GCS'de depolanan veriler şunlardır:
- Geliştirici tarafından sağlanan veriler (ör. eğitim planı) VEYA
- Kullanıcı sinyallerinden (çoklu koordinatör destekli şifreleme ile korunur) türetildiği için potansiyel olarak gizli veriler (ör. cihaz tarafından yüklenen gradyanlar ve birleştirilmiş gradyanlar) VEYA
- Kullanıcı sinyallerinden türetilen ancak model ağırlıkları gibi diferansiyel gizlilik uygulaması sonrası gizli olmayan veriler.
Tutarlılık ve kullanılabilirlik arasındaki dengeleri değerlendirmeniz ve uygun GCS veri kullanılabilirliği ve dayanıklılık özelliklerini seçmeniz gerekir. Kendi veri saklama politikalarınızı belirtmelisiniz.
Çoğaltma ve yedekler
Google Cloud tarafından sağlanan veri kopyalama mekanizmalarının dışında, Spanner ve GCS'deki verileri periyodik olarak yedeklemeyi de seçebilirsiniz. Örneğin, bulutlar arası çoğaltma hizmetlerini ve tekliflerini kullanabilirsiniz. Bu yapılandırmalar büyük ölçüde işletme ihtiyaçlarının bağlı olduğu için ODP örnek sağlamaz. Mevcut tasarım, geliştiricilerin bu tür çoğaltma ve yedekleme işlemlerine yönelik olası ihtiyaçlarını dikkate almaktadır. Bu nedenle de üçüncü tarafların sağladığı çoğaltma ve yedekleme hizmetleri ve ürünleriyle uyumludur.