class_docstr: A `Metric` takes the results of execution and produces `Stat`s for a
  scenario.
  
  Note: `Metric` actually right now is a bit of misnomer because it produces many
  `Stat`s, that might be distinct but are computed together.  Eventually we
  might move to a world where there is one (or very few metrics that are domain-independent).
class_docstr_tok: ["A","`","Metric","`","takes","the","results","of","execution","and","produces","`","Stat","`","s","for","a","scenario",".","Note",":","`","Metric","`","actually","right","now","is","a","bit","of","misnomer","because","it","produces","many","`","Stat","`","s",",","that","might","be","distinct","but","are","computed","together",".","Eventually","we","might","move","to","a","world","where","there","is","one","(","or","very","few","metrics","that","are","domain-independent",")","."]
docstr: Evaluate all request states directly. Use only if nothing else works.  Override me!
docstr_tok: ["Evaluate","all","request","states","directly",".","Use","only","if","nothing","else","works",".","Override","me","!"]
code: def evaluate_instances(
      self, request_states: List[RequestState]
  ) -> List[Stat]:
      """Evaluate all request states directly. Use only if nothing else works.  Override me!"""
      return []
  
imports: from abc import ABC
  from dataclasses import dataclass, replace
  from collections import defaultdict
  from typing import List, Dict, Tuple, Optional, Iterable, Set
  from helm.common.object_spec import ObjectSpec, create_object
  from helm.common.general import singleton, parallel_map
  from helm.benchmark.augmentations.perturbation_description import PerturbationDescription, PERTURBATION_ORIGINAL, PERTURBATION_WORST
  from helm.benchmark.adaptation.adapters.adapter_factory import ADAPT_LANGUAGE_MODELING
  from helm.benchmark.adaptation.scenario_state import ScenarioState
  from helm.benchmark.adaptation.request_state import RequestState
  from helm.benchmark.adaptation.adapter_spec import AdapterSpec
  from helm.benchmark.scenarios.scenario import Instance
  from .metric_name import MetricName, MetricContext
  from .metric_service import MetricService
  from .statistic import Stat, merge_stat
label_desc: Use image node_id 4 for calling the Metric obj's underlying member method code with example usage: obj.evaluate_instances(request_states) and returns: list