O TensorFlow Federated pode ser usado em ambientes de produção, por exemplo, em telefones celulares?
Atualmente não. Embora tenhamos projetado o TFF com a implantação em dispositivos reais em mente, neste estágio não fornecemos nenhuma ferramenta para essa finalidade. A versão atual destina-se a usos de experimentação, como expressar novos algoritmos federados ou experimentar aprendizado federado com seus próprios conjuntos de dados, usando o tempo de execução de simulação incluído.
Prevemos que, com o tempo, o ecossistema de código aberto em torno do TFF evoluirá para incluir tempos de execução direcionados a plataformas de implantação física.
Como uso o TFF para experimentos com grandes conjuntos de dados?
O tempo de execução padrão incluído na versão inicial do TFF destina-se apenas a pequenos experimentos, como os descritos em nossos tutoriais, nos quais todos os seus dados (em todos os clientes simulados) cabem simultaneamente na memória em uma única máquina e todo o experimento é executado localmente dentro do notebook colab.
Nosso roteiro futuro de curto prazo inclui um tempo de execução de alto desempenho para experimentos com conjuntos de dados muito grandes e um grande número de clientes.
Como posso garantir que a aleatoriedade no TFF corresponda às minhas expectativas?
Como o TFF tem computação federada incorporada em seu núcleo, o redator do TFF não deve assumir o controle sobre onde e como as sessões do Session
são inseridas ou a run
é chamada nessas sessões. A semântica da aleatoriedade pode depender da entrada e saída das sessões do Session
se as sementes estiverem definidas. Recomendamos usar a aleatoriedade no estilo TensorFlow 2, usando, por exemplo, tf.random.experimental.Generator
partir do TF 1.14. Isso usa um tf.Variable
para gerenciar seu estado interno.
Para ajudar a gerenciar as expectativas, o TFF permite que o TensorFlow serializado tenha sementes de nível operacional definidas, mas não sementes de nível de gráfico. Isso ocorre porque a semântica das sementes de nível operacional deve ser mais clara na configuração do TFF: uma sequência determinística será gerada a cada chamada de uma função envolvida como tf_computation
, e somente dentro dessa invocação as garantias feitas pelo gerador de números pseudoaleatórios serão mantidas . Observe que isso não é exatamente o mesmo que a semântica de chamar um tf.function
no modo ansioso; O TFF efetivamente entra e sai de uma tf.Session
única cada vez que a tf_computation
é invocada, enquanto chamar repetidamente uma função no modo ansioso é análogo a chamar sess.run
no tensor de saída repetidamente dentro da mesma sessão.
Como posso contribuir?
Consulte o README , diretrizes de contribuição e colaborações .
Qual é a relação entre o FedJAX e o TensorFlow Federated?
O TensorFlow Federated (TFF) é uma estrutura completa para aprendizagem e análise federada projetada para facilitar a composição de diferentes algoritmos e recursos e permitir a portabilidade de código em diferentes cenários de simulação e implantação. O TFF fornece um tempo de execução escalável e oferece suporte a muitos algoritmos de privacidade, compactação e otimização por meio de suas APIs padrão. O TFF também oferece suporte a muitos tipos de pesquisa de FL , com uma coleção de exemplos de artigos publicados do Google que aparecem no repositório de pesquisa do google .
Em contraste, o FedJAX é uma biblioteca de simulação leve baseada em Python e JAX que se concentra na facilidade de uso e na prototipagem rápida de algoritmos de aprendizado federado para fins de pesquisa. O TensorFlow Federated e o FedJAX são desenvolvidos como projetos separados, sem expectativa de portabilidade de código.