Skip to content

Commit cc748e9

Browse files
authored
Merge pull request EvolvingLMMs-Lab#125 from EvolvingLMMs-Lab/dev/interleave
[Model] aligned llava-interleave model results on video tasks
2 parents 7d4d8af + a7342ac commit cc748e9

File tree

111 files changed

+1054
-888
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

111 files changed

+1054
-888
lines changed

lmms_eval/__main__.py

Lines changed: 6 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
import os
22
import yaml
33
import sys
4-
import copy
54
import json
6-
import logging
5+
76
import traceback
87
import argparse
9-
import torch
108
import numpy as np
119
import datetime
1210

@@ -25,10 +23,7 @@
2523
from lmms_eval.tasks import initialize_tasks, include_path, get_task_dict
2624
from lmms_eval.api.registry import ALL_TASKS
2725
from lmms_eval.logging_utils import WandbLogger
28-
from lmms_eval.utils import PathFormatter
29-
30-
31-
eval_logger = logging.getLogger("lmms-eval")
26+
from loguru import logger as eval_logger
3227

3328

3429
def _handle_non_serializable(o):
@@ -166,9 +161,10 @@ def cli_evaluate(args: Union[argparse.Namespace, None] = None) -> None:
166161
print("└───────────────────────────────────────────────────────────────────────────────┘")
167162
sys.exit(1)
168163

169-
set_loggers(args)
170-
eval_logger = logging.getLogger("lmms-eval")
171-
eval_logger.setLevel(getattr(logging, f"{args.verbosity}"))
164+
# reset logger
165+
eval_logger.remove()
166+
eval_logger.add(sys.stdout, colorize=True, level=args.verbosity)
167+
eval_logger.add(sys.stderr, level=args.verbosity)
172168
eval_logger.info(f"Verbosity set to {args.verbosity}")
173169
os.environ["TOKENIZERS_PARALLELISM"] = "false"
174170

@@ -228,11 +224,6 @@ def cli_evaluate(args: Union[argparse.Namespace, None] = None) -> None:
228224

229225

230226
def cli_evaluate_single(args: Union[argparse.Namespace, None] = None) -> None:
231-
eval_logger = logging.getLogger("lmms-eval")
232-
eval_logger.setLevel(getattr(logging, f"{args.verbosity}"))
233-
eval_logger.info(f"Verbosity set to {args.verbosity}")
234-
os.environ["TOKENIZERS_PARALLELISM"] = "false"
235-
236227
initialize_tasks(args.verbosity)
237228

238229
if args.predict_only:
@@ -350,13 +341,5 @@ def print_results(args, results):
350341
print(evaluator.make_table(results, "groups"))
351342

352343

353-
def set_loggers(args):
354-
eval_logger = logging.getLogger("lmms-eval")
355-
ch = logging.StreamHandler()
356-
formatter = PathFormatter("%(asctime)s [%(pathname)s:%(lineno)d] %(levelname)s %(message)s", "%m-%d %H:%M:%S", timezone=args.timezone)
357-
ch.setFormatter(formatter)
358-
eval_logger.addHandler(ch)
359-
360-
361344
if __name__ == "__main__":
362345
cli_evaluate()

lmms_eval/api/metrics.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@
99
import torch
1010

1111
from lmms_eval.api.registry import register_metric, register_aggregation
12-
13-
import logging
14-
15-
eval_logger = logging.getLogger("lmms-eval")
12+
from loguru import logger as eval_logger
1613

1714

1815
# Register Aggregations First

lmms_eval/api/model.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
from lmms_eval.api.instance import Instance
99
from tqdm import tqdm
1010
from lmms_eval import utils
11-
import logging
1211

13-
eval_logger = logging.getLogger("lmms-eval")
12+
13+
from loguru import logger as eval_logger
1414

1515
T = TypeVar("T", bound="lmms")
1616

lmms_eval/api/registry.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
from lmms_eval.api.model import lmms
22

33
from typing import Callable, Dict
4-
import logging
54
import evaluate as hf_evaluate
65

7-
eval_logger = logging.getLogger("lmms-eval")
6+
from loguru import logger as eval_logger
87

98
MODEL_REGISTRY = {}
109

lmms_eval/api/task.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import ast
33
import itertools
44
import json
5-
import logging
5+
66
import os
77
import random
88
import re
@@ -37,7 +37,7 @@
3737
)
3838
from lmms_eval.filters import build_filter_ensemble
3939

40-
eval_logger = logging.getLogger("lmms-eval")
40+
from loguru import logger as eval_logger
4141

4242
# HuggingfaceM4/NoCaps contains truncated image in test split
4343
# Include this inside code block to avoid error
@@ -789,17 +789,17 @@ def unzip_video_data(zip_file):
789789

790790
def untar_video_data(tar_file):
791791
import tarfile
792+
792793
with tarfile.open(tar_file, "r") as tar_ref:
793794
tar_ref.extractall(cache_dir)
794795
eval_logger.info(f"Extracted all files from {tar_file} to {cache_dir}")
795796

796-
797-
798797
def concat_tar_parts(tar_parts, output_tar):
799-
with open(output_tar, 'wb') as out_tar:
798+
with open(output_tar, "wb") as out_tar:
800799
from tqdm import tqdm
800+
801801
for part in tqdm(sorted(tar_parts)):
802-
with open(part, 'rb') as part_file:
802+
with open(part, "rb") as part_file:
803803
out_tar.write(part_file.read())
804804
eval_logger.info(f"Concatenated parts {tar_parts} into {output_tar}")
805805

@@ -811,15 +811,14 @@ def concat_tar_parts(tar_parts, output_tar):
811811
# Concatenate and extract tar files if needed
812812
if force_unzip or (not os.path.exists(cache_dir) and len(tar_files) > 0):
813813
tar_parts_dict = {}
814-
814+
815815
# Group tar parts together
816816
for tar_file in tar_files:
817-
base_name = tar_file.split('.tar')[0]
817+
base_name = tar_file.split(".tar")[0]
818818
if base_name not in tar_parts_dict:
819819
tar_parts_dict[base_name] = []
820820
tar_parts_dict[base_name].append(tar_file)
821821

822-
823822
# Concatenate and untar split parts
824823
for base_name, parts in tar_parts_dict.items():
825824
eval_logger.info(f"Extracting following tar files: {parts}")

lmms_eval/evaluator.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from tqdm import tqdm
88

99
import torch
10-
import logging
10+
1111
import numpy as np
1212
from datasets import Image, Sequence
1313

@@ -17,8 +17,6 @@
1717
import lmms_eval.api.metrics
1818
import lmms_eval.api.registry
1919

20-
import re
21-
2220
from lmms_eval.utils import (
2321
positional_deprecated,
2422
run_task_tests,
@@ -28,7 +26,7 @@
2826
simple_parse_args_string,
2927
)
3028

31-
eval_logger = logging.getLogger("lmms-eval")
29+
from loguru import logger as eval_logger
3230

3331

3432
@positional_deprecated

lmms_eval/logging_utils.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Code mostly from: https://github.com/EleutherAI/lm-evaluation-harness/pull/1339, credit to: https://github.com/ayulockin
22
import copy
3-
import logging
3+
44
import re
55
import os
66
import json
@@ -9,13 +9,10 @@
99
import numpy as np
1010
from datetime import datetime
1111
from typing import Any, Dict, List, Literal, Tuple, Union
12-
1312
from packaging.version import Version
14-
1513
from lmms_eval import utils
1614
import tenacity
17-
18-
logger = logging.getLogger(__name__)
15+
from loguru import logger
1916

2017
try:
2118
import wandb

lmms_eval/models/__init__.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
import os
2-
import hf_transfer
1+
from loguru import logger
2+
import sys
33

4-
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1"
4+
logger.remove()
5+
logger.add(sys.stdout, level="WARNING")
56

67
AVAILABLE_MODELS = {
78
"llava": "Llava",
@@ -22,18 +23,18 @@
2223
"idefics2": "Idefics2",
2324
"internvl": "InternVLChat",
2425
"gemini_api": "GeminiAPI",
25-
"gemini_model": "GeminiModel",
2626
"reka": "Reka",
27-
"llava_onevision": "Llava_OneVision",
2827
"from_log": "FromLog",
2928
"mplug_owl_video": "mplug_Owl",
3029
"phi3v": "Phi3v",
3130
"tinyllava": "TinyLlava",
32-
"llava_hf" : "LlavaHf",
31+
"llava_hf": "LlavaHf",
32+
"longva": "LongVA",
3333
}
3434

3535
for model_name, model_class in AVAILABLE_MODELS.items():
3636
try:
3737
exec(f"from .{model_name} import {model_class}")
38-
except ImportError:
38+
except ImportError as e:
39+
# logger.warning(f"Failed to import {model_class} from {model_name}: {e}")
3940
pass

lmms_eval/models/batch_gpt4.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from copy import deepcopy
33
from io import BytesIO
44
import base64
5-
import logging
5+
66
import os
77
import time
88
import json
@@ -20,14 +20,13 @@
2020
from lmms_eval.api.instance import Instance
2121
from lmms_eval.api.model import lmms
2222
from lmms_eval.api.registry import register_model
23-
from lmms_eval import utils
23+
from loguru import logger as eval_logger
2424

2525
# Conditional imports
2626
try:
2727
from decord import VideoReader, cpu
2828
except ImportError:
29-
eval_logger = logging.getLogger("lmms-eval")
30-
eval_logger.info("Decord is not installed. Video input will not be supported.")
29+
eval_logger.warning("Decord is not installed. Video input will not be supported.")
3130

3231
# Constants and global configurations
3332
API_TYPE = os.getenv("API_TYPE", "openai")

lmms_eval/models/claude.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,28 @@
55
import json
66
from typing import List, Tuple, Union
77
from tqdm import tqdm
8-
import requests as url_requests
98
import time
10-
import logging
119

1210
from lmms_eval.api.instance import Instance
1311
from lmms_eval.api.model import lmms
1412
from lmms_eval.api.registry import register_model
15-
from lmms_eval import utils
1613

1714
from accelerate import Accelerator, DistributedType
1815

1916
from PIL import Image
2017

2118
NUM_SECONDS_TO_SLEEP = 5
22-
eval_logger = logging.getLogger("lmms-eval")
19+
20+
from loguru import logger
21+
22+
eval_logger = logger
2323

2424
try:
2525
import anthropic
2626
from decord import VideoReader, cpu
2727
import numpy as np
2828
except Exception as e:
29-
eval_logger.error(f"Error importing claude: {e}")
29+
eval_logger.warning(f"Error importing claude: {e}")
3030

3131
API_URL = os.getenv("ANTHROPIC_API_URL", "https://api.anthropic.com/v1/complete")
3232
API_KEY = os.getenv("ANTHROPIC_API_KEY", "YOUR_API_KEY")

0 commit comments

Comments
 (0)