docstr: Shift input ids one token to the right, and pad with start_token_id
code: def shift_tokens_right(self, input_ids, start_token_id=None):
      """Shift input ids one token to the right, and pad with start_token_id"""
      if start_token_id is None:
          start_token_id = self.config.decoder_start_token_id
      shifted_input_ids = input_ids.new_zeros(input_ids.shape)
      shifted_input_ids[:, 1:] = input_ids[:, :-1].clone()
      shifted_input_ids[:, 0] = start_token_id
      return shifted_input_ids
  
imports: import copy
  from dataclasses import dataclass
  from typing import Callable, List, Optional, Tuple, Union
  import torch
  from torch import nn
  from ...configuration_utils import PretrainedConfig
  from ...generation import BeamSearchScorer, GenerationConfig, LogitsProcessorList, StoppingCriteriaList
  from ...modeling_outputs import ModelOutput
  from ...modeling_utils import PreTrainedModel
  from ...utils import add_start_docstrings_to_model_forward, logging, replace_return_docstrings
  from .configuration_rag import RagConfig
  from .retrieval_rag import RagRetriever
label_desc: Use image node_id 15 for calling the RagTokenForGeneration obj's underlying member method code with example usage: obj.shift_tokens_right(input_ids, start_token_id) and returns: shifted_input_ids