Download source/scripts/training/infer_v4.py from Voltline/vimeml-tiny-ja-v4.2: direct link, hf CLI and curl.
- Browser
- Download file 1.27 kB
-
https://huggingface.co/Voltline/vimeml-tiny-ja-v4.2/resolve/main/source/scripts/training/infer_v4.py
- Command line
-
hf download hf://Voltline/vimeml-tiny-ja-v4.2/source/scripts/training/infer_v4.py
-
curl -L -o infer_v4.py https://huggingface.co/Voltline/vimeml-tiny-ja-v4.2/resolve/main/source/scripts/training/infer_v4.py
1.27 kB
| """Read-only V4 next-piece, beam and optional candidate scoring diagnostics.""" | |
| import argparse | |
| import json | |
| import sys | |
| from pathlib import Path | |
| ROOT = Path(__file__).resolve().parents[2] | |
| sys.path.insert(0, str(ROOT / "src")) | |
| from vimeml.training.infer_v4 import JapaneseLMV4, score_candidates_cached | |
| from vimeml.training.evaluate_ime import beam_suggestions | |
| if __name__ == "__main__": | |
| parser = argparse.ArgumentParser(description=__doc__) | |
| parser.add_argument("--checkpoint", type=Path, required=True) | |
| parser.add_argument("--tokenizer", type=Path, default=ROOT / "artifacts/tokenizers/v4-a/ja-unigram-8192") | |
| parser.add_argument("--prompt", default="今日は") | |
| parser.add_argument("--candidate", action="append", default=[]) | |
| parser.add_argument("--device", choices=("cpu", "cuda"), default="cpu") | |
| args = parser.parse_args() | |
| lm = JapaneseLMV4(args.checkpoint, args.tokenizer, args.device) | |
| result = {"metadata": lm.metadata, "next_pieces": lm.next_pieces(args.prompt), | |
| "beam": beam_suggestions(lm, args.prompt, max_tokens=3, width=3, count=2)} | |
| if args.candidate: | |
| result["candidate_scores"] = score_candidates_cached(lm, args.prompt, args.candidate) | |
| print(json.dumps(result, ensure_ascii=False, indent=2)) | |