Print elapsed and remaining time

This commit is contained in:
Philipp Emanuel Weidmann
2025-10-25 09:47:54 +05:30
parent cf57a0cfbe
commit 37c5ea06d1
2 changed files with 26 additions and 1 deletions
+13 -1
View File
@@ -27,7 +27,7 @@ from rich.traceback import install
from .config import Settings
from .evaluator import Evaluator
from .model import AbliterationParameters, Model
from .utils import get_readme_intro, load_prompts, print
from .utils import format_duration, get_readme_intro, load_prompts, print
def run():
@@ -178,6 +178,7 @@ def run():
)
trial_index = 0
start_time = time.perf_counter()
def objective(trial: optuna.Trial):
nonlocal trial_index
@@ -232,6 +233,17 @@ def run():
print("* Evaluating...")
score, kl_divergence, refusals = evaluator.get_score()
elapsed_time = time.perf_counter() - start_time
remaining_time = (elapsed_time / trial_index) * (
settings.n_trials - trial_index
)
print()
print(f"[grey50]Elapsed time: [bold]{format_duration(elapsed_time)}[/][/]")
if trial_index < settings.n_trials:
print(
f"[grey50]Estimated remaining time: [bold]{format_duration(remaining_time)}[/][/]"
)
trial.set_user_attr("kl_divergence", kl_divergence)
trial.set_user_attr("refusals", refusals)
trial.set_user_attr("parameters", parameters)
+13
View File
@@ -21,6 +21,19 @@ from .config import DatasetSpecification, Settings
print = Console(highlight=False).print
def format_duration(seconds: float) -> str:
seconds = round(seconds)
hours, seconds = divmod(seconds, 3600)
minutes, seconds = divmod(seconds, 60)
if hours > 0:
return f"{hours}h {minutes}m"
elif minutes > 0:
return f"{minutes}m {seconds}s"
else:
return f"{seconds}s"
def load_prompts(specification: DatasetSpecification) -> list[str]:
dataset = load_dataset(specification.dataset, split=specification.split)
return list(dataset[specification.column])