Download source/scripts/posttraining/evaluate.py from Voltline/vimeml-tiny-ja-v4.2: direct link, hf CLI and curl.
- Browser
- Download file 1.69 kB
-
https://huggingface.co/Voltline/vimeml-tiny-ja-v4.2/resolve/main/source/scripts/posttraining/evaluate.py
- Command line
-
hf download hf://Voltline/vimeml-tiny-ja-v4.2/source/scripts/posttraining/evaluate.py
-
curl -L -o evaluate.py https://huggingface.co/Voltline/vimeml-tiny-ja-v4.2/resolve/main/source/scripts/posttraining/evaluate.py
1.69 kB
| """Evaluate a C1 checkpoint only on the frozen nonblind snapshots.""" | |
| import argparse | |
| from pathlib import Path | |
| import sys | |
| ROOT = Path(__file__).resolve().parents[2] | |
| sys.path.insert(0, str(ROOT / "src")) | |
| def main(): | |
| from vimeml.posttraining.infer import (TRACKS, read_snapshot, load_conditional_checkpoint, | |
| fp32_evaluation, evaluate_snapshot) | |
| from vimeml.training.data import write_json | |
| parser = argparse.ArgumentParser(description=__doc__) | |
| parser.add_argument("--checkpoint", type=Path, required=True) | |
| parser.add_argument("--output", type=Path, required=True) | |
| parser.add_argument("--device", choices=("cpu", "cuda"), default="cpu") | |
| parser.add_argument("--tracks", choices=tuple(TRACKS), nargs="+", default=["standard-development"]) | |
| parser.add_argument("--condition", choices=("context_reading", "empty_reading", "empty_context"), default="context_reading") | |
| args = parser.parse_args() | |
| if args.output.exists() and any(args.output.iterdir()): | |
| parser.error("Use a new evaluation output directory") | |
| rows = {track: read_snapshot(track) for track in args.tracks} | |
| model, codec, metadata = load_conditional_checkpoint(args.checkpoint, | |
| ROOT / "artifacts/tokenizers/v4-a/ja-unigram-8192/tokenizer.model", args.device) | |
| report = {"checkpoint": metadata, "condition": args.condition, "tracks": {}} | |
| with fp32_evaluation(model): | |
| for track, data in rows.items(): | |
| report["tracks"][track] = evaluate_snapshot(model, codec, data, args.output / track, args.condition) | |
| write_json(args.output / "summary.json", report) | |
| print(report) | |
| if __name__ == "__main__": | |
| main() | |