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. Dokümanda, mimariye genel bir bakış sunulur ve ardından her bileşen ayrıntılı olarak incelenir. Ayrıca, bileşenlerin birleşik öğrenme ortamı sağlamak için birlikte nasıl çalıştığı tartışılır ve iş yüklerini ölçeklendirme ve bölmeyle ilgili 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 istemcisinin sonuçlarını Trusted Execution Environment (TEE) olarak bilinen güvenli bir ortamda 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, Anahtar Hizmetleri'nden ortak bir şifreleme anahtarı indirir.
  2. FC istemcisi, FC sunucusuyla iletişime geçer ve bir eğitim görevi alır.
  3. FC istemcisi bir eğitim planının yanı sıra modelin en son sürümünü (N sürümü) indirir.
  4. FC istemcisi, yerel verileri ve planı kullanarak eğitilir.
  5. FC istemcisi, bu cihazın katkılarını 0. adımda elde edilen ortak anahtarla şifreler ve FC sunucusuna yükler.
  6. FC istemcisi, FC sunucusunu eğitiminin tamamlandığı konusunda bilgilendirir.
  7. FC sunucusu, yeterli sayıda istemcinin katkılarını göndermesini bekler.
  8. Bir toplama turu tetiklenir.
  9. Şifrelenmiş katkılar, toplayıcı tarafından bir Güvenilir Yürütme Ortamı'na (TEE) yüklenir.
  10. 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. Attestasyon başarılı olduğunda 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 Diferansiyel Gizlilik (DP) mekanizmalarına göre klipler ve gürültüler ekler ve gürültü eklenmiş sonuçları çıkışa aktarır.
  12. Toplayıcı, Model Güncelleyici'yi tetikler.
  13. 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 gönderilir.

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ı ve temel teknolojileri değerlendiriyoruz ancak şimdilik aşağıdaki bölümde Gizli Alan'ın kullanıldığı 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şik 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'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ılmış iş yüklerini çalıştırır. Şifre çözme anahtarlarına erişimi koruyan koordinatörlere kanıt sunmalıdır. 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 Gizli Alan'da çalışan ve birleştirilmiş gradyantleri modele uygulayan 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çıklanmıştır:

Android için Özel Korumalı Alan'ın birleşik 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 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 Planlayı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, iterasyon 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

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 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önetimi Hizmeti'ndeki Görev Veritabanı ile aynı veritabanı örneğidir.

Toplayıcı Hizmeti

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

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 PubSub üzerinden gerçekleşir.

Gradyanlar, birleştirilmiş gradyanlar, model ve plan
  • İstemci cihazı tarafından yüklenen (şifrelenmiş) gradyanlar 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 bir 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ı toplama işlemini başlatması için bilgilendirir.

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:

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ı başlıklı makaleyi inceleyin.

Bu mimarinin her bir bileşeni bağımsız olarak ölçeklenebilir. Bu işlem, standart ölçeklendirme mekanizmaları kullanılarak Gizli Alan'da veya GKE kümesinde kapasitenin ölçeklendirilmesiyle yapılır. Aşağıdakilerin daha fazla örneği ekleyerek işleme 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 sunucusunun dayanıklılığı, kopyalanan depolama alanı kullanılarak olağanüstü durum kurtarma tarafından yönetilir. Olağanüstü durum kurtarma ile 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 sunucusunun varsayılan uygulamasında, eğitim akışını kontrol etmek için kullanılan görev durumunu depolamak üzere veritabanı olarak Google Cloud Spanner kullanılı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 dilediğinizi 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 bir felaket durumunda son eğitim turundan itibaren 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: antrenman planları, modeller ve ağırlıkları.
  • Birleştirilmiş Gradyanlar: Toplayıcı tarafından oluşturulan birleştirilmiş gradyanlar.

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 diferansiyel gizlilik uygulamasından sonra elde edilen gizli olmayan veriler (ör. model ağırlıkları).

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ı belirtmeniz gerekir.

Çoğaltma ve yedekler

Google Cloud tarafından sağlanan veri çoğaltma mekanizmalarının yanı sıra Spanner ve GCS'deki verileri düzenli 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ına bağlı olduğundan ODP örnek sağlamaz. Mevcut tasarım, geliştiricilerin bu tür kopyalama ve yedekleme işlemleri için olası ihtiyaçlarını dikkate alır. Bu nedenle, üçüncü taraflarca sağlanan kopyalama ve yedekleme hizmetleri ve ürünleriyle uyumludur.