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 objetivo de este documento es presentar el servidor de Federated Compute (servidor de FC), 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 profundiza en cada componente en detalle. También se explica cómo los componentes trabajan en conjunto para proporcionar un entorno de aprendizaje federado y se ofrecen estrategias para escalar y fragmentar cargas de trabajo.

Flujo de capacitación

El entrenamiento consiste en flujos de datos entre el cliente y el servidor de FC. El cliente de FC es un módulo principal de Android que entrena modelos de AA en el dispositivo y que 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 del dispositivo descarga una clave de encriptación pública de los Servicios de claves.
  2. El cliente de FC se comunica con el servidor de FC y obtiene una tarea de entrenamiento.
  3. El cliente de FC descarga un plan de entrenamiento, además de la versión más reciente del modelo, la versión N.
  4. El cliente de FC se 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 las sube al servidor de FC.
  6. El cliente de FC notifica al servidor de FC que se completó el entrenamiento.
  7. El servidor de FC espera hasta que suficientes clientes envíen 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 ante los coordinadores siguiendo la arquitectura de procedimientos de certificación remota (RATS) de la RFC 9334 del NIST. Tras la certificación exitosa, los Servicios de claves le otorgan las claves de desencriptación. Estas claves se pueden dividir entre varios proveedores de claves en un esquema de compartición secreta de Shamir.
  11. El agregador realiza la agregación multidispositivo, recorta y contamina los datos según los mecanismos de privacidad diferencial (DP) adecuados, y genera los resultados contaminados.
  12. El Aggregator activa el Model Updater.
  13. El actualizador del modelo 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 de modelos.

El servidor de FC se puede implementar en cualquier servicio o servicios en la nube que admitan TEE y funciones de seguridad relacionadas. Estamos evaluando proveedores de nube pública y tecnologías subyacentes, pero, por ahora, en la siguiente sección, se presenta un ejemplo de implementación de Google Cloud con Confidential Space.

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 Es 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 periódicamente para obtener tareas de entrenamiento y registrar el estado del entrenamiento.
Agregador Es un servicio en segundo plano que se ejecuta en Confidential Space. Ejecuta cargas de trabajo creadas por ODP. Debe certificar a los coordinadores, quienes protegen el acceso a las claves de desencriptación. Solo los agregadores que hayan pasado la certificación correctamente pueden desencriptar las contribuciones enviadas por los dispositivos cliente y llevar a cabo la agregación entre dispositivos.
Actualizador de modelos Es un servicio en segundo plano que se ejecuta en Confidential Space y aplica los gradientes agregados al modelo.

Detalles del componente

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

Diagram that shows the components of the federated compute server of Privacy Sandbox for Android.

Servicio de administración de tareas

Diagrama que 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

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

Es un servicio en segundo plano que analiza continuamente la base de datos de tareas. Administra el flujo de entrenamiento, por ejemplo, creando nuevas rondas e iteraciones de entrenamiento.

Base de datos de tareas

Es una base de datos compatible con ANSI SQL que almacena la información de tareas, iteraciones y asignaciones. En esta implementación, se usa Google Cloud Spanner 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 entrenamiento cuando corresponde.

La base de datos de tareas que se muestra aquí 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 que muestra la topología del servicio de agregador de Privacy Sandbox para Android.
Actualizador de modelos y agregador

El agregador y el actualizador de modelos son similares. Son servicios en segundo plano que procesan datos de forma segura en Confidential Space. 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 encriptados que se suben desde el dispositivo del cliente.
  • Es un almacenamiento de gradientes agregados 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 cliente durante una ronda de entrenamiento. Notifica al agregador que inicie la agregación una vez que haya suficientes envíos disponibles.

Hosts de servicio

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

Todos los servicios que pueden acceder a información sensible se alojan en Confidential Space.

Todos los datos sensibles se encriptan con claves de encriptación administradas por servicios de claves propiedad de varias partes. Solo el código fuente abierto que se haya certificado correctamente y que haya sido creado por el ODP, y que se ejecute en versiones legítimas de Confidential Space con la computación confidencial habilitada, puede acceder a las claves de desencriptación.

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

Diagram that shows the service unit topology of Privacy Sandbox for Android.

Escalabilidad

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

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

Cada componente de esta arquitectura se puede escalar de forma independiente. Esto se hace escalando la capacidad dentro de Confidential Space o dentro del clúster de GKE con mecanismos de escalamiento estándar. En efecto, la capacidad de procesamiento se puede aumentar agregando más instancias de los siguientes elementos:

  • Servicio web de asignación de tareas
  • Servicio web de administración de tareas
  • Instancias de agregador
  • Instancias del actualizador de modelos

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 interrumpa un centro de datos), el servicio se reanudará desde la última ronda de entrenamiento.

Spanner

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

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

Spanner registra el historial de cambios. El agregador y el actualizador del modelo almacenan los datos por ronda de entrenamiento, y el resultado de cada ronda se almacena por separado sin sobrescribirse. Por este motivo, el servicio puede reanudarse 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 encriptadas de dispositivos.

En el diseño, hay tres instancias de GCS:

  • Contribuciones del dispositivo: Son las contribuciones encriptadas del dispositivo que se suben desde los dispositivos.
  • Modelos: Planes de entrenamiento, modelos y sus pesos.
  • Gradientes agregados: Son los gradientes agregados que produce el agregador.

Los datos almacenados en GCS son de uno de los siguientes tipos:

  • Datos proporcionados por el desarrollador, como un plan de entrenamiento
  • Datos potencialmente privados porque se derivan de indicadores del usuario (protegidos por encriptación respaldada por varios coordinadores), como los gradientes agregados y los gradientes subidos por el dispositivo
  • Datos no privados derivados de los indicadores del usuario, pero posteriores a la aplicación de la privacidad diferencial, como los pesos del modelo

Debes evaluar las ventajas y desventajas entre la coherencia y la disponibilidad, y seleccionar las funciones de disponibilidad y durabilidad 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 hacer copias de seguridad periódicas de los datos en Spanner y GCS. Por ejemplo, puedes usar servicios y ofertas de replicación entre nubes. ODP no proporciona una muestra porque estas configuraciones dependen en gran medida de las necesidades comerciales. El diseño actual tiene en cuenta las posibles necesidades de los desarrolladores en relación con estas replicaciones y copias de seguridad. Como resultado, es compatible con los productos y servicios de replicación y copias de seguridad proporcionados por terceros.