class_docstr: ## Evaluation Harness Adapter
  
  This is based on the [adapter from EleutherAI/gpt-neox](https://github.com/EleutherAI/gpt-neox/blob/main/eval_tasks/eval_adapter.py)
docstr: ### Run given evaluations
docstr_tok: ["#","#","#","Run","given","evaluations"]
code: def run_eval(self, name: str, eval_tasks: List[str]):
      """
      ### Run given evaluations
      """
  
      # Run [EleutherAI/lm-evaluation-harness](https://github.com/EleutherAI/lm-evaluation-harness) evaluator
      results = evaluator.evaluate(
          lm=self, task_dict=tasks.get_task_dict(eval_tasks)
      )
  
      # Add configs
      results["config"] = {
          "name": name,
      }
  
      #
      return results
  
imports: import math
  from typing import List
  import torch
  import torch.nn.functional
  from lm_eval import tasks, evaluator, utils
  from lm_eval.base import BaseLM
  from tokenizers import Tokenizer
  from torch import nn
  from tqdm import tqdm
  from labml import monit
  from labml_nn.neox.tokenizer import get_tokenizer
label_desc: Use image node_id 14 for calling the EvalHarnessAdapter obj's underlying member method code with example usage: obj.run_eval(name, eval_tasks) and returns: results