File size: 1,214 Bytes
0bd3079
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
"""Generate a short TinyStories-style continuation from the local HF checkpoint."""

from pathlib import Path

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer


def main() -> None:
    model_dir = Path(__file__).resolve().parent / "hf"
    device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
    tokenizer = AutoTokenizer.from_pretrained(model_dir)
    model = AutoModelForCausalLM.from_pretrained(model_dir, dtype=torch.float32).to(device)
    model.eval()
    prompt = "Once upon"
    input_ids = torch.tensor(
        [[tokenizer.bos_token_id] + tokenizer.encode(prompt, add_special_tokens=False)],
        dtype=torch.long,
        device=device,
    )
    torch.manual_seed(1234)
    with torch.no_grad():
        output = model.generate(
            input_ids=input_ids,
            max_new_tokens=100,
            do_sample=True,
            temperature=0.8,
            top_p=0.95,
            top_k=40,
            repetition_penalty=1.1,
            pad_token_id=tokenizer.pad_token_id,
            eos_token_id=tokenizer.eos_token_id,
        )
    print(tokenizer.decode(output[0].tolist(), skip_special_tokens=True))


if __name__ == "__main__":
    main()