Unverified Commit 1ba35e62 authored by Lintang Sutawika's avatar Lintang Sutawika Committed by GitHub
Browse files

Logging (#2203)



* changed source of eval_logger

* allow eval_logger to be set from args

* removed verbosity arg from non-main methods

* fix logging

* pre-commit

* set verbosity in eval logger

* replace utils.eval_logger

* fix logging in main

* add logging to docs

* add logging message

* nit

* add logging to docs

* refactor setup_logging to utils

---------
Co-authored-by: default avatarBaber <baber@hey.com>
parent 358adaf7
import logging
import os
from functools import cached_property
from operator import itemgetter
......@@ -6,7 +7,9 @@ from typing import Any, Dict, List, Optional, Tuple, Union
from lm_eval.api.registry import register_model
from lm_eval.models.api_models import TemplateAPI
from lm_eval.models.utils import handle_stop_sequences
from lm_eval.utils import eval_logger
eval_logger = logging.getLogger(__name__)
@register_model("local-completions")
......
import logging
from importlib.util import find_spec
from lm_eval import utils
from lm_eval.api.registry import register_model
from lm_eval.models.huggingface import HFLM
from lm_eval.models.utils import get_dtype
eval_logger = utils.eval_logger
eval_logger = logging.getLogger(__name__)
@register_model("ipex")
......
import json
import logging
from importlib.util import find_spec
from pathlib import Path
from lm_eval import utils
from lm_eval.api.registry import register_model
from lm_eval.models.huggingface import HFLM
eval_logger = utils.eval_logger
eval_logger = logging.getLogger(__name__)
@register_model("openvino")
......
......@@ -2,6 +2,7 @@ import collections
import fnmatch
import gc
import itertools
import logging
import time
from functools import wraps
from typing import (
......@@ -22,7 +23,8 @@ from typing import (
import torch
import transformers
from lm_eval.utils import eval_logger
eval_logger = logging.getLogger(__name__)
if TYPE_CHECKING:
......
import copy
import logging
from importlib.metadata import version
from importlib.util import find_spec
from typing import TYPE_CHECKING, Dict, List, Literal, Optional, Tuple, Union
......@@ -17,7 +18,6 @@ from lm_eval.models.utils import (
undistribute,
)
from lm_eval.utils import (
eval_logger,
get_rolling_token_windows,
make_disjoint_window,
)
......@@ -34,7 +34,7 @@ except ModuleNotFoundError:
if TYPE_CHECKING:
pass
eval_logger = eval_logger
eval_logger = logging.getLogger(__name__)
@register_model("vllm")
......
import copy
import logging
from typing import Dict, List, Optional
import transformers
......@@ -14,7 +15,9 @@ from lm_eval.models.utils import (
undistribute,
)
from lm_eval.models.vllm_causallms import VLLM
from lm_eval.utils import eval_logger
eval_logger = logging.getLogger(__name__)
try:
......
import ast
import logging
import os
from typing import Dict
from lm_eval import utils
from lm_eval.utils import eval_logger
eval_logger = logging.getLogger(__name__)
# Prompt library.
# Stores prompts in a dictionary indexed by 2 levels:
# prompt category name, and prompt name.
......
......@@ -13,6 +13,8 @@ from lm_eval.evaluator_utils import get_subtask_list
GROUP_ONLY_KEYS = list(GroupConfig().to_dict().keys())
eval_logger = logging.getLogger(__name__)
class TaskManager:
"""TaskManager indexes all tasks from the default `lm_eval/tasks/`
......@@ -22,14 +24,13 @@ class TaskManager:
def __init__(
self,
verbosity="INFO",
verbosity: Optional[str] = None,
include_path: Optional[Union[str, List]] = None,
include_defaults: bool = True,
) -> None:
self.verbosity = verbosity
if verbosity is not None:
utils.setup_logging(verbosity)
self.include_path = include_path
self.logger = utils.eval_logger
self.logger.setLevel(getattr(logging, f"{verbosity}"))
self._task_index = self.initialize_tasks(
include_path=include_path, include_defaults=include_defaults
......@@ -456,7 +457,7 @@ class TaskManager:
"yaml_path": -1,
}
elif tasks_and_groups[tag]["type"] != "tag":
self.logger.info(
eval_logger.info(
f"The tag '{tag}' is already registered as a group, this tag will not be registered. "
"This may affect tasks you want to call."
)
......@@ -519,7 +520,7 @@ class TaskManager:
config, task, tasks_and_groups, print_info
)
else:
self.logger.debug(f"File {f} in {root} could not be loaded")
eval_logger.debug(f"File {f} in {root} could not be loaded")
return tasks_and_groups
......
......@@ -10,7 +10,7 @@ import yaml
from tqdm import tqdm
eval_logger = logging.getLogger("lm-eval")
eval_logger = logging.getLogger(__name__)
SUBJECTS = {
......
......@@ -11,7 +11,7 @@ import yaml
from tqdm import tqdm
eval_logger = logging.getLogger("lm-eval")
eval_logger = logging.getLogger(__name__)
SUBJECTS = {
......
......@@ -10,7 +10,7 @@ import yaml
from tqdm import tqdm
eval_logger = logging.getLogger("lm-eval")
eval_logger = logging.getLogger(__name__)
SUBJECTS = {
......
......@@ -17,13 +17,6 @@ import yaml
from jinja2 import BaseLoader, Environment, StrictUndefined
logging.basicConfig(
format="%(asctime)s,%(msecs)03d %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s",
datefmt="%Y-%m-%d:%H:%M:%S",
level=logging.INFO,
)
eval_logger = logging.getLogger("lm-eval")
SPACING = " " * 47
HIGHER_IS_BETTER_SYMBOLS = {
......@@ -32,6 +25,33 @@ HIGHER_IS_BETTER_SYMBOLS = {
}
def setup_logging(verbosity=logging.INFO):
# Configure the root logger
log_level = os.environ.get("LOGLEVEL", verbosity) or verbosity
level_map = {
"DEBUG": logging.DEBUG,
"INFO": logging.INFO,
"WARNING": logging.WARNING,
"ERROR": logging.ERROR,
"CRITICAL": logging.CRITICAL,
}
log_level = level_map.get(str(log_level).upper(), logging.INFO)
if not logging.root.handlers:
logging.basicConfig(
format="%(asctime)s,%(msecs)03d %(levelname)-8s [%(name)s:%(lineno)d] %(message)s",
datefmt="%Y-%m-%d:%H:%M:%S",
level=log_level,
)
if log_level == logging.DEBUG:
third_party_loggers = ["urllib3", "filelock", "fsspec"]
for logger_name in third_party_loggers:
logging.getLogger(logger_name).setLevel(logging.INFO)
else:
logging.getLogger().setLevel(log_level)
def hash_string(string: str) -> str:
return hashlib.sha256(string.encode("utf-8")).hexdigest()
......
import argparse
import logging
import os
import yaml
from promptsource.templates import DatasetTemplates
from tqdm import tqdm
# from lm_eval.api.registry import ALL_TASKS
from lm_eval.logger import eval_logger
eval_logger = logging.getLogger(__name__)
# from lm_eval.tasks import include_task_folder
......
......@@ -10,7 +10,6 @@ import os
from pytablewriter import LatexTableWriter, MarkdownTableWriter
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
......
......@@ -11,7 +11,6 @@ from pytablewriter import MarkdownTableWriter
from lm_eval import tasks
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
......
import argparse
import logging
import os
from typing import Dict, List, Tuple
......@@ -8,11 +9,11 @@ import torch
import lm_eval.evaluator
import lm_eval.models.utils
from lm_eval import tasks, utils
from lm_eval import tasks
os.environ["TOKENIZERS_PARALLELISM"] = "false"
eval_logger = utils.eval_logger
eval_logger = logging.getLogger(__name__)
def memory_stats():
......
......@@ -4,6 +4,7 @@ Usage:
"""
import argparse
import logging
import os
from typing import List
......@@ -14,7 +15,9 @@ from transformers import (
from lm_eval import simple_evaluate
from lm_eval.evaluator import request_caching_arg_to_dict
from lm_eval.utils import eval_logger
eval_logger = logging.getLogger(__name__)
MODULE_DIR = os.path.dirname(os.path.realpath(__file__))
......
import argparse
import logging
import os
import random
......@@ -7,7 +8,10 @@ import numpy as np
from lm_eval import tasks
from lm_eval.evaluator_utils import get_task_list
from lm_eval.tasks import TaskManager
from lm_eval.utils import eval_logger, join_iters
from lm_eval.utils import join_iters
eval_logger = logging.getLogger(__name__)
EXAMPLE_DIVIDER = "!!@@##@@!! -- Example {i}\n"
......
import argparse
import json
import logging
import os
import re
from pathlib import Path
......@@ -8,13 +9,15 @@ import pandas as pd
from zeno_client import ZenoClient, ZenoMetric
from lm_eval.utils import (
eval_logger,
get_latest_filename,
get_results_filenames,
get_sample_results_filenames,
)
eval_logger = logging.getLogger(__name__)
def parse_args():
parser = argparse.ArgumentParser(
description="Upload your data to the Zeno AI evaluation platform to visualize results. This requires a ZENO_API_KEY in your environment variables. The eleuther harness must be run with log_samples=True and an output_path set for data to be written to disk."
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment