Skip to content

Commit bba524d

Browse files
authored
Revert "Speed up GenAi-Perf's help call (#669)" (#670)
1 parent f93f012 commit bba524d

File tree

2 files changed

+21
-46
lines changed

2 files changed

+21
-46
lines changed

src/c++/perf_analyzer/genai-perf/genai_perf/main.py

Lines changed: 11 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -30,33 +30,17 @@
3030
import traceback
3131
from argparse import Namespace
3232
from pathlib import Path
33-
from typing import TYPE_CHECKING
3433

3534
import genai_perf.logging as logging
35+
from genai_perf import parser
36+
from genai_perf.constants import DEFAULT_PARQUET_FILE
3637
from genai_perf.exceptions import GenAIPerfException
37-
38-
# Import heavy modules to make type checker happy
39-
if TYPE_CHECKING:
40-
from genai_perf import parser
41-
from genai_perf.constants import DEFAULT_PARQUET_FILE
42-
from genai_perf.export_data.json_exporter import JsonExporter
43-
from genai_perf.llm_inputs.llm_inputs import LlmInputs
44-
from genai_perf.llm_metrics import LLMProfileDataParser
45-
from genai_perf.plots.plot_config_parser import PlotConfigParser
46-
from genai_perf.plots.plot_manager import PlotManager
47-
from genai_perf.tokenizer import Tokenizer, get_tokenizer
48-
49-
50-
def import_heavy_modules():
51-
global parser, DEFAULT_PARQUET_FILE, JsonExporter, LlmInputs, LLMProfileDataParser, PlotConfigParser, PlotManager, get_tokenizer
52-
from genai_perf import parser
53-
from genai_perf.constants import DEFAULT_PARQUET_FILE
54-
from genai_perf.export_data.json_exporter import JsonExporter
55-
from genai_perf.llm_inputs.llm_inputs import LlmInputs
56-
from genai_perf.llm_metrics import LLMProfileDataParser
57-
from genai_perf.plots.plot_config_parser import PlotConfigParser
58-
from genai_perf.plots.plot_manager import PlotManager
59-
from genai_perf.tokenizer import get_tokenizer
38+
from genai_perf.export_data.json_exporter import JsonExporter
39+
from genai_perf.llm_inputs.llm_inputs import LlmInputs
40+
from genai_perf.llm_metrics import LLMProfileDataParser
41+
from genai_perf.plots.plot_config_parser import PlotConfigParser
42+
from genai_perf.plots.plot_manager import PlotManager
43+
from genai_perf.tokenizer import Tokenizer, get_tokenizer
6044

6145

6246
def create_artifacts_dirs(args: Namespace) -> None:
@@ -66,9 +50,8 @@ def create_artifacts_dirs(args: Namespace) -> None:
6650
os.makedirs(plot_dir, exist_ok=True)
6751

6852

69-
def generate_inputs(args: Namespace, tokenizer: "Tokenizer") -> None:
53+
def generate_inputs(args: Namespace, tokenizer: Tokenizer) -> None:
7054
# TODO (TMA-1759): review if add_model_name is always true
71-
import_heavy_modules()
7255
input_filename = Path(args.input_file.name) if args.input_file else None
7356
add_model_name = True
7457
try:
@@ -99,17 +82,14 @@ def generate_inputs(args: Namespace, tokenizer: "Tokenizer") -> None:
9982
)
10083

10184

102-
def calculate_metrics(
103-
args: Namespace, tokenizer: "Tokenizer"
104-
) -> "LLMProfileDataParser":
85+
def calculate_metrics(args: Namespace, tokenizer: Tokenizer) -> LLMProfileDataParser:
10586
return LLMProfileDataParser(
10687
filename=args.profile_export_file,
10788
tokenizer=tokenizer,
10889
)
10990

11091

111-
def report_output(data_parser: "LLMProfileDataParser", args: Namespace) -> None:
112-
import_heavy_modules()
92+
def report_output(data_parser: LLMProfileDataParser, args: Namespace) -> None:
11393
if args.concurrency:
11494
infer_mode = "concurrency"
11595
load_level = f"{args.concurrency}"
@@ -152,12 +132,10 @@ def run():
152132
try:
153133
# TMA-1900: refactor CLI handler
154134
logging.init_logging()
155-
import_heavy_modules()
156135
args, extra_args = parser.parse_args()
157136
if args.subcommand == "compare":
158137
args.func(args)
159138
else:
160-
import_heavy_modules()
161139
create_artifacts_dirs(args)
162140
tokenizer = get_tokenizer(args.tokenizer)
163141
generate_inputs(args, tokenizer)
@@ -169,10 +147,6 @@ def run():
169147

170148

171149
def main():
172-
# Check if help is requested early
173-
if any(arg in sys.argv for arg in ("--help", "-h")):
174-
return 0
175-
176150
# Interactive use will catch exceptions and log formatted errors rather than
177151
# tracebacks.
178152
try:

src/c++/perf_analyzer/genai-perf/genai_perf/tokenizer.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,21 @@
1414

1515
import contextlib
1616
import io
17-
from typing import TYPE_CHECKING, Union
17+
from typing import Union
1818

1919
from genai_perf.exceptions import GenAIPerfException
2020

21-
Tokenizer = Union["PreTrainedTokenizer", "PreTrainedTokenizerFast"]
22-
DEFAULT_TOKENIZER = "hf-internal-testing/llama-tokenizer"
21+
# Silence tokenizer warning on import
22+
with contextlib.redirect_stdout(io.StringIO()) as stdout, contextlib.redirect_stderr(
23+
io.StringIO()
24+
) as stderr:
25+
from transformers import AutoTokenizer, PreTrainedTokenizer, PreTrainedTokenizerFast
26+
from transformers import logging as token_logger
2327

28+
token_logger.set_verbosity_error()
2429

25-
if TYPE_CHECKING:
26-
from transformers import PreTrainedTokenizer, PreTrainedTokenizerFast
30+
Tokenizer = Union[PreTrainedTokenizer, PreTrainedTokenizerFast]
31+
DEFAULT_TOKENIZER = "hf-internal-testing/llama-tokenizer"
2732

2833

2934
def get_tokenizer(
@@ -37,10 +42,6 @@ def get_tokenizer(
3742
with contextlib.redirect_stdout(
3843
io.StringIO()
3944
) as stdout, contextlib.redirect_stderr(io.StringIO()) as stderr:
40-
from transformers import AutoTokenizer
41-
from transformers import logging as token_logger
42-
43-
token_logger.set_verbosity_error()
4445
tokenizer = AutoTokenizer.from_pretrained(tokenizer_model)
4546
except Exception as e:
4647
raise GenAIPerfException(e)

0 commit comments

Comments
 (0)