In trainer, how to get something from model?

I customize Trainer’s compute_loss. Within the 'compute_loss`, I want to get two kinds of things from the model. The first kind is a config value, such as vocab_size. It is always a fixed value. The other kind are parameters, such as embeddings.

I find two models:

  1. self.model. I can get self.model.config.vocab_size and self.model.bert.embedding.word_embeddings.
  2. compute_loss’s arg model. In case of multi-gpu, I can’t access model.config.vocab_size and model.bert.embedding.word_embeddings because model is wrapped by ddp.

So what’s difference between self.model and model? How to get something from my model? Does self.model have up-to-date parameters?