NNue is not trained through self play. It is using SF evaluations as target output data vector during some form of supervised learning. It does not use game but many positions with SF single root searches of moderate depth, as target output data to fit with generalization power (requires validation data, contrary to fishtest optimization, which tests and "train" on games and their outcome, but not as RL self-play scheduling).
I would love to be contradicted with specific link to support that.
Otherwise, for my claim, I point of SF12 Blog, where it is stipulated as above, in very few economic lines. Later, more recently, the blog mentions using also Leela's data, which I understand still as positions not games.
I currently understand that the master NN (if still called that) is still trained using a single SF search on the input position of the input data vector. It is an approximator of SF with either a simple non-NN evaluation (also looking for pointers), or some iteration of the process, where SF includes previous iteration of NNue approximating SF. A sort of feedback loop of self-approximation. But no self-play, other than in fishtest but self is about the name SF, as none of the versions in SF ever play against own clone (unless pointer). SFx vs SFy. Global optimization scheme based pools of dev. instances (with different parameter values).
There are rumors around that describe this (iteration over NNue SL training) as some sort of reinforcement learning (not at all what I think it means in ML). This might explain many propagated rumors using self-play and games, as if it was using Deep RL as in A0 or LC0. I don't mind being contradicted with new information.
Some old text from nodchip repository is still using such wording. Ai chat bot might still regurgitate the confusion. I think SF should get their explanation reviewed for that important chess interpretation question.