Different Trainers, when to use which?

There’s a few *Trainer objects available from transformers, trl and setfit.

Other than the standard answer of “it depends on the task and which library you want to use”, what is the best practice or general guidelines when choosing which *Trainer object to use to train/tune our models?

Together with the *Trainer object, sometimes we see suggestions to use *TrainingArguments or the vanilla TrainingArguments.

For reference, we have: