Cihaz Üzerinde Kişiselleştirme Birleşik İşlem Sunucusu

Birleşik Hesaplama (FC) Sunucusu, Cihaz Üzerinde Kişiselleştirme (ODP) tarafından sunulan Birleşik Öğrenim'in bir parçasıdır. Bu belgenin amacı, Federated Compute Server'ı (FC Server), bileşenlerini ve kullanılan teknolojiyi tanıtmaktır. Bu belgede, mimariye ilişkin üst düzey bir genel bakış sunulmakta ve ardından her bileşen ayrıntılı olarak ele alınmaktadır. Ayrıca, bileşenlerin birleşik öğrenme ortamı sağlamak için birlikte nasıl çalıştığı da ele alınır ve iş yüklerini ölçeklendirme ve parçalama stratejileri sunulur.

Eğitim akışı

Eğitim, FC istemcisi ile FC sunucusu arasındaki veri akışlarından oluşur. FC Client, cihaz üzerinde makine öğrenimi modellerini eğiten ve FC Server ile etkileşime giren temel bir Android modülüdür. FC sunucusu, FC istemcisinden 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:

Android için Özel Korumalı Alan'da birleşik bilgi işlem istemcisi ile sunucu arasındaki eğitim akışını gösteren akış şeması.
  1. Cihazdaki FC istemcisi, Key Services'ten ortak şifreleme anahtarı indirir.
  2. FC istemcisi, FC sunucusuna kaydolur ve bir eğitim görevi alır.
  3. FC istemcisi, eğitim planının yanı sıra modelin en son sürümü olan N sürümünü indirir.
  4. FC istemcisi, yerel verileri ve planı kullanarak eğitim alır.
  5. FC istemcisi, bu cihazın katkılarını 0. adımda elde edilen ortak anahtarla şifreler ve FC sunucusuna yükler.
  6. FC İstemcisi, FC Sunucusu'na eğitiminin tamamlandığını bildirir.
  7. FC sunucusu, yeterli sayıda istemci katkılarını gönderene kadar bekler.
  8. Bir toplama turu tetiklenir.
  9. Şifrelenmiş katkılar, toplayıcı tarafından güvenilir yürütme ortamına (TEE) yüklenir.
  10. Toplayıcı, NIST'nin RFC 9334 Uzaktan Onaylama İşlemleri (RATS) Mimarisi'ni izleyerek koordinatörlere kendi onayını verir. Başarılı bir onaylama işleminden sonra Anahtar Hizmetleri, şifre çözme anahtarlarını verir. Bu anahtarlar, Shamir gizli paylaşımı şemasında birden fazla anahtar sağlayıcıya bölünebilir.
  11. Toplayıcı, cihazlar arası toplama işlemi yapar, uygun Farklı Gizlilik (DP) mekanizmalarına göre klipler ve gürültüler oluşturur ve gürültülü sonuçları verir.
  12. Toplayıcı, Model Güncelleyici'yi tetikler.
  13. Model Güncelleyici, toplu 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 gönderilir.

FC sunucusu, TEE'leri ve ilgili güvenlik özelliklerini destekleyen herhangi bir bulut hizmetine dağıtılabilir. Herkese açık bulut sağlayıcıları ve temel teknolojileri değerlendiriyoruz ancak şimdilik aşağıdaki bölümde Confidential Space kullanan bir Google Cloud örnek uygulaması sunulmaktadır.

Üst düzey mimari

FC sunucusunda Google Cloud'da dağıtılan aşağıdaki bileşenler bulunur:

Android için Özel Korumalı Alan'ın birleştirilmiş bilgi işlem sunucusunun mimarisini gösteren şema.
Bileşen Açıklama
Görev Yönetimi Hizmeti Eğitim görevini yönetmek için kullanılan 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 Görev Yönetimi API'sini kullanmalıdır.
Görev Atama Hizmeti İstemci cihazların eğitim görevlerini 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 oluşturulan iş yüklerini çalıştırır. Şifre çözme anahtarlarına erişimi koruyan koordinatörlere onay vermelidir. Yalnızca başarıyla 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 gradyanları modele uygulayan, Confidential Space'te çalışan bir arka plan hizmeti.

Bileşen ayrıntıları

Aşağıdaki bölümlerde, üst düzey mimari daha ayrıntılı olarak açıklanmaktadır:

Android için Özel Korumalı Alan'ın birleştirilmiş bilgi işlem sunucusunun bileşenlerini gösteren şema.

Görev Yönetimi Hizmeti

Android için Özel Korumalı Alan'ın görev yönetimi hizmetinin topolojisini gösteren şema.

Görev Yönetimi Hizmeti, GKE'ye dağıtılan iki alt bileşenden oluşur: Görev Yönetimi Web Hizmeti ve Görev Planlayıcı Hizmeti.

Görev Yönetimi

Bu, HTTPS isteklerini alan ve Görev Veritabanı'ndan görevler oluşturan veya görevleri alan bir ön uç web hizmetleri kümesidir.

Görev Zamanlayıcı

Görev veritabanını sürekli olarak tarayan bir arka plan hizmeti. Eğitim akışını yönetir (ör. yeni eğitim turları ve yinelemeler oluşturma).

Görev Veritabanı

Görev, yineleme ve atama bilgilerini depolayan, ANSI SQL ile uyumlu bir veritabanı. Bu uygulamada, temel veritabanı hizmeti olarak Google Cloud Spanner kullanılır.

Görev Atama Hizmeti

Android için Özel Korumalı Alan'ın görev atama hizmetinin topolojisini gösteren şema.

Görev Atama Hizmeti, GKE'de barındırılan bir ön uç 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önetimi Hizmeti'ndeki Görev Veritabanı ile aynı veritabanı örneğidir.

Aggregator Service

Android için Özel Korumalı Alan'ın toplayıcı hizmetinin topolojisini gösteren şema.
Toplayıcı ve Model Güncelleyici

Toplayıcı ve Model Güncelleyici benzerdir. Bu hizmetler, Gizli Alan'da verileri güvenli bir şekilde işleyen arka plan hizmetleridir. Çevrimdışı işler arasındaki iletişim PubSub üzerinden yapılır.

Gradyanlar, toplanmış gradyanlar, model ve plan
  • İstemci cihazdan yüklenen (şifrelenmiş) gradyanlar için gradyan depolama alanı.
  • Toplanmış, kırpılmış ve gürültülü gradyanlar için toplanmış 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. Yeterli sayıda gönderim olduğunda toplayıcıyı bilgilendirerek toplama işlemini başlatmasını sağlar.

Hizmet ana makineleri

Hassas bilgilere erişimi olmayan tüm hizmetler GKE'de barındırılır.

Hassas bilgilere erişebilecek tüm hizmetler Confidential Space'te barındırılır.

Tüm hassas veriler, birden fazla tarafa ait Key Services tarafından yönetilen şifreleme anahtarlarıyla şifrelenir. Yalnızca başarılı bir şekilde onaylanmış, ODP tarafından yazılmış ve Confidential Space'in gizli bilgi işlem özellikli sürümlerinde çalışan açık kaynak kodları, şifre çözme anahtarlarına erişebilir.

Bir hizmet biriminde işlem kaynağı şu şekilde görünür:

Android için Özel Korumalı Alan'ın hizmet birimi topolojisini gösteren şema.

Ö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ı bölümüne bakın.

Bu mimarinin her bileşeni bağımsız olarak ölçeklendirilebilir. Bu işlem, standart ölçeklendirme mekanizmaları kullanılarak Gizli Alan'da veya GKE kümesinde kapasite ölçeklendirilerek yapılır. İşleme kapasitesi, aşağıdaki öğelerin daha fazla örneği eklenerek 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

Bir FC sunucusunun esnekliği, çoğaltılmış depolama kullanılarak olağanüstü durum kurtarma ile sağlanır. Olağanüstü durum kurtarma ile ilgileniyorsanız bölgeler arası veri çoğaltmayı etkinleştirmeniz gerekir. Bu sayede, bir felaket yaşanması durumunda (ör. bir veri merkezini kesintiye uğratan hava olayı) hizmet, son eğitim turundan itibaren devam eder.

Spanner

FC sunucusunun varsayılan uygulaması, eğitim akışını kontrol etmek için kullanılan görev durumunu depolamak üzere veritabanı olarak Google Cloud Spanner'ı kullanır. Çok bölgeli yapılandırma seçmeden önce tutarlılık ve kullanılabilirlik arasındaki ödünleşimleri işletme ihtiyaçlarınıza göre değerlendirmeniz gerekir.

Herhangi bir Spanner örneğinde, ham veya şifrelenmiş olarak kullanıcı verileri ya da türevleri depolanmaz. Spanner'ın sunduğu olağanüstü durum kurtarma özelliklerinden dilediğinizi kullanabilirsiniz.

Spanner, değişiklik geçmişini kaydeder. Toplayıcı ve Model Güncelleyici, verileri eğitim turuna göre depolar. Her turun sonucu, birbirinin üzerine yazılmadan ayrı ayrı depolanır. Bu nedenle, bir felaket durumunda hizmet, son eğitim turundan devam edebilir.

Google Cloud Storage

FC sunucusunun 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 üretilen toplu gradyanlar.

GCS'de depolanan veriler şunlardan biridir:

  • Geliştirici tarafından sağlanan veriler (ör. antrenman planı) VEYA
  • Cihaza yüklenen gradyanlar ve toplu gradyanlar gibi kullanıcı sinyallerinden (çoklu koordinatör destekli şifreleme ile korunur) elde edildiği için potansiyel olarak özel veriler VEYA
  • Kullanıcı sinyallerinden elde edilen ancak diferansiyel gizlilik uygulandıktan sonraki gizli olmayan veriler (ör. model ağırlıkları).

Tutarlılık ve kullanılabilirlik arasındaki dengeyi değerlendirip uygun GCS veri kullanılabilirliği ve dayanıklılık özelliklerini seçmelisiniz. Kendi veri saklama politikalarınızı belirtmeniz gerekir.

Çoğaltma ve yedeklemeler

Google Cloud tarafından sağlanan veri replikasyonu mekanizmalarının yanı sıra, Spanner ve GCS'deki verileri düzenli olarak yedeklemeyi de seçebilirsiniz. Örneğin, bulutlar arası replikasyon hizmetlerini ve tekliflerini kullanabilirsiniz. Bu yapılandırmalar büyük ölçüde işletme ihtiyaçlarına bağlı olduğundan ODP örnek sağlamaz. Mevcut tasarım, geliştiricilerin bu tür kopyalama ve yedekleme işlemlerine yönelik olası ihtiyaçlarını dikkate alır. Bu nedenle, üçüncü taraflarca sağlanan replikasyon ve yedekleme hizmetleri ve ürünleriyle uyumludur.