Are there tools to help clean a large dataset so that it only contains faces?
I don't know of a tool but you could write a simple script to detect faces and crop it. It's quite simple with the Haar cascade in openCV to detect faces and use inbuilt functions to crop your image based on the size of the detected face.

Hope that helps !