(
*,
dataset_name: str,
engine: tg.EngineLM,
model: Module,
model_name: str,
max_step: int,
max_samples: Optional[int],
result_slot: Dict[str, Any],
results_root: Dict[str, Any],
output_path: Path,
)
| 481 | |
| 482 | |
| 483 | def run_dataset( |
| 484 | *, |
| 485 | dataset_name: str, |
| 486 | engine: tg.EngineLM, |
| 487 | model: Module, |
| 488 | model_name: str, |
| 489 | max_step: int, |
| 490 | max_samples: Optional[int], |
| 491 | result_slot: Dict[str, Any], |
| 492 | results_root: Dict[str, Any], |
| 493 | output_path: Path, |
| 494 | ) -> Dict[str, Any]: |
| 495 | dataset_cls = DATASET_REGISTRY[dataset_name] |
| 496 | dataset = dataset_cls(split="all") |
| 497 | |
| 498 | evaluation_module = build_evaluation_module(engine) |
| 499 | |
| 500 | samples: List[Dict[str, Any]] = result_slot.setdefault("samples", []) |
| 501 | result_slot["metrics"] = compute_metrics(samples) |
| 502 | save_results(results_root, output_path) |
| 503 | |
| 504 | total_available = len(dataset) |
| 505 | target_count = total_available if max_samples is None else min(total_available, max_samples) |
| 506 | already_processed = min(len(samples), target_count) |
| 507 | start_idx = already_processed |
| 508 | end_idx = target_count |
| 509 | progress_desc = f"{model_name} · {dataset_name}" |
| 510 | |
| 511 | if start_idx >= end_idx: |
| 512 | return result_slot |
| 513 | |
| 514 | for idx in tqdm(range(start_idx, end_idx), desc=progress_desc, unit="sample"): |
| 515 | question_text, ground_truth_text = dataset[idx] |
| 516 | sample_log = run_sample( |
| 517 | question_text=question_text, |
| 518 | ground_truth_text=str(ground_truth_text), |
| 519 | model=model, |
| 520 | evaluation_module=evaluation_module, |
| 521 | engine=engine, |
| 522 | model_name=model_name, |
| 523 | max_step=max_step, |
| 524 | ) |
| 525 | samples.append(sample_log) |
| 526 | result_slot["metrics"] = compute_metrics(samples) |
| 527 | save_results(results_root, output_path) |
| 528 | |
| 529 | result_slot["metrics"] = compute_metrics(samples) |
| 530 | save_results(results_root, output_path) |
| 531 | return result_slot |
| 532 | |
| 533 | |
| 534 | def compute_metrics(samples: List[Dict[str, Any]]) -> Dict[str, Any]: |
no test coverage detected