They will be in two separate files?

You can save them in separate files or wrap them in a dictionary like the one I showed (where you remove the calls to state_dict()).

Will they be connected to each other correctly on reloading.

There is no loss of information when you save the whole variable instead of saving the state_dict() only, so I assume that the model and the optimizer will remain “connected” after you reload them (although I’ve never tried it).

And if I want to say create 10 duplicates of this “group” is there a way to do that?

I’m not sure if I understand what you mean with a “duplicate”… Do you mean, for instance, saving a checkpoint of the training after every epoch? You may save each checkpoint file with a different name and that’s it.