docstr: Run evaluation and returns metrics.
  
  The calling script will be responsible for providing a method to compute metrics, as they are task-dependent
  (pass it to the init `compute_metrics` argument).
  
  You can also subclass and override this method to inject custom behavior.
  
  Args:
      eval_dataset (`Dataset`, *optional*):
          Pass a dataset if you wish to override `self.eval_dataset`. If it is an [`~datasets.Dataset`], columns
          not accepted by the `model.forward()` method are automatically removed. It must implement the `__len__`
          method.
      ignore_keys (`List[str]`, *optional*):
          A list of keys in the output of your model (if it is a dictionary) that should be ignored when
          gathering predictions.
      metric_key_prefix (`str`, *optional*, defaults to `"eval"`):
          An optional prefix to be used as the metrics key prefix. For example the metrics "bleu" will be named
          "eval_bleu" if the prefix is `"eval"` (default)
      max_length (`int`, *optional*):
          The maximum target length to use when predicting with the generate method.
      num_beams (`int`, *optional*):
          Number of beams for beam search that will be used when predicting with the generate method. 1 means no
          beam search.
      gen_kwargs:
          Additional `generate` specific kwargs.
  
  Returns:
      A dictionary containing the evaluation loss and the potential metrics computed from the predictions. The
      dictionary also contains the epoch number which comes from the training state.
docstr_tok: ["Run","evaluation","and","returns","metrics",".","The","calling","script","will","be","responsible","for","providing","a","method","to","compute","metrics",",","as","they","are","task-dependent","(","pass","it","to","the","init","`","compute_metrics","`","argument",")",".","You","can","also","subclass","and","override","this","method","to","inject","custom","behavior",".","Args",":","eval_dataset","(","`","Dataset","`",",","*","optional","*",")",":","Pass","a","dataset","if","you","wish","to","override","`","self.eval_dataset","`",".","If","it","is","an","[","`","~datasets.Dataset","`","]",",","columns","not","accepted","by","the","`","model.forward","(",")","`","method","are","automatically","removed",".","It","must","implement","the","`","__len__","`","method",".","ignore_keys","(","`","List","[","str","]","`",",","*","optional","*",")",":","A","list","of","keys","in","the","output","of","your","model","(","if","it","is","a","dictionary",")","that","should","be","ignored","when","gathering","predictions",".","metric_key_prefix","(","`","str","`",",","*","optional","*",",","defaults","to","`","``","eval","''","`",")",":","An","optional","prefix","to","be","used","as","the","metrics","key","prefix",".","For","example","the","metrics","``","bleu","''","will","be","named","``","eval_bleu","''","if","the","prefix","is","`","``","eval","''","`","(","default",")","max_length","(","`","int","`",",","*","optional","*",")",":","The","maximum","target","length","to","use","when","predicting","with","the","generate","method",".","num_beams","(","`","int","`",",","*","optional","*",")",":","Number","of","beams","for","beam","search","that","will","be","used","when","predicting","with","the","generate","method",".","1","means","no","beam","search",".","gen_kwargs",":","Additional","`","generate","`","specific","kwargs",".","Returns",":","A","dictionary","containing","the","evaluation","loss","and","the","potential","metrics","computed","from","the","predictions",".","The","dictionary","also","contains","the","epoch","number","which","comes","from","the","training","state","."]
code: def evaluate(
      self,
      eval_dataset: Optional[Dataset] = None,
      ignore_keys: Optional[List[str]] = None,
      metric_key_prefix: str = "eval",
      **gen_kwargs,
  ) -> Dict[str, float]:
      """
      Run evaluation and returns metrics.
  
      The calling script will be responsible for providing a method to compute metrics, as they are task-dependent
      (pass it to the init `compute_metrics` argument).
  
      You can also subclass and override this method to inject custom behavior.
  
      Args:
          eval_dataset (`Dataset`, *optional*):
              Pass a dataset if you wish to override `self.eval_dataset`. If it is an [`~datasets.Dataset`], columns
              not accepted by the `model.forward()` method are automatically removed. It must implement the `__len__`
              method.
          ignore_keys (`List[str]`, *optional*):
              A list of keys in the output of your model (if it is a dictionary) that should be ignored when
              gathering predictions.
          metric_key_prefix (`str`, *optional*, defaults to `"eval"`):
              An optional prefix to be used as the metrics key prefix. For example the metrics "bleu" will be named
              "eval_bleu" if the prefix is `"eval"` (default)
          max_length (`int`, *optional*):
              The maximum target length to use when predicting with the generate method.
          num_beams (`int`, *optional*):
              Number of beams for beam search that will be used when predicting with the generate method. 1 means no
              beam search.
          gen_kwargs:
              Additional `generate` specific kwargs.
  
      Returns:
          A dictionary containing the evaluation loss and the potential metrics computed from the predictions. The
          dictionary also contains the epoch number which comes from the training state.
      """
  
      gen_kwargs = gen_kwargs.copy()
  
      # Use legacy argument setting if a) the option is not explicitly passed; and b) the argument is set in the
      # training args
      if (
          gen_kwargs.get("max_length") is None
          and gen_kwargs.get("max_new_tokens") is None
          and self.args.generation_max_length is not None
      ):
          gen_kwargs["max_length"] = self.args.generation_max_length
      if (
          gen_kwargs.get("num_beams") is None
          and self.args.generation_num_beams is not None
      ):
          gen_kwargs["num_beams"] = self.args.generation_num_beams
      self._gen_kwargs = gen_kwargs
  
      return super().evaluate(
          eval_dataset,
          ignore_keys=ignore_keys,
          metric_key_prefix=metric_key_prefix,
      )
  
file_path: optimum/optimum/onnxruntime/trainer_seq2seq.py
imports: from typing import Any, Dict, List, Optional, Tuple, Union
  import torch
  from torch import nn
  from torch.utils.data import Dataset
  from transformers.deepspeed import is_deepspeed_zero3_enabled
  from transformers.trainer_utils import PredictionOutput
  from transformers.utils import is_accelerate_available, logging
  from .trainer import ORTTrainer
label_desc: Use image node_id 1 for calling the ORTSeq2SeqTrainer obj's underlying member method code with example usage: obj.evaluate(eval_dataset, ignore_keys, metric_key_prefix) and returns: super