code: def set_num_special_tokens(self, num_special_tokens):
          " Update input embeddings with new embedding matrice if needed "
          if self.config.n_special == num_special_tokens:
              return
          # Update config
          self.config.n_special = num_special_tokens
          # Build new embeddings and initialize all new embeddings (in particular the special tokens)
          old_embed = self.tokens_embed
          self.tokens_embed = nn.Embedding(self.config.total_tokens_embeddings, self.config.n_embd)
          self.tokens_embed.to(old_embed.weight.device)
          self.init_weights(self.tokens_embed)
          # Copy word embeddings from the previous weights
          self.tokens_embed.weight.data[:self.config.vocab_size, :] = old_embed.weight.data[:self.config.vocab_size, :f set_num_special_tokens(self, num_special_tokens):
          " Update input embeddings with new embedding matrice if needed "
          if self.config.n_special == num_special_tokens:
              return
          # Update config
          self.config.n_special = num_special_tokens
          # Build new embeddings and initialize all new embeddings (in particular the special tokens)
          old_embed = self.tokens_embed
          self.tokens_embed = nn.Embedding(self.config.total_tokens_embeddings, self.config.n_embd)
          self.tokens_embed.to(old_embed.weight.device)
          self.init_weights(self.tokens_embed)
          # Copy word embeddings from the previous weights
          self.tokens_embed.weight.data[:self.config.vocab_size, :] = old_embed.weight.data[:self.config.vocab_size, :]
docs: Update input embeddings with new embedding matrice if needed