Skip to content

Commit f4c5197

Browse files
sbalandiilya-lavrenoveaidova
authored
Move speculative decoding from streamer to metrics benchmarking approach (openvinotoolkit#1904)
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com> Co-authored-by: Ekaterina Aidova <ekaterina.aidova@intel.com>
1 parent be13a23 commit f4c5197

File tree

3 files changed

+14
-7
lines changed

3 files changed

+14
-7
lines changed

tools/llm_bench/llm_bench_utils/model_utils.py

+9
Original file line numberDiff line numberDiff line change
@@ -320,3 +320,12 @@ def resolve_media_file_path(file_path, prompt_file_path):
320320
if not (file_path.startswith("http://") or file_path.startswith("https://")):
321321
return os.path.join(os.path.dirname(prompt_file_path), file_path.replace("./", ""))
322322
return file_path
323+
324+
325+
def get_version_in_format_to_pars(version):
326+
processed_version = version
327+
if "-" in processed_version:
328+
ov_major_version, dev_info = version.split("-", 1)
329+
commit_id = dev_info.split("-")[0]
330+
processed_version = f"{ov_major_version}-{commit_id}"
331+
return processed_version

tools/llm_bench/llm_bench_utils/ov_utils.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import types
1212
from llm_bench_utils.hook_common import get_bench_hook
1313
from llm_bench_utils.hook_forward import MeanStdPair, RawImGenPerfMetrics
14+
from llm_bench_utils.model_utils import get_version_in_format_to_pars
1415
from llm_bench_utils.config_class import (
1516
OV_MODEL_CLASSES_MAPPING,
1617
TOKENIZE_CLASSES_MAPPING,
@@ -175,6 +176,7 @@ def get_scheduler_config_genai(user_config, config_name="CB config"):
175176
def create_genai_text_gen_model(model_path, device, ov_config, **kwargs):
176177
import openvino_genai
177178
from transformers import AutoTokenizer
179+
from packaging.version import parse
178180

179181
if not (model_path / "openvino_tokenizer.xml").exists() or not (model_path / "openvino_detokenizer.xml").exists():
180182
raise ValueError("OpenVINO Tokenizer model is not found in model directory. Please convert tokenizer using following command:\n"
@@ -190,7 +192,8 @@ def create_genai_text_gen_model(model_path, device, ov_config, **kwargs):
190192
log.info("Continuous Batching mode activated")
191193
ov_config["scheduler_config"] = get_scheduler_config_genai(cb_config)
192194

193-
use_streamer_metrics = not openvino_genai.get_version().startswith("2025.") or draft_model_path
195+
version = get_version_in_format_to_pars(openvino_genai.get_version())
196+
use_streamer_metrics = parse(version) < parse("2025.0.0") or (draft_model_path and parse(version) < parse("2025.1.0"))
194197

195198
if draft_model_path:
196199
if not Path(draft_model_path).exists():

tools/llm_bench/task/image_generation.py

+1-6
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,7 @@ def collects_input_args(image_param, model_name, infer_count=None, height=None,
5656
from openvino import get_version
5757
from packaging.version import parse
5858

59-
version = get_version()
60-
# avoid invalid format
61-
if "-" in version:
62-
ov_major_version, dev_info = version.split("-", 1)
63-
commit_id = dev_info.split("-")[0]
64-
version = f"{ov_major_version}-{commit_id}"
59+
version = model_utils.get_version_in_format_to_pars(get_version())
6560
is_callback_supported = parse(version) >= parse("2025.0.0")
6661
if is_callback_supported:
6762
input_args["callback"] = callback

0 commit comments

Comments
 (0)