class_docstr: [`LogitsProcessor`] enforcing an exponential penalty on repeated sequences.
  This version allows for a separate value for each sample and runs inplace when possible.
  It doesn't validate inputs.
  
  Args:
      repetition_penalty (`List[float]`):
          The parameter for repetition penalty. 1.0 means no penalty. See [this
          paper](https://arxiv.org/pdf/1909.05858.pdf) for more details.
code: def filter(self, indices):
      self.penalty = [self.penalty[i] for i in indices]
      if any([x != 1.0 for x in self.penalty]):
          self.penalty_tensor = self.penalty_tensor[indices]
          return self
      return None
  
imports: import math
  import torch
  from functools import lru_cache
  from typing import Optional, List, Dict, Union
  from transformers import LogitsWarper, LogitsProcessor, TemperatureLogitsWarper, TopKLogitsWarper, TopPLogitsWarper, TypicalLogitsWarper
label_desc: Use image node_id 3 for calling the HeterogeneousRepetitionPenaltyLogitsProcessor obj's underlying member method code with example usage: obj.filter(indices) and returns: None, self