Spaces:
Running
Running
Delete benchmarks/beam/provenance.py
Browse files
benchmarks/beam/provenance.py
DELETED
|
@@ -1,99 +0,0 @@
|
|
| 1 |
-
from __future__ import annotations
|
| 2 |
-
|
| 3 |
-
import hashlib
|
| 4 |
-
import subprocess
|
| 5 |
-
from pathlib import Path
|
| 6 |
-
from typing import Any
|
| 7 |
-
|
| 8 |
-
from beam.config import BENCHMARKS_ROOT, Settings, model_family
|
| 9 |
-
from beam.prompts import (
|
| 10 |
-
ANSWER_SYSTEM,
|
| 11 |
-
JUDGE_PROMPT_VARIANT,
|
| 12 |
-
UNIFIED_LLM_JUDGE_BASE_PROMPT,
|
| 13 |
-
prompt_sha256,
|
| 14 |
-
)
|
| 15 |
-
|
| 16 |
-
REPO_ROOT = BENCHMARKS_ROOT.parent
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
def _git(*args: str) -> str | None:
|
| 20 |
-
try:
|
| 21 |
-
result = subprocess.run(
|
| 22 |
-
["git", *args],
|
| 23 |
-
cwd=REPO_ROOT,
|
| 24 |
-
capture_output=True,
|
| 25 |
-
text=True,
|
| 26 |
-
timeout=10,
|
| 27 |
-
)
|
| 28 |
-
except (OSError, subprocess.SubprocessError):
|
| 29 |
-
return None
|
| 30 |
-
if result.returncode != 0:
|
| 31 |
-
return None
|
| 32 |
-
return result.stdout.strip()
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
def git_sha() -> str | None:
|
| 36 |
-
return _git("rev-parse", "HEAD")
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
def git_dirty() -> bool | None:
|
| 40 |
-
status = _git("status", "--porcelain")
|
| 41 |
-
if status is None:
|
| 42 |
-
return None
|
| 43 |
-
return bool(status.strip())
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
def file_sha256(path: Path) -> str | None:
|
| 47 |
-
if not path.exists():
|
| 48 |
-
return None
|
| 49 |
-
digest = hashlib.sha256()
|
| 50 |
-
with path.open("rb") as handle:
|
| 51 |
-
for chunk in iter(lambda: handle.read(1024 * 1024), b""):
|
| 52 |
-
digest.update(chunk)
|
| 53 |
-
return digest.hexdigest()
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
def dir_manifest_sha256(data_dir: Path) -> str | None:
|
| 57 |
-
if not data_dir.exists():
|
| 58 |
-
return None
|
| 59 |
-
digest = hashlib.sha256()
|
| 60 |
-
paths = sorted(p for p in data_dir.rglob("*") if p.is_file())
|
| 61 |
-
if not paths:
|
| 62 |
-
return None
|
| 63 |
-
for path in paths:
|
| 64 |
-
rel = str(path.relative_to(data_dir))
|
| 65 |
-
digest.update(rel.encode("utf-8"))
|
| 66 |
-
digest.update(b"\0")
|
| 67 |
-
with path.open("rb") as handle:
|
| 68 |
-
for chunk in iter(lambda: handle.read(1024 * 1024), b""):
|
| 69 |
-
digest.update(chunk)
|
| 70 |
-
digest.update(b"\0")
|
| 71 |
-
return digest.hexdigest()
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
def build_provenance(settings: Settings, *, size: str | None = None) -> dict[str, Any]:
|
| 75 |
-
data_root = settings.beam_data_dir
|
| 76 |
-
scoped = data_root / size if size else data_root
|
| 77 |
-
return {
|
| 78 |
-
"git_sha": git_sha(),
|
| 79 |
-
"git_dirty": git_dirty(),
|
| 80 |
-
"answer_prompt_sha256": prompt_sha256(ANSWER_SYSTEM),
|
| 81 |
-
"judge_prompt_sha256": prompt_sha256(UNIFIED_LLM_JUDGE_BASE_PROMPT),
|
| 82 |
-
"judge_prompt_variant": JUDGE_PROMPT_VARIANT,
|
| 83 |
-
"dataset_path": str(scoped),
|
| 84 |
-
"dataset_sha256": dir_manifest_sha256(scoped),
|
| 85 |
-
"answer_model": settings.answer_model,
|
| 86 |
-
"answer_model_family": model_family(settings.answer_model),
|
| 87 |
-
"answer_llm_base_url": settings.llm_base_url,
|
| 88 |
-
"judge_model": settings.judge_model,
|
| 89 |
-
"judge_model_family": model_family(settings.judge_model),
|
| 90 |
-
"judge_provider": settings.judge_provider(),
|
| 91 |
-
"judge_shares_answer_family": settings.judge_shares_answer_family,
|
| 92 |
-
"hf_dataset": (
|
| 93 |
-
settings.hf_dataset_for(size) if size else settings.hf_dataset
|
| 94 |
-
),
|
| 95 |
-
"bench_profile": settings.bench_profile,
|
| 96 |
-
"sc_samples": settings.sc_samples,
|
| 97 |
-
"sc_temperature": settings.sc_temperature,
|
| 98 |
-
"gap_fill": settings.gap_fill,
|
| 99 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|