Download generate.py from SableAI-Dev/Axon-Kit: direct link, hf CLI and curl.
- Browser
- Download file 1.01 kB
-
https://huggingface.co/SableAI-Dev/Axon-Kit/resolve/main/generate.py
- Command line
-
hf download hf://SableAI-Dev/Axon-Kit/generate.py
-
curl -L -o generate.py https://huggingface.co/SableAI-Dev/Axon-Kit/resolve/main/generate.py
1.01 kB
| import argparse | |
| import torch | |
| from tokenizers import Tokenizer | |
| from model import GPT, sample | |
| ap = argparse.ArgumentParser() | |
| ap.add_argument("ckpt", help="чекпоинт: kit_*.pt или last.pt") | |
| ap.add_argument("prompt", nargs="?", default="Москва — это") | |
| ap.add_argument("--tokens", type=int, default=150) | |
| ap.add_argument("--temp", type=float, default=0.8) | |
| ap.add_argument("--top_k", type=int, default=40) | |
| args = ap.parse_args() | |
| device = "cuda" | |
| tok = Tokenizer.from_file("data/tokenizer.json") | |
| model = GPT().to(device) | |
| if args.ckpt.endswith(".safetensors"): | |
| from safetensors.torch import load_file | |
| # head.weight связан с tok_emb.weight и в файле отсутствует | |
| model.load_state_dict({k: v.float() for k, v in load_file(args.ckpt).items()}, strict=False) | |
| else: | |
| sd = torch.load(args.ckpt, map_location=device) | |
| model.load_state_dict(sd["model"] if "model" in sd else sd) | |
| print(sample(model, tok, args.prompt, device, args.tokens, args.temp, args.top_k)) | |