Estos tutoriales basados en colaboración lo guían a través de los principales conceptos y API de TFF mediante ejemplos prácticos. La documentación de referencia se puede encontrar en las guías TFF .
Primeros pasos con el aprendizaje federado
- El aprendizaje federado para la clasificación de imágenes presenta las partes clave de la API de aprendizaje federado (FL) y demuestra cómo usar TFF para simular el aprendizaje federado en datos similares a MNIST federados.
- El aprendizaje federado para la generación de texto demuestra aún más cómo usar la API FL de TFF para refinar un modelo preentrenado serializado para una tarea de modelado de lenguaje.
- Ajustar las agregaciones recomendadas para el aprendizaje muestra cómo los cálculos FL básicos en
tff.learning
se pueden combinar con rutinas de agregación especializadas que ofrecen solidez, privacidad diferencial, compresión y más. - La reconstrucción federada para la factorización de matrices introduce el aprendizaje federado parcialmente local, donde algunos parámetros del cliente nunca se agregan en el servidor. El tutorial demuestra cómo usar la API de aprendizaje federado para entrenar un modelo de factorización de matriz parcialmente local.
Primeros pasos con el análisis federado
- Private Heavy Hitters muestra cómo usar
tff.analytics.heavy_hitters
para crear un cálculo de análisis federado para descubrir los grandes bateadores privados.
Escribir cálculos federados personalizados
- Creación de su propio algoritmo de aprendizaje federado muestra cómo utilizar las API principales de TFF para implementar algoritmos de aprendizaje federado, utilizando el promedio federado como ejemplo.
- La composición de algoritmos de aprendizaje muestra cómo usar la API de aprendizaje de TFF para implementar fácilmente nuevos algoritmos de aprendizaje federados, especialmente variantes del promedio federado.
- El algoritmo federado personalizado con optimizadores TFF muestra cómo usar
tff.learning.optimizers
para crear un proceso iterativo personalizado para el promedio federado. - Algoritmos federados personalizados, Parte 1: Introducción al Núcleo federado y Parte 2: Implementación del promedio federado presentan los conceptos clave y las interfaces que ofrece la API del Núcleo federado (FC API).
- La implementación de agregaciones personalizadas explica los principios de diseño detrás del módulo
tff.aggregators
y las mejores prácticas para implementar agregaciones personalizadas de valores de clientes a servidores.
Mejores prácticas de simulación
La simulación TFF con aceleradores (GPU) muestra cómo el tiempo de ejecución de alto rendimiento de TFF se puede utilizar con GPU.
Trabajar con ClientData brinda las mejores prácticas para integrar los conjuntos de datos de simulación basados en ClientData de TFF en los cálculos de TFF.
Tutoriales intermedios y avanzados
La generación de ruido aleatorio señala algunas sutilezas con el uso de la aleatoriedad en los cálculos descentralizados, y propone mejores prácticas y patrones recomendados.
Enviar diferentes datos a clientes particulares con tff.federated_select presenta el operador
tff.federated_select
y brinda un ejemplo simple de un algoritmo federado personalizado que envía diferentes datos a diferentes clientes.El aprendizaje federado de modelos grandes eficiente para el cliente a través de federated_select y agregación dispersa muestra cómo se puede usar TFF para entrenar un modelo muy grande en el que cada dispositivo cliente solo descarga y actualiza una pequeña parte del modelo, usando
tff.federated_select
y agregación dispersa.TFF for Federated Learning Research: Model and Update Compression demuestra cómo se pueden usar en TFF las agregaciones personalizadas que se basan en la API tensor_encoding .
El aprendizaje federado con privacidad diferencial en TFF demuestra cómo usar TFF para entrenar modelos con privacidad diferencial a nivel de usuario.
La compatibilidad con JAX en TFF muestra cómo se pueden usar los cálculos JAX en TFF, lo que demuestra cómo TFF está diseñado para poder interoperar con otros marcos de ML de frontend y backend.