Servidor de procesamiento federado de personalización integrada en el dispositivo

El servidor de procesamiento federado (FC) forma parte del aprendizaje federado que ofrece la personalización integrada en el dispositivo (ODP). El propósito de este documento es presentar el servidor de procesamiento federado (FC Server), sus componentes y la tecnología que se usa. En el documento, se proporciona una descripción general de alto nivel de la arquitectura y, luego, se analiza cada componente en detalle. También se analiza cómo los componentes funcionan juntos para proporcionar un entorno de aprendizaje federado y se ofrecen estrategias para escalar y dividir cargas de trabajo.

Flujo de capacitación

El entrenamiento consiste en flujos de datos entre el cliente de FC y el servidor de FC. FC Client es un módulo principal de Android que entrena modelos de AA en el dispositivo e interactúa con el servidor de FC. El servidor de FC procesa y agrega los resultados del cliente de FC de forma segura en un entorno de ejecución confiable (TEE).

El entrenamiento consta de los siguientes pasos:

Diagrama de flujo que muestra el flujo de entrenamiento entre un cliente y un servidor de procesamiento federado en Privacy Sandbox para Android.
  1. El cliente de FC en el dispositivo descarga una clave de encriptación pública de los servicios de claves.
  2. El cliente de FC se registra con el servidor de FC y recibe una tarea de entrenamiento.
  3. El cliente de FC descarga un plan de entrenamiento, además de la última versión del modelo, la versión N.
  4. El cliente de FC entrena con los datos locales y el plan.
  5. El cliente de FC encripta las contribuciones de este dispositivo con la clave pública obtenida en el paso 0 y la sube al servidor de FC.
  6. El cliente de FC notifica al servidor de FC que se completó su entrenamiento.
  7. El servidor de FC espera hasta que suficientes clientes hayan enviado sus contribuciones.
  8. Se activa una ronda de agregación.
  9. El agregador carga las contribuciones encriptadas en un entorno de ejecución confiable (TEE).
  10. El agregador se certifica a sí mismo, de acuerdo con la RFC 9334 Remote ATtestation procedureS (RATS) Architecture del NIST, a los coordinadores. Una vez realizada la certificación correctamente, los Servicios de claves le otorgan las claves de desencriptación. Estas claves se pueden dividir en varios proveedores de claves en un esquema de compartición de secretos de Shamir.
  11. El agregador realiza la agregación multidispositivo, los clips y los ruidos según los mecanismos de privacidad diferencial (DP) adecuados y genera los resultados contaminados.
  12. El agregador activa el Actualizador de modelos.
  13. El Actualizador de modelos carga la contribución agregada y la aplica a la versión N del modelo para crear la versión N + 1. El modelo nuevo se envía al almacenamiento del modelo.

El servidor de FC se puede implementar en cualquier servicio en la nube que admita los TEE y las funciones de seguridad relacionadas. Estamos evaluando proveedores de servicios en la nube pública y tecnologías subyacentes, pero, por el momento, en la siguiente sección, se presenta un ejemplo de implementación de Google Cloud con Espacio confidencial.

Arquitectura de alto nivel

El servidor de FC tiene los siguientes componentes implementados en Google Cloud:

Diagrama que muestra la arquitectura del servidor de procesamiento federado de Privacy Sandbox para Android.
Componente Descripción
Servicio de administración de tareas Un servicio web para administrar la tarea de entrenamiento. Los socios deben usar la API de Task Management para crear una tarea de entrenamiento, enumerar todas las tareas de entrenamiento existentes, cancelar una tarea y recuperar todos los estados de entrenamiento.
Servicio de asignación de tareas Es un servicio web basado en HTTPS en el que los dispositivos cliente se registran de forma periódica para obtener tareas de entrenamiento y, además, informar el estado del entrenamiento.
Agregador Un servicio en segundo plano que se ejecuta en Confidential Space Ejecuta cargas de trabajo creadas por ODP. Debe certificar a los coordinadores, que protegen el acceso a las claves de desencriptación. Solo los agregadores certificados correctamente pueden desencriptar las contribuciones enviadas por los dispositivos del cliente y realizar agregaciones multidispositivo.
Actualizador de modelos Un servicio en segundo plano que se ejecuta en Confidential Space y que aplica los gradientes agregados al modelo.

Detalles del componente

En las siguientes secciones, se expande la arquitectura de alto nivel con más detalles:

Diagrama que muestra los componentes del servidor de procesamiento federado de Privacy Sandbox para Android.

Servicio de administración de tareas

Diagrama en el que se muestra la topología del servicio de administración de tareas de Privacy Sandbox para Android.

El servicio de administración de tareas contiene dos subcomponentes: el servicio web de administración de tareas y el servicio de programador de tareas, ambos implementados en GKE.

Administración de tareas

Este es un conjunto de servicios web de frontend que reciben solicitudes HTTPS y crean o obtienen tareas de la base de datos de tareas.

Programador de tareas

Un servicio en segundo plano que analiza de forma continua la base de datos de tareas. Administra el flujo de entrenamiento; por ejemplo, crea nuevas iteraciones y rondas de entrenamiento.

Base de datos de tareas

Una base de datos compatible con ANSI SQL que almacena la información de Tarea, Iteración y Tarea asignada. En esta implementación, Google Cloud Spanner se usa como el servicio de base de datos subyacente.

Servicio de asignación de tareas

Diagrama que muestra la topología del servicio de asignación de tareas de Privacy Sandbox para Android.

El servicio de asignación de tareas es un servicio web de frontend alojado en GKE. Recibe solicitudes de los clientes de FC y distribuye tareas de capacitación cuando corresponde.

La base de datos de tareas es la misma instancia de base de datos que la base de datos de tareas en el servicio de administración de tareas.

Servicio de agregador

Diagrama en el que se muestra la topología del servicio de agregador de Privacy Sandbox para Android.
Agregador y actualizador de modelos

El agregador y el actualizador de modelos son similares. Son servicios en segundo plano que procesan datos de forma segura en Espacio confidencial. La comunicación entre los trabajos sin conexión se realiza a través de PubSub.

Gradientes, gradientes agregados, modelo y plan
  • Es un almacenamiento de gradientes para los gradientes subidos (encriptados) del dispositivo cliente.
  • Es un almacenamiento agregado de gradientes para gradientes agregados, recortados y con ruido.
  • Un almacenamiento de modelos y planes para los planes de entrenamiento, los modelos y los pesos.
Recopilador

El recopilador es un servicio en segundo plano que cuenta periódicamente los envíos de dispositivos del cliente durante una ronda de entrenamiento. Le notifica al agregador que inicie la agregación una vez que haya suficientes envíos disponibles.

Hosts del servicio

Todos los servicios que no tienen acceso a información sensible se alojan en GKE.

Todos los servicios que pueden tocar información sensible se alojan en Espacio confidencial.

Todos los datos sensibles se encriptan con claves de encriptación administradas por servicios de claves de varias partes. Las claves de desencriptación solo pueden acceder a las claves de desencriptación con certificación correcta y código abierto creado por la ODP que se ejecuta en versiones legítimas y habilitadas para computación confidencial de Confidential Space.

En una unidad de servicio, el recurso de procesamiento se ve de la siguiente manera:

Diagrama que muestra la topología de la unidad de servicio de Privacy Sandbox para Android.

Escalabilidad

La infraestructura descrita anteriormente se enfoca en una unidad de servicio.

Una unidad de servicio usa un solo Cloud Spanner. Consulta Cuotas y límites de Spanner para conocer las limitaciones importantes.

Cada componente de esta arquitectura puede escalarse de forma independiente. Para ello, se escala la capacidad dentro del Espacio confidencial o del clúster de GKE con mecanismos de escalamiento estándar. Efectivamente, la capacidad de procesamiento se puede aumentar si se agregan más instancias de lo siguiente:

  • Servicio web de asignación de tareas
  • Servicio web de administración de tareas
  • Instancias de agregador
  • Instancias de Model Updater

Resiliencia

La resiliencia de un servidor de FC se controla mediante la recuperación ante desastres con almacenamiento replicado. Si te interesa la recuperación ante desastres, debes habilitar la replicación de datos entre regiones. Esto garantizará que, si ocurre un desastre (como un evento climático que interrumpe un centro de datos), el servicio se reanudará desde la última ronda de capacitación.

Spanner

La implementación predeterminada del servidor de FC usa Google Cloud Spanner como la base de datos para almacenar el estado de la tarea que se usa para controlar el flujo de entrenamiento. Debes evaluar las compensaciones entre la coherencia y la disponibilidad según las necesidades de tu empresa antes de seleccionar una configuración de varias regiones.

No hay datos del usuario ni sus derivados, ya sean sin procesar o encriptados, almacenados en ninguna instancia de Spanner. Puedes usar cualquiera de las funciones de recuperación ante desastres disponibles que ofrece Spanner.

Spanner registra el historial de cambios. El agregador y el actualizador de modelos almacenan los datos por ronda de entrenamiento, y el resultado de cada ronda se almacena por separado sin superponerse. Por este motivo, el servicio se puede reanudar desde la última ronda de entrenamiento en caso de desastre.

Google Cloud Storage

La implementación predeterminada del servidor de FC usa Google Cloud Storage para almacenar datos de blob, como modelos, planes de entrenamiento y contribuciones de dispositivos encriptados.

Hay tres instancias de GCS en el diseño:

  • Contribuciones de dispositivos: Contribuciones de dispositivos encriptadas que se subieron desde dispositivos.
  • Modelos: planes de entrenamiento, modelos y sus pesos.
  • Gradientes agregados: los gradientes agregados que produce el agregador

Los datos almacenados en GCS son los siguientes:

  • Datos proporcionados por el desarrollador, como un plan de capacitación
  • Datos potencialmente privados porque se derivan de indicadores del usuario (protegidos por una encriptación respaldada por varios coordinadores), como gradientes subidos por dispositivos y agregados, O BIEN
  • Datos no privados derivados de los indicadores de usuario, pero después de la aplicación de la privacidad diferencial, como los pesos del modelo

Debes evaluar las compensaciones entre coherencia y disponibilidad, y seleccionar las funciones de durabilidad y disponibilidad de datos de GCS adecuadas. Debes especificar tus propias políticas de retención de datos.

Replicación y copias de seguridad

Además de los mecanismos de replicación de datos que proporciona Google Cloud, también puedes optar por crear copias de seguridad de los datos periódicamente en Spanner y GCS. Por ejemplo, puedes usar ofertas y servicios de replicación entre nubes. La ODP no proporciona una muestra porque estas configuraciones dependen en gran medida de las necesidades de la empresa. El diseño actual tiene en cuenta las necesidades potenciales de los desarrolladores respecto de las replicaciones y copias de seguridad. Como resultado, es compatible con los productos y servicios de replicación y copia de seguridad proporcionados por terceros.