Download scripts/inspect_elf_progress.py from jyliuAI/diffusion_baseline: direct link, hf CLI and curl.
- Browser
- Download file 4.15 kB
-
https://huggingface.co/jyliuAI/diffusion_baseline/resolve/main/scripts/inspect_elf_progress.py
- Command line
-
hf download hf://jyliuAI/diffusion_baseline/scripts/inspect_elf_progress.py
-
curl -L -o inspect_elf_progress.py https://huggingface.co/jyliuAI/diffusion_baseline/resolve/main/scripts/inspect_elf_progress.py
4.15 kB
| #!/usr/bin/env python3 | |
| """Read-only ELF quality inventory; verify saved artifacts before reporting completion.""" | |
| from __future__ import annotations | |
| import argparse | |
| import json | |
| from pathlib import Path | |
| from elf_common import ROOT, read_jsonl, sha256, write_json | |
| from evaluate_elf import validate_records | |
| OWT_MAIN_STEPS = (1, 2, 4, 8, 16, 32, 1024) | |
| def inspect_run(path): | |
| row = {"run": str(path), "status": "incomplete_generation"} | |
| try: | |
| request = json.loads((path / "request.json").read_text()) | |
| row.update(task=request["task"], steps=request["steps"], seed=request["seed"], | |
| compile=request["compile"], | |
| split=(request.get("input") or {}).get( | |
| "split", "c64-text-t5" if request["task"] == "owt-prefix" else "unconditional"), | |
| protocol=request.get("protocol"), | |
| condition_policy=request.get("condition_tokenization_policy")) | |
| gp = path / "generation.json" | |
| if not gp.exists(): | |
| return row | |
| gen = json.loads(gp.read_text()) | |
| for key in ("task", "steps", "seed", "compile"): | |
| if gen[key] != request[key]: | |
| raise ValueError(f"request/generation mismatch: {key}") | |
| sample_hash = sha256(path / "samples.jsonl") | |
| if gen["samples_sha256"] != sample_hash: | |
| raise ValueError("samples hash mismatch") | |
| validate_records(read_jsonl(path / "samples.jsonl"), gen) | |
| row.update(sample_count=gen["sample_count"], prompt_count=gen["prompt_count"], | |
| status="needs_evaluation") | |
| mp = path / "metrics.json" | |
| if mp.exists(): | |
| metric = json.loads(mp.read_text()) | |
| if (metric["generation_manifest_sha256"] != sha256(gp) | |
| or metric["samples_sha256"] != sample_hash | |
| or metric["task"] != gen["task"] | |
| or metric["sample_count"] != gen["prompt_count"]): | |
| raise ValueError("metrics provenance/count mismatch") | |
| if type(metric.get("valid")) is not bool: | |
| raise ValueError("missing boolean metric validity") | |
| row.update(status="quality_valid" if metric["valid"] else "quality_invalid", | |
| metrics=metric["metrics"], reason=metric.get("reason")) | |
| row["owt_main_grid"] = ( | |
| row["task"] == "owt" and row["steps"] in OWT_MAIN_STEPS | |
| and row["prompt_count"] == 1024 and not gen.get("diversity") | |
| and row["seed"] == 42 and not row["compile"] | |
| ) | |
| except (OSError, ValueError, KeyError, TypeError) as error: | |
| row.update(status="invalid_artifact", reason=str(error)) | |
| return row | |
| def main(): | |
| parser = argparse.ArgumentParser(description=__doc__) | |
| parser.add_argument("--root", type=Path, default=ROOT) | |
| parser.add_argument("--output", type=Path) | |
| args = parser.parse_args() | |
| paths = sorted((args.root / "results").glob("elf*/quality/*/*/steps_*/seed_*/compile_*")) | |
| rows = [inspect_run(path) for path in paths if path.is_dir()] | |
| for row in rows: | |
| metrics = row.get("metrics", {}) | |
| scores = {key: metrics[key] for key in ("bleu", "rouge1", "rouge2", "rougeL", "entropy_gpt2_nats") if key in metrics} | |
| for key in ("generative_ppl", "conditional_ppl"): | |
| if key in metrics: | |
| scores[key] = metrics[key].get("perplexity") | |
| print(json.dumps({k: v for k, v in row.items() if k != "metrics"} | {"scores": scores}, ensure_ascii=False)) | |
| present = {row["steps"] for row in rows if row.get("owt_main_grid") and row["status"] == "quality_valid"} | |
| missing = [step for step in OWT_MAIN_STEPS if step not in present] | |
| print(f"OWT primary grid {list(OWT_MAIN_STEPS)}; steps without a verified valid result: {missing}") | |
| print("Old/no-EOS conditional runs and auxiliary steps remain listed; do not merge protocols. No GPU work performed.") | |
| if args.output: | |
| write_json(args.output, {"schema": "elf-progress-v1", "runs": rows, | |
| "owt_steps_without_valid_result": missing}) | |
| if __name__ == "__main__": | |
| main() | |