Federated Averaging in Tensorflow Federated

I am a newbie in federated learning and just getting to know the TensorFlow Federated TFF framework. I have some questions in my mind I would be really appreciated it if anybody can clarify them:

  1. Does the Federated Averaging algorithm the only aggregation algorithm supported in TFF? and how it differs from Federated Stochastic Gradient Descent?
  2. Dose Federated Averaging require each client to be trained with the Neural Networks? or it is possible for local data to be trained with any machine learning algorithm?
  3. I have big data, and I am planning to partition my data into smaller datasets and simulated each part as one client? does this work in TFF? and does it consider horizontal or vertical federated learning?

Thanks in advance