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. El documento proporciona una descripción general de alto nivel de la arquitectura y, luego, 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 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).

La capacitación 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 en 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 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ó 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 arquitectura de los procedimientos de certificación remota (RATS) de la RFC 9334 del NIST, a los coordinadores. Si la certificación se realiza 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 de modelos.

El servidor de FC se puede implementar en cualquier servicio en la nube que admita TEE y funciones de seguridad relacionadas. Estamos evaluando los proveedores de servicios en la nube pública y las tecnologías subyacentes, pero, por ahora, en la siguiente sección, se presenta una implementación de ejemplo 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 Un servicio web basado en HTTPS en el que los dispositivos cliente se registran periódicamente para obtener tareas de capacitación y notificar el estado de la capacitación.
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 que envían los dispositivos cliente y realizar la agregación en varios dispositivos.
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 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

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 rondas e iteraciones de entrenamiento.

Base de datos de tareas

Una base de datos compatible con ANSI SQL que almacena la información de tareas, iteraciones y tareas asignadas. 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 corresponda.

La base de datos de tareas 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.
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 Confidential Space. La comunicación entre las tareas 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.
  • 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 para 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 de varias partes. Solo el código fuente abierto de la ODP certificado correctamente y que se ejecuta en versiones legítimas de Confidential Space habilitadas para la computación confidencial puede acceder a las claves de desencriptación.

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 una instancia de 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. Para ello, se escala la capacidad dentro del espacio confidencial o dentro del clúster de GKE con mecanismos de escalamiento estándar. De manera efectiva, se puede aumentar la capacidad de procesamiento agregando 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 recuperación ante desastres con almacenamiento replicado controla la resiliencia de un servidor FC. 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 reanude 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 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. No dudes en usar cualquiera de las funciones de recuperación ante desastres 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 encriptados que se suben desde dispositivos.
  • Modelos: planes de entrenamiento, modelos y sus pesos.
  • Gradientes agregados: Son los gradientes agregados que produce el agregador.

Los datos almacenados en GCS pueden ser 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 gradientes subidos por el dispositivo y gradientes agregados
  • 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 la coherencia y la disponibilidad, y seleccionar las funciones de disponibilidad y durabilidad de los 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 crear copias de seguridad de los datos de forma periódica 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 posibles necesidades de los desarrolladores para realizar esas réplicas y copias de seguridad. Como resultado, es compatible con los productos y servicios de replicación y copia de seguridad proporcionados por terceros.